|
初值问题
常微分方程组初值问题是:
dy/dx = f(x,y), a <= x <= b.
y(a) = y0.
其中f(x,y)为x,y的已知实值函数,y0为给定的初始值。这里,在控制系统中,x常用时间t表示,x是标量;若y和f(x,y)是标量,则上述初值问题是常微分方程的初值问题;若y和f(x,y)是向量,则上述初值问题是常微分方程组的初值问题.可以将常微分方程的初值问题看作是常微分方程组的初值问题的特例。初值问题更详细的介绍请参考维基百科。
龙格库塔算法(方法)
是龙格库塔算法(方法)求解常微分方程组初值问题的优秀方法,具有很高的求解精度。比如,四级四阶经典Runge-Kutta公式的局部截断误差是O(h5),即步长的5次方。可以根据Runge-Kutta方法的思路推导出更精确的数值算法。这里实现的Runge-Kutta算法特指四级四阶经典Runge-Kutta公式。四级四阶经典Runge-Kutta公式表示如下:
y(n+1) = y(n) + h * (K1 + 2*K2 + 2*K3 + K4) / 6,
K1 = f(x(n), y(n)),
K2 = f(x(n) + h/2, y(n) + h*K1/2),
K3 = f(x(n) + h/2, y(n) + h*K2/2),
K4 = f(x(n) + h, y(n) + h*K3)。
式子中的h表示步长。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-20 04:53
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社