Python lmfit 施加微妙的约束
Python lmfit impose subtle constraints
我正在处理以下问题:
d1=-1/b1*log((p1*t-a1)/c1)
d2=-1/b2*log((p2*t-a2)/c2)
d3=-1/b3*log((p3*t-a3)/c3)
其中 a1,a2,a3,b1,b2,b3,c1,c2,c3,p1,p2,p3
是已知的,理论上 d1=d2=d3>0
,所以我尝试找到合适的 t
来最小化 (d1-d2)^2+(d2-d3)^2+(d3-d1)^2
。我尝试使用lmfit来做,但不知道施加d>0
之类的限制并且log中的东西大于0,即(p*t-a)/c>0
。 There are simple examples in lmfit's document,就我而言,我不知道该怎么做。有人可以帮忙吗?非常感谢你。
假设您知道 b1
、b2
、b3
、c1
、c2
、c3
的值,您可以将t
的值的界限,因此 d1>0
。如果 b1
为正数,
d1>0
表示 log((p1*t-a1)/c1)
> 0,因此 log 函数的参数 大于 1(不仅是 "greater than 0")。这意味着 p1*t-a1 > c1
或 t > (c1 + a1)/p1
,依此类推。因此,您可以为 t
创建一个参数并将其最小值设置为 [(c1+a1)/p1, (c2+a2)/p2, (c3+a3)/p3]
中的最大值以满足 d1,d2,d3>0
.
我正在处理以下问题:
d1=-1/b1*log((p1*t-a1)/c1)
d2=-1/b2*log((p2*t-a2)/c2)
d3=-1/b3*log((p3*t-a3)/c3)
其中 a1,a2,a3,b1,b2,b3,c1,c2,c3,p1,p2,p3
是已知的,理论上 d1=d2=d3>0
,所以我尝试找到合适的 t
来最小化 (d1-d2)^2+(d2-d3)^2+(d3-d1)^2
。我尝试使用lmfit来做,但不知道施加d>0
之类的限制并且log中的东西大于0,即(p*t-a)/c>0
。 There are simple examples in lmfit's document,就我而言,我不知道该怎么做。有人可以帮忙吗?非常感谢你。
假设您知道 b1
、b2
、b3
、c1
、c2
、c3
的值,您可以将t
的值的界限,因此 d1>0
。如果 b1
为正数,
d1>0
表示 log((p1*t-a1)/c1)
> 0,因此 log 函数的参数 大于 1(不仅是 "greater than 0")。这意味着 p1*t-a1 > c1
或 t > (c1 + a1)/p1
,依此类推。因此,您可以为 t
创建一个参数并将其最小值设置为 [(c1+a1)/p1, (c2+a2)/p2, (c3+a3)/p3]
中的最大值以满足 d1,d2,d3>0
.