Can Python handle numeric integration with exponential functions?

4 replies · 4K views · last reply
sola maths
Messages
8
Reaction score
0
I'm trying to write a python program that is able to numerically execute functions of the form:

y(t) = exp(Integrate[A(x),x]) within the bounds of 0 and t

I tried using quad from scipy.integrate but it seems not to be able to evaluate expressions of this form.

Any other suggestions on appropriate packages or commands?
 
sola maths said:
I'm trying to write a python program that is able to numerically execute functions of the form:

y(t) = exp(Integrate[A(x),x]) within the bounds of 0 and t

I tried using quad from scipy.integrate but it seems not to be able to evaluate expressions of this form.

Any other suggestions on appropriate packages or commands?

Can you be a bit more specific sola maths? Do you mean:

[tex]y(t) = \exp(\int_0^t A(x) \, dx)[/tex]

You have some specific function A(x) that you can evaluate numerically?

Also, is that just you integrand? Do you need to evaluate,

[tex]\int_a^b \, e^{\int_0^t A(x) \, dx} \, dt[/tex]
 
Hi uart,

Yes, I have some function A(x) that I need to evaluate numerically as x changes. The first expression you wrote is what I meant.
 
sola maths said:
Hi uart,

Yes, I have some function A(x) that I need to evaluate numerically as x changes. The first expression you wrote is what I meant.

Ok so it's just [itex]y(t) = \exp(\int_0^t A(x) \, dx)[/itex] that you need to evaluate.

Quad can do this easily, but only for one particular value of "t" at a time. However you could call it (quad) from within a function if you wished to properly make a function of "t". For example,

Code:
def functA(x):
     return x*x/2.0

def functY(t):
     return exp(integrate.quad(functA,0,t)[0])

functY(3)
90.017131300521896
 
Your explanation makes lots of sense...

I'd defined a function but had difficulty making it a function of t... Thanks.