【问题标题】:Python's Lmfit package not converging to a meaningful resultPython 的 Lmfit 包没有收敛到有意义的结果
【发布时间】:2021-04-24 17:26:48
【问题描述】:

我正在运行下面的代码:

import numpy as np
from lmfit import Model

def exp_model(x, ampl1=1.0, tau1=0.1):             
    exponential = ampl1*np.exp(-x/tau1)
    return exponential

x = np.array([2.496,2.528,2.56,2.592,2.624])
y = np.array([8774.52,8361.68,7923.42,7502.43,7144.11])

dec_model = Model(exp_model, nan_policy='propagate')
results = dec_model.fit(y, x=x, ampl1=y[0])

results.plot()

我得到的结果是

这意味着拟合只是由于某种原因而失败。我不知道为什么。它以前曾用于类似的数据。任何帮助将不胜感激。

【问题讨论】:

    标签: python python-3.x curve-fitting lmfit


    【解决方案1】:

    它没有收敛,因为 tau1 参数的初始值与实际值相差太远。下面的代码运行良好。

    import numpy as np
    from lmfit import Model
    
    def exp_model(x, ampl1=1.0, tau1=1.0): # The initial value of tau1 was changed from 0.1 to 1.0            
        exponential = ampl1*np.exp(-x/tau1)
        return exponential
    
    x = np.array([2.496,2.528,2.56,2.592,2.624])
    y = np.array([8774.52,8361.68,7923.42,7502.43,7144.11])
    
    dec_model = Model(exp_model, nan_policy='propagate')
    results = dec_model.fit(y, x=x, ampl1=y[0])
    
    results.plot()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      相关资源
      最近更新 更多