level 2
已经使用了StiffnessSwitching,为啥还有这个问题
2024年06月01日 16点06分
2
level 2
\[Beta]=5.9;z=0.05;
sol=NDSolve[{p'[\[Phi]]==p[\[Phi]]^2 Sqrt[1/\[Beta]^2-1/p[\[Phi]]^2 (1-(2 p[\[Phi]])/(p[\[Phi]]^2+z))],p[0]==50,WhenEvent[1/p[\[Phi]]^2 (1-(2 p[\[Phi]])/(p[\[Phi]]^2+z))<=0,"StopIntegration"]},p,{\[Phi],0,2 \[Pi]},Method->{"StiffnessSwitching","NonstiffTest"->False}]
2024年06月01日 16点06分
3
吧务
level 15
出现此类问题最常见的理由是:方程本身就不对。你看一下那个解的缩略图,\[Phi]=0.118处解都飞到天上去了,如果解不应具备这种行为,那么必然是你方程写错了,请仔细检查。
当然了,除此之外还有一种较为少见的特殊情况,参SE帖子《Using NDSolve on the Painlevé equations》(编号174200)《Extending NDSolve beyond a singularity》(编号91670)
2024年07月06日 01点07分
4