Shared10 - Improper Integrals Assignment / Improper Integrals Notes.sagewsOpen in CoCalc
This material was developed by Aaron Tresham at the University of Hawaii at Hilo and is Creative Commons License
licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Prereqisites:

  • Intro to Sage
  • Graphing and Solving Equations
  • Limits
  • Symbolic Integration

Improper Integrals

A definite integral is considered "improper" if the interval of integration is unbounded, the function being integrated is unbounded on the interval of integration, or both. In such cases, the usual definition of the definite integral does not apply.

Example 1

Consider the function \displaystyle f(x)=\frac{1}{x^2} . Suppose we wanted the area under this curve for x\ge1 ; in other words, we want \displaystyle \int_1^{\infty} f(x)\,dx . This is an infinite region, so you might assume that it has infinite area. However, in this case the area is actually finite.

plot(1/x^2,xmin=0,xmax=10,ymax=2)+plot(1/x^2,xmin=1,xmax=10,fill='axis')
unknown message type 'text'

To see this, consider the integral \displaystyle\int_1^t \frac{1}{x^2}\,dx for any t>1 . This is a normal definite integral, and the answer is \displaystyle 1-\frac{1}{t} .

What happens as t\to\infty ? We have \displaystyle 1-\frac{1}{t}\to 1 .

So it make sense to say \displaystyle\int_1^{\infty}f(x)\,dx=1 .

Infinite Intervals

The previous example falls under the first type of improper integral, when one or both of the limits of integration is \pm\infty . In this case, the region under the curve is infinite in the horizontal direction.

Here is the definition:

If \displaystyle\int_a^tf(x)\,dx exists for every t\ge a , then we define \displaystyle\int_a^{\infty}f(x)\,dx=\lim_{t\to \infty}\int_a^tf(x)\,dx , provided this limit exists.

If the limit exists, we say the improper integral converges (or is convergent). Otherwise, we say it diverges (or is divergent).

Similarly, if \displaystyle\int_t^bf(x)\,dx exists for every t\le b , then we define \displaystyle\int_{-\infty}^bf(x)\,dx=\lim_{t\to -\infty}\int_t^bf(x)\,dx , provided this limit exists.

Also, if there is a number a such that \displaystyle\int_{-\infty}^af(x)\,dx and \displaystyle\int_a^{\infty}f(x)\,dx both converge, then we define \displaystyle\int_{-\infty}^{\infty}f(x)\,dx=\int_{-\infty}^af(x)\,dx+\int_a^{\infty}f(x)\,dx .

Note: If these integrals converge for one value of a , then they converge for any value of a . The answer does not depend on the choice of a .


It is interesting that \displaystyle\lim_{t\to\infty}\int_{-t}^tf(x)\,dx may not equal \displaystyle\int_{-\infty}^{\infty}f(x)\,dx .

Example 2

Let's explore integrals of the form \displaystyle\int_1^{\infty}\frac{1}{x^p}\,dx .

We already saw what happens when p=2 above, so let's try p=1,\ 3,\ \frac{1}{2},\ \frac{3}{2}, etc.

Interact: please open in CoCalc

Unbounded Integrands

The second type of improper integral is when the integrand (the function being integrated) is unbounded on the interval of integration. In this case, the region under the curve is infinite in the vertical direction.

Example 3

Consider \displaystyle\int_0^1 \ln(x)\, dx .

We have finite limits of integration, but notice that \ln(x) is not bounded on the interval [0,1] , since \displaystyle\lim_{x\to 0^+}\ln(x)=-\infty .

plot(log(x),xmin=0,xmax=2,ymin=-4)+plot(log(x),xmin=0,xmax=1,fill='axis')

Notice that for 0 < t < 1 we have \displaystyle\int_t^1\ln(x)\,dx=t-t\ln(t)-1 .

If we try to compute this integral in Sage, it will ask us for more information.

%var t
integral(log(x),x,t,1)
Error in lines 2-2 Traceback (most recent call last): File "/projects/9189c752-e334-4311-afa9-605b6159620a/.sagemathcloud/sage_server.py", line 879, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> File "/projects/sage/sage-6.7/local/lib/python2.7/site-packages/sage/misc/functional.py", line 663, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 10712, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:52941) return integral(self, *args, **kwds) File "/projects/sage/sage-6.7/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 761, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 994, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:10865) res = super(BuiltinFunction, self).__call__( File "sage/symbolic/function.pyx", line 502, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6801) res = g_function_evalv(self._serial, vec, hold) File "sage/symbolic/function.pyx", line 1065, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:11522) return self._eval0_(*args) File "/projects/sage/sage-6.7/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 176, in _eval_ return integrator(*args) File "/projects/sage/sage-6.7/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 23, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/projects/sage/sage-6.7/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 784, in sr_integral self._missing_assumption(s) File "/projects/sage/sage-6.7/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 993, in _missing_assumption raise ValueError(outstr) ValueError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(t-1>0)', see `assume?` for more details) Is t-1 positive, negative or zero?

