首页 > 编程知识 正文

matlab建模步骤,matlab模型

时间:2023-05-05 01:12:56 阅读:140408 作者:4611

矩阵代码

clc

清除

全部关闭;

A=0.4;

B=0.1;

I=0.4;

S=0.5;

%ode

tspan=[0 50];

y0=[I S];

[t,y]=ode45(@(t,y ) odefun(t ) t,y,a,b ),tspan,y0 );

r=1- y 653360,1 (-y ) :2 );

%euler

n=size(r,1 );

h=50/(n-1 );

t_0=[0:h:50]‘;

y_I=Zeros(n,1 );

y_s=Zeros(n,1 );

y_I(1)=I;

y_s(1)=S;

for i=1:n-1

y_I(I1 )=h*[A*y_i(i ) I ) y _ s (I )- B*y_i(i ) I]y_I ) I;

y_s(I1 )=h*[-A*y_i(i ) I ) y_s ) I]y_s ) I;

结束

r _0=1- y _ I (:1 )-y_s ) :1 );

%图

subplot (2,2,1 );

plot(t,y ) :1 )、‘-o‘,t,y )、2 )、‘-.‘,t,r,‘g’;

保持打开;

legend(‘ (“生病的人:I(t )”、“健康的人:s(t ) t )”、“去除人数:r(t ) t )”、“位置”、“最佳”

ylabel(‘(占人口的比例) );

xlabel(‘(时刻t );

str=[‘接触数/:’,num2str(a/b ),‘初始疾病患者数:’,num2str (I ),‘,初始健康人数:’,num2str ) ] );

text (15,0.4,str,‘FontSize‘,10 );

title(sir模型(ode ) );

subplot (2,2,2 );

plot(t_0,y_i,‘- o’,t_0,y_s,‘-.‘,t_0,r_0,‘g’);

保持打开;

legend(‘ (“生病的人:I(t )”、“健康的人:s(t ) t )”、“去除人数:r(t ) t )”、“位置”、“最佳”

ylabel(‘(占人口的比例) );

xlabel(‘(时刻t );

str=[‘接触数/:’、num2str(a/b )、‘初始疾病患者数:’、num2str (I )、‘、初始健康人数:’、num2str ) ] );

text (15,0.4,str,‘FontSize‘,10 );

title(sir模型(euler ) );

subplot (2,2,3 );

plot(t_0,y_i,‘r-‘,t,y ) :1 )、‘-.‘;

diff=sum(ABS(y_I-y ) :1 ) );

str1=[‘疾病患者数对比图I(t ),误差:‘,num2str(diff ) ]

title(str1;

egend (‘Euler’、‘ode’、‘location’、‘best’)

ylabel(‘(占人口的比例) );

xlabel(‘(时刻t );

subplot (2,2,4 );

plot(t_0,y_s,‘r-‘,t,y ) :2 ),‘-.‘;

diff=sum(ABS(y_s-y ) :2 );

str1=[‘健康人数比较图s(t ),误差:’,num2str(diff ) ]

title(str1;

egend (‘Euler’、‘ode’、‘location’、‘best’)

ylabel(‘(占人口的比例) );

xlabel(‘(时刻t );

functiondydt=odefun(t,y,a,b ) )。

dydt=zeros (2,1 );

dydt(1)=A*y(1)1) y )2)- B*y(1) 1;

dydt(2)=-A*y(1)1) *y ) 2;

结束

结果

原文: 3359 www.cn blogs.com/shish/p/12685865.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。