« RFワールドNo.11を買った。 | トップページ | 高速道路無料化-利用証明書はちゃんと受け取ろう。 »

2010年8月 8日 (日)

拡散方程式をDormand-Prince(ルンゲクッタ8次)で計算(Excel VBAソース付き)

久々に偏微分方程式をExcel VBAで計算するシリーズ。まずは拡散方程式

∂u/∂t = D ∂^2u / ∂x^2

だ。

まずは空間部分を差分化して、

du(n, t)/dt = D * (u(n+1,t) + u(n-1,t) - 2*u(n,t)) / (Δx*Δx)

のような常微分方程式をそのままDormand&Prince(14段8次ルンゲクッタ法)で計算してみた。

さて、こういう常微分方程式をオイラー法で解くと、

D * Δt /(Δx*Δx) < 0.5

が必要で、結構刻み幅に気を使う。しかし、このDormand-Princeならば

1.2くらいにまで大きくしても全然安定。こりゃすごいな。

計算結果はこんな感じ。

Diffusion8th

ソースはこんな感じ(実用性はないけど)。

「Diffusion-8th.txt」をダウンロード

« RFワールドNo.11を買った。 | トップページ | 高速道路無料化-利用証明書はちゃんと受け取ろう。 »

学問・資格」カテゴリの記事

コメント

こんにちは。数値計算を興味深く読んでいます。
Dormand-Prince8次と書かれていますが、Fehlberg7(8)次と思っていいのでしょうか?

おっとそこに気付く人がいらっしゃるとは、、、
正式なDormand/Prince8次の係数はいわゆるdop853に記載されていますので
そちらをご参照ください。リンクはこちらです。
http://www.unige.ch/~hairer/prog/nonstiff/dop853.f

うちのは、、、途中で出典が違うことに気がついたけどめんどくさくなって
そのまま放置しているという、、、

こんばんは。早速のコメントありがとうございます。
次数の違いが気になってコメントさせて頂きました。
今後の数値計算も楽しみにしています。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« RFワールドNo.11を買った。 | トップページ | 高速道路無料化-利用証明書はちゃんと受け取ろう。 »

最近の記事

最近のコメント

2019年10月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
フォト
無料ブログはココログ