Loading [MathJax]/jax/output/CommonHTML/jax.js

2016年8月21日日曜日

ヌメロフ法


y(z)=P(z)=g(z)y(z)というようなタイプの微分方程式の数値解を得ようとする時には、ヌメロフ法が便利だと思う。


ヌメロフ法の簡単な説明としては、まずテイラー展開で yn+1+yn12yn=22!y(z)h2+24!y(z)h4+O(h6), とする。 yn+1=y(z+h),yn1=y(zh)
そしてy(z)については、 y(z)=P(z)であることを使って、 Pn+1+Pn12Pn=22!P(z)h2+O(h4),h2y(z)=h2P(z)=Pn+1+Pn12PnO(h4), となることがわかる。それを利用して、 yn+1+yn12yn=Pnh2+2h24!(Pn+1+Pn12PnO(h4))+O(h6),=h212Pn+1+5h26Pn+h212Pn1+O(h6) となることがわかる。よって、 (1h212gn+1)yn+1+(1h212gn1)yn1=(25h26gn)yn+O(h6) を得る。これがヌメロフ法である。

ヌメロフ法を使ってこの手の微分方程式を解いてみる。 d2χndz2+(α24+14z2+n+α2+12z14)χn=0 といった方程式はどうだろう。この解析解は χn(z)=zα+12ez2L(α)n(z) である。
例として、 α=1.0,N=2α=2.5,N=3, α=4.5,N=5, α=5,N=7 の場合では、


α=1.0,N=10 と α=1.0,N=20の場合は



のようになり、Nが大きくなるほど収束は遅くなることがわかる。
全体的に解析解と数値解はかなり近い値となっている。計算速度もかなり速かったと思う。

0 件のコメント:

コメントを投稿