3D 快速行进算法(Fast Marching Method in 3D case)

本文详细介绍了3D快速行进算法在求解Eikonal方程中的应用,特别是针对三维网格或Voxel环境的解决方案。通过分析不同情况下U与相邻节点的关系,推导出满足条件的解,并对比二维情况进行了讨论。
摘要由CSDN通过智能技术生成

Intro

快速行进算法用来高效求解程函方程(Eikonal Equation) F ∥ ∇ U ∥ = 1 F\Vert\nabla U\Vert = 1 FU=1, F为速度场函数( Velocity Field Function). 符号距离函数为这个方程的近似解,当 F = 1 F = 1 F=1时,二维情况下 F ( x , y ) = 1 F(x, y) = 1 F(x,y)=1, 三维情况下 F ( x , y , z ) = 1 F(x, y, z) = 1 F(x,y,z)=1. 该方程为非线性偏微分方程,一般用数值方法也即有限差分来进行求解,其一阶有限差分近似为
( max ( Δ − x U , − Δ + x U , 0 ) ) 2 + ( max ( Δ − y U , − Δ + y U , 0 ) ) 2 = 1 / F (\text{max}(\Delta_{-x}U, -\Delta_{+x}U, 0))^2 + (\text{max}(\Delta_{-y}U, -\Delta_{+y}U, 0))^2 = 1 / F (max(ΔxU,Δ+xU,0))2+(max(ΔyU,Δ+yU,0))2=1/F
这个有限差分如何得到可以参考Osher或Sethian的著作。
三维情况下方程左侧再添加一项对 z z z的差分。

Derive solution

大多数博客只讨论了二维情况,对三维的考虑都是基于mesh,由于我这次做的项目使用的三维网格(or Voxel),以小立方体为单位。具体的解的推导有点不一样,但大部分类似。
考虑网格点 i , j , k i, j, k i,j,k, 设 U x = min ( U i − 1 , j , k , U i + 1 , j , k ) , U y = min ( U i , j − 1 , k , U i , j + 1 , k ) , U z = min ( U i , j , k − 1 , U i , j , k + 1 ) U^x = \text{min}(U_{i - 1, j, k}, U_{i+1, j, k}), U^y = \text{min}(U_{i, j - 1, k}, U_{i, j + 1, k}), U^z = \text{min}(U_{i, j, k-1}, U_{i, j, k+1}) Ux=min(Ui1,j,k,Ui+1,j,k),Uy=min(Ui,j1,k,Ui,j+1,k),Uz=min(Ui,j,k1,Ui,j,k+1)
分以下几种情况考虑

  1. U > U x , U y , U z U > U^x, U^y, U^z U>Ux,Uy,Uz, 即 U > max ( U x , U y , U z ) = U x
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值