非线性的常微分方程通常是难以求出解析解的,只能通过多次迭代求近似的数值解。
龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。简写做RK法。
对于任意的Y=f(X),假设某点(Xi,Yi)的斜率为ki,如果有无限小的dX,则有Yi+1=Yi+ki*dx。
dx就是迭代步长,然而在现实中它不可能是无限小的,我们一般写作h。将它与上式中的dx替换就是一阶RK法。显然他是不够精确的。
一般我们采用4阶RK法,其形式如下:
k1是时间段开始时的斜率;
k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点tn+h/2的值;
k3也是中点的斜率,但是这次采用斜率k2决定y值;
k4是时间段终点的斜率,其y值用k3决定。
通过4阶RK法的迭代可以得到较为精确的数值解。