數模 微分方程(SIS模型)

2022-10-10 22:00:21 字數 2004 閱讀 1337

function dx=fun1(t,x)   % 大家可以修改裡面的引數,來看結果的變化

global total_n % 定義總人數為全域性變數

beta = 0.1; % 易感染者與已感染者接觸且被傳染的強度

alpha = 0.06; % 由感染狀態i恢復為易感者狀態s的恢復率

dx = zeros(2,1); % x(1)表示s x(2)表示i

dx(1) = alpha*x(2) - beta*x(1)*x(2)/total_n;

dx(2) = beta*x(1)*x(2)/total_n - alpha*x(2);

end

%% 最簡單的sis模型

clc;clear

global total_n % 定義總人數為全域性變數(可以在子函式中使用)

total_n = 1000; % 總人數

i0 = 1; % 初始時刻患者(已感染者)的人數

[t,x]=ode45('fun1',[1:500],[total_n-i0 i0]);

x = round(x); % 對x進行四捨五入(人數為整數)

figure(1)

plot(t,x(:,1),'r-',t,x(:,2),'b-','linewidth',1.5) % x的第一列是易感染者s的數量,x的第二列是患者i的數量

legend('易感染者s','患者i')

function dx=fun2(t,x)   % 大家可以修改裡面的引數,來看結果的變化

global total_n % 定義總人數為全域性變數

beta = 0.1; % 易感染者與已感染者接觸且被傳染的強度

alpha = 0.02; % 由感染狀態i恢復為易感者狀態s的恢復率

if t > 200

alpha = alpha * 10; % 第200期後引入了新的醫療裝備,使得恢復率alpha增加為原來的10倍

enddx = zeros(2,1); % x(1)表示s x(2)表示i

dx(1) = alpha*x(2) - beta*x(1)*x(2)/total_n;

dx(2) = beta*x(1)*x(2)/total_n - alpha*x(2);

end

%% 考慮某種使得恢復率alpha增加的因素(例如建立醫院、公升級醫療裝備等)

% 第200期後引入了新的醫療裝備,使得恢復率alpha增加為原來的10倍

clc;clear

global total_n % 定義總人數為全域性變數(可以在子函式中使用)

total_n = 1000; % 總人數

i0 = 1; % 初始時刻患者(已感染者)的人數

[t,x]=ode45('fun2',[1:500],[total_n-i0 i0]);

x = round(x); % 對x進行四捨五入(人數為整數)

figure(2)

plot(t,x(:,1),'r-',t,x(:,2),'b-','linewidth',1.5) % x的第一列是易感染者s的數量,x的第二列是患者i的數量

legend('易感染者s','患者i')

axis([0 500 0 1000]) % 設定座標軸範圍,x軸為0-500 y軸為0-1000

微分方程模型(一)

人口模型 量化人口增長的趨勢 1.malthus 模型 模型假設 i 設x t 表示t時刻的人口數,且x t 連續可微。ii 人口的增長率r 是常數 增長率 出生率 死亡率 iii 人口數量的變化是封閉的,即人口數量的增加與減少只取決於人口中個體的 生育和死亡,且每乙個體都具有同樣的生育能力與死亡率...

微分方程 微分方程 高階微分方程組理論

附 微分方程的分類 常微分方程和偏微分方程。1 常微分方程 ode 是指微分方程的自變數只有乙個的方程。最簡單的常微分方程,未知數是乙個實數或是複數的函式,但未知數也可能是乙個向量函式或是矩陣函式,後者可對應乙個由常微分方程組成的系統。2 偏微分方程 pde 是指微分方程的自變數有兩個或以上,且方程...

微分方程 微分方程通殺篇

前言 下面有些說法不是很嚴謹,主要目的是傳達解題思想而已 微分方程對於我們的要求就只是要求會計算一階和二階微分方程就好,而且都是很基礎的。但是由於二階微分方程我們只學了二階常係數微分方程,但是有時會出現不是常係數的情況,所以這裡我打算稍微總結一下。一般考試 現的微分方程如果是一階方程,那麼不用想它一...