x 和 y 必须具有相同的第一维,但具有形状 (3,) 和 (1,),同时使用 lmfit 进行拟合

x and y must have same first dimension, but have shapes (3,) and (1,), while fitting with lmfit

我正在尝试使用 lmfit 来拟合公式,但出现了上述错误。 这是我的数据文件 data

import numpy as np
import math
from scipy import optimize
import matplotlib.pyplot as plt
from numpy import exp, loadtxt, pi, sqrt, sinh
from lmfit import Model


    k = 1.38e-23
    hcut = 1.0e-34
    e = 1.6e-19
    B = 6.15

    a = (2*(pi**2)*k)/(hcut*e*B)
    c = 2.12
    b = hcut/(2*pi*k)

    data = loadtxt('data.csv')
    x = data[:, 0]
    y = data[:, 1]
    z = math.sinh(0.5)
    z1 = math.sinh(a*9.1e-31)

    def LK(x, t, m):
       return (4*c*exp(-(a*m*b)/t))
    gmodel = Model(LK)
    result = gmodel.fit(y, x=x, t=1e-10, m=1e-19)

    print(result.fit_report())

    plt.plot(x, y, 'bo')
    plt.plot(x, result.init_fit, 'k--', label='initial fit')
    plt.plot(x, result.best_fit, 'r-', label='best fit')
    plt.legend(loc='best')
    plt.show()

我正在使用此处已有的代码进行尝试:https://lmfit.github.io/lmfit-py/model.html,但不知何故它似乎不起作用

您的模型函数不包含 x,因此 return 也将包含标量值。合体会很容易放弃。 FWIW t=1e-10, m=1e-19 是糟糕的初始值,因为它们可能会将函数推到零,以至于拟合永远不会偏离这些值。