常微分方程的数值解法 专业班级:信息软件 姓名:吴中原 学号:1 2 0 1 0 8 0 1 0 0 0 2 一、实验目的 1、熟悉各种初值问题的算法,编出算法程序; 2、明确各种算法的精度与所选步长有密切关系;通过计算更加了解各种 算法的优越性
二、实验题目 1、根据初值问题数值算法,分别选择二个初值问题编程计算; 2、试分别取不同步长,考察某节点 jx 处数值解的误差变化情况; 3、试用不同算法求解某初值问题,结果有何异常; 4、分析各个算法的优缺点
三、实验原理与理论基础 (一) 欧拉法算法设计 对常微分方程初始问题 (6-1) (6-2) 用数值方法求解时,我们总是认为(6-1)、(6-2)的解存在且唯一
欧拉法是解初值问题的最简单的数值方法
从(6-2)式由于 y (x0) = y0 已给定,因而可以算出),()('000yxfxy
设 x1 = h 充分小,则近似地有: ),()(')()(00001yxfxyhxyxy (6-3) 记 ,n,,ixyyii10 )( 从而我们可以取 ),(0001yxhfyy 作为)(1xy的近似值
利用1y 及 f (x1, y1)又可以算出)(2xy的近似值: ),(1112yxhfyy 一般地,在任意点hnxn11处)(xy的近似值由下式给出 ),(1nnnnyxhfyy (6-4) 这就是欧拉法的计算公式,h 称为步长
)( ),(dd00yxyyxfxy (二)四阶龙格-库塔法算法设计: 欧拉公式可以改写为: 111 ,iiiiyykkhf x y ,它每一步计算,f x y 的值一次,截断误差为 2o h
改进的欧拉公式可以改写为:11212112,,iiiiiiyykkkhf x ykh