拍摄方法的首选应用

计算科学
2021-12-19 04:43:42

本站时不时会有关于边值问题的拍摄方法的问题(1、2、3尽管如此,在我在这里看到的某些情况下,将边值问题直接使用诸如有限差分或有限元之类的离散化方法转换为代数系统会更好地解决问题。

所以,我的问题如下:

  • 什么是射击方法是解决问题的首选方法的应用程序?
  • 人们是否更喜欢这种拍摄方式?
1个回答

射击方法简单、通用,可以直接从现有的 ODE 求解器派生(这意味着它可以受益于 ODE 求解器的效率)。想要求解四元数中定义的 BVP?当然继续,Julia 拍摄方法会毫不费力地做到这一点(我什至不知道它会起作用,直到用户向我展示了示例哈哈)。显卡?是的,它有效。热塑性聚氨酯?是的。它只需要你扔给它的东西,如果 ODE 求解器可以做到,那么它可以。所以那里有一个重大的实际好处,因为更多的资源已经投入到 IVP 中。

但还有其他一些更微妙的原因。在 IVP 中,很容易进行状态相关的事件处理从技术上讲,您可以定义一个边界值问题,如果球在时间间隔内撞到地面,您会翻转速度。有了 IVP,就有非常成熟的方法可以解决这个问题使用 MIRK 表等,它可能会有点困难,因为你必须确保你在隐式定义的不连续性上有一个点。但是如果IVP可以做到,那么拍摄方法可以!

他们也很好地概括了。两点边值问题?当然。内部边界点?为什么不呢,您仍然可以定义非线性求解以使用 ODE 解的内部点。如果您想求解 BVP,其中一个条件是 ODE 求解的最大值恰好出现在区间的中间,该怎么办?好吧,您可以使用以下拍摄方法定义残差:

function bc2!(residual, u, p, t) 
    residual[1] = Optim.optimize(u,0,1).minimizer - 1/2
    ...
end

并通过优化器实现自动微分以获得良好的雅可比行列式,并且您拥有一个很好的算法来做您想做的事情。

所以作为一个数字分析师,我会说射击方法很糟糕,但作为一个维护开源软件的人,现在每月有成千上万的用户查看文档,每天提出数百个问题,有时射击方法是解决以下问题的好方法就像“天哪,我真的没想到有人会这样做,但天哪,拍摄方法会面带微笑地做到这一点”(如果问题不够僵硬的话),就是这样对...有用。