爱玩科技网
您的当前位置:首页用欧拉方法迭代公式求解微分方程初值问题.doc

用欧拉方法迭代公式求解微分方程初值问题.doc

来源:爱玩科技网
实验名称 用改进的欧拉方法迭代公式求解微分方程初值问题。 通过实验进一步掌握欧拉方法迭代公式的基本思想,计算步骤,并能够灵活地在MATLAB 中运用,且能够在MATLAB编程求解微分方程初值问题,并用改进的欧拉方法迭代公式求解下列微分方程的初值问题: 2x(0x1)y'y y目的 y(0)1实验 在编辑窗中输入以下程序,并以euler保存 function E=euler(f,a,b,ya,N) %f为该问题中的函数f(x,y)。%a,b分别为取值范围的左右端点。 %ya为给定初值y(a)。%N为迭代步数。%h为步长。 %输出值为对应每个节点的近似值。 h=(b-a)/N; T=zeros(1,N+1); Y=zeros(1,N+1); T=a:h:b; Y(1)=ya; for j=1:N Y(j+1)=Y(j)+h*feval('f1',T(j),Y(j)); Y(j+1)=Y(j)+(h/2)*(feval('f1',T(j),Y(j)) +feval('f1',T(j+1),Y(j+1))); end plot(T,Y,'r*') T1=[T',Y'] T2=0:0.01:1; Y2=sqrt(1+2*T2); hold on 实验内容(算法、程序、步骤和方法) plot(T2 ,Y2) hold off 再在新建的编辑窗中输入以下程序,以f1保存 function z=f1(x,y) z=y-2*x/y; 最后在命令窗口输入euler('f1',0,1,1,10)并执行。 得出一下图形和其值: T1 = 0 1.0000 0.1000 1.0959 0.2000 1.1841 0.3000 1.2662 0.4000 1.3434 0.5000 1.41 0.6000 1.4860 0.7000 0.8000 0.9000 1.0000 1.5525 1.6165 1.6782 1.7379 从以上程序中我们解出了微分方程的初值问题: T1 = 0 1.0000 0.1000 1.0959 0.2000 1.1841 0.3000 1.2662 结论 0.4000 1.3434 (结 0.5000 1.41 果) 0.6000 1.4860 0.7000 1.5525 0.8000 1.6165 0.9000 1.6782 1.0000 1.7379 并从图形中我们可以看到近似值红色点和蓝色的标准值拟合,即说明该方法可行。 通过改进的欧拉方法迭代公式最终我们求解出了微分方程的初值问题,此方(对法并不简单,需要我们掌握与之相关的法则,基本思想和算法步骤,并能对之在本次MATLAB加以灵活应用。 小结实验的思考建议) 备注或说明(成功或失败的原因、实验后的心体会) 指导教师评分(包括对实验的预习、操作和结果的综合评分):

在最终得出的图形中,如果蓝线和红点拟合,即说明我们所编辑的程序和方法可行。 在实验中我们必须注意所用函数名称是否一致,如果不一样程序将不会执行,并要注意分号和引号的应用,必须细心谨慎地完成。 要想成功地完成此实验,不仅需要对欧拉方法迭代公式的相关知识熟悉掌握外,还必须要有不骄不躁,坚持耐心的精神。通过此实验我们可以看出欧拉方法在实际中的应用是非常广泛且很有用处的,所以我们需要对它的基本算法等加以牢固掌握以可以在实际中灵活运用。

因篇幅问题不能全部显示,请点此查看更多更全内容