Sage needs some information about t . We can give it this information using the assume command.

%var t
assume(t>0)
assume(t<1)
integral(log(x),x,t,1)
forget()  #this forgets the assumptions
-t*log(t) + t - 1

What happens as t\to0 ?

limit(t-t*log(t)-1,t=0,dir='+') #use L'Hospital's Rule for t*ln(t)
-1

So it makes sense to define \displaystyle\int_0^1\ln(x)\,dx=-1 .

Here's the definition in general:

If f(x) is continuous on the interval (a,b] and is unbounded near a , then we define \displaystyle\int_a^bf(x)\,dx=\lim_{t\to a^+}\int_t^bf(x)\,dx , provided this limit exists.

Similarly, if f(x) is continuous on the interval [a,b) and is unbounded near b , then we define \displaystyle\int_a^bf(x)\,dx=\lim_{t\to b^-}\int_a^tf(x)\,dx , provided this limit exists.

Also, if f(x) is continuous on the intervals [a,c) and (c,b] and unbounded near c , then we define \displaystyle\int_a^bf(x)\,dx=\int_a^cf(x)\,dx+\int_c^bf(x)\,dx , provide both of these converge.

Example 4

\int_0^3\frac{1}{x\sqrt{x}}\,dx

Let's look at a graph of the integrand. Notice that it is unbounded near 0.

plot(1/(x*sqrt(x)),xmin=0,xmax=3,ymax=10)

Thus, this is an improper integral, so

\int_0^3\frac{1}{x\sqrt{x}}\,dx=\lim_{t\to 0^+}\int_t^3\frac{1}{x\sqrt{x}}\,dx=\lim_{t\to 0^+}-\frac{2\sqrt{3}}{3}+\frac{2}{\sqrt{t}}=\infty

Therefore, this integral diverges.

%var t
assume(t>0)  #don't forget these assumptions
assume(t<3)
show(integral(1/(x*sqrt(x)),x,t,3))
forget()
\displaystyle -\frac{2}{3} \, \sqrt{3} + \frac{2}{\sqrt{t}}
limit(-2/3*sqrt(3)+2/sqrt(t),t=0,dir='+')
+Infinity

Note that Sage can handle improper integrals. It informs us that this integral is divergent (see the last line of the error output).

integral(1/(x*sqrt(x)),x,0,3)
Error in lines 1-1 Traceback (most recent call last): File "/projects/9189c752-e334-4311-afa9-605b6159620a/.sagemathcloud/sage_server.py", line 736, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> File "/usr/local/sage/sage-6.3.beta6/local/lib/python2.7/site-packages/sage/misc/functional.py", line 799, in integral return x.integral(*args, **kwds) File "expression.pyx", line 10184, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:44846) File "/usr/local/sage/sage-6.3.beta6/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 699, in integrate return definite_integral(expression, v, a, b) File "function.pyx", line 914, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:8891) File "function.pyx", line 504, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:5761) File "/usr/local/sage/sage-6.3.beta6/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 173, in _eval_ return integrator(*args) File "/usr/local/sage/sage-6.3.beta6/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 21, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/usr/local/sage/sage-6.3.beta6/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 786, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent.

Example 5

\int_1^9\frac{1}{\sqrt{9-x}}\,dx

When we look at the graph, we see that the integrand is unbounded near 9.

plot(1/sqrt(9-x),xmin=1,xmax=9,ymax=10)

So we have

\int_1^9\frac{1}{\sqrt{9-x}}\,dx=\lim_{t\to 9^-}\int_1^t\frac{1}{\sqrt{9-x}}\,dx=\lim_{t\to 9^-}(4\sqrt{2}-2\sqrt{9-t})=4\sqrt{2}=2^{5/2}

%var t
assume(t<9)
assume(t>1)
integral(1/sqrt(9-x),x,1,t)
forget()
(4*sqrt(2)) - 2*sqrt(-t + 9)
limit(4*sqrt(2) - 2*sqrt(-t + 9),t=9,dir='-')
2^(5/2)

Here is the direct computation:

integral(1/sqrt(9-x),x,1,9)
2^(5/2)

Example 6

\int_0^3\frac{1}{x-1}

Notice that \displaystyle\frac{1}{x-1} is unbounded near 1 , which is in the middle of our interval (not one of the limits of integration).

plot(1/(x-1),xmin=0,xmax=3,detect_poles=True,ymin=-20,ymax=20)

In this case, we need to split our integral into two:

\int_0^3\frac{1}{x-1}=\int_0^1\frac{1}{x-1}+\int_1^3\frac{1}{x-1}

Both of the integrals on the right are unbounded near one of the limits of integration, like the previous examples.

