[请益] 四阶非线性微分方程的数值分析问题

楼主: jeromee ( 迷途小书僮)   2014-02-15 22:47:03
已爬过文,也在网络上做过功课。
版上是有类似的文章,但有与前文不同问题发问。
问题描述在
http://min.us/i/7M0CwA2TTJZf
这是一个四阶非线性常微分方程式,当然没有closed-form。
但我在使用NDsolve遇到了问题,只要其中某一个参数一小,就会出现
NDSolve::ndsz: At x == 0.21501, step size is effectively zero;
singularity or stiff system suspected
因为公式是我自己导的,物理现象我了解,知道问题的原因是什么,不是其间有奇点。
而是因为这是属于“边界层问题”,在接近边界的微短区域内会有极大的函数变化,离开
此微短区域后,函数变化急速趋缓,维持一平稳的状态。此函数陡缓急遽变化的分界点即
为边界层。
简而言之,就是在很小的范围内,函数会有很激烈的变化。
在期刊类似的方程式是先采用“shooting method”将此boundary value problem转成
initial value problem,再使用4th-order Runge-Kutta method求解。
是否可请教对此类非线性微分方程,使用Nsolve之下采用何种设定进行数值分析?
此外,是不是也有Nsolve无法处理的问题(如同本题),若如此,是否有其他程式
可以处理此问题?
虽然不知道P币对本版学有专精的人士是否有用,如您的回答可以解决问题,奉上5000P
感谢您的热心帮忙。
作者: LPH66 (-6.2598534e+18f)   2014-02-15 23:18:00
把 WorkingPrecision 加大一些试试?
作者: biglion ( )   2014-02-15 23:55:00
用别的算法试试 例如用Method->"StiffnessSwitching"
作者: AmibaGelos (Amiba Gelos)   2014-02-24 10:35:00
err..NDSolve默认是解IVP,要解BVP请把Method设为Shooti或是Chasing会出现stiffiness警讯纯粹是因为IV Matrix是illdefined随手试了几个shooting的IV发现还是有stiffness问题不过比Auto好很多很多了,可能IV的选择不是那么trivial

Links booklink

Contact Us: admin [ a t ] ucptt.com