龍格-庫塔方法的特點
- 每個龍格庫塔算法都能從泰勒方法推導出來
- 它走的是折中路線,即走每一個步長都會提前進行若干次的函數值計算
- 最常用的是N=4的Runge-Kutta 法
- 需要微積分
Z(x+△x,y+△y)=Z(x,y)+∂x∂Z△x+∂y∂Z△y
詳細說明
以二階龍格庫塔算法爲例說明
第一點
s1=f(x(t),t)
s2=f(x(t)+1/2s1△t,t+1/2△t)
x(t+△t)=x(t)+s2△t
第二點
記f(x,t)=dtdx(t)
微分方程解的泰勒展開:
x(t+△t)=x(t)+f(x,t)△t+21dt2d2x△t2+...
其中二階項展開:
dt2d2x=dtdf(x,t)=∂t∂ff+∂t∂f
第三點
推導過程:
f(x(t)+1/2s1△t,t+1/2△t)=f(x(t),t)+∂x∂f1/2f(x(t),t)△t+∂t∂f1/2△t
上式=f(x(t),t)+1/2△t(∂x∂ff(x(t),t)+∂t∂f)
上式=f(x(t),t)+1/2△t(∂x∂ff(x(t),t)+∂t∂f)
上式=f(x(t),t)+1/2△tdt2d2x (龍格庫塔的核心思想)
核心思想:
把二階導數的表達式用一階導數“表示”出來,這意味着計算量減少(默認二階導數的計算量比一階大)但同時精度並沒有減少。
accuracy higher with less time
第四點
解釋一下s2的係數爲什麼有個1/2,注意這不是巧合!