我正在尝试实施一个从我的实验中拟合电泳数据的程序。
目的是根据数据集中峰的面积,从电泳图中峰的相对区域推导出生物分子相互作用的动力学参数。
由于所有相关的微分方程都是已知的,并且由于方程组具有解析解,如下所述:
Analytical solution manuscript
我开始在matlab中输入相关的方程式(6,8,13,......来自参考手稿)。
这样创建的功能起作用,我可以用它来模拟相互作用物种的电泳图谱。
显然,我现在想使用该函数来拟合实验数据并检索参数(总共8个,Va,Vc,MUa,MUc,k,A0,C0,基线噪声)。
其中一些显然是相关的。示例值可能是(以了解它们的大小):
params0 = [ ...
8.44E-02; ... % Va
1.25E-01; ... % Vc
5.32E-05; ... % MUa
8.87E-05; ... % MUc
4.48E-03; ... % k
6.06E-01; ... % A0
3.00E-00; ... % C0
4.64E-03 ... % noise
];
我的问题是,如果我提供实验数据并尝试类似lsqcurvefit:
[x,resnorm,residual] = lsqcurvefit(@(param,xdata) Electropherogram2(param,xdata,column), params0, time, ydata,lb, ub);
我经常得到非常差的结果,因为我要么用完迭代,要么打出一些(显然不合适)局部最小值或其他......
只有当我用起始值和允许的间隔(即因为我通过其他实验知道可能的值)修补很多时,我最终会得到或多或少的合适,但即便如此,拟合也不如报道的那么好在原稿中(图3)。
该手稿的作者使用了Excel解算器,并且非常友好地提供了图3中使用的原始数据,但是我似乎无法像他们的那样完美地拟合,而几乎没有提供几乎正确的起始值。 / p>
我没有足够的经验知道我可以调整什么来使这个过程减少反复试验。
像全局优化工具箱这样的东西可以帮助我吗?
欢迎任何提示......
答案 0 :(得分:1)
在上面提到的论文(“分析解决方案手稿”)中,暗示自由优化参数是五(Va,Vc,MUa,MUc,k)而不是八,因为(Aeq / Ceq)比率可以从他们的代表方程式,eq。 8为Aeq和(显然)eq。 6为Ceq。
在我看来,更令人不安的是模型中出现以下产品,包括免费的优化参数:
一般来说,当非线性优化算法在非线性模型中作为产品出现时,非线性优化算法在优化自由参数方面存在合理的麻烦。