Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Numeric integration in python

  1. Nov 14, 2012 #1
    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?
     
  2. jcsd
  3. Nov 15, 2012 #2

    uart

    User Avatar
    Science Advisor

    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]
     
  4. Nov 15, 2012 #3
    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.
     
  5. Nov 15, 2012 #4

    uart

    User Avatar
    Science Advisor

    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 (Text):

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

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

    functY(3)
    90.017131300521896
     
     
  6. Nov 15, 2012 #5
    Your explanation makes lots of sense...

    I'd defined a function but had difficulty making it a function of t.... Thanks.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook