python二重积分0到正无穷_python函数的数值二重积分
我有點困在一個函數上,我試圖通過scipy,python進行數值積分。在
為了簡單起見,我將函數定義為:integral f(x,y)= SUM[double integral(ax+by)dxdy]
a和b是常數,但對于每個積分的方程,它們是不同的。我已經將每個函數分別積分,然后將所有積分的結果求和,但是這需要花費大量的時間來計算,這對于我正在嘗試實現的目標并不理想。在
是否有一種方法可以通過擴展和來同時集成整個函數:
^{pr2}$
然后將帶有(a,b)元組列表的函數傳遞給scipy的dblquad函數?在
目前,我正在努力在文獻中找到任何與此相關的東西。在
*編輯
我提供了一個示例代碼,以更清楚地顯示我想要實現的目標:import sys
import re
import math
from scipy.integrate import dblquad
def f((x,y),variables):
V=0
for v in variables:
a,b=v
V=V+ax+by
return (V)
def integral(x_max,y_max,variables):
return dblquad(f, 0, y_max, lambda x: 0, lambda x: x_max,args=variables)
def main():
variables=[(1,2),(3,4),(5,6)] #example variables. The length of this list can change with the code I am running.
x_max=y_max=1
integral(x_max,y_max,variables)
if __name__ == '__main__':
main()
因此,返回的錯誤是:Traceback (most recent call last):
File "integration_example.py", line 23, in
main()
File "integration_example.py", line 19, in main
integral(x_max,y_max,variables)
File "integration_example.py", line 14, in integral
return dblquad(f, 0, y_max, lambda x: 0, lambda x: x_max,args=variables)
File "/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py", line 435, in dblquad
return quad(_infunc,a,b,(func,gfun,hfun,args),epsabs=epsabs,epsrel=epsrel)
File "/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py", line 254, in quad
retval = _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points)
File "/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py", line 319, in _quad
return _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)
File "/usr/lib/python2.7/dist-packages/scipy/integrate/quadpack.py", line 382, in _infunc
myargs = (x,) + more_args
TypeError: can only concatenate tuple (not "list") to tuple
很明顯,函數不喜歡我用我寫這篇文章的方式傳遞一系列要放入積分中的值。有辦法嗎?
(抱歉,這可能是更好的措辭方式)。在
總結
以上是生活随笔為你收集整理的python二重积分0到正无穷_python函数的数值二重积分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BugkuCTF-WEB题本地管理员
- 下一篇: mysql查看服务器版本sql_云服务器