% 改进欧拉法
% 注释的地方需要修改
clear
syms x y
f=y-(2*x)/y; % 函数f(x,y)
x0=0; y0=1; % 迭代初值
h=0.1; N=10; % 步长和迭代次数
xi=x0:h:x0+h*N;
yi=zeros(1,N); yi(1)=y0;
for k=1:N
yi(k+1)=yi(k)+h*subs(f,{x y}, {xi(k),yi(k)});
yi(k+1)=yi(k)+h/2*( subs(f,{x y}, {xi(k),yi(k)})+subs(f,{x y}, {xi(k+1),yi(k+1)} ));
end
vpa(yi, 6) % 结果有效数字位数