1
我正試圖對插值函數進行雙重集成,其中r = r(x,y)
。python集成內插函數(interp1d)
from scipy import interpolate
import scipy as sp
r = [0, 1, 2]
z = [0, 1, 2]
def cartesian(x, y, f):
r = sp.sqrt(x**2 + y**2)
return f(r)
interp = interpolate.interp1d(r, z)
print(cart(1,1,interp))
a = sp.integrate.dblquad(cart, 0, 1, lambda x: 0, lambda x: 1, args=(interp))
print(a)
執行笛卡爾函數一次會產生正確的答案。但是整體給人的以下錯誤:
TypeError: integrate() argument after * must be an iterable, not interp1d
我不明白爲什麼我的功能不是iterable
,不知道如何將它轉換成一個iterable
形式。非常感謝您的幫助。