一、实验要求

1.取k=0.1,画出dt/di~i的曲线图,求i为何值时dt/di达到最大值,并在曲线图上标注。试编写一个m文件来实现。

2.求出微分方程的解析解 i(t),画出如下所示的 i~t 曲线(i(0)=0.15, k=0.2, t=0~30)。试编写一个 m 文件来实现。(在图形窗口菜单选择 Edit/Copy Figure,复制 图形)

3. 取λ=0.1,σ=1.5,画出如下所示的dt/di~i曲线图。试编写一个m文件来实现。(在图形窗口菜单选择 Edit/Copy Figure,复制图形)

4.求出微分方程的解析解 i(t)。取λ=0.2,σ=3,t=0~40,画出如下所示的图形。试编写 一个m文件来实现。

5.设λ=1,μ=0.3,i(0)=0.02,s(0)=0.98。编写程序,求出(i(t),s(t)的数值计算结果;i(t),s(t)图形;i~s图形(相轨线))。

二、实验内容

1.

clear
clc
fplot('0.1*x*(1-x)',[0 1.1 0 0.03]);
x=fminbnd('-0.1*x*(1-x)',0,1);
y=0.1*x*(1-x);
hold on; %在上面的同一张图上画线(同坐标系)
plot([0,x],[y,y],':',[x,x],[0,y],':');
text(0,y,'(di/dt)m','VerticalAlignment','bottom');
text(x,-0.001,num2str(x),'HorizontalAlignment','center');
title('SI模型di/dt~i曲线');
xlabel('i');
ylabel('di/dt');

2.

clear
clc
k=0.2;
x0=0.15;
x=dsolve('Dx=k*x*(1-x)','x(0)=x0');
tx=0:0.15:30;
for j=1:201
    t=tx(j);
    i(j)=eval(x);
end
plot(tx,i);
title('图1SI模型的i~t曲线');
xlabel('t(天)');
ylabel('i(病人所占比例)');

3.

clear
clc
fplot('-0.1*x*(x-(1-2/3))',[0 0.4 -0.0005 0.003]);
hold on; %在上面的同一张图上画线(同坐标系)
plot([0,0.4],[0,0]);
title('SIS模型的 di/dt~i曲 线');
xlabel('i');
ylabel('di/dt');

4.

clear
clc
k=0.2;
x0=0.2;
x=dsolve('Dx=-k*x*(x-(1-1/3))','x(0)=x0');
tx=0:0.15:40;
for j=1:267
    t=tx(j);
    i(j)=eval(x);
end
plot(tx,i);
hold on; %在上面的同一张图上画线(同坐标系)
plot([0,40],[2/3,2/3],'k:');
x0=0.9;
x=dsolve('Dx=-k*x*(x-(1-1/3))','x(0)=x0');
tx=0:0.15:40;
for j=1:267
    t=tx(j);
    i(j)=eval(x);
end
plot(tx,i,'r');
title('SIS模型的 di/dt~i曲 线');
xlabel('i');
ylabel('di/dt');
legend('i(0)=0.2','1-1/σ','i(0)=0.9');
xlim([0 40]);
ylim([0 1]);

5.

(此代码第二张图显示需要在命令栏输入任意字符)

function y=f(t,x)
y=[1*x(1)*x(2)-0.3*x(1),-1*x(1)*x(2)]';
clear
clc
t=0:50;
x=[0.02,0.98];
[t,x]=ode45('f',t,x);
[t,x]
plot(t,x);
pause
plot(x(:,2),x(:,1));

三、实验结果及其分析

1.

2.

 

3.

4.

 

5.

 

         0    0.0200    0.9800

    1.0000    0.0390    0.9525

    2.0000    0.0732    0.9019

    3.0000    0.1285    0.8169

    4.0000    0.2033    0.6927

    5.0000    0.2795    0.5438

    6.0000    0.3312    0.3995

    7.0000    0.3444    0.2839

    8.0000    0.3247    0.2027

    9.0000    0.2863    0.1493

   10.0000    0.2418    0.1145

   11.0000    0.1986    0.0917

   12.0000    0.1599    0.0767

   13.0000    0.1272    0.0665

   14.0000    0.1004    0.0593

   15.0000    0.0787    0.0543

   16.0000    0.0614    0.0507

   17.0000    0.0478    0.0480

   18.0000    0.0371    0.0460

   19.0000    0.0287    0.0445

   20.0000    0.0223    0.0434

   21.0000    0.0172    0.0426

   22.0000    0.0133    0.0419

   23.0000    0.0103    0.0415

   24.0000    0.0079    0.0411

   25.0000    0.0061    0.0408

   26.0000    0.0047    0.0406

   27.0000    0.0036    0.0404

   28.0000    0.0028    0.0403

   29.0000    0.0022    0.0402

   30.0000    0.0017    0.0401

   31.0000    0.0013    0.0400

   32.0000    0.0010    0.0400

   33.0000    0.0008    0.0400

   34.0000    0.0006    0.0399

   35.0000    0.0005    0.0399

   36.0000    0.0004    0.0399

   37.0000    0.0003    0.0399

   38.0000    0.0002    0.0399

   39.0000    0.0002    0.0399

   40.0000    0.0001    0.0399

   41.0000    0.0001    0.0399

   42.0000    0.0001    0.0399

   43.0000    0.0001    0.0399

   44.0000    0.0000    0.0398

   45.0000    0.0000    0.0398

   46.0000    0.0000    0.0398

   47.0000    0.0000    0.0398

   48.0000    0.0000    0.0398

   49.0000    0.0000    0.0398

   50.0000    0.0000    0.0398

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