【发布时间】:2019-04-20 02:16:56
【问题描述】:
我正在尝试将我必须的一些数据拟合到与 x 成反比的模型中。我查看了一些类似的线程,我认为问题可能与扩展我的数据有关,但我已经对此进行了试验,但不幸的是没有成功。
import numpy as np
import scipy.optimize as optimize
import matplotlib.pyplot as plt
x = np.array([367.18,411.42,443.76,565.22,689.31,778.94,867.38,963.98,1085.79,1112.01,1212.47,1299.21,1408.08,1458.8,1528.76])
y = np.array([17.21,13.38,9.41,11.40,6.40,6.62,6.11,5.50,5.03,4.52,2.34,3.62,3.84,5.97,1.97])
def f(a,n,x1):
return (a*np.power(x1,-n));
popt, pcov = optimize.curve_fit(f,x,y, diag=(1./x.mean(),1./y.mean()))
x1 = np.linspace(0,1700,num =1700)
plt.plot(x1, f(x1, *popt))
plt.plot(x,y,'ro')
plt.show()
print(popt, pcov)
结果是这样的: Plot
【问题讨论】:
标签: python scipy curve-fitting