初值问题的Euler方法和梯形法.docx
《初值问题的Euler方法和梯形法.docx》由会员分享,可在线阅读,更多相关《初值问题的Euler方法和梯形法.docx(9页珍藏版)》请在冰点文库上搜索。
![初值问题的Euler方法和梯形法.docx](https://file1.bingdoc.com/fileroot1/2023-5/20/181281aa-ff9b-4d49-a847-407370d865c5/181281aa-ff9b-4d49-a847-407370d865c51.gif)
初值问题的Euler方法和梯形法
学生实验报告
实验课程名称偏微分方程数值解
开课实验室数统学院
学院数统年级2013专业班信计02
学生姓名学号
开课时间2015至2016学年第2学期
总成绩
教师签名
数学与统计学院制
开课学院、实验室:
数统学院实验时间:
2016年月日
实验项目
名称
初值问题的Euler方法和梯形法
实验项目类型
验证
演示
综合
设计
其他
指导教师
曾芳
成绩
是
一.实验目的
通过该实验,要求学生掌握求解初值问题的欧拉法和梯形法,并能通过计算机语言编程实现这两种算法。
二.实验内容
考虑如下的初值问题:
该问题有解析解
。
1.用欧拉法求解该问题,取步长
,将3种步长的计算结果(
时刻的计算结果),解析结果和相应的绝对误差列表显示。
2.用梯形法求解该问题,取步长
,将3种步长的计算结果(
时刻的计算结果),解析结果和相应的绝对误差列表显示。
3.在同一种方法下,请说明哪种网格大小的计算结果更加精确,并说明理由。
在相同的网格大小下,比较上述两种算法的计算结果,那种算法的结果要好一些,并说明理由。
三.实验原理、方法(算法)、步骤
欧拉法的迭代格式及误差估计:
un+1=un+hf(tn,un).∣un-u(tn)∣=O(h)
欧拉法:
function[x,y]=euler(fun,x0,xfinal,y0,n)
ifnargin<5,n=50;
end
h=(xfinal-x0)/n;
x
(1)=x0;y
(1)=y0;
fori=1:
n
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*feval(fun,x(i),y(i));
end
x=x';
y=y';
x1=0:
:
1
y1=exp(2*x1)
plot(x,y,x1,y1)
functionf=doty(x,y);
f=2*y
[x,y]=euler('doty',0,1,1,10)
梯形法:
function[x,y]=tixing(fun,x0,xfinal,y0,n)
ifnargin<5,n=50;
end
h=(xfinal-x0)/n;
x
(1)=x0;y
(1)=y0;
fori=1:
n
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*feval(fun,x(i),y(i))
y(i+1)=y(i)+h*(feval(fun,x(i),y(i))+feval(fun,x(i+1),y(i+1)))/2;
end
x=x';
y=y';
x1=0:
:
1
y1=exp(2*x1)
plot(x,y,x1,y1)
四.实验环境(所用软件、硬件等)及实验数据文件
Matlab
五.实验结果及实例分析
欧拉法输出分析:
H=
计算值解析值误差
0
H=
0
H=
0
梯形法输出分析:
计算值解析值误差
H=
0
H=
0
H=
0
图像结果:
其中绿线代表欧拉法,红线为梯度法,蓝线为解析解:
H=
H=
H=
由图形结果易知梯形法的精度比欧拉法更高,更接近解析解。
教师签名
年月日