相关疑难解决方法(0)

Python和lmfit:如何使用共享参数拟合多个数据集?

我想使用lmfit模块将函数拟合到可变数量的数据集,包括一些共享和一些单独的参数.

以下是生成高斯数据并分别拟合每个数据集的示例:

import numpy as np
import matplotlib.pyplot as plt
from lmfit import minimize, Parameters, report_fit

def func_gauss(params, x, data=[]):
    A = params['A'].value
    mu = params['mu'].value
    sigma = params['sigma'].value
    model = A*np.exp(-(x-mu)**2/(2.*sigma**2))

    if data == []:
        return model
    return data-model

x  = np.linspace( -1, 2, 100 )
data = []
for i in np.arange(5):
    params = Parameters()
    params.add( 'A'    , value=np.random.rand() )
    params.add( 'mu'   , value=np.random.rand()+0.1 )
    params.add( 'sigma', value=0.2+np.random.rand()*0.1 )
    data.append(func_gauss(params,x))

plt.figure()
for y in data:
    fit_params …
Run Code Online (Sandbox Code Playgroud)

python parameters curve-fitting lmfit

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

curve-fitting ×1

lmfit ×1

parameters ×1

python ×1