【发布时间】:2013-05-23 16:19:34
【问题描述】:
我正在尝试使用 SIR 模型对流感流行进行建模:http://en.wikipedia.org/wiki/Epidemic_model#The_SIR_Model。
基本上需要我同时解三个微分方程。
我的任务是将图表拟合到一组数据中,我只是想知道我应该如何去做。
我已经设法设置了一个系统来解决这样的 ODE:
function dydt = sir_ode(t,y,p)
B = p(1);
r = p(2);
S = y(1);
I = y(2);
R = y(3);
dydt = [-B*I*S; B*I*S - r*I; r*I];
以及调用它的 m 文件:
time = 1:24;
y0 = [400 1 0];
tspan = time;
p0 = [.01 .5];
[t,y] = ode45(@sir_ode,tspan,y0,[],p0);
所以我有一个 tspan,我有一个 S、I 和 R 的 y0 矩阵。对于我的函数,输出包含 3 个微分方程,因此我可以与 ode45 函数一起求解它们。
现在我需要做的就是找到合适的 p0 矩阵,这样我就可以将曲线拟合到我的数据中。
首先,谁能看出我的求解方法有任何缺陷,其次,谁会对我如何找到最佳 p0 矩阵有任何建议?
谢谢!!
【问题讨论】:
标签: matlab curve-fitting