matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

10.3 欧拉(Euler)方法的MATLAB程序

10.3   欧拉(Euler)方法的MATLAB程序

10.3.1 向前欧拉公式及其误差估计

 

例10.2.1  用欧拉方法求初值问题

的数值解,分别取,并计算误差,画出精确解和数值解的图形.

解  编写并保存名为Eulerli1.m的MATLAB计算和画图的主程序如下

function P=Eulerli1(x0,y0,b,h)

n=(b-x0)/h; X=zeros(n,1);

Y=zeros(n,1); k=1;

X(k)=x0; Y(k)=y0;

for k=1:n

X(k+1)=X(k)+h;

Y(k+1)=Y(k)+h*(X(k)-Y(k)); k=k+1;

end

y=X-1+2*exp(-X); plot(X,Y,'mp',X,y,'b-')

grid

xlabel('自变量 X'), ylabel('因变量 Y')

title('用向前欧拉公式求dy/dx=x-y,y(0)=1在[0,1]上的数值解和精确解y=x-1+2 exp(-x)')

legend('h=0.075时,dy/dx=x-y,y(0)=1在[0,1]上的数值解','精确解y=x-1+2 exp(-x)')

jwY=y-Y;xwY=jwY./y;

k1=1:n;k=[0,k1];

P=[k',X,Y,y,jwY,xwY];

在MATLAB工作窗口输入下面的程序

>>x0=0;y0=1;b=1;h=0.0750;

P=Eulerli1(x0,y0,b,h)

在MATLAB工作窗口输入下面的程序

>>h1=0.0075; P1=Eulerli1(x0,y0,b,h1)

legend('h1=0.0075时,dy/dx=x-y,y(0)=1在[0,1]上的数值解','精确解y=x-1+2 exp(-x)')

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3100300.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1