微分方程数值解法论述.doc

《》 改进的欧拉方法:创建M文件eulerprove1.m,内容如下: function [x,y]=eulerprove1(fun,x0,xfinal,y0,n) if nargin5,n=50; end h=(xfinal-x0)/n; y(1)=y0,x(1)=x0; for i=1:n x(i+1)=x(i)+h; y1=y(i)+h*feval(fun,x(i),y(i))/2; y2=h*feval(fun,x(i+1),y1)/2; y(i+1)=y1+y2 End 在MATLAB的command窗口输入: [x,y1]=eulerprove1(f1,0,1,1,20)返回f,x1,y1的值,作图,输入:plot(x,y1,r*-,x,sqrt(1+2*x),g+--); xlabel(x);ylabel(y);title(y‘=y-2x/y);legend(数值解,精确解),将图片保存为eulerprove1.fig,图形如下: 为了便于比较两种方法的误差,将两者的误差作到同一个图上,继续输入:plot(x,abs(y-sqrt(1+2*x)),y*-,x,abs(y1-sqrt(1+2*x)),g+--);xlabel(x);ylabel(y);title(误差曲线);legend(欧拉方法,改进的欧拉方法)将图片保存为error1

文档评论(0)

1亿VIP精品文档

相关文档