Métodos de integración
Contents
Métodos de integración#
A partir de los apuntes de la prof. Pilar Hernandez Gamazo (U. de València)
import time
print(' Última ejecución ', time.asctime() )
Última ejecución Sat Mar 18 10:56:09 2023
Objectivos#
Presentar y mostrar con ejemplos sencillos los diferentes métodos de integración
Integrales inmediatas,
Integración por partes,
Integración por sustitución,
Integración de fracciones de polinomios,
Integración de funciones trigonométicas.
Presentar las integrales impropias y mostrar algunos ejemplos.
# general imports
%matplotlib inline
%reload_ext autoreload
%autoreload 2
# numpy and matplotlib
import numpy as np
import sympy as sp
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
matplotlib.style.use('ggplot')
import graph_utils as gf
figsize = 6, 3.8
cmap = 'hot'
Integrales inmediatas#
Alguna integrales son inmediatas gracias al 1er teorema del cálculo integral que nos dice que si \(f(x)\) es una función continua.
Integrales inmediatas triviales
¡En estos apuntes \(\log\) es siempre Neperiano!
Otras integrales inmediatas no tan triviales:
Recordemos:
y
Integración por partes#
Sean \(f(x), \, g(x)\) funciones continuas, entonces se cumple:
De:
Ejercicio: Calcula
Solución:
tomamos: \(f(x) = x, \; g'(x) = e^x\), así \(f'(x) = 1, \; g(x) = e^x\), entonces:
Integrales por sustitución#
Sea \(f(x), g'(x)\) continuas y \(F(x)\) primitiva de \(f(x)\), \(F'(x) = f(x)\), se cumple:
dado que por la regla de la cadena, se cumple:
Ejercicio: Calcula
Solución:
Si tomamos:
Por lo tanto:
De forma equivalente podemos hacer el siguiente cambio de variable:
Por lo tanto
En la siguiente celda verificaremos con SymPy la integral.
SymPy es un módulo de Python que nos permite calcular derivadas, integrales, etc con cálculo simbólico.
x = sp.symbols("x")
sp.integrate("1/(x*log(x))", x)
Integración de funciones racionales#
Estas integrales son:
donde el grado de los polinomios comple, \(n < m\):
El método de integrar puede ser largo pero está bien definido.
Se compone de los siguientes pasos:
calcular las raices del polinomio del denominador,
descomponer la razón en suma de razones más sencillas,
integrar cada razón sencilla cuyas integrales están tabuladas.
Cuestión: En el caso de que la razón entre los polinomios sea \(n \ge m\), ¿cómo harías la integral?
Descomposición de polinomios#
El polinomio del denominador se puede descomponer en el producto de polinomios:
donde las \(\alpha_i\) son las \(p\) raices reales, \(i=1, \dots, p\), cada una de ellas con multiplicidad \(n_i\).
y las \(\beta_i, \gamma_i\) son los valores reales que corresponden a las \(q\) raices imaginarias, \(i=1, \dots, q\), que cumplen, \(\beta^2_i - 4 \gamma_i \lt 0\), y que cada una aparece con multiplicidad \(m_i\).
Ejemplo: Descomponer el polinomio: \(Q_3(x) = x^3 + 2x^2 +2x +1\)
Podemos comprobar que una raiz es \(\alpha = -1, \; Q(-1) = -1 + 2 -2 + 1 = 0.\)
Luego el polinomio queda:
Por lo tanto:
que tiene como solución: \(A=B=C=1\).
El polinomio \(x^2 + x + 1\) no tiene raiz real sólo imaginaria, con \(\beta = 1, \gamma = 1\), que cumplen \(\beta^2 - 4 \gamma = -3 < 0\).
La descomposición del polinomio es:
Suma de razones más sencillas#
Dada la descomposición de \(Q_m(x)\), la razón de polinomios puede expresarse como suma de fracciones más simples de polinomios:
Ejemplo: Expresa la siguiente razón como suma de fracciones simples:
El denominador sabemos que puede descomponerse en:
donde hay una raiz real \(\alpha_1 = -1\) con multiplicidad \(n_1=1\), y una compleja con \(\beta_1 = 1, \gamma = 1\) con multiplicidad \(m_1 = 1\)
La razón de polinomios admite la siguiente suma:
Para determinar los coeficientes \(A, B\) y \(C\) igualamos los numeradores:
Lo que implica el siguiente conjunto de igualdades:
cuya solución es: \(A = 1, B= 2, C = 0.\)
Por lo tanto:
Integrales de las razones más sencillas#
La integral de una razón de polinomios, despues de descomponerla en suma de razones más simples, implica la siguientes posibles integrales:
Para las raices reales con \(n=1\)
y para \(n >1\):
Para las raices complejas, para el caso \(m = 1\)
donde \(a = \gamma - \beta^2/4\)
y para el caso \(m >1\):
con \(u = \frac{x + \beta/2}{\sqrt{a}}\)
Y la última integral cumple una regla recurrente:
Ejemplo: Calcula la integral:
Solución La integral será la suma de las integrales de las razones de polinomios que obtuvimos antes.
Por las reglas que vimos anteriormente, estas integrales valen:
y
Así:
En las siguientes celdas verificaremos con SymPy las integrales
x = sp.symbols('x')
sp.integrate("1/(x+1)", x)
sp.integrate("2*x/(x**2+x+1)", x)
Integrales trigonométricas#
Integrales con productos de \(\sin x\) y \(\cos x\)#
Las integrales de la forma:
Admiten los casos:
\(n\) y \(m\) son pares, \(n= 2p, \, m = 2q\). En ese caso utilizamos recursivamente el cambio:
Si \(n\) es impar, \(n = 2p+1\), hacemos el cambio \(u = \cos x, \; \mathrm{d}u = - \sin x \, \mathrm{d}x\):
si \(m\) es impar, \(m = 2q+1\), hacemos el cambio \(u = \sin x, \, \mathrm{d}u = \cos x \, \mathrm{dx}\):
Integrales con productos de \(\sin a x\) y \(\cos b x\)#
Aplicaremos los relaciones trigonométricas:
Integrales racionales con \(\cos x\) o \(\sin x\)#
se pueden transformar en razones de polinomios con el cambio:
así:
Ejemplo: Calcula la integral
con el cambio \(u = \cos x, \; \mathrm{d}u = - \sin x \, \mathrm{d}x\)
En la siguiente celda verificamos la integral con SymPy
sp.integrate("tan(x)", x)
Integrales impropias#
Llamamos integrales impropias aquellas en las que:
uno o los dos límites de integración son \(\pm \infty\),
la función a integrar no está acotada en alguno de los valores del intervalo de integración.
Límites de integración en el infinito#
En el caso de que uno de los límites sea \(\pm \infty\), calculamos las integrales como un límite:
Si el límite existe decimos que la integral converse, si no que diverge.
Ejemplo: Calcula la integral impropia
Calculamos:
La integral converge
En la siguiente celda mostramos la integral
fun = lambda x : 1/x**2
a, b, size = 1, 1e2, 100
xs = np.linspace(a, b, size)
plt.plot(xs, fun(xs), 'black'); # plt.plot(xs, np.zeros(100), 'black');
plt.fill_between(xs, fun(xs), alpha = 0.5);
plt.xlabel(r"$x$"); plt.ylabel(r"$f(x)$"); plt.title(r"$f(x) = \frac{1}{x^2}$");
Ejemplo: Calcula la integral impropia:
Calculamos:
En este caso, la integral diverge
En la siguiente celda mostramos la integral
fun = lambda x : 1/x
a, b, size = 1, 1e2, 100
xs = np.linspace(a, b, size)
plt.plot(xs, fun(xs), 'black'); # plt.plot(xs, np.zeros(100), 'black');
plt.fill_between(xs, fun(xs), alpha = 0.5);
plt.xlabel(r"$x$"); plt.ylabel(r"$f(x)$"); plt.title(r"$f(x) = \frac{1}{x}$");
funciones no acotadas#
Si la función no está acotada en el extremo del intervalo, recurrimos de nuevo a calcular los límites.
Por ejemplo, si la función no está acotada en \(b\), el extremo superior del intervalo, entonces:
y de forma similar para el caso en el que la función no estuviese acotada en \(a\).
Si la función no está acotada en un punto \(c\) en el interior del intervalo \([a, b]\):
Ejemplo: Calcular la integral impropia
La función no está acotada en \(b = 1\), por lo tanto calculamos:
La integral converge.
Lo verificamos en la siguiente celda:
sp.integrate("1/sqrt(1-x)", (x, 0, 1))
En la siguiente celda mostramos la integral:
fun = lambda x : 1/np.sqrt(1-x)
a, b, size = 0., 0.999, 100
xs = np.linspace(a, b, size)
plt.plot(xs, fun(xs), 'black'); # plt.plot(xs, np.zeros(100), 'black');
plt.fill_between(xs, fun(xs), alpha = 0.5);
plt.xlabel(r"$x$"); plt.ylabel(r"$f(x)$"); plt.title(r"$f(x) = \frac{1}{\sqrt{1-x}}$")
plt.ylim(0, 10);
Ejemplo: Calcular la integral impropia
La función no está acotada en el punto interior \(x = 1\).
Calculamos la integral:
Ninguno de los dos límites existe y la integral diverge
Comprobémoslo con SymPy:
sp.integrate("1/(1-x)^2", (x, 0, 2))
En la siguiente celda mostramos la integral
fun = lambda x : 1/(1-x)**2
a, b, size = 0., 2, 100
xs = np.linspace(a, b, size)
plt.plot(xs, fun(xs), 'black'); plt.plot(xs, np.zeros(100), 'black');
plt.fill_between(xs, fun(xs), alpha = 0.5);
plt.xlabel(r"$x$"); plt.ylabel(r"$f(x)$"); plt.title(r"$f(x) = \frac{1}{(1-x)^2}$")
plt.ylim(0, 100);