【发布时间】:2019-01-03 19:20:05
【问题描述】:
我在估计 5 个未知参数 a、b、c、d、e 时遇到问题,这些参数肯定位于区间中。它只是看起来像这样:
import numpy as np
from scipy.optimize import curve_fit
diap_a = np.arange(0.01, 1, 0.2)
diap_b = np.arange(0.01, 30, 5)
diap_c = np.arange(0.01, 2, 0.5)
diap_d = np.arange(0.01, 2, 0.5)
diap_e = np.arange(0.01, 0.3, 0.03)
X = np.arange(0.01, 1, 0.01)
def func(a, b, c, d, e):
return a + b + c + d + e #for example
Y = func(a, b, c, d, e)
我有这样的数据(预期值)
Y1 = [60, 59, 58, 57, 56, 55, 50, 30, 10]
X1 = [0.048, 0.049, 0.05, 0.05, 0.06, 0.089, 0.1, 0.12, 0.134]
我试图以这种方式实现它:
popt, pcov = curve_fit(func, a, b, c, d, e, Y1, X1)
找到有助于拟合曲线的最佳 a、b、c、d、e
plt.plot(Y, X)
plt.show()
但它不起作用。
结果是:
OptimizeWarning: Covariance of the parameters could not be estimated
抱歉,我对问题的表述不当。
【问题讨论】:
-
这不是
curve_fit的用法。你读过documentation吗? -
是的,我试图使用文档中的示例来实现,但不明白如何包含这 5 个参数。
标签: python python-2.7 machine-learning optimization curve-fitting