使用 MATLAB ODE45 计算具有奇点的解决方案

计算科学 matlab 数值分析 稳定 龙格库塔
2021-12-10 01:52:42

我是数字求解 ODES 的新手,因此我很难判断我为以下问题产生的结果的可靠性/可信度:

我正在处理区间上的二阶 ODE(我也可以向其添加非线性项)[0,1]具有规则奇点在01. 我将 ODE 转换为一阶,并通过将初始条件设置为x=1由对称参数驱动,让 ODE45 从x=1x=0. 通过这种方式,我可以产生很好的解决方案。

但是问题来了:我必须稍后使用这些解决方案,例如,我还可以计算L2-区间上解的范数[0,1]关于某些措施,我得到的结果似乎敏感地取决于

(1.) 截止时间x=0(我让 ODE45 运行到“eps”,即机器精度,但我也可以取越来越小的值)

(2.) AbsTol 和 RelTol 的小(都在 eps 附近)

(3.) tspan 大小,即我将区间切割成的片数,比如106.

根据我如何改变 (1.)-(3.) 中的值,我得到的结果彼此不同,而且在很小程度上不同。我相信代码是正确实现的,而不是我猜问题来自常规奇点,这让我想到了 ODE45 对于这样的问题有多值得信赖的问题。有没有人遇到过这样的问题并且可以推荐我可以做些什么来获得更可靠的结果?谢谢!

更新:

等式读取2x (1x) f(x)+(34x) f(x)+a f(x)+b fn(x)=0;  a,bR,nN.

如果我求解直到 vs.,“在很小程度上”意味着归一化结果从例如的变化。1021020x=eps100x=eps

0个回答
没有发现任何回复~