Matlab:ODE45方程的参数拟合-仅扩展数据的初始值

Matlab:ODE45方程的参数拟合-仅扩展数据的初始值,matlab,curve-fitting,differential-equations,Matlab,Curve Fitting,Differential Equations,我有一个由3首颂歌组成的系统: Cf' = kin * Cw * F - (kout + km) * Cf Cw' = kout * Cf - kin * Cw(i) * F Cm' = km * Cf 我测量了Cf所有时间点的数据,仅测量了Cw和Cm的初始值。现在,我想将我的模型与这些数据进行拟合,找到kin、kout和km的最佳参数值 我可以用lsqcurvefit和ode45来实现这一点吗? 谢谢大家! 所以你得到了一个ODE函数 function Dy = derivs(t,y,p)

我有一个由3首颂歌组成的系统:

Cf' = kin * Cw * F - (kout + km) * Cf
Cw' = kout * Cf - kin * Cw(i) * F
Cm' = km * Cf
我测量了Cf所有时间点的数据,仅测量了Cw和Cm的初始值。现在,我想将我的模型与这些数据进行拟合,找到kin、kout和km的最佳参数值

我可以用lsqcurvefit和ode45来实现这一点吗?
谢谢大家!

所以你得到了一个ODE函数

function Dy = derivs(t,y,p)
  Cf = y(1); Cw = y(2); Cm = y(3);
  kin = p(1); kout = p(2); km = p(3);
  DCf = kin * Cw * F - (kout + km) * Cf;
  DCw = kout * Cf - kin * Cw * F;
  DCm = km * Cf;
  Dy = [ DCf DCw DCm ]
end
以及用于获取指定点的解的函数

function y_data = solution(x_data,y0,p)
  sol = ode45(@(t,y)derivs(t,y,p), [x0,xe], y0)
  y_data = deval(sol, x_data)
end
现在,传递到装配过程的函数为

@(p) solution(x_data,y0,p) 
您将获得一个更详细的值表,其中包含优化的参数
p_opt
,用于通过

x_plot = linspace(x0,xe,300)
y_plot = solution(x_plot,y0,p_opt)
plot(x_plot, y_plot)

什么是F?Cw(i)是什么意思?谢谢你的回答!在本程序中,实际安装在哪里?我必须在某处添加lsqcurvefit吗?是的。这只是关于装配过程的输入。您现在需要了解实际的接口是什么,如有必要,还需要对此进行调整。同时检查
F
是否为未重命名的
Cf