This first function, infinitize
, transforms some integrator into a new integrator with the same interface that can handle an infinite endpoint.
This implementation can only handle one endpoint at a time, and, the way it's written, both endpoints have to have the same sign. For an easier interface to this transformation, see infinite/evaluate-infinite-integral
in infinite.cljc
.
"To deal with an integral that has an integrable power-law singularity at its lower limit, one also makes a change of variable." (Press, p138)
A "power-law singularity" means that the integrand diverges as $(x - a)^{-\gamma}$ near Loading....
We implement the following identity (from Press) if the singularity occurs at the lower limit:
Loading...And this similar identity if the singularity occurs at the upper limit:
Loading...If you have singularities at both sides, divide the interval at some interior breakpoint, take separate integrals for both sides and add the values back together.
The next two functions specialize the inverse-power-law-*
functions to the common situation of an inverse power law singularity.
From Press, section 4.4: "Suppose the upper limit of integration is infinite, and the integrand falls off exponentially. Then we want a change of variable that maps
Loading...into Loading... (with the sign chosen to keep the upper limit of the new variable larger than the lower limit)."
The required identity is:
Loading...