function sys=AdamsMoulton()
%{
程序功能:
1、Adams-Moulton线性多步法求解常微分方程
2、y(n+1)=y(n)+h*f(xn,yn)
3、四阶显式
4、使用Euler或者四阶R-Ke先计算出y1,y2,y3
%}
clear,clc,close all
x1=0;
x2=1;
h=0.1;
N=abs(x2-x1)/h; %假设得出的是一个整数
y=zeros(N+1,1);
x=zeros(N+1,1);
y(1)=1;
y(2:4)=[1.095446;1.183217;1.264912 ];
x(1)=x1;
for i=1: N
x(i+1)=x1+i*h;
% u=x(i);
% v=y(i);
if(i>=4)
y(i+1)=y(i)+ h/24*(55*fx( x(i),y(i) )-59*fx( x(i-1) ,y(i-1)) +37*fx( x(i-2) ,y(i-2)) -9*fx( x(i-3) ,y(i-3)));
end
end
sys(:,1)=x;
sys(:,2)=y;
draw(x,y)
end
function sys=fx(x, y)
sys=y-2*x/y;
% sys=(1+x)/(1+y);
% sys=y^2*exp(-x);
end
function draw(x,y)
plot(x, y, '-o' , 'linewidth',3)
xlabel('X')
ylabel('Y')
title('The Adams-Moulton 4 order explicit Solution Chart')
end