资源描述
例例此处即通过计算已知点的函数值此处即通过计算已知点的函数值(K1,K2)的线性组合代替高阶导数,的线性组合代替高阶导数,得到了较高的精度。得到了较高的精度。Runge-Kutta方法的推导方法的推导Runge-Kutta方法的一般形式:方法的一般形式:确定了阶数之后,再通过确定了阶数之后,再通过Taylor展开、比较两边系数的展开、比较两边系数的方法,确定各待定系数:方法,确定各待定系数:二阶显式二阶显式Runge-Kutta方法方法展开各项如下:展开各项如下:其中其中二阶显式二阶显式Runge-Kutta方法方法要使得方法是二阶的,则局部截断误差应该为三阶小量,即:要使得方法是二阶的,则局部截断误差应该为三阶小量,即:例例结果及比较结果及比较三阶显式三阶显式Runge-Kutta方法方法在推导二阶显式方法的过程中,注意到局部截断误差表达式中在推导二阶显式方法的过程中,注意到局部截断误差表达式中h3项项包含了以下表达式:包含了以下表达式:因此若要在局部截断误差中消去因此若要在局部截断误差中消去h3项,必须增加包含了以上各项的项,必须增加包含了以上各项的多个方程,同时我们注意到多个方程,同时我们注意到r=2时,只有时,只有 等四个待定系数,等四个待定系数,少于方程的数目,所以这样的系数不存在。故:少于方程的数目,所以这样的系数不存在。故:r=2时时Runge-Kutta方法只能是二阶的方法只能是二阶的。要得到三阶的方法,则必须有。要得到三阶的方法,则必须有r=3。三阶显式三阶显式Runge-Kutta方法方法四阶显式四阶显式Runge-Kutta方法方法四阶显式四阶显式Runge-Kutta方法方法xnxn+h/2xn+hf1f2f3f4x四阶二阶真解四阶误差 二阶误差0.01.000000 1.000000 1.0000000.00000.0000000.11.104829 1.102450 1.1048291.60E-72.38E-30.21.218597 1.211507 1.2185973.40E-77.09E-30.31.340141 1.325766 1.3401415.48E-71.44E-20.41.468175 1.443671 1.4681757.69E-72.45E-20.51.601278 1.563506 1.6012799.95E-73.78E-20.61.737880 1.683374 1.7378811.20E-65.45E-20.71.876246 1.801179 1.8762471.42E-67.51E-20.82.014457 1.914603 2.0144591.68E-69.99E-20.92.150395 2.021086 2.1503971.96E-61.29E-11.02.281716 2.117800 2.2817182.32E-61.64E-1例例结果及比较结果及比较结果及比较结果及比较关于关于Runge-Kutta方法方法提高提高Runge-Kutta方法的精度的方法方法的精度的方法提高精度最简单的方提高精度最简单的方法是缩短步长,但要法是缩短步长,但要以牺牲计算速度和积以牺牲计算速度和积累舍入误差为代价。累舍入误差为代价。变步长的变步长的Runge-Kutta方法方法作为妥协,如果能在计算过程中实时控制步长的大小,就可作为妥协,如果能在计算过程中实时控制步长的大小,就可以在获得较高的计算速度的同时,保证较高的精度。以在获得较高的计算速度的同时,保证较高的精度。Runge-Kutta-Fehlberg方法方法Fehlberg设计了一个更加精巧的嵌套方法如下:设计了一个更加精巧的嵌套方法如下:Runge-Kutta-Fehlberg方法方法Fehlberg给出的四阶、五阶公式给出的四阶、五阶公式RKF4(5)如下:如下:Runge-Kutta-Fehlberg方法方法七阶、八阶七阶、八阶RKF7(8)Runge-Kutta-Fehlberg方法方法七阶、八阶七阶、八阶RKF7(8)单步法单步法作业作业
展开阅读全文