龙格-库塔(Runge-Kutta)法解微分方程

龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。

对于一阶精度的欧拉公式有:

 

  yi+1=yi+h*K1

 

  K1=f(xi,yi)

 

  当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进欧拉公式:

 

  yi+1=yi+h*( K1+ K2)/2

 

  K1=f(xi,yi)

 

  K2=f(xi+h,yi+h*K1)

 

  依次类推,如果在区间[xi,xi+1]内多预估几个点上的斜率值K1、K2、……Km,并用他们的加权平均数作为平均斜率K*的近似值,显然能构造出具有很高精度的高阶计算公式。经数学推导、求解,可以得出四阶龙格-库塔公式,也就是在工程中应用广泛的经典龙格-库塔算法:

 

  yi+1=yi+h*( K1+ 2*K2 +2*K3+ K4)/6

 

  K1=f(xi,yi)

 

  K2=f(xi+h/2,yi+h*K1/2)

 

  K3=f(xi+h/2,yi+h*K2/2)

 

  K4=f(xi+h,yi+h*K3)

你可能感兴趣的:(数学)