拡散方程式を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くらいにまで大きくしても全然安定。こりゃすごいな。
計算結果はこんな感じ。
ソースはこんな感じ(実用性はないけど)。
« RFワールドNo.11を買った。 | トップページ | 高速道路無料化-利用証明書はちゃんと受け取ろう。 »
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年1月23日 5G Americasの新ホワイトペーパー「AI時代のセルラーネットワークの信頼性とセキュリティ」、KyoceraAVXの新薄膜フィルタ、TDKの車載/一般用C0G特性1,250V 3225サイズMLCC、Semtechの5G LPWAモジュール(2025.01.23)
- 高周波・RFニュース 2025年1月22日 everythingRFマガジンにMarkiの宇宙向けミリ波部品の記事、NordicのRF52810を使った太陽電池で動き暗闇でも3週間持つアセットトトラッカー、KnowlessのMRIの技術解説記事、Broadcomの3.5Dパッケージング解説(2025.01.22)
- UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(3) 3D画面に補間(Interpolate) を行って表示する。リニア、3次スプライン、有理関数などいろいろ使える。(2025.01.23)
こんにちは。数値計算を興味深く読んでいます。
Dormand-Prince8次と書かれていますが、Fehlberg7(8)次と思っていいのでしょうか?
投稿: | 2010年10月 2日 (土) 01時17分
おっとそこに気付く人がいらっしゃるとは、、、
正式なDormand/Prince8次の係数はいわゆるdop853に記載されていますので
そちらをご参照ください。リンクはこちらです。
http://www.unige.ch/~hairer/prog/nonstiff/dop853.f
うちのは、、、途中で出典が違うことに気がついたけどめんどくさくなって
そのまま放置しているという、、、
投稿: tonagai | 2010年10月 2日 (土) 05時21分
こんばんは。早速のコメントありがとうございます。
次数の違いが気になってコメントさせて頂きました。
今後の数値計算も楽しみにしています。
投稿: | 2010年10月 2日 (土) 22時54分