龙格库塔公式法解微分方程组初值问题实例

用四阶龙格库塔公式(取h=0.1)解下列微分方程组初值问题:
{ y 1 ′ = 120 − 2 y 1 + 2 y 2 ( 0 ≤ x ≤ 1.0 ) , y 2 ′ = 2 y 1 − 5 y 2 , y 1 ( 0 ) = y 2 ( 0 ) = 0 ; \left\{ \begin{aligned} y^{'}_1&=120-2y_1+2y_2 (0 \le x\le1.0), \\ y^{'}_2&=2y_1 -5y_2,\\ y_1&(0)=y_2(0)=0; \end{aligned} \right. y1y2y1=1202y1+2y2(0x1.0),=2y15y2,(0)=y2(0)=0;
代码如下:

function odeRk4_(a,b,y0,n)
h = (b-a)/n;x = a:h:b;
y = y0*ones(1,n+1)
for j = 2:n+1
    k1 = func(y(:,j-1));
    k2 = func(y(:,j-1)+h/2*k1');
    k3 = func(y(:,j-1)+h/2*k2');
    k4 = func(y(:,j-1)+h*k3');
    y(:,j) = y(:,j-1)+h/6*(k1'+k4')+h/3.*(k2'+k3');
end
for k = 1:n+1
    fprintf('x[%d]=%f\ty1[%d]=%f\ty2[%d]=%f\n',k-1,x(k),k-1,y(1,k),k-1,y(2,k));
end

定义函数:

function z=func(y)
z(1) = 120-2*y(1)+2*y(2);
z(2) =  2*y(1)- 5*y(2);
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yangtze20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值