龙格-库塔方法的特点
- 每个龙格库塔算法都能从泰勒方法推导出来
- 它走的是折中路线,即走每一个步长都会提前进行若干次的函数值计算
- 最常用的是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,注意这不是巧合!