快速行进法

快速行进法

Eikonal 方程(程函方程)的数值求解方法有

  1. 快速行进法(Fast Marching Method)
  2. 快速扫描法(Fast Sweeping Method),适用范围更广,效率更高。

快速行进法(Fast Marching Method)

简介

快速行进算法 (Fast Marching Method) 是求解程函方程 (Eikonal Equation)F ∣ ∇ T ∣ = 1 的一种高效数值算法,程函方程属于非线性偏微分方程,可以认为是一种近似波动方程。
在界面演化问题中的求解的结果 T 的物理含义是:曲线以速度F(x)到达计算域每一点所需要消耗的最短时间。寻找 T 在不同高度上的水平集,它总能给出时间演化曲线的一个位置。当 F = 1时,方程解就代表计算域中的距离场,也就是所谓的符号距离函数。

快速行进算法使用了一个特殊的差商代替微商,比如在二维情况,使用的是如下近似:

这里的Δ +x表示对于自变量 x 的一阶向前差分算子, Δ − x表示对于自变量 x 的一阶向后差分算子。

算法推导过程:

结论:

综上,我们去掉开始时的那个“不妨假设”,我们可以得到如下描述:

优点:

对于一个 N × N的网格, FMM 的总的算术复杂度为 O ( N log N ) ,误差阶为 O ( Δ x )。

快速行进算法和 Dijkstra 算法思想相似,不同之处在于 Dijkstra 算法利用节点之间的欧式距离进行更新,而 FMM 算法利用由程函方程化简得到的近似偏微分方程进行更新。快速行进算法有很多特质:首先,它是“一次通过”的算法,减少了不必要的计算;其次,它计算量小,一般只要计算不超过 N log N 次。
少了不必要的计算;其次,它计算量小,一般只要计算不超过 N log N 次。

参考:https://blog.csdn.net/lusongno1/article/details/88409735?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164078365116780271929551%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164078365116780271929551&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduend~default-2-88409735.nonecase&utm_term=fast+marching&spm=1018.2226.3001.4450

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值