佛山科学技术学院 实 验 报 告 课程名称 数值分析 实验项目 常微分方程问题初值问题数值解法 专业班级 姓名 学号 指导教师 成 绩 日 期 一. 一、实验目的 1、理解如何在计算机上实现用 Eu ler 法、改进 Eu ler 法、Ru nge-Ku tta 算法求一阶常微分方程初值问题 1)(],[),,()(yaybaxyxfxy 的数值解。 2、利用图形直观分析近似解和准确解之间的误差。 3、 学会 Matlab 提供的 ode45 函数求解微分方程初值问题。 二、实验要求 (1) 按照题目要求完成实验内容; (2) 写出相应的 Matlab 程序; (3) 给出实验结果(可以用表格展示实验结果); (4) 分析和讨论实验结果并提出可能的优化实验。 (5) 写出实验报告。 三、实验步骤 1、用编好的 Eu ler 法、改进 Eu ler 法计算书本 P167 的例 1、P171 例题3。 (1)取0.1h ,求解初值问题 1)0(],1,0[,2)(yxyxyxy (2)取0.1h ,求解初值问题 1)0(],5.0,0[,1)(yxxyxy 2、用 Ru nge-Ku tta 算法计算 P178 例题、P285 实验任务(2) (1)取0.1h ,求解初值问题 1)0(],5.0,0[,)(2yxyxy (2)求初值问题 0)0(],5.0,0[),14(21)(2yxxxyxy 的解)(xy在)05.0(hihxi处的近似值iy ,并与问题的解析解1)(22xexyx相比较。 3、用 Matlab 绘图函数 plot(x ,y )绘制 P285 实验任务(2)的精确解和近似解的图形。 4、使用 matlab 中的 ode45 求解 P285 实验任务(2),并绘图。 四、实验结果 1、Eu ler 算法程序、改进 Eu ler 算法程序; euler法求解初值问题 function [x,y]=euler_f(ydot_fun, x0, y0, h, N) % Euler(向前)公式,其中 % ydot_fun --- 一阶微分方程的函数 % x0, y0 --- 初始条件 % h --- 区间步长 % N --- 区间的个数 % x --- Xn 构成的向量 % y --- Yn 构成的向量 x=zeros(1,N+1); y=zeros(1,N+1); x(1)=x0; y(1)=y0; for n=1:N x(n+1)=x(n)+h; y(n+1)=y(n)+h*feval(ydot_fun, x(n), y(n)); end 改进Euler 公式 function [x,y]=euler_r(ydot_fun, x0, y0, h, N) % 改进Euler 公式,其中 % ydot_fun --- 一阶微分方程的函数 % x0, y0 --- 初始条件 % h --- 区间步长 % N --- 区间的个数...