我想在 python 中使用带有 8 个独立参数(a、b、c、d、e、f、g、h)的 curve_fit
我从实验者那里得到的原始数据:
全局函数是正态分布。
mu和sigma后面有一个单独的模型方程:
mu(a,b,c,d,oc1,oc2,oc3)= a * b^oc1 * c^oc2 * d^oc3
sigma(e,f,g,h,oc1,oc2,oc3) = e * f^oc1 * g^oc2 * h^oc3
from scipy.optimize import curve_fit
import numpy as np
def normalmodel(x, mu, sigma, oc1, oc2, oc3, a, b, c, d, e, f, g, h):
mu = a * b^oc1 * c^oc2 * d^oc3
sigma = e * f^oc1 * g^oc2 * h^oc3
#normal distribution definition
coefficient = 1 / math.sqrt(2 * math.pi * sigma**2)
exponent = - (x - mu)**2 / (2 * sigma**2)
return coefficient * math.exp(exponent)
xdata = np.column_stack((oc1, oc2, oc3))
ydata = np.column_stack((mean, std))
popt, pcov = curve_fit(normalmodel, xdata, ydata)
运行优化的 curve_fit 函数的正确输入是什么?
或者有更顺畅的方法吗?