一个简单的MATLAB脚本——快速行进算法(FMM)
介绍快速行进算法(FMM)的简单MATLAB脚本,不到20行代码实现快速行进算法的运算结果,而且计算速度非常快。给了两个实例模型来说明计算结果。
文章目录
- 一个简单的MATLAB脚本——快速行进算法(FMM)
- 一、计算结果
- 1.1 模型一
- 1.2 模型二
- 二、MATLAB代码
一、计算结果
1.1 模型一
在坐标(10,10)处设置一个源点。
在模型中心设置一个大小为20X20的障碍体。
得到快速行进算法计算得到的区域。
将障碍体的值由0改为0.2。
重新快速行进算法计算。
1.2 模型二
这个模型与模型一相同,只是源点的位置为(10,10)改为(50,10),其他内容均不变。
二、MATLAB代码
模型一对应的MATLAB代码:
set(gcf,'rend','z');
A=inf*ones(100,100);
U=inf*ones(100,100);
A(10,10)=1;
U(10,10)=1;
B=fmm2d(A);
plt(B,50)
pause
F=ones(100,100);
F(40:60,40:60)=0;
plt(F)
pause
[B,U]=fmm2d(A,U,F);
B(isinf(B))=nan;
plt(B,50)
pause
F=ones(100,100);
F(40:60,40:60)=0.2;
plt(F)
pause
[B,U]=fmm2d(A,U,F);
plt(B,50)
pause
模型二对应的MATLAB代码
close all
clear
clc
set(gcf,'rend','z');
A=inf*ones(100,100);
U=inf*ones(100,100);
A(50,10)=0;
U(50,10)=0;
B=fmm2d(A);
plt(B,50)
pause
F=ones(100,100);
F(40:60,40:60)=0;
plt(F)
pause
[B,U]=fmm2d(A,U,F);
% B(isinf(B))=nan;
plt(B,50)
pause
F=ones(100,100);
F(40:60,40:60)=0.1;
plt(F)
pause
[B,U]=fmm2d(A,U,F);
plt(B,50)
pause
具体代码我已打包成文件夹,在我的资源中下载即可。