【发布时间】:2021-01-19 12:57:35
【问题描述】:
我有N 二维数据序列(x,y) 我正在尝试适应逻辑函数模型y(x)=L/(1+a exp(b*(x-c)))。但是我想对a,b,c 施加限制。通常,如果我想限制它们的值,我会使用来自lmfit 的参数,它就可以完成工作。这次我希望a/b 的比率保持不变(误差为 0.01)。有什么方法可以拟合所有N 序列,从而使a_i/b_i 之间的比率差异最小化?
【问题讨论】:
-
只需将
a替换为b * alpha * ( 1 + 0.01 * 2 / pi * arctan( delta ) ),其中alpha是您想要的常量,delta适合允许的错误。 -
我已经尝试过这样的事情,但是计算机无法轻易找到这样的
alpha。 -
嗯,使用
a和b进行一次合适的健全性检查是否表明首先存在合理的alpha? -
尝试了前 3 个序列。
alpha1=10^-4,alpha2=10^-8,alpha3=5所以现在它们之间存在很大差异。 @mikuszefski -
嗯,看来模型不是真的有效。
标签: python python-3.x optimization scipy curve-fitting