両方の方法の長所と短所:
RK4の長所:
- 精度(より良い近似シリーズのおかげで、4次の精度が得られます)
- 人工的/固有に誘導された減衰(暗黙の方法に似ている)が安定性を追加します(一方、単純なオイラーステップはそうではありません-実際には逆になり、システムを構築してカオスに突入させる可能性のあるゴーストエネルギーを導入します)
RK4の短所:
- 計算コスト:暗黙的な方法やハイブリッドIMEXメソッドと比較してそれほど厳しいものではありませんが、RK4はより多くの関数評価を必要とするため、明示的なオイラーよりも4倍高価です。これは、最適化の最先端を目指すときに表示されます。
- まだ不安定です:関係する力の種類によっては、RK4はオイラーと同じくらい不安定になる可能性があります。平均して、RK4はもう少し安定しており、その付与された減衰「スキル」からこの利点を引き出す傾向があります。
- 非シンプレクティック:数値減衰にはコストがかかります-エネルギー/体積などのシステムをシミュレートすることはできません。損失は、時間の経過とともに目に見える効果を与えるべきではありません(例:分子動力学、ポテンシャル場由来の力、変分問題)
Verlet Pro:
- オイラーステップの1〜2倍の複雑さ(Verletフレーバーに応じて:位置または速度)。
- シンプレクティック:内部エネルギーを節約します
- 二次精度:多くのゲームは高精度の浮動小数点の結果を必要とせず、二次はゲームシナリオの目を楽しませますそれは悪いことではありません)
Verletの短所:
- 安定しているが、それでも:おそらく安定性の面で最高の明示的方法。システムに厳しい制約が追加されると優位に立つ傾向があり、したがって、位置ベースのダイナミクスエンジンに投影制約を実装する際の頭痛が少なくなります。システムが大きな外力で摂動し、減衰/摩擦が追加されない場合、無限に始まります。それでも、内部(バネ)力の大きさには一定の数値的に課せられた制限がありますが、それらはRK4ができることよりも平均して高いです
- 低い精度:高精度の推定が必要な場合は役に立ちません
- 一部のシミュレーションでは、平均してRK4よりも短い時間ステップが必要です(RK4はその精度と内部減衰の両方の恩恵を受けます)
どちらを使用するかは、シナリオによって異なります。剛性と大きな外力と仮想エネルギーが問題になる場合は、説明/タイトルに「暗黙の」単語を含む他の方法を検討してください。
一部の著者/本は、Verletが実際に派生するシンプレクティックオイラー法(またはオイラークローマー)と呼ばれる実際の明示的なオイラーインテグレーターに対して半暗黙オイラーという用語を使用していることに注意してください。Verletは、「跳躍法」とも呼ばれています。Velocity Verletと中点法は、タイムステップの推定がt + 0.5*dt
は、予測子修正子のようなステップに必要です。IMEXメソッド(implicit-explicit)は、2つの類似しているが同一ではないアプローチに名前を付けるためにも使用されます。暗黙的な更新ステップで速度を指定し、明示的な方法で位置を更新します(これは、剛性部分が加速度計算に最も影響を与えるため、IMEXクラスのメソッドに当てはまるハイブリッド半暗黙メソッドです)。暗黙的な方法はより煩雑であり、構成全体に対して連立非線形方程式のシステムを解く必要があります。暗黙のメソッドは、変形可能なボディに使用され、通常、分離されたリジッドボディには使用されません。
コメントの1つで述べたように、可能であればオイラーを使用しないでください。中間点法、半陰的オイラー、または同じ費用で位置-Verletを使用します。それらはすべて、明示的なオイラー積分器よりもわずかに高い精度とかなり高い安定性を備えています。
お勧めのミニ比較読み:
http://wiki.vdrift.net/Numerical_Integration