ペンデュラムは、あなたが差分をかち切る方法
ODEソルバーを理解するには数学の学位は必要ありません。 ペンデュラム、スクリーン、20分が必要です。 ここでは、Euler、RK4、およびアダプティブメソッドが実際のコードで実際に動作している方法です.
あなたが見ることができるものから始める
文字列から体重を掛ける。 片側に引きます。 お問い合わせ スイング.
別の式で管理されたシステムを作成しました
dθ/dt = ω dω/dt = -(g/L) · 罪(θ)
θは角度です。 ω は角速度です。 gは重力(9.81 m/s2)です。 Lは文字列の長さです。 これらの2行は、速度に等しい速度での角度変化、重力、長さ、電流角度に依存する速度の変化を言います.
問題:私達は正確にこのequationを解決できません。 sin(θ) は非線形にします。 いつでもθを与える式はありません。 そのため、近似しています。小さな増分に進むと、現在の状態から次の状態を計算します.
ODEソルバーが何をしているのか。 そしてそれを行うためのより良い、悪い方法があります.
ユーラー法: 悪質なものの欠陥
一番シンプルな考え方:現状を知れば、変化率が分かっているので、後から少しずつ状態を推定できます.
next_angle = current_angle + velocity × dt
next_velocity = current_velocity + acceleration × dt
これはユーラーの方法です。 フォグを歩くのが好きです。一歩先を踏み出せるので、そのステップを繰り返してもう一度見ましょう。 コード:
function euler(f, t, y, dt) {
const dy = f(t, y);
return [
y[0] + dt * dy[0],
y[1] + dt * dy[1]
];
}
問題:Eulerの方法は、最初に正確です。 つまり、ステップサイズを半分にすると、エラーが発生します。 貫流のために、このエラーは蓄積します。シミュレートされた貫流は、エネルギーをゆっくりと獲得し、より広くスイングします。 数分以内に、全輪で紡ぐ。 実際のペンドゥルムはこれを行うことはありません.
RK4: ワークホース
1901年、Carl RungeとMartin Kuttaがより良い方法を発表しました。 変更率を一歩ずつ見ているのではなく、4回見てみましょう
- ステップ→k1の開始時に斜面を測定する
- K1を使用してステップハーフウェイ、そこに斜面を測定 → k2
- K2を使用してステップハーフウェイ、再び測定 → k3
- K3を使用して終了までのステップは、1つのより多くの時間→ k4を測定します
- 結合して下さい:重くされた平均(k1 + 2k2 + 2k3 + k4)/6
これは4番目の注文精度です。 16の要因によってステップ サイズおよび間違いは低下します。 振り子は数千のスイングのためにエネルギーを正しく節約します.
function rk4(f, t, y, dt) {
const k1 = f(t, y);
const k2 = f(t + dt/2, [y[0] + dt/2 * k1[0], y[1] + dt/2 * k1[1]]);
const k3 = f(t + dt/2, [y[0] + dt/2 * k2[0], y[1] + dt/2 * k2[1]]);
const k4 = f(t + dt, [y[0] + dt * k3[0], y[1] + dt * k3[1]]);
return [
y[0] + (dt/6) * (k1[0] + 2*k2[0] + 2*k3[0] + k4[0]),
y[1] + (dt/6) * (k1[1] + 2*k2[1] + 2*k3[1] + k4[1])
];
}
これは、ペンデュラム、スプリングマス、およびヴァンダーポールシミュレーションのPinePaper使用方法です。 aerospace の軌跡計算で使用される同じ方法です。 コードの22行.
なぜこのマターは物理学の外で
ペンデュラムは教え例です。 しかし、同じ技術 — ステップフォワード、測定、正しい — 変更率がある場所に適用されます
- 推進成長:dx/dt = r·x·(1 - x/K)。 容量を運ぶことを用いる記号論理学の成長。 同じ解決者.
- 化学反応:電流濃度に比例した速度で濃度が変化します。 同じ解決者.
- 中枢的なネットワーク: 勾配降下は、分岐させたODEです。 各トレーニングステップは、損失面に沿ってユーラーステップです.
- 経済:ダイ/dt = r·y を介して継続的に利益化合物。 指数関数的な成長は最も単純な ODE です.
- アニメーションのタイミング: リース曲線は、スプリング・ダッパー・オデズのソリューションです。 CSSの「弾性」と「バウンス」は、物理シミュレーションです.
数学は変化しません。 ドメインは行いません。 それは言語を作るものです。同じ文法では、羊のカウント、振り子、ニューラルネットワークのトレーニングについて説明します.
お問い合わせ
PinePaperを開き、ダイナミックシステムジェネレータを選択します。 「ペンデュラム」を選択します。 ボブスイング。 パラメータを変更します
- 重力→より速い振動を増加して下さい(より短い期間)
- ロッドの長さを増加→遅いスイング(長い期間)
- より大きな角度からスタート→期間が増加する方法を見る(テキストブックの小角近似が見逃す非線形効果)
どんな変化も計測です。 パラメータを変更し、結果を観察します。 RK4のソルバーは毎秒30フレームを補充し、ペンデュラムは、式予測をあなたに示しました.
それだけです。 数学は測定です。 PinePaper が見える.
お問い合わせ
参考文献
- ブッチャー、J.C.(2016)。 ※通常差分数*(第3回)の数値的方法 ウィリー.
- ドミトリー、J.R.&プリンス、P.J.(1980) 埋め込まれたRunge-Kutta式の家族。 計算と応用数学のジャーナル, 6(1), 19-26.
- ユーラー, L. (1768). Institutionum calculi Integraalis、Vol. 1. インペニシスアカデミー賞.
- ヘアー、E.、Nørsett、S.P.、及びWanner、G. (1993)。 ※通常差分数の解決 I: 不断の問題* (2nd ed。) スチューナー.
- クッタ, W. (1901). Beitrag zur näherungsweisenの統合の合計の差分光器hungen。 Zeitschriftのfür Mathematikのund Physik、46、435-453.
- ニュートン、I. (1687)。 PhilosophiæNaturariis Principia Mathematica。 ロンドン:ジョセフ・ストラター.
- ランゲ、C. (1895)。 Über は numerische Auflösung von の diffialgleichungen を死にます。 マテマチアンナレン、46(2)、167-178.
- ストロガッツ、S.H. (2015). ※非線形ダイナミクスとChaos*(2nd ed.)。 ウェストビュープレス.
PinePaperのODEのソルバーは200ラインのEuler、RK4および適応性のDorman-Prince RK45を覆います。 pinepaper.studio/editorでペンドラムシミュレーションを無料でお試しください。
Ready to create?
Start making animated GIFs, videos, and graphics — free, no signup.
Open PinePaper Editor