タグ付けされた質問 「runge-kutta」

4
高次のルンゲ・クッタ法が頻繁に使用されないのはなぜですか?
高次(つまり4を超える)Runge–Kuttaメソッドが(少なくとも私の知る限り)議論されたり、雇用されたりすることがほとんどない理由について、私は興味がありました。ステップあたりの計算時間が長くなることは理解していますが(たとえば、12次の埋め込みステップを含むRK14)、高次のルンゲクッタ法を使用することには他の欠点(安定性の問題など)がありますか?極端な時間スケールで高度に振動する解を含む方程式に適用される場合、そのような高次の方法は通常好まれませんか?
17 ode  runge-kutta 

1
BDFと暗黙のルンゲクッタの時間ステップ
BDFタイムステッピングよりも高次の暗黙的なルンゲクッタ(IMRK)を選択する理由はありますか?段階IMRKにはqが必要なので、BDFの方がはるかに簡単に思えますqqqqqqタイムステップごとに線形解。BDFとIMRKの安定性は重要なポイントのようです。暗黙のタイムステッパーを比較/比較するリソースが見つかりません。 それが役立つ場合、最終的な目標は移流拡散PDEの高次の暗黙的なタイムステッパーを選択することです。

1
5次ルンゲクッタ法の安定領域に関する不可解な発言
論文で不可解な発言に出くわした PJ van der Houwen、偏微分方程式のためのルンゲクッタ法の開発、Appl。数 数学。20:261、1996 264ページの8ff行目に、van der Houwenは次のように書いています。 "テイラー多項式の場合、これは仮想安定間隔のために空であることを意味し "P = 1 、2 、5 、6 、9 、10 、⋯p=1、2、5、6、9、10、⋯p = 1, 2, 5, 6, 9, 10, \cdots ここで、テイラー多項式は安定多項式(の切り捨て膨張を指すの周りにルンゲ・クッタ法の)、pは次数である(ページ263を参照)。5次のルンゲクッタ法には、私の知る限り空の虚安定区間がないため、何かを誤解していると思います。私が覚えていることから、想像上の限界は約3.4程度です。exp(x )exp⁡(バツ)\exp(x)x = 0バツ=0x=0 私の誤解は何ですか?

1
後者がより正確である場合、leapfrog統合はシンプレクティックであり、RK4はそうではないのはなぜですか?
理論的にエネルギーを節約する必要のあるシステムでは、最も正確なシミュレーションがエネルギーを節約します(正確な位置、速度などを提供します)。RK4はleapfrogよりも正確ですが、leapfrogはエネルギーを節約しますが、RK4はそうではありません。どうしてこれなの?

1
Runge-Kuttaメソッドを2次ODEに適用する
オイラー法をルンゲ・クッタの4次に置き換えて、一定の重力ではない自由落下運動(たとえば、地上1万kmからの自由落下)を決定する方法を教えてください。 これまで、オイラー法による簡単な統合を書きました。 while() { v += getMagnitude(x) * dt; x += v * dt; time += dt; } x変数は現在位置、vは速度、getMagnitude(x)はx位置の加速度を返します。 私はRK4を実装しようとしました: while() { v += rk4(x, dt) * dt; // rk4() instead of getMagintude() x += v * dt; time += dt; } ここで、rk4()関数本体は次のとおりです。 inline double rk4(double tx, double tdt) { …

4
C / C ++でルンゲクッタ8次を探しています
Windowsマシンを使用して、C ++で記述された天体力学/宇宙力学アプリケーションでルンゲクッタ8次法(89)を使用したいと思います。したがって、誰もが文書化されて自由に使用できる優れたライブラリ/実装を知っているのでしょうか?予想されるコンパイルの問題がない限り、Cで記述されていても問題ありません。 これまでのところ、このライブラリ(mymathlib)を見つけました。コードは問題ないようですが、ライセンスに関する情報は見つかりませんでした。 あなたが知っている可能性があり、私の問題に適した選択肢のいくつかを明らかにすることで私を助けてくれますか? 編集: 私が思ったほど多くのC / C ++ソースコードが利用できないことがわかります。したがって、Matlab / Octaveバージョンも問題ありません(まだ自由に使用できる必要があります)。

1
通常のルンゲクッタ法はSDEに一般化できないという理解しやすい議論はありますか?
確率微分方程式(SDE)を解く単純なアプローチは次のとおりです。 通常のマルチステップのルンゲクッタ法を採用し、 基礎となるウィーナープロセスの十分に細かい離散化を使用し、 ルンゲクッタ法の各ステップをオイラー丸山に類似させます。 今、これは複数のレベルで失敗し、私はその理由を理解しています。しかし、私は今、最初にルンゲクッタ法と確率微分方程式の知識がほとんどない人にこの事実を納得させるように命じられています。私が知っているすべての議論は、私が与えられた文脈でうまくコミュニケーションできるものではありません。したがって、私は上記のアプローチが破滅的であるという簡単に理解できる議論を探しています。

2
9次以上の明示的なRunge Kuttaメソッドの作成
私が見たいくつかの古い本は、指定された注文の明示的なルンゲクッタ法の最小ステージ数は、注文については不明であると述べています。これはまだ本当ですか?≥ 9≥9\geq 9 高次のルンゲクッタ法を自動的に処理するためのライブラリはありますか?


1
ブッチャーテーブルの使用方法に関する優れたチュートリアルはありますか?
たとえば、テイラー級数を使用してスキームの精度の順序を見つけるときに必要な代数を簡略化するためにブッチャーテーブルを使用する方法を理解するために、プライマリソースに移動しようとしました。 しかし、関連する背景が不足しているためか、ブッチャーの本のブッチャーテーブルを利用する方法を理解するのは特に難しいと思いました。 ブッチャーテーブルを利用するために必要な数学をカバーする、比較的自己完結型の優れた(つまり、最低限必要な条件の)本やチュートリアルはありますか?

1
Runge Kutta Fehlbergソルバーでエラーが発生するのはなぜですか?
私の現在のプロジェクトは、C ++での何千ものODEのソリューションを含むタンパク質フォールディングモデルの再プログラミングです。完全にGPUで実行するソルバーを作成しているので、私はいくつかの停止と開始を進めてきました。ようやく統合しましたが、固定ステップサイズh = .001のRKF45アルゴリズムの5次解を使用してdC / dt = -Cを解こうとすると、e ^ {-tの計算値から決定が得られます}は、10 ^ {-12}程度のグローバルエラーが予想される場合、10 ^ {-4}程度です。 これが発生しているのは、適応ステップサイズと4次と5次の両方のソリューションを使用したエラー制御を使用していないためですか?私の考えは、適応アルゴリズムは4次と5次の違いを推測し、基本的には5次を「正しい答え」として扱うため、その答えを使用してインテグレーターを試してみるというものでした。 編集: それ以来 グローバルエラー=(ポイント数)*(ローカルエラー) そして ローカルエラー= h ^ O ここで、hはステップサイズ、Oは次数です、私は計算します O = ln(グローバルエラー/ポイント数)/ ln h 私が正しいと思う方法と回答で提案された方法の両方で次数分析を行うと、次の結果が得られます。 Number of Points h Global Error My Way The Answer's Way 10 0.1 2.89E-06 6.539E+00 20 0.05 7.09E-08 6.495E+00 5.350E+00 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.