MATLAB直接欧拉法求解微分方程

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');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值