[英]Integrate with scipy
我想將x**(-2/3)*(x-1)**(1/3)
從x**(-2/3)*(x-1)**(1/3)
進行積分,我曾經更改過變量並使用Simpson規則來解決它,現在我想嘗試一些更快的方法。
我的代碼:
x1 = lambda x: x**(-2/3)*(x-1)**(1/3)
integrate.quad(x1,0,1)
錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/scipy/integrate/quadpack.py", line 281, in quad
retval = _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points)
File "/usr/lib/python3/dist-packages/scipy/integrate/quadpack.py", line 345, in _quad
return _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)
quadpack.error: Supplied function does not return a valid float.
我該如何解決?
即使標題說與numpy集成,我想您的意思是scipy。您的問題是您的函數中有復數。 例如,對於[0,1 (x-1)**(1/3)
,部分(x-1)**(1/3)
變得復數,但是scipy.integrate.quad
不處理復數。 有關更多信息,請參見例如, 使用scipy.integrate.quad來對復數進行積分 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.