最小二乘拟合python中的复数有错误

时间:2014-12-23 17:39:26

标签: python complex-numbers least-squares

这里的道歉是代码。 我试图将贝塞尔函数拟合到某些2D数据,贝塞尔函数很复杂。但是,当我适应数据时,我总是得到一个数组错误,我无法排序(我是python的新手)。最后,代码理想情况下会给出错误来解释导入数据的分散。

from numpy import *
from pylab import *
from scitools.std import *
import csv
import matplotlib.pyplot as plt
import scipy.special
from scipy.optimize import curve_fit



xdata=np.array([7.6,22.6,47.6,97.6,147.6,200,300,400,500,600,700,800,900,1000,1100,1200,1300])
ydata=np.array([1.19E-05,1.05E-05,1.06E-05,9.92E-06,9.85E-06,9.88E-06,9.45E-06,9.77E-06,9.59E-06,1.09E-05,1.22E-05,1.39E-05,1.78E-05,2.04E-05,2.61E-05,3.17E-05,3.86E-05])





b = 1.63854196884e+39
def func(x,p1,p2):
    return p2*(sqrt((scipy.special.jn(1,(1j*sqrt((8*b*p1**3*(x/10000))))))/(1j*sqrt((2*b*p1**3*(x/10000))))))


popt, pcov = curve_fit(func, xdata, ydata,p0=(1.0,0.2)) 

此代码旨在显示粗略问题,但最后我想要p1和p2的值加上错误。

我得到的错误就是这个,(我知道它基本但我一直搞乱)


TypeError Traceback(最近一次调用最后一次)

TypeError:数组无法安全地转换为所需类型

错误回溯(最近一次调用最后一次) execfile中的/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/IPython/utils/py3compat.pyc(fname,* where)     173其他:     174 filename = fname - > 175 内置 .execfile(文件名,* where)

/ Users / sean / Cardiff / DTO / paulsen / carley report / crap.py in()      21      22 ---> 23 popt,pcov = curve_fit(func,xdata,ydata,p0 =(1.0,0.2))      24      25

curve_fit中的

/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/scipy/optimize/minpack.pyc(f,xdata,ydata,p0,sigma,absolute_sigma,** KW)     553#从kw中删除full_output,否则我们将其传递两次。

554     return_full = kw.pop('full_output', False)

- > 555 res = leastsq(func,p0,args = args,full_output = 1,** kw)     556(popt,pcov,infodict,errmsg,ier)= res     557

/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/scipy/optimize/minpack.pyc in leastsq(func,x0,args,Dfun,full_output,col_deriv,ftol, xtol,gtol,maxfev,epsfcn,factor,diag)     377 maxfev = 200 *(n + 1)     378 retval = _minpack._lmdif(func,x0,args,full_output,ftol,xtol, - > 379 gtol,maxfev,epsfcn,factor,diag)     380其他:     381如果col_deriv:

非常感谢任何帮助。 干杯

0 个答案:

没有答案