1、 数值分析课程设计数值分析课程设计 题目:常微分方程的数值解法题目:常微分方程的数值解法 一、摘要一、摘要3 二、设计目的二、设计目的3 三、理论基础三、理论基础3 1.1.欧拉公式欧拉公式 【3 3】3 2.2.改进改进 EulerEuler 方法方法 【3 3】 3 3.3.三阶龙格三阶龙格- -库塔方法库塔方法 【3 3】3 4.4.四阶龙格四阶龙格- -库塔方法库塔方法 【3 3】4 四、程序代四、程序代码及运算结果码及运算结果 .4 1 1、用欧拉法求解、用欧拉法求解 5 2 2、用改进欧拉法求解:、用改进欧拉法求解:.6 3 3、用、用 3 3 阶龙格阶龙格库塔求解库塔求解 7 4
2、 4、 用用 4 4 阶龙格阶龙格库塔求解库塔求解 9 6 6、欧拉方法与改进欧拉方法、欧拉方法与改进欧拉方法、3 3 阶龙格库塔阶龙格库塔法以及法以及 4 4 阶龙格库塔法得出的解得比较。阶龙格库塔法得出的解得比较。 . 10 五、数值分析设计的五、数值分析设计的 GUIGUI 界面界面 13 六、结果分析六、结果分析. 14 七、设计心得七、设计心得. 14 八、参考文献八、参考文献. 14 一、摘要一、摘要 在 matlab 环境下熟悉的运用计算机编程语言并结合龙格库塔法的理论 基础对常微分方程初值问题进行求解, 在运行完程序后以及对运行结果做出各方 面的分析和比较。 二、设计目的二、设
3、计目的 用熟悉的计算机语言编程上机完成用欧拉方法、改进欧拉方法、3 阶龙格 库塔法以及 4 阶龙格库塔法求解常微分方程初值问题。 三、理论基础三、理论基础 1.1.欧拉公式欧拉公式 【3 3】 在点 n x 将 1 ()() nn y xy xh 作 Taylor 展开,得 2 11 ()()()(),(,) 2 ! nnnnnnn h y xy xhyxyxx ,那么当 h 充分小时,略去 误差项 2 () 2 ! n h y,用 n y近似替代() n y x、 1n y 近似替代 1 () n y x ,并注意到 ()(,() ) nnn yxfxyx,便得 00 10 (), (,),
4、 0,1,1,. nnnnn yy x yyhfxyxxnh ba nNh N 上述方法称为 Euler 方法。 2.2.改进改进 EulerEuler 方法方法 【3 3】 在应用梯形方法的迭代公式进行运算时,每迭代一次都要重新计算函数 (,)fxy的值,且还要判断何时可以终止或转下一步计算。为了控制计算量和简 化算法,通常只迭代一次就转入下一步计算。具体说,我们先用 Euler 公式求得 一个初步的近似值 1n y ,称之为预测值,然后用梯形方法的迭代公式作一次迭代 得 1n y , 即将 1n y 校正一次, 这样建立的预测-校正方法称之为改进的 Euler 方法: 预测: 1 (,)
5、nnnn yyhfxy , 校正: 111 (,)(,) 2 nnnnnn h yyfxyfxy . . 3.3.三阶龙格三阶龙格- -库塔方法库塔方法 【3 3】 类似前面改进的 Euler 方法公式的推导方法,将 1n y 在(,) nn xy处作 Taylor 展开,然后再将 1 () n y x 在 n xx处作 Taylor 展开,只要将两个展开式前四项相 同便有 4 11 ()() nn y xyo h 。于是得到三阶龙格-库塔公式为: 1123 1 21 312 (4), 6 (,), (,), 22 (,2). nn nn nn nn h yykkk kfxy hh kfxyk kfxh yhkhk 4 4.四阶龙格四阶龙格- -库塔方法库塔方法 【3 3】 类似前面三阶龙格-库塔的推导方法,如果每步计算四次函数 f(x,y)的 值,完全类似的,可以导出局部截断误差为 5 ()o h的四阶龙格-库塔公式,其公式 为: 11234 1 21 32 43 (22), 6 (,), (,), 22 11 (,), 22 (,). nn nn nn nn nn h yykkkk kfxy hh kfxyk kfxh yhk kfxh yhk 四、程序代码及运算结果四、程序代码及运算结果 用欧拉方法、改进欧拉方法、3 阶龙格库塔法以及 4 阶龙格库塔法