σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Calculus スキル›モジュール 3 · 近似と動的システム›トピック 3.2·~50 分中級

微分方程式:オイラー法とRK4

スキル上の位置モジュール 3/4 · トピック 2/2
3.2 微分方程式:オイラー法とRK4
—ラボスコア— / 100合計XP—連続日数—

変化率を追いかける

微分方程式は、量がどれだけ速く変わるかを表します:dydt=f(t,y)\frac{dy}{dt}=f(t,y)dtdy​=f(t,y)。連続的な利率 rrr で増えるお金は dydt=ry\frac{dy}{dt}=rydtdy​=ry に従い、解は y0erty_0e^{rt}y0​ert です。長期水準 θ\thetaθ に引き戻される短期金利は drdt=κ(θ−r)\frac{dr}{dt}=\kappa(\theta-r)dtdr​=κ(θ−r) に従います。解が式で書けるものはまれなので、時間を数値的に進めます。

yn+1=yn+h f(tn,yn)y_{n+1}=y_n+h\,f(t_n,y_n)yn+1​=yn​+hf(tn​,yn​)(1)

オイラー法は短い歩幅 hhh だけ接線に沿って進みます:新しい値=古い値+刻み×傾き。単純ですが1次精度で、hhh を半分にすると誤差も半分になります。4次のルンゲ・クッタ法(RK4)は1ステップで傾きを4回測って混ぜ合わせ、yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1}=y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)yn+1​=yn​+6h​(k1​+2k2​+2k3​+k4​) とします。誤差は h4h^4h4 で減り、hhh を半分にすると16分の1になります。

利率1の成長を2通りでy′=yy'=yy′=y、y(0)=1y(0)=1y(0)=1 を h=0.5h=0.5h=0.5 で t=1t=1t=1 まで解きます。オイラー法:y1=1+0.5⋅1=1.5y_1=1+0.5\cdot1=1.5y1​=1+0.5⋅1=1.5、y2=1.5+0.5⋅1.5=2.25y_2=1.5+0.5\cdot1.5=2.25y2​=1.5+0.5⋅1.5=2.25 で、e=2.7183e=2.7183e=2.7183 に対して誤差は0.4683です。RK4で t=0.5t=0.5t=0.5 まで1ステップ:k1=1k_1=1k1​=1、k2=1.25k_2=1.25k2​=1.25、k3=1.3125k_3=1.3125k3​=1.3125、k4=1.65625k_4=1.65625k4​=1.65625 なので y=1+0.56(1+2.5+2.625+1.65625)=1.6484y=1+\frac{0.5}{6}(1+2.5+2.625+1.65625)=1.6484y=1+60.5​(1+2.5+2.625+1.65625)=1.6484 で、真の e0.5=1.6487e^{0.5}=1.6487e0.5=1.6487 にほぼ一致します。
  • オイラー法:yn+1=yn+h f(tn,yn)y_{n+1}=y_n+h\,f(t_n,y_n)yn+1​=yn​+hf(tn​,yn​)、1次精度。
  • RK4:1ステップで傾きを4回測り、重み1・2・2・1で混ぜる。4次精度。
  • 打ち切り誤差:厳密に解かず刻みで進むことで失われる分。
刻み幅を小さくすると代償がある刻み幅を半分にするとステップ数は2倍になります。ある点を超えると打ち切り誤差は効かなくなり丸め誤差が増え、硬い方程式では刻み幅が十分小さくないと発散します。結果を信じる前に、2つの刻み幅で比べて誤差を見積もりましょう。

ラボ:採点される内容

  • オイラー法2ステップ15点
  • オイラー法の誤差15点
  • RK4の1ステップ20点
  • 精度の次数10点
  • 刻み幅を半分にする15点
  • オイラー法のループ10点
  • RK4がオイラー法より優れる理由15点
0/ 7問回答済み
問題
1数値で答える15点未回答

y′=yy'=yy′=y、y(0)=1y(0)=1y(0)=1、刻み幅 h=0.5h=0.5h=0.5 を考えます。オイラー法で2ステップ進め、y2y_2y2​(y(1)y(1)y(1) の推定値)を答えてください。

y2=y_2 =y2​=許容:± 0.001
2数値で答える15点未回答

y′=yy'=yy′=y、y(0)=1y(0)=1y(0)=1、刻み幅 h=0.5h=0.5h=0.5 を考えます。厳密解は y(1)=e=2.7183y(1)=e=2.7183y(1)=e=2.7183 です。オイラー法の推定値 y2=2.25y_2=2.25y2​=2.25 はどれだけ離れていますか。

error=\text{error} =error=許容:± 0.001
3数値で答える20点未回答

y′=yy'=yy′=y、y(0)=1y(0)=1y(0)=1、刻み幅 h=0.5h=0.5h=0.5 を考えます。t=0t=0t=0 からRK4で1ステップ進め、y(0.5)y(0.5)y(0.5) の推定値 y1y_1y1​ を小数第4位まで答えてください。f(t,y)=yf(t,y)=yf(t,y)=y では k1=ynk_1=y_nk1​=yn​、k2=yn+h2k1k_2=y_n+\frac{h}{2}k_1k2​=yn​+2h​k1​、k3=yn+h2k2k_3=y_n+\frac{h}{2}k_2k3​=yn​+2h​k2​、k4=yn+hk3k_4=y_n+hk_3k4​=yn​+hk3​ です。

y1=y_1 =y1​=許容:± 0.0002
4選択10点未回答

オイラー法とRK4の精度の次数はそれぞれいくつですか。

5数値で答える15点未回答

オイラー法は刻み幅 h=0.1h=0.1h=0.1 で誤差0.08です。h=0.05h=0.05h=0.05 ではおよそどれくらいの誤差になりますか。

error=\text{error} =error=許容:± 0.005
6手順を並べ替える10点未回答

オイラー法の1回の反復の手順を並べてください。

ドラッグして並べ替えます。または項目にフォーカスし、スペースで持ち上げ、矢印キーで移動、スペースで置きます。

  1. 1y←y+h⋅傾きy\leftarrow y+h\cdot\text{傾き}y←y+h⋅傾き に更新する
  2. 2初期値 t0t_0t0​、y0y_0y0​ から始める
  3. 3時間を t←t+ht\leftarrow t+ht←t+h と進めて繰り返す
  4. 4現在の点で傾き f(t,y)f(t,y)f(t,y) を計算する
7言葉で説明する15点未回答

同じ刻み幅でRK4が通常オイラー法より正確な理由と、その代償を2〜3文で説明してください。

数学モードキーボードまたは LaTeX で入力問題1/7 · Ctrl ⏎ で確認

コードを実行するにはログインしてください。

レクチャーはすべて無料で読めます。コードの実行、テスト、ラボの提出にはアカウントの作成かログインが必要です。

  • ブラウザ内IDEとbashターミナル。インストール不要
  • 即時採点、XP、スキルでの現在地
アカウントを作成ログイン
または
GitHubで続ける