1 / 4
文档名称:

数值分析实验报告 (15).doc

格式:doc   大小:32KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验报告 (15).doc

上传人:taoapp 2021/10/31 文件大小:32 KB

下载得到文件列表

数值分析实验报告 (15).doc

相关文档

文档介绍

文档介绍:数值实验报告:
(1)问题叙述:在实际生活中,大部分常微分的初值问题是很难求解出精确解的,而进一步研究其数值解法就成为近似计算中很重要的组成部分。欧拉算法是解决此类问题最为简单和有效的算法,但是欧拉算法精度不高,因此改进欧拉算法应运而生,我们利用Matlab构建相关图像,直观的展示改进欧拉算法和欧拉算法的对比。
(2)问题分析:利用欧拉算法和改进欧拉算法求解下述微分方程的解,.
(3)实验程序:
欧拉算法:
function y =euler(a,b,n,y0,f,f1,b1)
y=zeros(1,n+1);
y(1)=y0;
h=(b-a)/n;
x=a:h:b;
for i=1:n
y(i+1)=y(i)+h*f(x(i),y(i));
end
plot(x,y);
hold on;
x1=linspace(a,b,100);
'精确解为'
s=dsolve(f1,b1,'x')
syms x
y1=zeros(1,100);
for i=(1:100)
y1(i)=subs(s,x,x1(i));
end
plot(x1,y1,'r');
title('红色表示精确解');
改进欧拉算法:
function y =euler(a,b,n,y0,f,f1,b1)
y=zeros(1,n+1);
y(1)=y0;
h=(b-a)/n;
x=a:h:b;
for i=1:n
y(i+1)=y(i)+h*f(x(i),y(i));
end
plot(x,y);
hold on;
x1=linspace(a,b,100);
'精确解为'
s=dsolve(f1,b1,'x')
syms x
y1=zeros(1,100);
for i=(1:100)
y1(i)=subs(s,x,x1(i));
end
plot(x1,y1,'r');
title('红色表示精确解');
实验结果:
(4)实验结论:改进的欧拉算法可以很好的描述精确解,效果比原来欧拉算法好了很多。