朱莉娅微分代数方程作为边界值问题



Julia 支持边界值微分代数方程吗?我有一个隐式常微分方程,其可变质量矩阵有时是奇异的,所以我必须使用 DAEProblem。我的问题是x1(t)和x2(t)的两个耦合二阶常微分方程,我通过设置x1'(t)= y1(t)和x2'(t)=y2(t)将其转换为四个一阶方程。我在域的开头和结尾都有 x1 和 x2 的值,但在任何地方都没有 y1 或 y2 的值,因此我同时需要 DAE 和 BVP。

这篇 github 帖子表明这是可能的,但恐怕我对机器的了解还不够深,无法理解如何将 DAEProblem 与 BVProblem 耦合。

我已经成功地按照数字配方编写了多个拍摄代码来解决问题,但它相当笨拙。最终,我想将其与 DiffEqFlux 配对(我沿域测量了相当多的 x1 和 x2,并且不知道微分方程的确切形式),但我怀疑如果有更直接的方法将 BVProblem 与 DAEProblem 联系起来,那会简单得多。

只需直接转到 DiffEqFlux,因为参数估计包含 BVP。 将边界条件编写为 DAEProblem 上的损失函数的一部分(即起始值应等于x,最终值应等于y),并在优化任何参数的同时优化初始条件。仅优化初始条件而不优化任何参数等效于这种形式的单个拍摄 BVP 求解器,这允许同时进行参数估计。或者使用多个拍摄层功能进行多次拍摄。或者使用带有质量矩阵的BVProblem

对于更多帮助,您需要共享您尝试过但不起作用的代码,因为它没有比这更困难的了,因此很难提供比"使用构造函数x"更通用的帮助。

最新更新