function dy = diff_eqn(x,y)
dy = -y-x*y^2;
end
function [x,y] = euler_method(f,x0,y0,x_end,h)
n = ceil((x_end - x0)/h);
x = zeros(1,n+1);
y = zeros(1,n+1);
x(1) = x0;
y(1) = y0;
for i = 1:n
x(i+1) = x(i) + h;
y(i+1) = y(i) + h*f(x(i),y(i));
end
end
调用函数
>> x0 = 0;
y0 = 1;
x_end = 2;
h = 0.1;
[x,y] = runge_kutta_method(@diff_eqn,x0,y0,x_end,h);
plot(x,y,'-o');
xlabel('x');
ylabel('y');
title('Solution of Differential Equation by Runge-Kutta Method');