scipy.optimize曲线拟合

时间:2016-03-02 12:54:14

标签: python scipy curve-fitting

我只是试图捕获scipy.optimize.curve_fit函数抛出的ValuError,但我意识到它没有被识别为有效的异常。

这是我的代码:

     from scipy.optimize import curve_fit

    ksi=( (185/((xdata_1/420)**2 + (420/xdata_1)**2 + 90 )) + (27/((xdata_1/800)**4 + (800/xdata_1)**4 + 5.50)) + (0.005/((xdata_1/2200)**2 + (2200/xdata_1)**2 - 1.95)) + (0.012/((xdata_1/180000)**2 + (180000/xdata_1)**2 -1.8))+ (0.01/((xdata_1/97000)**2 + (97000/xdata_1)**2 -1.95)) + (0.03/((xdata_1/250000)**2 + (250000/xdata_1)**2))  )

     def power(xdata_1,cc,dd,gg):
         global ksi
         return cc*(xdata_1**(dd))*(10**(-1.572*gg*(ksi)))

这是我得到的完整警告:

ValueError:操作数无法与形状(455,)(1772,)

一起广播

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

猜测,因为你没有上传整个代码。认为我前一段时间遇到了同样的问题。我意识到我一直在使用列表而不是Numpy数组。转换为数组为我修复了它。阵列也需要具有相同的大小。