使用 LMFIT 和参数 class 设置优化并检查条件

Set an optimization using LMFIT and Parameters class with condition to be checked

如何在 LMFIT 中使用 ExpressionModel 来拟合可表示为的条件模型:

from lmfit.models import ExpressionModel
# read(xdata and ydata) here
if xdata < some_parameter_value:
    model = ExpressionModel('expression1')
else:
    model = ExpressionModel('expression2')

如何将这个条件模型写成一个模型(global_model)并将其传递给拟合方法

results = global_model.fit(y, x = x, parameters_dictionary)

some_parameter_value:是 parameters_dictionary 的成员,使用参数 class

创建

lmfit 模型是独立于数据定义的,不能用于 "part of the data"。

也许您可以将模型的表达式重写为:

 expr1 if x < x0 else expr2

否则,我认为您必须编写一个自定义模型来测试条件并根据该条件进行不同的计算。