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

Numerically integrate bivariate function

  1. Feb 12, 2016 #1
    What methods are available for integrating, e.g.
    \int^{\infty}_{0} f(x) dx \int^{x}_{0} g(x,y) dy

    numerically without resorting to symbolic integration. Thanks
  2. jcsd
  3. Feb 12, 2016 #2


    User Avatar
    Homework Helper

    Assuming that the integral exists and there is a sufficiently large x for which the function is approximately zero, then you could look at this as a bounded integral.
    ## \int_0^L\int_0^x f(x) g(x,y) dy dx ##
    Numerically, you would partition the interval from 0 to L with N+1 points ##\{x_i\}_{i=0}^N##, such that ##x_0 = 0 ## and ##x_N = L. ##
    Then you would have a region of integration that grows like half a square.

    If you apply a midpoint rule for a simple approximation, this might look like ( with ##dx_i = x_i - x_{i-1}##) :
    ## \int_0^L\int_0^x f(x) g(x,y) dy dx \approx \sum_{ i = 1 }^N dx_i f\left( \frac{x_i + x_{i-1}}{2}\right) \sum_{j=1}^i dx_j g\left(\frac{x_i + x_{i-1}}{2}, \frac{x_j + x_{j-1}}{2} \right)##

    Does that help?
  4. Feb 13, 2016 #3


    User Avatar
    Homework Helper

    I think I would first move to polar coordinates, so that [tex]I = \int_0^\infty \int_0^x f(x)g(x,y)\,dy\,dx =
    \int_0^\infty \int_0^{\pi/4} f(r\cos\theta) g(r\cos\theta, r\sin\theta) r\,d\theta\,dr.[/tex] Then I'd set [itex]r = \mathrm{arctanh}(s)[/itex] so that [tex]
    I = \int_0^1 \int_0^{\pi/4} f(\mathrm{arctanh}(s)\cos\theta) g(\mathrm{arctanh}(s)\cos\theta, \mathrm{arctanh}(s)\sin\theta) \frac{\mathrm{arctanh}(s)}{1 - s^2}\,d\theta\,ds.[/tex]
    Now I'm integrating over a finite rectangle, and I probably want to use an algorithm which doesn't require me to evaluate the integrand at [itex]s = 1[/itex].

    Alternatively, I could split the integral as [tex]
    \int_0^1 \int_0^{\pi/4} f(r\cos\theta) g(r\cos\theta, r\sin\theta) r\,d\theta\,dr + \int_1^\infty \int_0^{\pi/4} f(r\cos\theta) g(r\cos\theta, r\sin\theta) r\,d\theta\,dr[/tex]
    and in the second integral make the substitution [itex]z = 1/r[/itex], to obtain [tex]
    I = \int_0^1 \int_0^{\pi/4} f(r\cos\theta) g(r\cos\theta, r\sin\theta) r
    + f(r^{-1}\cos\theta)g(r^{-1}\cos\theta,r^{-1}\sin\theta)r^{-3}\,d\theta\,dr
    [/tex] and this time I probably want to use an algorithm which doesn't require me to evaluate the integrand at [itex]r = 0[/itex].
  5. Feb 13, 2016 #4
    Thanks, the change of variables is intuitive, but I don't know any algorithms?
    Also, in the last step in your alternative procedure shouldn't the second integral be over z not r?
    Last edited: Feb 13, 2016
  6. Feb 13, 2016 #5


    User Avatar
    Gold Member

    For algorithms I suggest the Burden Faires, 8th edition, there is a section regarding the approximations of single and double integrals ...
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook