Strange problem with double integrals
I need to calculate a double of integral a large expression numerically. But, I found a strange error. The code:
def doubleIntegral():
def f2(theta):
def f1(phi):
return theta*phi/pi
return numerical_integral(f1,0,2*pi)[0]
return numerical_integral(f2,0,pi)
works. but
a = theta*phi/pi # Suppose this is a huge expression that came out of previous calculations
def doubleIntegral():
def f2(theta):
def f1(phi):
return a
return numerical_integral(f1,0,2*pi)[0]
return numerical_integral(f2,0,pi)
doesn't work
unable to simplify to float approximation
unable to simplify to float approximation
.
.
.
What is going on? And how can I fix this?
Try doing an internet search for using lambda functions for this. http://ask.sagemath.org/question/68/double-integral might be helpful along these lines...
my function doubleIntegral does the same thing as what that nestled numerical_integral with lambda functions (from that question) does. It has the exact same problem. Trying the internet search...