数值实验报告..doc
文本预览下载声明
数 值 分 析
学 生 实 验 报 告
实验课程名称 数值分析
开课实验室 信工学院152实验室
学 院 信工学院3年级 计算机专业班
学 生 姓 名 马美旭 学 号 513109030116
开 课 时 间 2013 至 2014 学年第 一 学期
总 成 绩 教师签名
《用差分格式求解微分方程初值》实验报告
学院 信息工程学院 年级、专业、班 13级计算机1班 姓名 马美旭 成绩 课程
名称 数值分析 实验项目
名 称 用差分格式求解方程 项目类型 设计 教师评语
教师签名:
年 月 日 一、实验目的
掌握Euler格式、梯形格式、改进的Euler格式算法,能够根据给定的微分方程和初值求解对应的函数值。
二、实验原理
算法或公式(在开始本实验之前,请回顾教科书的相关内容)
Euler格式:
梯形格式:
改进的Euler格式:
三、实验内容及要求
已知
要求:试用Euler格式、梯形格式、改进的Euler格式求微分方程对应函数值,并比较其结果。
四、实验过程:
1)编写Matlab函数M文件eul如下:
function eul(x0,y0,b,h)
n=fix((b-x0)/h);
y1=zeros(n,1);
for i=1:n
x(i)=x0+h;
y0=y0+h*fa(x0,y0);
y(i)=y0;
x0=x0+h;
y1(i)=sqrt(1+2*x0);
end
[x y]
plot(x,y1,r:*,x,y,b:v)
2)编写Matlab函数M文件tixing如下:
function tixing(x0,y0,b,h)
n=fix(b-x0)/h;
y1=zeros(n,1);
for i=1:n
x(i)=x0+h;
yi=y0+h*fa(x0,y0);
yj=y0+h*(fa(x0,y0)+fa(x0+h,yi))/2;
x0=x0+h;
y0=yj;
y(i)=y0;
y1(i)=sqrt(1+2*x0);
end
[x y]
plot(x,y1,r:*,x,y,b:v)
3)编写Matlab函数M文件eult如下:
function eult(x0,y0,b,h)
n=fix(b-x0)/h;
y1=zeros(n,1);
for i=1:n
x(i)=x0+h;
yi=y0+h*fa(x0,y0);
yj=y0+h*(fa(x0,y0)+fa(x0+h,yi))/2;
while abs(yj-yi)eps
p=yj;
yj=y0+h*(fa(x0,y0)+fa(x0+h,yj))/2;
yi=p;
end
x0=x0+h;
y0=yj;
y(i)=y0;
y1(i)=sqrt(1+2*x0);
end
[x y]
plot(x,y1,r:*,x,y,b:v)
编写M文件fa
function fa=fa(x,y)
fa=y-2*x/y;
end
五、实验结果及分析
实验结果
执行Euler格式的结果如下:
eul(0,1,1,0.1)
ans =
0.1000 1.1000
0.2000 1.1918
0.3000 1.2774
0.4000 1.3582
0.5000 1.4351
0.6000 1.5090
0.7000 1.5803
0.8000 1.6498
0.9000 1.7178
1.0000 1.7848
执行梯形格式的结果如下:
tixing(0,1,1,0.1)
ans =
0.1000 1.0959
0.2000 1.1841
0.3000 1.2662
0.4000 1.3434
0.5000 1.4164
0.6000 1.4860
0.7000 1.5525
0.8000 1.6165
0.9000 1.6782
1.0000 1.7379
执行改进的Euler格式的结果如下:
e
显示全部