已知k1-k6的范围,y1,y4,y5的初始值,并且知道y4与时间t的一系列取值,要得出k1-k6和y2,y3的初始值。
这里面有一个问题,我不知道怎么用程序表达:
t=31,59,90,120,151,181,212,243,273,304,334,365;//一年当中每个月最后一天的序号
而对应的y4=37567,23862,77756,248609,354347,343100,261263,119096,101654, 87612,79591,60879;//每个月发病总人数。如37567表示1~31天合计发病人数,23862表示32-59天合计发病人数
微分方程估计出来的y4却是每天的发病人数,我不知道怎么处理???求指点!!!
Constant u=3.9139*10^-5;
Parameter k1= [0.0001,50];
Parameter k2= [0.0001,1];
Parameter k3= [0.0001,1];
Parameter k4= [0.1,1];
Parameter k5= [0.01,1];
Parameter k6= [0.1,1];
Variable t,y1,y4,y5;
InitialODEValue t=1, y1=1.4*10^8,y4=1212,y5=0;
ODEFunction
y1'=u*(y1+y2+y3+y4+y5)-k1*(y3+y4)*y1/(y1+y2+y3+y4+y5)+k2*y5-u*y1;
y2'=k1*(y3+y4)*y1/(y1+y2+y3+y4+y5)-k3*y2-u*y2;
y3'= k3*(1-k5)*y2-k4*y3-u*y3;
y4'= k3*k5*y2-k6*y4-u*y4;
y5'= k4*y3+k6*y4-k2*y5-u*y5;
Data;
t=31,59,90,120,151,181,212,243,273,304,334,365;
y4=37567,23862,77756,248609,354347,343100,261263,119096,101654, 87612,79591,60879; |