Método del trapecio en scilab, código integración numérica
Transcript of Método del trapecio en scilab, código integración numérica
Método del Trapecio en
Scilab, Código
Integración Numérica.CLASE 12
14-MARZO-2015
Integración Numérica en Matlab
El método del trapecio y también conocido como ‘Regla de Simpson‘,
aunque esta última en realidad es una ‘optimización’ de la regla de los
trapecios. Pues bueno, como el titulo lo indica, esta vez lo
implementaremos en el conocido software de código abierto Scilab.
Regla de los Trapecios.
La esencia del método del trapecio es calcular el área que existe bajo la
curva definida por 𝑦 = 𝑓(𝑥) y el eje 𝑋, en un intervalo dado [𝑎, 𝑏] mediante
el uso de N ‘trapecios’ o rectángulos, además suponiendo que dicha
función es (𝑦 debe ser) continua en todo este intervalo, lo anterior lo
ilustramos en la figura 1.
Regla de los Trapecios.
Figura 1: Función 𝑌(𝑥) , el área bajo la curva, se
puede aproximar mediante n trapecios, en este
caso 4 trapecios.
Regla de los Trapecios.
En matemática la regla del trapecio es un método de integración
numérica, es decir, un método para calcular aproximadamente el valor
de la integral definida
𝑎
𝑏
𝑓 𝑥 𝑑𝑥
Regla de los Trapecios.
La regla se basa en aproximar el valor de la integral de 𝑓(𝑥) por el de la
función lineal que pasa a través de los puntos (𝑎, 𝑓(𝑎)) 𝑦 (𝑏, 𝑓(𝑏)) . La
integral de ésta es igual al área del trapecio bajo la gráfica de la función
lineal. Se sigue que
𝑎
𝑏
𝑓 𝑥 𝑑𝑥 ≈ 𝑏 − 𝑎𝑓 𝑎 + 𝑓 𝑏
2
Regla de los Trapecios.
y donde el término error corresponde a
Siendo 𝜉 un número perteneciente al intervalo [𝑎, 𝑏].
−𝑏 − 𝑎 3
12𝑓 2 𝜉
Regla de los Trapecios.
Regla del trapecio compuesta.
La regla del trapecio compuesta o regla de los trapecios es una forma de
aproximar una integral definida utilizando n trapecios. En la formulación de
este método se supone que 𝑓 es continua y positiva en el intervalo [𝑎, 𝑏]. De tal
modo la integral definida 𝑎𝑏𝑓 𝑥 𝑑𝑥 representa el área de la región delimitada
por la gráfica de 𝑓 y el eje 𝑥, desde 𝑥 = 𝑎 hasta 𝑥 = 𝑏. Primero se divide el
intervalo [𝑎, 𝑏] en n subintervalos, cada uno de ancho ∆𝑥 =𝑏−𝑎
𝑛.
Después de realizar todo el proceso matemático se llega a la siguiente
fórmula:
𝑎
𝑏
𝑓 𝑥 𝑑𝑥 ≈ℎ
2𝑓 𝑎 + 2𝑓 𝑎 + ℎ + 2𝑓 𝑎 + 2ℎ + ⋯+ 𝑓(𝑏)
Regla del trapecio compuesta.
Donde ℎ =𝑏−𝑎
𝑛y n es el número de divisiones
La expresión anterior también se puede escribir como:
𝑎
𝑏
𝑓 𝑥 𝑑𝑥 ≈𝑏 − 𝑎
2
𝑓 𝑎 + 𝑓(𝑏)
2+
𝑘=1
𝑛−1
𝑓 𝑎 + 𝑘𝑏 − 𝑎
𝑛
Regla del trapecio compuesta.
Regla del trapecio compuesta.
El error en esta aproximación se corresponde con :
−𝑏−𝑎 3
12𝑛𝑓 2 𝜉
Siendo n el número de subintervalos
Regla del trapecio compuesta.
Ejemplo
123𝑥𝑑𝑥
Primero se obtiene ℎ, de los limites de la integral que representan 𝑎 𝑦 𝑏 y
para 𝑛 = 6 queda:
ℎ =𝑏−𝑎
𝑛=2−1
6=1
6
Regla del trapecio compuesta.
Y ahora se sustituye en la formula
𝑎𝑏𝑓 𝑥 𝑑𝑥 ≈
ℎ
2𝑓 𝑎 + 2𝑓 𝑎 + ℎ + 2𝑓 𝑎 + 2ℎ +⋯+ 𝑓(𝑏)
Y queda
2
1
1 1 1 1 1 1 13xdx 3 1 2 3 1 1 2 3 1 2 2 3 1 3 2 3 1 4 2 3 1 5 3 2
2 6 6 6 6 6 6
4.5
Algoritmo para el método de los
trapecios. Paso 1.
En primer lugar se divide el intervalo comprendido entre [𝑎, 𝑏] en 𝑁 sub-
intervalos, nombrando al ancho de esos sub-intervalos 𝑑𝑥 (𝑜 𝑑𝑒𝑙𝑡𝑎 𝑑𝑒 𝑋), las
variables 𝑎, 𝑏 𝑦 𝑛 pueden ser ingresadas en medio de la ejecución del
programa con funciones como ‘input’, etc. Recuerden que 𝑏 > 𝑎.
Algoritmo para el método de los
trapecios. Paso 2.
Se realiza la siguiente serie (la sumatoria) a continuación, parece difícil pero
en seguida la desarrollaremos en Scilab, recuerden que el valor de n es el
número de sub-intervalos, así 𝑓(𝑥1), 𝑓(𝑥2), …𝑓(𝑥𝑛) es la función evaluada en
cada sub-intervalo hasta el final.
𝑎
𝑏
𝑓 𝑥 𝑑𝑥 ≈𝑏 − 𝑎
2𝑛𝑓 𝑥0 + 2𝑓 𝑥1 + 2𝑓 𝑥2 +⋯+ 𝑓 𝑥𝑛−1 + 𝑓 𝑥𝑛
Algoritmo para el método de los
trapecios. Paso 2.
Como se puede observar, al principio de la serie tenemos el término que
denominamos 𝑑𝑥 pero divido entre 2, es decir que al inicio de la serie
cuando vayamos a programar el método solo tendremos que hacer 𝑑𝑥/2
multiplicando el resto de la serie, también podemos observar como todos los
términos está multiplicados por 2 excepto el primero y el último término, esto
es importante tenerlo en cuenta para entender el desarrollo del código a
continuación.
Código en Scilab.
Como se puede observar, al principio de la serie tenemos el término que
denominamos 𝑑𝑥 pero divido entre 2, es decir que al inicio de la serie
cuando vayamos a programar el método solo tendremos que hacer 𝑑𝑥/2
multiplicando el resto de la serie, también podemos observar como todos los
términos está multiplicados por 2 excepto el primero y el último término, esto
es importante tenerlo en cuenta para entender el desarrollo del código a
continuación.
Código en Scilab.
Código en Scilab.
A continuación calculamos el primer término de la sumatoria, aquel que
como vemos, no está siendo multiplicado por el 2, y posteriormente hacemos
uso de un ciclo iterativo y cuya variable de control inicia en 2 para evitar el
cálculo del primer y el último termino que no entran en este ciclo, como se
muestra a continuación.
Código en Scilab.
Código en Scilab.
Por último, terminado el ciclo, se procede a calcular el último término de la
serie 𝑓(𝑋𝑛) y se multiplica en la variable ‘area’ por el ‘factor común’
(𝑑𝑥/2) que veíamos fuera de la serie, de esta forma ya se da por terminado
el método como se ve a continuación.
Código en Scilab.
Ejemplo 1.
Para este primer ejemplo vamos a calcular la integral de la función 𝑓(𝑥) =
𝑥², en el intervalo 0 a 1, si realizamos el cálculo analítico de esta integral
sería 𝐹(𝑥) = 𝑥³/3 que evaluada en el intervalo [0,1] debe darnos como
resultado 1/3 o 0.3333, entonces a continuación definimos la función
antes dicha mediante el comando 𝑑𝑒𝑓𝑓() , como vemos ahora,
importante, el nombre de la función debe ser 𝑦 = 𝑓(𝑥):
deff('y=f(x)','y=x^2;')
Ejemplo 1.
luego de definida la función le pasamos los argumentos 𝑎 = 0, 𝑏 = 1 y
usaremos 500 sub-intervalos, es decir 𝑛 = 500 y damos ‘enter’, esto debe
retornar el valor de la integral, como se ve en la imagen:
Ejemplo 1.
Como podemos ver, en primer lugar cargamos la función trapecio.sci al
workspace de Scilab, recuerden que el archivo debe estar en el folder en
el que estemos trabajando en scilab, de lo contrario nos dará un error de
archivo no encontrado, en el segundo paso definimos la función 𝑦 = 𝑓(𝑥)
en nuestro caso será 𝑦 = 𝑥², finalmente llamamos la función con sus límites
de integración y el número de sub-intervalos (𝑛 = 500).
Ejemplo 2.
En este segundo ejemplo, vamos a calcular la integral entre 0 𝑦 𝜋 de 𝑦 =
sin(𝑥) que si la integramos manualmente o le preguntamos a Wolfram
Alpha nos daremos cuenta que su valor real será 2:
Ejemplo 2.
Para este caso realizaremos los mismos pasos que en el anterior ejemplo,
le indicaremos a la función que los límites de integración van de 0 a pi (en
Scilab la contante pi la obtenemos con %pi).
Ejemplo 2.
Como podemos observar (y era de esperarse) el resultado no es
exactamente 2 y esto se debe a que justamente es un método numérico
y la esencia de estos es dar una aproximación (lo más cercana posible) al
resultado correcto, en este caso es bastante acertado y como ya os
había mencionado si aumentamos el valor de N la precisión aumentará
ya que se tomarán más puntos.