向前欧拉法函数文件
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+exp(-X); plot(X,Y,
'mp'
,X,y,
'b-'
)
grid
xlabel(
'
自变量
X
'
), ylabel(
'
因变量
Y
'
)
title(
'
用向前欧拉公式求
dy/dx=x-y+1
,
y(0)=1
在
[0,1]
上的数值解和精确解
y=x+exp(-x)
'
)
legend(
'
h=0.075
时,
dy/dx=x-y
,
y(0)=1
在
[0,1]
上的数值解
'
,
'
精确解
y=x+exp(-x)
'
)
jwY=y-Y;xwY=jwY./y;
k1=1:n;k=[0,k1];
P=[k',X,Y,y,jwY,xwY];
命令窗口输入:
x0=0;y0=1;b=1;h=0.0750;
P=Eulerli1(x0,y0,b,h);
输出: