sphm.net
当前位置:首页 >> sir模型mAtlAB代码 >>

sir模型mAtlAB代码

function y=ill(t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts=0:50; x0=[0.02,0.98]; [t,x]=ode45('ill',ts,x0); plot(t,x(:,1),t,x(:,2)),grid,pause plot(x(:,2),x(:,1)),grid on; end 以上是sir模型的方程,参数自己设置!

根据ode45()函数对微分方程的形式要求, y=ill(t,x)实际上是 y'=ill(t,x), y必须是列向量 y(1) = dy1/dt, y(2)=dy2/dt 故这一行就是 dy1/dt = a* y1*y2-b*y1, dy2/dt= -a*y1*y2 正是sir模型方程(y1=i, y2=s)

程序有一点小错误: a=0.4;b=0.0.07;应为 a=0.4;b=0.07; 输出的数据: 0 0.0010 0.9600 1.0000 0.0014 0.9595 2.0000 0.0019 0.9589 3.0000 0.0026 0.9581 4.0000 0.0035 0.9569 5.0000 0.0048 0.9554 6.0000 0.0065 0.9532 7.0000 0.0089 0.950...

ts = 0:50;i0 = 0.02;s0 = 0.98;x0=[i0;s0];[t,x]=ode45(@sirfun,ts,x0);figure; plot(x(:,2),x(:,1)); grid on; function dy = sirfun(t,x)% x(1)--> i, x(2)-->s% di/dt = λsi-μi% ds/dt = -λsi lambda = 1; mu = 0.3; dy = [lambda*x(1)*x(2)...

ts=0:50; x0=[0.02,0.98]; [t,x]=ode45('ill',ts,x0); plot(t,x(:,1),t,x(:,2)),grid,pause plot(x(:,2),x(:,1)),grid, 你的程序后半部分,按上面语句试试

将 function y=ill(t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; 保存为m文件就可以运行

你这个程序没问题,我运行了一次,正常,有图输出。可能是你的操作有问题。应先保存函数在matlab的工作路径上,再在命令行输入后面的语句。

我知道大规模无线传感器网络里的几个算法,没有听说过复杂网络模型这个说法,如果你把具体的要求说出来,也许我能帮你实现。

你应该去大学找找

平行于X轴如方程 y=2,平行于y轴如方程x=2; 实例代码(画平行于X轴的直线,y=2): x=1:100; y=2*ones(1,100); plot(x,y);

网站首页 | 网站地图
All rights reserved Powered by www.sphm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com