0

ルンゲ クッタ アルゴリズムを使用して微分方程式系を解く問題があります。これまでのところ、2 次偏微分方程式を 2 つの結合方程式のセットに書き直しました。ここで、

    f(L1,L2) = L2
    g(L1,L2) = A*(B*L1-C*L2-D)

は 2 つの式で、A、B、C、D は定数です。次のステップの値を取得するために、タイム ステップ dt ごとに次のように処理しました。

    k1 = f(L1,L2)
    l1 = g(L1,L2)

    k2 = f(L1 + 0.5 * dt * k1,L2 + 0.5 * dt * l1 )
    l2 = g(L1 + 0.5 * dt * k1,L2 + 0.5 * dt * l1 )

    k3 = f(L1 + 0.5 * dt * k2,L2 + 0.5 * dt * l2 )
    l3 = g(L1 + 0.5 * dt * k2, L2 + 0.5 * dt * l2 )

    k4 = f(L1 + dt * k1,L2 +  dt * l1 )
    l4 = g(L1 + dt * k1,L2 + dt * l1 ) 

ここで、現在の時間ステップの L1 と L2 の値を使用して、係数を繰り返し計算します。

その結果、最後に係数を合計して重み付けすることで、L1 と L2 を取得します。私の問題は、4 つのタイム ステップの後にアルゴリズム全体が不安定になることです。

実現が技術的に正しいかどうかは誰にもわかりませんか? ありがとう!

4

3 に答える 3

0

2つのこと:

一般に、ルンゲクッタは安定していません。オイラーよりも「安定している」だけです。微分方程式 の条件によっては、dt十分ではない場合があります。小さいのはdt役に立ちますか?

tの定義にの概念がありません。とが一定ではないと仮定すると、 とを通過する方がよいでしょう。のように。これにより、これらの係数計算について考える必要があり、それに応じて別の係数を渡す必要があります。これにより、中間点での L1 と L2 の評価が行われます。fgL1L2tfgf(t,L1,L2)t'

于 2013-11-10T09:46:38.470 に答える
0

どの値を使用するかは言わないので、推測にすぎませんdt。できるだけ小さくしてください。

ローカルの打ち切り誤差は O(h^5) 程度ですが、累積誤差の合計は O(h^4) 程度です。

(このウィキペディアの記事から引用、dt が h の役割を果たします)。

于 2013-11-10T09:40:35.907 に答える