Integrating over an interpolate function (interp1d) in python -


i trying double integration on interpolated function, in r = r(x,y).

from scipy import interpolate import scipy 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))  = sp.integrate.dblquad(cart, 0, 1, lambda x: 0, lambda x: 1, args=(interp)) print(a) 

executing cartesian function once produces correct answer. integral gives the following error:

typeerror: integrate() argument after * must iterable, not interp1d 

i don't understand why function isn't iterable , not know how convert iterable form. many help.

args supposed sequence of arguments, so:

sp.integrate.dblquad(cart, 0, 1, lambda x: 0, lambda x: 1, args=(interp,)) 

the comma after interp critical: in python, (x) x, (x,) tuple (i.e. sequence).


Comments

Popular posts from this blog

account - Script error login visual studio DefaultLogin_PCore.js -

xcode - CocoaPod Storyboard error: -