微分方程的函数文件:
function z=myf4(x,y)
z=10*x.*(1-y);
准确解的函数文件:
function fz=fz(x)
fz=1-exp(-5*(x.^2));
欧拉格式:
x=zeros(1,11);
y=zeros(1,11);
x(1)=0;
y(1)=0;
h=0.1;
for n=1:10
x(n+1)=x(n)+h;
y(n+1)=y(n)+h*feval(@myf4,x(n),y(n));
end
E=[x,y]
y1=fz(x)
plot(x,y,':or',x,y1,'--*b');
title('Euler格式与准确解比较图');
梯形格式:
x=zeros(1,11);
y=zeros(1,11);
x(1)=0;
y(1)=0;
h=0.1;
for n=1:10
x(n+1)=x(n)+h;
z0=y(n)+h*feval(@myf4,x(n),y(n));
for k=1:3
z1=y(n)+h/2*(feval(@myf4,x(n),y(n))+feval(@myf4,x(n+1),z0));