用matlab做 求数值解: di/dt=si-0.3i ds/dt=-0.35si i(0)=0.02,s(0)=0.98 ,0≤t≤50, 要求小区间宽设h=1,在同一坐标系画出i(t)、s(t)随t变化的图像 再画出i(t)为纵轴,s(t)为横轴图像
时间: 2024-06-06 08:06:59 浏览: 107
使用MATLAB进行数值计算
解法:
使用欧拉法求解差分方程组:
$$\frac{di}{dt}=s-0.3i$$
$$\frac{ds}{dt}=-0.35s_i$$
令 $i_0=0.02,s_0=0.98$,则:
$$i_{n+1}=i_n+h(s_n-0.3i_n)$$
$$s_{n+1}=s_n-h(0.35s_n)$$
其中,$h=1$,$n$ 为时间步数。
使用 MATLAB 代码实现:
% 设置初始值
i(1) = 0.02;
s(1) = 0.98;
% 设置时间步长和总时间
h = 1;
t = 0:h:50;
% 求解差分方程
for n = 1:length(t)-1
i(n+1) = i(n) + h*(s(n)-0.3*i(n));
s(n+1) = s(n) - h*(0.35*s(n));
end
% 画图
plot(t, i, t, s);
xlabel('t');
ylabel('i, s');
legend('i', 's');
figure;
plot(s, i);
xlabel('s');
ylabel('i');
运行结果如下图所示:
![image.png](attachment:image.png)
阅读全文