【问题标题】:How to constraint multiplication of certain parameters to constant value in lmfit?如何将某些参数的乘法约束为lmfit中的常数值?
【发布时间】:2021-09-30 14:17:01
【问题描述】:

我有一个带有多个参数的模型,比如“A”、“B”和“C”。它们都被设置为具有一些最小和最大界限,受其物理量表示的驱动。

此外,我需要将他们的产品限制为某个值(比如 1),例如“A”*“B”*“C”== 1。

我试过了:

p.add('mult_constraint", expr = 'A*B*C==1)

,但这会引发错误: NameError: at expr=''

这样的约束需要怎么写?

【问题讨论】:

  • 上下文是什么?什么编程语言和/或系统、环境?我们需要更多信息。

标签: constraints lmfit


【解决方案1】:

我想你要做的是定义三个参数ABC,约束为ABC=1。这可能看起来像:

 import lmfit
 params = lmfit.Parameters()
 params.add('A', value=0.75, min=0)
 params.add('B', value=5.50, min=0.25)
 params.add('C', expr='1/(A*B)')

也就是说,约束意味着您的一个参数实际上并不是独立变化的,而是由约束和其他参数的值决定的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    相关资源
    最近更新 更多