![b5604083c6c606ea7d788778013b06ea.png](https://i-blog.csdnimg.cn/blog_migrate/da5a498ad28665bb8742722ec361a86c.png)
function sys=EulerB()
%{
程序功能:
1、改进欧拉方法求解常微分方程
2、y(n+1)=y(n)+h*f(xn,yn)
%}
clear,clc,close all
y1=1;
x1=0;
x2=1;
h=0.1;
N=abs(x2-x1)/h; %假设得出的是一个整数
y=zeros(N+1,1);
x=zeros(N+1,1);
y(1)=y1;
x(1)=x1;
for i=1: N
x(i+1)=x1+i*h;
yp=y(i)+h*fx( x(i), y(i) );
yc=y(i)+h*fx( x(i+1), yp);
y(i+1)=(yp+yc)/2;
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 Modified Euler Solution Chart')
end