24小时热门版块排行榜    

查看: 1470  |  回复: 1

jwj216

金虫 (正式写手)

[求助] 常微分方程的参数拟合 已有1人参与

参数拟合一直出错,但是找不出错误。哪位能帮忙给解决一下?先谢谢了!



function Par_SI
clear
clc
ID=[1 3 25 72 222 282 256 233 189 123 70 25 11 4];
X0=[762,1];%初始条件
lb=[0,0];%约束条件,参数值的下界
ub=[0.1,1];%约束条件,参数值的下界
par1guess=[0.01 0.1];%参数值的初始
options=optimset('Display','final','MaxIter',2000,'MaxFunEvals',2000);%求最优解的优化条件
[par1,fval]=fmincon(LSmin,par1guess,[],[],[],[],lb,ub,[],options,ID,X0);

%利用优化算法得到的参数拟合数据
[T1,X1]=ode45(SImodel,[0 14],X0,[],par1);%利用估计参数重新运行模型
figure(1)
plot(T1,X1(:,1),'k-');
hold on
plot(T1,X1(:,2),'k-',0:14,ID,'ko')

%定义最小二乘的目标函数
function d=LSmin(par1,ID,X0)
[T,x]=ode45(SImodel,[0:1:14],X0,[],par1)
d=norm(x(:,2)'-ID)^2;

%定义微分方程
function dy=SImodel(t,y,par1)
dy=zeros(2,1);
beta=par1(1);
gamma=par1(2);
dy=[-beta*y(1)*y(2);beta*y(1)*y(2)-gamma*y(2)];
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

青春就是用来折腾的!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
内容已删除
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-08-16 16:59:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jwj216 的主题更新
信息提示
请填处理意见