Python 多参数估计。广播问题

Python 多参数估计。广播问题,python,numpy,scipy,least-squares,array-broadcasting,Python,Numpy,Scipy,Least Squares,Array Broadcasting,我需要用非线性最小二乘回归得到参数(kf,beta1,beta2,gamma)。 错误消息是: ValueError:操作数无法与形状(4,7)(0,)一起广播 我用收集到的下一个数据做了4个实验: flujo_ms(x轴数据):具有7个位置的阵列 “fri”:每个“fri”是由7个位置组成的数组 brfv:取四个常量值,每个实验取一个常量 我希望将这四个实验结合起来,使参数估计的误差最小化 import numpy as np from scipy.optimize import leas

我需要用非线性最小二乘回归得到参数(kf,beta1,beta2,gamma)。 错误消息是: ValueError:操作数无法与形状(4,7)(0,)一起广播

我用收集到的下一个数据做了4个实验:

  • flujo_ms(x轴数据):具有7个位置的阵列
  • “fri”:每个“fri”是由7个位置组成的数组
  • brfv:取四个常量值,每个实验取一个常量
我希望将这四个实验结合起来,使参数估计的误差最小化

import numpy as np
from scipy.optimize import leastsq

flux = [flujo_ms, flujo_ms, flujo_ms, flujo_ms]
brfv = [[0.00694] * 7, [0.00972] * 7, [0.0139] * 7, [0.0208]*7]
fr = [fr1, fr2, fr3, fr4]


def foulingRate(parameters, flux, brfv, mlts=8.22):
    kf, beta1, beta2, gamma = parameters
    FR = kf * np.exp(flux * (beta1 * brfv + beta2 * mlts + gamma))
    return FR


def objective(pars, yData, xData, brfv):
    # it will minimize this function
    err = yData - foulingRate(pars, xData, brfv)
    return err

x0 = [5.6 * 10 ** -4, -2.48 * 10 ** 8, 5.1 * 10 ** 4,
      2.81 * 10 ** 6]  # initial values for the parameters

plsq = leastsq(objective, x0, args=(fr, flux, brfv))
print("Fitted parameters = {0}".format(plsq[0]))

我找到了解决办法。我使用了模块lmfit:cars9.uchicago.edu/software/python/lmfit

我找到了一个解决方案。我使用了lmfit模块:如果有人对解决方案感兴趣,请在这里写一条消息(我认为这样做是可以的)。