基本原理:
龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算
法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支
持的基础之上的。对于一阶精度的欧拉公式有:
y(i+1)=y(i)+h*K1
K1=f(xi,yi)
当用点 xi 处的斜率近似值 K1 与右端点 xi+1 处的斜率 K2 的算术平均值作为平均斜率
K*的近似值,那么就会得到二阶精度的改进欧拉公式:
y(i+1)=y(i)+[h*( K1+ K2)/2]
K1=f(xi,yi)
K2=f(x(i)+h),y(i)+h*K1)
依次类推,如果在区间[xi,xi+1]内多预估几个点上的斜率值 K1、K2、……Km,并用
他们的加权平均数作为平均斜率
K*的近似值,显然能构造出具有很高精度的高阶计算公式。
经数学推导、求解,可以得出四阶龙格-库塔公式,也就是在工程中应用广泛的经典龙格
-库塔算法:
y(i+1)=y(i)+h*( K1+ 2*K2 +2*K3+ K4)/6
K1=f(x(i),y(i))
K2=f(x(i)+h/2,y(i)+h*K1/2)
K3=f(x(i)+h/2,y(i)+h*K2/2)
K4=f(x(i)+h,y(i)+h*K3)
通常所说的龙格-库塔法是指四阶而言的,我们可以仿二阶、三阶的情形推导出常用
的标准四阶龙格-库塔法公式
龙格-库塔法具有精度高,收敛,稳定(在一定条件下),计算过程中可以改变步长,
不需要计算高阶导数等优点,但仍需计算 在一些点上的值,如四阶龙格-库塔法每计算一
步需要计算四次 的值,这给实际计算带来一定的复杂性,因此,多用来计算“表头”。