Now we use limits to evaluate the two improper integrals.

\int_0^1\frac{1}{x-1}=\lim_{t\to1^-}\int_0^t\frac{1}{x-1}=\lim_{t\to1^-}\left.\ln(|x-1|)\right|_0^t=\lim_{t\to1^-}\ln(|t-1|)=-\infty

%var t
assume(t>0)
assume(t<1)
integral(1/(x-1),x,0,t)
forget()
log(-t + 1)
limit(log(-t + 1),t=1,dir='-')
-Infinity

\int_1^3\frac{1}{x-1}=\lim_{t\to1^+}\int_t^3\frac{1}{x-1}=\lim_{t\to1^+}\left.\ln(|x-1|)\right|_t^3=\lim_{t\to1^+}\ln(2)-\ln(|t-1|)=\infty

%var t
assume(t>1)
assume(t<3)
integral(1/(x-1),x,t,3)
forget()
log(2) - log(t - 1)
limit(log(2) - log(t - 1),t=1,dir='+')
+Infinity

Since one of these integrals (actually both) diverges, the original integral diverges.


Note: It is not correct to say the answer is -\infty+\infty=0 .

Here is the direct computation in Sage. Note that Sage tells us the integral is divergent.

integral(1/(x-1),x,0,3)
Error in lines 1-1 Traceback (most recent call last): File "/projects/9189c752-e334-4311-afa9-605b6159620a/.sagemathcloud/sage_server.py", line 873, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> File "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/sage/misc/functional.py", line 663, in integral return x.integral(*args, **kwds) File "sage/symbolic/expression.pyx", line 10613, in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:52409) return integral(self, *args, **kwds) File "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 731, in integrate return definite_integral(expression, v, a, b, hold=hold) File "sage/symbolic/function.pyx", line 993, in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:10572) res = super(BuiltinFunction, self).__call__( File "sage/symbolic/function.pyx", line 499, in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6457) res = g_function_evalv(self._serial, vec, hold) File "sage/symbolic/function.pyx", line 1064, in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:11230) return self._eval0_(*args) File "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.py", line 175, in _eval_ return integrator(*args) File "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/sage/symbolic/integration/external.py", line 21, in maxima_integrator result = maxima.sr_integral(expression, v, a, b) File "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py", line 782, in sr_integral raise ValueError("Integral is divergent.") ValueError: Integral is divergent.

If you're doing this by hand, it is very important that you notice at the beginning that the integrand is unbounded, and so the integral is improper. If you treat this like a regular definite integral, you will get the wrong answer:

\int_0^3\frac{1}{x-1}=\ln(|x-1|)|_0^3=\ln(|3-1|)-\ln(|0-1|)=\ln(2)

The integral diverges; it is not equal to \ln(2) . So what went wrong? When you compute this like a normal definite integral, you are assuming that the integrand is bounded on the interval of integration (that's part of the definition of the definite integral). Since this assumption is false, you get the wrong answer.

So be on the lookout for unbounded functions!

Example 7

\int_0^{\infty}\frac{1}{\sqrt{x}(1+x)}\,dx

Notice that the interval of integration is unbounded, and the integrand is unbounded near 0. So we need to split this up into two integrals.

plot(1/(sqrt(x)*(1+x)),xmin=0,xmax=10,ymax=5)

So we have

\int_0^{\infty}\frac{1}{\sqrt{x}(1+x)}\,dx=\lim_{t\to 0^+}\int_t^1\frac{1}{\sqrt{x}(1+x)}\,dx+\lim_{t\to \infty}\int_1^t\frac{1}{\sqrt{x}(1+x)}\,dx

=\lim_{t\to 0^+}\left(\frac{\pi}{2}-2\arctan(\sqrt{t})\right)+\lim_{t\to\infty}\left(-\frac{\pi}{2}+2\arctan(\sqrt{t})\right)=\frac{\pi}{2}+\frac{\pi}{2}=\pi

Note: The choice of 1 as the other limit of integration was arbitrary.

%var t
assume(t>0)
assume(t<1)
integral(1/(sqrt(x)*(1+x)),x,t,1)
forget()
1/2*pi - 2*arctan(sqrt(t))
%var t
assume(t>1)
integral(1/(sqrt(x)*(1+x)),x,1,t)
forget()
-1/2*pi + 2*arctan(sqrt(t))
limit(1/2*pi - 2*arctan(sqrt(t)),t=0,dir='+')
1/2*pi
limit(-1/2*pi + 2*arctan(sqrt(t)),t=+Infinity)
1/2*pi

Here's the direct calculation:

integral(1/(sqrt(x)*(1+x)),x,0,+Infinity)
pi

Note: If you get an error that says "Assumption is redundant" or "Assumption is inconsistent," then find a blank line, type forget(), and hit "Run."