数学建模 微分方程(学校课程)

230 阅读1分钟

matlab求解析解(常微分方程)

y=dsolve('f1','f2','C','x')
Dy 一阶导
D2Y 二阶导

☆matlab求数值解(常微分方程)

ode45最常见

function dzdt=Lorenz(t,y) 
%y是一个向量 y(1)=x,y(2)=y,y(3)=z
   a=10;c=28;b=8/3; 
   dzdt=zeros(3,1); 
   dzdt (1)=-a*y(1)+a*y(2); 
   dzdt (2)=-y(1)*y(3)+c*y(1)-y(2);  
   dzdt (3)=y(1)*y(2)-b*y(3);
   
clc;clear; 
tspan = [0 200]; 
z0=[4 9 0]; 
[t,y]=ode45('Lorenz',tspan,z0); 
plot(y(:,1), y(:,3)) 
%初值的微小变化可以引起图像巨大的变化-蝴蝶效应
%初始条件敏感性

降阶

一般求数值解先用ode45,发现效率低,就换ode15s

传染病模型

没有考虑免疫力,没有考虑死亡人数

研究两个就行啦,另一个用1减得到

SIR是最基础的传染病模型