【问题标题】:Python lmfit impose subtle constraintsPython lmfit 施加微妙的约束
【发布时间】:2019-11-28 07:02:31
【问题描述】:

我正在处理以下问题:

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>0There are simple examples in lmfit's document,就我而言,我不知道该怎么做。有人可以帮忙吗?非常感谢你。

【问题讨论】:

    标签: python optimization constraints lmfit


    【解决方案1】:

    假设您知道b1b2b3c1c2c3 的值,您可以对t 的值设置界限,这样d1>0。如果b1 是正数, d1>0 表示log((p1*t-a1)/c1) > 0,因此日志函数的参数是大于1(不仅仅是“大于0”)。这意味着p1*t-a1 > c1t > (c1 + a1)/p1,等等。因此,您可以为t 创建一个参数,并将其最小值设置为[(c1+a1)/p1, (c2+a2)/p2, (c3+a3)/p3] 的最大值以满足d1,d2,d3>0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      相关资源
      最近更新 更多