首页 > 解决方案 > 如何将自变量作为参数传递给 lmfit 最小化

问题描述

我是这个统计的新手。

因此,对于 x 的某些值,我有一个数据集 y = f(x)。我想将此数据拟合到 afunc中,以便y我可以计算 中的每个点的值x

假设我想要拟合的模型类似于

def func(x,a,b,c):
    return a+b*x/c

现在要使用最小化功能,我必须定义参数:

params = Parameters()
params.add('a' , value = 10)
params.add('b' , value = 1)
params.add('c' , value = 2)
result = minimize(func, param, arg=(x, y))

我的问题是,如果我想将我的x变量作为参数并将其作为参数传递怎么办。

基本上,当我x作为变量传递时,我传递的是一个与我的数据集中特定点相对应的数组。但是我想找到x用作参数的用途,因为我想找到x某些数据点的值y

标签: pythonminimizeminimizationlmfit

解决方案


这不是单向的步骤。

我通过使用Model类来实现它lmfit

考虑一下。

我有我命名的模型函数:我MF通过它计算samples原始数据的精确值。

我有原始数据:(Raw_Data例如来自传感器)

那我有一定parameters的。(x, y, z, 样本)

现在我认为样本是一个independent variable.

我的目标是估计其中一个参数。

首先我必须创建一个模型类

mod = Model (MF, parameters, independant_vars = ['samples'] 

然后使用 Parameters() 类设置初始参数。

并添加初始值

fit_params = Parameters()
fit_params.add('x', value = 170)
fit_params.add('y', value = 120)
fit_params.add('z', value = 110)

然后你适合模型

Result - mod.fit(Raw_data, params = fit_params, samples = your_samples)

输出是一个dict


推荐阅读