佛山科学技术学院
实 验 报 告
课程名称 数值分析 实验项目 常微分方程问题初值问题数值解法 专业班级 姓 名 学 号 指导教师 陈剑 成 绩 日 期
一. 实验目的
1、理解如何在计算机上实现用Euler法、改进Euler法、Runge-Kutta算法求一阶常微分方程初值问题
?y?(x)?f(x,y),x?[a,b] ??y(a)?y1 的数值解。
2、利用图形直观分析近似解和准确解之间的误差。
二、实验要求
(1) 按照题目要求完成实验内容; (2) 写出相应的Matlab 程序;
(3) 给出实验结果(可以用表格展示实验结果); (4) 分析和讨论实验结果并提出可能的优化实验。 (5) 写出实验报告。 三、实验步骤
1、用Matlab编写解常微分方程初值问题的Euler法、改进Euler法和经典的四阶Runge-Kutta法。 2、给定初值问题
1y??y'?2?,1?x?2, (1)?xx??y(1)?1;?y'??50y?50x2?2x,0?x?1?(2)?1 y(0)??3?要求:(a)用Euler法和改进的Euler法(步长均取h=0.05)及经典的四阶Runge-Kutta法(h=0.1)求(1)的数值解,并打印x?1?0.1i(i?0,1,2,....10)的值。
(b) 用经典的四阶Runge-Kutta方法解(2),步长分别取h=0.1, 0.05,0.025,计算并打印
1x?0.1i(i?0,1,2,....10)个点的值,与准确解y(x)?e?50x?x2比较,并列表写出在
3x=0.2,0.5,0.8处,对于不同步长h下的误差,讨论同一节点处,误差随步长的变化规律。 (c)用Matlab绘图函数绘制(2)的精确解和近似解的图形。
四、实验结果
五、讨论分析
六、改进实验建议