Métodos Numéricos para el Calculo Científico con Matlab - TOMO 3
-
Upload
junior-lino-mera-carrasco -
Category
Documents
-
view
34 -
download
5
description
Transcript of Métodos Numéricos para el Calculo Científico con Matlab - TOMO 3
Presentado por:Mera Carrasco, Junior Lino
Malhaber Montenegro, Miguel Angel
Asesor:Dr. Collantes Santisteban, Luis Jaime
UNPRG
2014
Metodos Numericos para el
Calculo Cientıfico con Matlab
TOMO 3
UNIVERSIDAD NACIONAL
“PEDRO RUIZ GALLO”
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCUELA PROFESIONAL DE MATEMATICA
“Metodos Numericos para el CalculoCientıfico con Matlab”
TOMO 3
INTEGRACION NUMERICA
Presentado por:
Mera Carrasco Junior Lino
Malhaber Montenegro Miguel Angel
Asesor:
Dr. Collantes Santisteban Luis Jaime
LAMBAYEQUE − PERU
2014
Introduccion
La presentacion de estos tomos tiene su origen en los Seminarios denominados FUN-
DAMENTOS DE ECUACIONES NO LINEALES, INTERPOLACION, DIFEREN-
CIACION E INTEGRACION NUMERICA PARA EL CALCULO CIENTIFICO y
CALCULO CIENTIFICO DE ECUACIONES NO LINEALES, INTERPOLACION,
DIFERENCIACION E INTEGRACION NUMERICA CON MATLAB desarrollados
en Diciembre del 2012 como investigacion de los cursos de Seminario de Matematica
Pura y Aplicada de la carrera profesional de Matematicas de la Universidad Nacional
Pedro Ruiz Gallo con el asesoramiento del Dr. Luis Jaime Collantes Santisteban, dichos
trabajos enfocaban la parte teorica y practica de algunos temas del Calculo Cientıfico.
Estos tomos no son documentos comerciales, por el contrario decidimos trabajar para
que se encuentre al alcance de todos, es bien sabido la dificultad que tienen estudiantes
y profesionales de ingenierıa, ciencias medicas, ciencias economicas entre otras para ide-
alizar sus problemas y desarrollar un modelo matematico adecuado en algunos casos es
difıcil porque la aplicacion resulta excesivamente compleja o los metodos analiticos no se
adecuan muy bien a sus resultados por ello es conveniente el uso de metodos numericos
los cuales conducen a soluciones aproximadas pero mas manejables y se puede dar uso
a un ordenador provisto de un software adecuado, para nuestro caso Matlab.
Metodos Numericos para el Calculo Cientıfico con Matlab esta divido en 7 tomos:
TOMO 0 Conceptos Previos
TOMO 1 Ecuaciones No Lineales
TOMO 2 Interpolacion
TOMO 3 Diferenciacion e Integracion Numerica
TOMO 4 Ecuaciones Lineales
TOMO 5 Ecuaciones Diferenciales Ordinarias
TOMO 6 Ecuaciones Diferenciales Parciales
Metodos Numericos para el Calculo Cientıfico con Matlab, explicara de manera sencilla
y con ejemplos el uso y la programacion de Interfaces Graficas de Usuario (GUI) ası co-
mo el clasico uso de los archivos “.m” y por supuesto la solucion “manual”.
Este TOMO denominado INTEGRACIONNUMERICA esta dividido en tres capıtu-
los:
En el primero revisaremos la parte teorica sobre los diferentes metodos de Integracion
Numerica, sus demostraciones y sus errores correspondientes.
En el segundo capıtulo solucionaremos problemas mediante el uso de nuestras Interfaces
Graficas con los distintos metodos de solucion y verificaremos cual es el mas efectivo
para distintos problemas.
Dejaremos para el final los codigo fuente utilizados en la creacion de las interfaces grafi-
cas.
”Por favor, soy Rodney McKay, difıcil tarda unos segundos. Imposible, un par de min-
utos. ”Dr. Rodney McKay - Stargate Atlantis
INDICE GENERAL
1. Integracion Numerica 6
1.1. Formulas de Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. Formula del punto medio o del rectangulo . . . . . . . . . . . . . . . . . 8
1.3. Formula del Trapecio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4. Formula de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5. Formula de Simpson de 3/8 . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6. Formula de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7. Cuadraturas de tipo interpolatorio . . . . . . . . . . . . . . . . . . . . . 20
2. Integracion Numerica 26
2.1. Comparacion de Metodos Iteractivos . . . . . . . . . . . . . . . . . . . . 28
2.1.1. Analizando una funcion trascendental . . . . . . . . . . . . . . . . 28
2.1.2. Analizando una funcion Polinomica . . . . . . . . . . . . . . . . . 36
3. Codigo Fuente de los GUI’S 44
3.1. Metodo del Trapecio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2. Metodo de Simpson 1/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3. Metodo de Simpson 3/8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4. Metodo de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Capıtulo 1
INTEGRACION NUMERICA
En esta seccion introducimos metodos numericos apropiados para aproximar la integral
I(f) =
b∫
a
f(x)dx
a una de la forma
I ′(f) =
M∑
k=1
wkf(xk),
donde f es una funcion arbitraria continua en [a, b] y con la siguiente distribucion de
nodos x0 < x1 < x2 < . . . < xM estan en [a, b]. A los wi se les llama pesos.
1.1. Formulas de Newton-Cotes
La Formulas de Newton-cotes se emplean especialmente cuando la integral no puede
calcularse analıticamente o cuando solo se conocen valores de f en un numero finito de
puntos.
Las formulas de Newton-Cotes son formulas del tipo:
b∫
a
f(x)dx =
M∑
k=0
wkf(xk) + En, H = (b− a)/M, xk = a+ kH.
Para determinar los {wk} (llamados Pesos de cuadratura) se usa la formula de
interpolacion de Lagrange.
1. Integracion Numerica 7
Sea f ∈ Cn+1[a, b]. Sea ΠM(x) el polinomio de grado ≤ M que interpola f en los M +1
puntos (distintos) x0, x1, . . . , xM en el intervalo [a, b]. Para cada valor fijo x ∈ [a, b] existe
ξ(x) ∈ (a, b) tal que
f(x)− ΠM(x) =f (n+1)(ξ(x))
(n + 1)!
M∏
k=0
(x− xk)
entoncesb
∫
a
f(x)dx =
b∫
a
ΠM (x) +f (n+1)(ξ(x))
(n+ 1)!
M∏
k=0
(x− xk)dx (1.1)
En particular, usando la forma de Lagrange del polinomio interpolante, ΠM(x) =M∑
k=0
ykϕk(x) con ϕk(x) =M∏
j=0,j 6=k
x−xj
xk−xjtenemos el siguiente teorema.
Teorema 1.1.1. Sea f ∈ Cn+1[a, b]. Sea ΠM(x) el polinomio de grado ≤ M que interpola
f en los M + 1 puntos (distintos) en el intervalo [a, b]. Existe η ∈ (a, b) tal que
∫ b
a
f(x)dx =
M∑
k=0
yk
∫ b
a
M∏
j=0,j 6=k
x− xj
xk − xj
dx+f (n+1)(η)
(n+ 1)!
∫ b
a
M∏
k=0
(x− xk)dx (1.2)
Siempre y cuandoM∏
k=0
(x− xk) sea de un mismo signo en [a, b].
Dentro de las formulas de Newton-Cotes, existen las formas cerradas y abiertas. En
las formas cerradas se conocen los valores de f(x0) = f(a) y f(xM) = f(b) ; en caso
contrario, se llaman formas abiertas.
Los dos teoremas que damos a continuacion permiten, obtener las formulas cerradas ya
biertas de Newton-Cotes respectivamente.
Para las cerradas se tiene que
Teorema 1.1.2. Supongamos queM∑
k=1
wkf(xk), es la formula cerrada de Newton-Cotes
con x0 = a y xM = b,H =b− a
M, entonces existe ξ ∈ (a, b), tal que
b∫
a
f(x)dx =
M∑
k=0
wkf(xk) +Hn+3f (n+2)(ξ)
(n+ 2)!
M∫
0
v2(v − 1)(v − 2) . . . (v −M)dv
si n es par, f ∈ Cn+2[a, b] y
b∫
a
f(x)dx =
M∑
k=0
wkf(xk) +Hn+2f (n+1)(ξ)
(n+ 1)!
M∫
0
v(v − 1)(v − 2) . . . (v −M)dv
1. Integracion Numerica 8
si n es impar, f ∈ Cn+1[a, b], wk =b∫
a
Πk(x)dx.
Para la formulas abiertas el teorema es
Teorema 1.1.3. Supongamos queM∑
k=1
wkf(xk), es la formula abierta de Newton-Cotes
con x0 = a y xM+2 = b,H =b− a
M + 2, entonces existe ξ ∈ (a, b), tal que
b∫
a
f(x)dx =M∑
k=0
wkf(xk) +Hn+3f (n+2)(ξ)
(n + 2)!
M+2∫
0
v2(v − 1)(v − 2) . . . (v −M)dv
si n es par, f ∈ Cn+2[a, b] y
b∫
a
f(x)dx =M∑
k=0
wkf(xk) +Hn+2f (n+1)(ξ)
(n+ 1)!
M+2∫
0
v(v − 1)(v − 2) . . . (v −M)dv
si n es impar, f ∈ Cn+1[a, b].
Si comparamos una formula abierta con una cerrada utilizando el mismo numero M de
datos, el error de la formula abierta es significativamente mayor que el de la formula
cerrada.
1.2. Formula del punto medio o del rectangulo
Una aproximacion de la integral I(f) consiste en aproximar el area bajo la curva y = f(x)
por rectangulos de base xk−1 − xk y altura f(xk−1+xk
2), para esto se puede establecer
dividiendo el intervalo [a, b] en subintervalos Ik = [xk−1, xk], k = 1, . . . ,M , con xk =
a+ kH, k = 0, . . . ,M y H = (b− a)/M . Como
I(f) =M∑
k=1
∫
Ik
f(x)dx, (1.3)
sobre cada subintervalo Ik podemos aproximar la integral exacta de f por la de un
polinomio f que aproxima f sobre Ik. La solucion mas simple consiste en elegir f como
el polinomio constante que interpola a f en el punto medio de Ik:
xk =xk−1 + xk
2
1. Integracion Numerica 9
Desarrollando la ecuacion 1.3 :
I(f) =
∫
I1
f(x)dx+
∫
I2
f(x)dx+ . . .+
∫
IM
f(x)dx
Desarrollando la integral en el intervalo k-esimo y aplicando Taylor en el punto xk hasta
el orden 3, tenemos
xk∫
xk−1
f(x)dx =xk∫
xk−1
[f(xk) + (x− xk)f′(xk) +
(x−xk)2
2f ′′(ξ(x))]dx
= (xk − xk−1)f(xk) + f ′(xk)xk∫
xk−1
(x− xk)dx+xk∫
xk−1
(x−xk)2
2f ′′(ξ(x))dx
Haciendo simples calculosxk∫
xk−1
(x− xk)dx = 0, y por el teorema del valor medio para las
integrales, existe ξk ∈ [xk−1, xk] tal que
xk∫
xk−1
(x− xk)2
2f ′′(ξ(x))dx =
1
2f ′′(ξk)
xk∫
xk−1
(x− xk)2dx =
(xk − xk−1)3
24f ′′(ξk)
de lo anterior
I(f) =M∑
k=1
(xk − xk−1)f(xk) +M∑
k=1
(xk−xk−1)3
24f ′′(ξk)
= HM∑
k=1
f(xk) +H2
24. (b−a)
M
M∑
k=1
f ′′(ξk)
= HM∑
k=1
f(xk) +H2
24(b− a)
M∑
k=1
f ′′(ξk)
M
PeroM∑
k=1
f ′′(ξk)
M=
f ′′(ξ1) + f ′′(ξ2) + . . .+ f ′′(ξM)
M
es la media aritmetica de la funcion continua f ′′, por tanto esta se puede reemplazar
por f ′′(ξ) para algun ξ ∈ (a, b), de modo que
I(f) = HM∑
k=1
f(xk) +b− a
24H2f ′′(ξ)
De esta forma obtenemos la formula de cuadratura del punto medio compuesta
Icmp(f) = H
M∑
k=1
f(xk) (1.4)
1. Integracion Numerica 10
El sımbolo mp significa el punto medio, mientras que c quiere decir compuesta. Esta
formula es una aproximacion de segundo orden con respecto a H . Concretamente, si f
es dos veces continuamente diferenciable en [a, b], tenemos
I(f)− Icmp(f) =b− a
24H2f ′′(ξ) (1.5)
donde ξ ∈ [a, b]. La formula (1.4) tambien se llama formula de cuadratura del
rectangulo compuesta a causa de su interpretacion geometrica, que es evidente a
partir de la figura (1.2). La formula del punto medio (o formula del rectangulo) se ob-
tiene tomando M = 1 en (1.4), es decir, utilizando la regla del punto medio directamente
sobre el intervalo (a, b).
Figura 1.1: Formula del punto medio compuesta (izquierda); formula del punto medio
(derecha).
Imp(f) = (b− a)f [(a+ b)/2] (1.6)
Ahora deduciremos su error que es un caso especial de (1.5). Sea x = (a + b)/2, y
aplicando Taylor hasta el orden 3 en x :
I(f) =b∫
a
[f(x) + (x− x)f ′(x) + (x−x)2
2f ′′(η(x))]dx
= (b− a)f(x) + f ′(x)b∫
a
(x− x)dx+b∫
a
(x−x)2
2f ′′(η(x))dx
donde η(x) es un punto apropiado del intervalo cuyos puntos extremos son x y x. Hacien-
do simples calculosb∫
a
(x−x)dx = 0, y por el teorema del valor medio para las integrales,
existe ξ ∈ [a, b] tal que
b∫
a
(x− x)2
2f ′′(η(x))dx =
1
2f ′′(ξ)
b∫
a
(x− x)2dx =(b− a)3
24f ′′′(ξ)
1. Integracion Numerica 11
de lo anterior podemos concluir : I(f) = (b − a)f(x) + (b−a)3
24f ′′′(ξ) y reemplazando la
ecuacion (1.6) obtenemos el error del punto medio:
I(f)− Imp(f) =(b− a)3
24f ′′′(ξ). (1.7)
Definicion 1.2.1. El grado de exactitud de una formula de cuadratura es el maxi-
mo entero r ≥ 0 para el cual la integral aproximada (producida por la formula de
cuadratura) de cualquier polinomio de grado r es igual a la integral exacta.
Podemos deducir de (1.5) y (1.7) que la formula del punto medio tiene grado de exactitud
1, ya que integra exactamente todos los polinomios de grado menor o igual que 1 (pero
no todos los de grado 2).
Ejemplo 1.2.1. Hallar la siguiente integral aplicando la regla del rectangulo conM = 5,2
∫
1
ln xdx.
El valor de H = b−aM
= 2−15
= 0,2 y hallamos el valor de la funcion en cada xk.
f(x) x1 x2 x3 x4 x5
1.1 1.3 1.5 1.7 1.9
ln x 0.09531 0.26236 0.40546 0.53063 0.64185
Luego aplicando la formula del punto medio (1.4)
Icmp(f) = HM∑
k=1
f(xk)
= 0,2[0,09531 + 0,26236 + 0,40546 + 0,53063 + 0,64185]
= 0,387122
Ahora el error vendra dado por
e ≤ (b−a)24
H2 maxx∈[1,2]
|f ′′(x)| = 0,0016667max | 1x2 | = 0,0016667
1. Integracion Numerica 12
1.3. Formula del Trapecio
Otra aproximacion de la integral I(f) consiste en aproximar el area bajo la curva y =
f(x) no por rectangulos sino por trapecios de base xk−1 − xk.
Puede obtenerse reemplazando f en Ik por el polinomio de interpolacion lineal de f en
los nudos xk−1 y xk (equivalentemente, reemplazando f por ΠH1 f sobre todo el intervalo
(a, b)).
Sabemos que
ΠH1 f(x) = f(xk−1) +
f(xk)−f(xk−1)
xk−xk−1
(x− xk−1) =x−xk
xk−1−xkf(xk−1) +
x−xk−1
xk−xk−1
f(xk)
de esto tenemos que
b∫
a
ΠH1 f(x)dx =
M∑
k=1
∫
Ik
( x−xk
xk−1−xkf(xk−1) +
x−xk−1
xk−xk−1
f(xk)) =
=M∑
k=1
(f(xk)2
(xk+1 − xk) +f(xk−1)
2(xk − x))
=H
2
M∑
k=1
[f(xk) + f(xk−1)]
o sea queb
∫
a
ΠH1 f(x)dx =
H
2[f(x0) + f(x1) + f(x1) + f(x2) + f(x2) + . . .+ f(xM−1) + f(xM−1) + f(xM)]
de modo queb
∫
a
ΠH1 f(x)dx =
H
2{f(x0) + 2[f(x1) + f(x2) + . . .+ f(xM−1)] + f(xM)}
Por lo tanto
b∫
a
ΠH1 f(x)dx =
H
2[f(a) + f(b)] +H
M−1∑
k=1
f(xk) = Ict (f) (1.8)
Esta formula se llama formula del trapecio compuesta y es una aproximacion de
segundo orden con respecto a H . En efecto, veamos el siguiente teorema.
Teorema 1.3.1 ((El error de la formula del trapecio)). Sea f ∈ C2[a, b], entonces
∃ξ ∈ [a, b] tal que:
I(f)− Ict (f) = −b − a
12H2f ′′(ξ) (1.9)
es el error de cuadratura.
1. Integracion Numerica 13
x = a x x = b x = a x = b
X X
0k0 1M
f
f
Figura 1.2: Formula del trapecio compuesta (izquierda); formula del trapecio (derecha).
Demostracion. Sabemos que en el intervalo [xk−1, xk] la funcion f(x), esta dada por
f(x) = Πkf(x)+Ek(x),siendo, Πk(x) el k-esimo polinomio de Lagrange yEk(x) =(x− xk−1)(x− xk)
2!f ′′(
(ver ecuacion (??)) luego entonces
xk∫
xk−1
f(x)dx =
xk∫
xk−1
Πkf(x)dx+1
2!
xk∫
xk−1
(x− xk−1)(x− xk)f′′(ξ(x))dx
Pero por el teorema del valor medio para integrales existe ξk ∈ (xk−1, xk), tal que
xk∫
xk−1
f(x)dx =
xk∫
xk−1
Πkf(x)dx+f ′′(ξk)
2!
xk∫
xk−1
(x− xk−1)(x− xk)dx
sea x = xk−1 +Hv, xk−1 = a + (k − 1)H = a + kH −H = xk −H , entonces x− xk =
x− xk−1 −H = Hv −H = H(v − 1) y dx = Hdv
xk∫
xk−1
(x− xk−1)(x− xk)dx =
1∫
0
H(v − 1)HvHdv = H3
1∫
0
(v − 1)vdv = −H3
6
Por lo tantoxk∫
xk−1
(x− xk−1)(x− xk)dx = −H3
6,
Luego, el error en el intervalo [xk−1, xk] es Ek = −f ′′(ξk)H3
12De lo anterior se tiene que
b∫
a
f(x)dx =
b∫
a
ΠH1 f(x)dx−
M∑
k=1
f ′′(ξk)H3
12
pero H = b−aM
, luego
b∫
a
f(x)dx =H
2
M∑
k=1
[f(xk−1) + f(xk)]−b− a
12MH2
M∑
k=1
f ′′(ξk)
1. Integracion Numerica 14
o sea que
b∫
a
f(x)dx =H
2
M∑
k=1
[f(xk−1) + f(xk)]−b− a
12H2
M∑
k=1
f ′′(ξk)
M
de modo que
b∫
a
f(x)dx =H
2
M∑
k=1
[f(xk−1) + f(xk)]−(b− a)H2
12f ′′(ξ)
Reemplazando I(f) y Ict (f) tenemos:
I(f)− Ict = −(b− a)H2
12f ′′(ξ)
Cuando se utiliza (1.8) con M = 1, se obtiene
It(f) =b− a
2[f(a) + f(b)] (1.10)
que es la llamada formula del trapecio . El error inducido viene dado por
I(f)− It(f) = −(b− a)3
12f ′′(ξ) (1.11)
donde ξ ∈ [a, b]. Podemos deducir que (1.10) tiene grado de exactitud igual a 1, como
en el caso de la regla del punto medio.
Ejemplo 1.3.1. Hallar la siguiente integral aplicando la regla del trapecio con M = 5,
2∫
1
ln xdx.
El valor de H = b−aM
= 2−15
= 0,2 y hallamos el valor de la funcion en cada nodo.
f(x) x0 x1 x2 x3 x4 x5
1 1.2 1.4 1.6 1.8 2
ln x 0 0.182321 0.33647 0.47000 0.58779 0.69315
Luego aplicando la formula del trapecio (1.8)
1. Integracion Numerica 15
Ict (f) = H2[f(x0) + f(x6)] +H
M−1∑
k=1
f(xk)
= 0,22[0 + 0,69315] + 0,2[0,182321 + 0,33647 + 0,47000 + 0,58779]
= 0,3846312
Ahora el er-
ror vendra dado por
e ≤ (b−a)12
H2 maxx∈[1,2]
|f ′′(x)| = 0,0002777max | 1x2 | = 0,0003
1.4. Formula de Simpson
La formula de Simpson puede obtenerse reemplazando la integral de f sobre cada Ik por
la de su polinomio de interpolacion de grado 2 en los nudos xk−1, xk = (xk−1 + xk)/2 y
xk,∏
2 f(x) = 2(x−x)(x−xk)H2 f(xk−1)+
+4(xk−1)(x−xk)
H2 f(xk) +2(x−xk)(x−xk−1)
H2 f(xk)
La formula resultante se llama formula de cuadratura de Simpson compuesta
(ver figura 1.3) y se escribe
Ics(f) =H
6
M∑
k=1
[f(xk−1) + 4f(x) + f(xk)] (1.12)
se puede probar que induce el error
I(f)− Ics(f) = −b− a
180
H4
16f (4)(ξ) (1.13)
donde ξ es un punto apropiado de [a, b], con tal de que f ∈ C4([a, b]). Por consiguiente
es una aproximacion de cuarto orden con respecto a H . Cuando (1.12) se aplica a un
unico intervalo (a, b), obtenemos la llamada formula de cuadratura de Simpson
Is(f) =b− a
6[f(a) + 4f((a+ b)/2) + f(b)] (1.14)
Ahora el error viene dado por
I(f)− Is(f) = − 1
16
(b− a)5
180f (4)(ξ) (1.15)
para un ξ ∈ [a, b] apropiado. Su grado de exactitud es, por tanto, igual a 3.
Ejemplo 1.4.1. Hallar la integral del ejemplo (1.3.1) aplicando la cuadratura de Simp-
son .
1. Integracion Numerica 16
Figura 1.3: Formula de Simpson en el intervalo k-esimo
Solucion. Asumiendo que M = 5 tenemos que H = 0,2, de esto tenemos el valor de f
en cada nodo:
Luego aplicando la ecuacion (1.14) tenemos :
f(x) x0 x1 x1 x2 x2 x3 x3 x4
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7
ln x 0 0.095310 0.182321 0.262364 0.33647 0.405465 0.47000 0.530628
f(x) x4 x5 x5
1.8 1.9 2
ln x 0.58779 0.641854 0.69315
Ics =0,2
6[(f(x0) + 4f(x1) + f(x1)) + . . .+ (f(x4) + 4f(x5) + f(x5))]
= =0,2
6[(0 + 4(0,095310) + 0,182321) + . . .+ (0,58779 + 4(0,641854) + 0,69315)]
Ics = 0,386293
1. Integracion Numerica 17
1.5. Formula de Simpson de 3/8
La formula de (3/8) considera el valor de M = 3, con el proposito de obtener una
formula para integrar f(x) entre cuatro puntos consecutivos x0, x1, x2, x3, consistiendo
en aproximar la funcion mediante una cubica. Reemplazando f(x) por la del metodo de
Lagrange en dichos puntos.
Π3f(x) =(x− x1)(x− x2)(x− x3)
(x0 − x1)(x0 − x2)(x0 − x3)f(x0) +
(x− x0)(x− x2)(x− x3)
(x1 − x0)(x1 − x2)(x1 − x3)f(x1)+
+(x− x0)(x− x1)(x− x3)
(x2 − x0)(x2 − x1)(x2 − x3)f(x2) +
(x− x0)(x− x1)(x− x2)
(x3 − x0)(x3 − x1)(x3 − x2)f(x3)
de esta expresion se tiene:
x3∫
x0
Π3f(x)dx =f(x0)
(x0 − x1)(x0 − x2)(x0 − x3)
x3∫
x0
(x− x1)(x− x2)(x− x3)dx+
+f(x1)
(x1 − x0)(x1 − x2)(x1 − x3)
x3∫
x0
(x− x0)(x− x2)(x− x3)dx+
+f(x2)
(x2 − x0)(x2 − x1)(x2 − x3)
x3∫
x0
(x− x0)(x− x1)(x− x3)dx+
+f(x3)
(x1 − x0)(x3 − x1)(x3 − x2)
x3∫
x0
(x− x0)(x− x1)(x− x2)dx
si sustituimos:
x = x0 +Hv, como xk = x0 + kH, k = 1, 2, 3, dx = Hdv
x− x1 = H(v − 1), x− x2 = H(v − 2), x− x3 = H(v − 3)
1. Integracion Numerica 18
de esto:
x3∫
x0
Π3f(x)dx =f(x0)
(−H)(−2H)(−3H)
3∫
0
H(v − 1)H(v − 2)H(v − 3)Hdv+
+=f(x1)
(H)(−H)(−2H)
3∫
0
vHH(v − 2)H(v − 3)Hdv+
+=f(x2)
(2H)(H)(−H)
3∫
0
vHH(v − 1)H(v − 3)Hdv+
+=f(x3)
(3H)(2H)(H)
3∫
0
vHH(v − 1)H(v − 2)Hdv
de esto resulta:x3∫
x0
Π3f(x)dx =3Hf(x0)
8+
9Hf(x1)
8+
9Hf(x2)
8+
3Hf(x3)
8
Al final se tiene:
x3∫
x0
Π3f(x)dx =3H
8[f(x0) + 3f(x1) + 3f(x2) + f(x3)] = Is3(f) (1.16)
Esta formula (1.16) se conoce como la Regla de Simpson (3/8).
y su error es
I(f)− Is3(f) = −3H5
80f (4)(ξ) (1.17)
Considerando los nodos x0, x1, . . . , xM del intervalo [a, b], para H = (b − a)/(3M), con
xk = x0+kH, k = 0, 1, 2, . . . ,M ; aplicando en cada intervalo I3k [x3k−3, x3k] la formula
se Simpson 3/8, luego en cada intervalo se tiene
x3k∫
x3k−3
Π3kf(x)dx =3H
8[f(x3k−3) + 3f(x3k−2) + 3f(x3k−1) + f(x3k)]
de esto se tiene
b∫
a
ΠMf(x)dx =
M∑
k=1
[3H
8[f(x3k−3) + 3f(x3k−2) + 3f(x3k−1) + f(x3k)]]
1. Integracion Numerica 19
b∫
a
ΠMf(x)dx = 3H8[f(x0) + f(x3) + f(x6) + . . .+ f(x3M−3) + 3f(x1) + 3f(x4) + 3f(x7) + . . .
+3f(x3M−2) + 3f(x2) + 3f(x5) + 3f(x8) + . . .+ 3f(x3M−1) + f(x3)+
+f(x6) + f(x9) + . . .+ f(x3M)
b∫
a
ΠMf(x)dx = 3H8[f(x0) + f(x3M)] + 6H
8[f(x3) + f(x6) + f(x9) + . . .+ f(x3M−3)]+
+9H8[f(x1) + f(x4) + f(x7) + . . .+ f(x3M−2)]+
+9H8[f(x2) + f(x5) + f(x8) + . . .+ f(x3M−1)]
La formula resultante se llama formula de cuadratura se Simpson (3/8) com-
puesta y se escribe
Ics3(f) =3H
8[f(a)+f(b)]+
6H
8
M−1∑
k=1
f(x3k)+9H
8
M∑
k=1
f(x3k−2)+9H
8
M∑
k=1
f(x3k−1) (1.18)
1.6. Formula de Boole
La formula de Boole considera el valor de M = 4, el cual haciendo el mismo proced-
imiento para la formula de Simpson 3/8 tenemos
I4(f) =2H
45[7f(x0) + 32f(x1) + 12f(x2) + 32f(x3) + 7f(x4)] (1.19)
y su error viene dado por
I(f)− I4(f) =8H7
945f (6)(ξ), para algun ξ ∈ [a, b]. (1.20)
En una forma mas general, la aplicacion de Boole M veces sobre 4M subintervalos de
[a, b] que tiene todos el mismo tamanoH = (b−a)/(4M), se llama formula compuesta
de Boole.
ICB =2H
45
M∑
k=1
[7f(x4k−4) + 32f(x4k−3) + 12f(x4k−2) + 32f(x4k−1) + 7f(x4k)] (1.21)
Ejemplo 1.6.1. Hallar la integral del ejemplo (1.3.1) aplicando la formula compuesta
de Boole .
Solucion. Asumiendo que M = 5 tenemos que H = 0,05, de esto tenemos el valor de
f en cada nodo:
Luego aplicando la ecuacion (1.21) tenemos :
1. Integracion Numerica 20
f(x) x0 x1 x2 x3 x4 x5 x6
1 1.05 1.10 1.15 1.20 1.25 1.30
ln x 0 0.048790 0.095310 0.139761 0.182322 0.22314 0.262364
f(x) x7 x8 x9 x10 x11 x12 x13
1.35 1.40 1.45 1.50 1.55 1.60 1.65
ln x 0.300105 0.336472 0.371564 0.405465 0.438255 0.470004 0.500775
f(x) x14 x15 x16 x17 x18 x19 x20
1.70 1.75 1.80 1.85 1.90 1.95 2
ln x 0.530628 0.559616 0.587787 0.615186 0.641853 0.667829 0.693147
Ics =2 · 0,0545
[(7f(x0) + 32f(x1) + 12f(x2) + 32f(x3) + 7f(x4)) + . . .+ (7f(x16)+
+32f(x17) + 12f(x18) + 32f(x19) + 7f(x20))]
=2 · 0,0545
[(7(1) + 32(0,048790) + 12(0,095310) + 32(0,139761) + 7(0,182322)) + . . .+
+(7(0,587787) + 32(0,615186) + 12(0,641853) + 32(0,667829) + 7(0,693147))]
IcB = 0,386294
OBSERVACION: Al aplicar el mismo ejemplo (2∫
1
ln xdx) para todos los metodos de
cuadratura , nos podemos dar cuenta que el metodo de Boole es la mas optima, la cual
tiene una mejor aproximacion de la integral.
1.7. Cuadraturas de tipo interpolatorio
Como hemos visto las formulas de Newton Cotes las formulas de cuadratura (no com-
puestas) son de la forma:
Iappr(f) =
n∑
j=0
αjf(yj) (1.22)
donde {αj} son pesos de cuadratura,{yj} son los nudos de cuadratura. Hemos visto que
para conseguir un grado de exactitud ≤ n debemos tomar
Iappr(f) =
b∫
a
Πnf(x)dx
1. Integracion Numerica 21
donde Πnf ∈ Pn es el polinomio de interpolacion de lagrange de f en los nudos yi, i =
0, . . . , n. Esto proporciona la siguiente expresion para los pesos
αi =
b∫
a
ϕi(x)dx, i = 0, . . . , n
donde ϕi es el i-esimo polinomio caracterıstico de lagrange tal que ϕi(x) =
M∏
j=0,j 6=0
x− xj
xk − xj
.
Ejemplo 1.7.1. Para la formula del trapecio (1.10) tenemos n = 1, x0 = a, x1 = b y
α0 =b∫
a
ϕ0(x)dx =b∫
a
x−ba−b
dx = b−a2,
α1 =b∫
a
ϕ1(x)dx =b∫
a
x−ab−a
dx = b−a2.
La cuestion que surge es si existe elecciones apropiadas de los nudos tales que el grado de
exactitud sea mayor que n, concretamente, igual a r = m+ n para algun m > 0. Pode-
mos simplificar nuestra discusion restringiendonos a un intervalo de referencia, digamos
(−1, 1). En efecto, una vez que disponemos de un conjunto de nudos de cuadratura {yj}y pesos {αj} en [−1, 1], entonces gracias al cambio de variable (??) podemos obtener
inmediatamente los correspondientes nudos y pesos,
yj =a+ b
2+
b− a
2yj, αj =
b− a
2αj
en un intervalo de integracion arbitrario (a, b).
Proposicion 1.7.1. Para un m > 0 dado, la formula de cuadraturan∑
j=0
αjf(yj) tiene
grado de exactitud n + m si y solo si es de tipo interpolatorio y el polinomio nodal
wn+1 = Πni=0(x− yi) asociado a los nudos {yi} es tal que
1∫
−1
wn+1p(x)dx = 0, ∀p ∈ Pm−1. (1.23)
El valor maximo que m puede tomar es n + 1 y se alcanza con tal de que wn+1 sea
proporcional al llamado polinomio de Legendre de grado n+1, Ln+1(x). Los polinomios
de Legendre pueden calcularse recursivamente mediante la siguiente relacion de tres
terminos
L0(x) = 1, L1(x) = x
Lk+1(x) =2k+1k+1
Lk(x)− kk+1
Lk−1(x), k = 1, 2, . . .
1. Integracion Numerica 22
Para cada n = 0, 1, . . . , todo polinomio en Pn puede obtenerse mediante una combinacion
lineal de los polinomios L0, L1, . . . , Ln. Ademas, Ln+1 es ortogonal a todos los polinomios
de grado menor o igual que n, es decir,1∫
−1
Ln+1(x)Lj(x)dx = 0 para todo j = 0, . . . , n.
Esto explica por que (1.23) es cierto para m igual pero no mayor que n+ 1. El maximo
grado de exactitud es, por tanto, igual a 2n+1 y se obtiene para la llamada formula de
Gauss-Legendre (abreviadamente IGL), cuyos nudos y pesos estan dados por
yj = ceros de Ln+1(x),
αj =2
(1− y2j)[L′
n+1(yj)]2, j = 0, . . . , n
(1.24)
Los pesos αj son todos positivos y los nudos son interiores al intervalo (−1, 1). En la
Tabla 4.1 recogemos los nudos y pesos de las formulas de cuadratura de Gauss-Legendre
con n = 1, 2, 3, 4. Si f ∈ C(2n+2)([−1, 1]), el correspondiente error es
I(f)− IGL(f) =22n+3((n+ 1)!)4
(2n+ 3)((2n+ 2)!)3f (2n+2)(ξ)
donde ξ es un punto adecuado en (−1, 1).
A menudo es utıl incluir tambien los puntos extremos del intervalo entre los nudos
de cuadratura. Procediendo ası, la formula de Gauss con grado de exactitud maximo
(2n−1) es la que emplea los llamados nudos de Gauss-Legendre-Lobatto (abreviamente,
GLL): para n ≥ 1
y0 = −1, yn = 1, yj = ceros de L′
n(x), j = 1, . . . , n− 1 (1.25)
αj =2
n(n+ 1)
1
[Ln(yj)2], j = 0, . . . , n
si f ∈ C(2n)([−1, 1]), el correspondiente error viene dado por
I(f)− IGLL(f) = −(n + 1)n322n+1((n− 1)!)4
(2n+ 1)((2n)!)3f (2n)(ξ)
Para un ξ ∈ (−1, 1) adecuado. En la tabla 4.2 damos una tabla de nudos y pesos sobre
el intervalo de referencia (-1,1) para n = 1, 2, 3, 4.(Para n = 1 recuperamos la regla del
trapecio).
1. Integracion Numerica 23
n {yj} {αj}1 {±1/
√3} {1}
2 {±√15/5, 0} {5/9,8/9}
3 ±(1/35)√
525− 70√30 {(1/36)(18 +
√30)}
±(1/35)√
525 + 70√30 (1/36)(18−
√30)
4 {0,±(1/21)√
245− 14√70 {128/225, (1/900)(322+ 13
√70)}
±(1/21)√
245 + 14√70 (1/900)(322− 13
√70)
Cuadro 1.1: Nudos y pesos para algunas formulas de cuadratura de Gauss- Legendre
sobre el intervalo (−1, 1). Los pesos correspondientes a pares simetricos de nudos se
incluyen solo una vez.
n {yj} αj
1 {±1} {1}2 {±1, 0} {1/3, 4/3}3 {±1,±
√5/5} {1/6,5/6}
4 {±1,±√21/7, 0} {1/10, 49/90, 32/45}
Cuadro 1.2: Nudos y pesos para algunas formulas de cuadratura de Gauss-Legendre-
Lobatto sobre el intervalo (−1, 1). Los pesos correspondientes a pares simetricos de
nudos se incluyen solo una vez.
CONCLUSIONES
1. Para calcular los ceros (o raices) de una funcion f se utilizan generalmente se
utilizan metodos de tipo iterativo.
2. El metodo de la biseccion es convergente con tal que f sea continua en el intervalo
inicial y tenga signos opuestos en los extremos de este intervalo.
3. El metodo de Newton calcula un cero de f teniendo en cuenta los valores de f y
de su derivada.
4. El metodo de la secante es una variacion del metodo de newton, pero mas eficiente.
5. Si una funcion se aproxima mediante un polinomio de interpolacion, no hay garantıa
de que dicho polinomio converja a la funcion exacta al aumentar el numero de
datos. En general, la interpolacion mediante un polinomio de orden grande debe
evitarse o utilizarse con precauciones extremas.
6. La interpolacion de Chebyshev amortigua las grandes oscilaciones del fenomeno
de Runge.
7. Cuando f no es regular, se utiliza la interpolacion lineal a trozos.
8. La interpolacion por Spline cubicos permite aproxiamr f mediante una funcion
cubica a trozos f que es continua junto con sus derivadas primeras y segundas.
9. En la aproximacion de mınimos cuadrados buscamos una aproximacion f que sea
un polinomio de grado m y que minimice el error cuadratico medion∑
i=0
[yi−f(xi)]2.
El mismo criterio de minimizacion puede ser aplicado a una clase de funciones que
no sean polinomios.
1. Integracion Numerica 25
10. Una formula de cuadratura es una formula para aproximar la integral de funciones
continuas en un intervalo [a, b].
11. El grado de exactitud de una formula de cuadratura es el mayor grado de los
polinomios que son integrados exactamente por la formula. Es 1 para las reglas
del punto medio y del trapecio, 3 para la regla de Simpson y 2n+1 para la formula
de Gauss-Legendre.
12. El orden de precision de una formula de cuadratura compuesta es su orden respecto
al tamano H de los subintervalos. El orden de precision es 2 para las formulas com-
puestas del punto medio y del trapecio, 4 para la formula de Simpson compuesta
y 6 para laformula de Boole.
Capıtulo 2
INTEGRACION NUMERICA
En analisis numerico, la integracion numerica constituye una amplia gama de algoritmos
para calcular el valor numerico de una integral definida y, por extension, el termino se
usa a veces para describir algoritmos numericos para resolver ecuaciones diferenciales. El
termino cuadratura numerica (a menudo abreviado a cuadratura) es mas o menos sinoni-
mo de integracion numerica, especialmente si se aplica a integrales de una dimension a
pesar de que para el caso de dos o mas dimensiones (integral multiple) tambien se utiliza.
Hay varias razones para llevar a cabo la integracion numerica. La principal puede ser
la imposibilidad de realizar la integracion de forma analıtica. Es decir, integrales que
requerirıan de un gran conocimiento y manejo de matematica avanzada pueden ser
resueltas de una manera mas sencilla mediante metodos numericos. Incluso existen fun-
ciones integrables pero cuya primitiva no puede ser calculada, siendo la integracion
numerica de vital importancia. La solucion analıtica de una integral nos arrojarıa una
solucion exacta, mientras que la solucion numerica nos darıa una solucion aproximada.
El error de la aproximacion, que depende del metodo que se utilice y de que tan fino
sea, puede llegar a ser tan pequeno que es posible obtener un resultado identico a la
solucion analıtica en las primeras cifras decimales.
2. Integracion Numerica 27
Los metodos de integracion numerica pueden ser descritos generalmente como combi-
nacion de evaluaciones del integrando para obtener una aproximacion a la integral. Una
parte importante del analisis de cualquier metodo de integracion numerica es estudiar el
comportamiento del error de aproximacion como una funcion del numero de evaluaciones
del integrando. Un metodo que produce un pequeno error para un pequeno numero de
evaluaciones es normalmente considerado superior. Reduciendo el numero de evalua-
ciones del integrando se reduce el numero de operaciones aritmeticas involucradas, y
por tanto se reduce el error de redondeo total. Tambien, cada evaluacion cuesta tiempo,
y el integrando puede ser arbitrariamente complicado.
Este Capitulo trata sobre como encontrar los valores de Integracion, mediante la imple-
mentacion de Interfaces Graficas de Usuario (GUI) en Matlab. Los metodos numericos
de Integracion Numerica suelen ser metodos iterativos, que se espera, que converja a la
solucion analitica. Utilizaremos el metodo del Trapecio, de Simpson 1/3, Simpson 3/8,
Boole, Asi como la Integracion Doble y Triple.
No abordaremos la teorıa de cada metodo, dado que esta se encuentra en el Capitulo
IV: Integracion Numerica del Seminario de Matematica Pura FUNDAMENTOS DE
ECUACIONES NO LINEALES, INTERPOLACION, DIFERENCIACION
E INTEGRACION NUMERICA PARA EL CALCULO CIENTIFICO, aqui
comparemos los resultados con la implementacion de GUI’s.
2. Integracion Numerica 28
2.1. Comparacion de Metodos Iteractivos
En esta seccion analizaremos la solucion de dos problemas de Integracion :
2.1.1. Analizando una funcion trascendental
En esta seccion analizaremos la solucion de una funcion trascendenta la cual inte-
graremos en el intervalo [0,5; 2].
Problema. Sea
f(x) =100
x2∗ sen(10
x) evaluada entre [0,5; 2]
Solucion. Al tratarse de una funcion trascendental hacemos uso de los metodos del
Trapecio, de Simpson 1/3, Simpson 3/8 y Boole.
2. Integracion Numerica 29
Solucion 1. Utilizando el Metodo del Trapecio dividiendo el intervalo en 20 partes.
2. Integracion Numerica 30
Solucion 2. Utilizando el Metodo del Trapecio dividiendo el intervalo en 200 partes.
2. Integracion Numerica 31
Solucion 3. Utilizando el Metodo de Simpson 1/3 dividiendo el intervalo en 20 partes.
2. Integracion Numerica 32
Solucion 4. Utilizando el Metodo de Simpson 1/3 dividiendo el intervalo en 200 partes.
2. Integracion Numerica 33
Solucion 5. Utilizando el Metodo de Simpson 3/8 dividiendo el intervalo en 20 partes.
2. Integracion Numerica 34
Solucion 6. Utilizando el Metodo de Simpson 3/8 dividiendo el intervalo en 200 partes.
2. Integracion Numerica 35
Solucion 7. Utilizando el Metodo de Boole dividiendo el intervalo en 20 partes.
2. Integracion Numerica 36
Solucion 8. Utilizando el Metodo de Boole dividiendo el intervalo en 200 partes.
2.1.2. Analizando una funcion Polinomica
En esta seccion analizaremos la solucion de una funcion polinomica la cual integraremos
en el intervalo [0,5; 2].
Problema. Sea
f(x) = 6000− 1000 · (1 + x) · ((1 + x)5 − 1)
x
Solucion. Al tratarse de una funcion trascendental hacemos uso de los metodos del
Trapecio, de Simpson 1/3, Simpson 3/8 y Boole.
2. Integracion Numerica 37
Solucion 9. Utilizando el Metodo del Trapecio dividiendo el intervalo en 20 partes.
2. Integracion Numerica 38
Solucion 10. Utilizando el Metodo del Trapecio dividiendo el intervalo en 200 partes.
2. Integracion Numerica 39
Solucion 11. Utilizando el Metodo de Simpson 1/3 dividiendo el intervalo en 20 partes.
2. Integracion Numerica 40
Solucion 12. Utilizando el Metodo de Simpson 1/3 dividiendo el intervalo en 200 partes.
2. Integracion Numerica 41
Solucion 13. Utilizando el Metodo de Simpson 3/8 dividiendo el intervalo en 20 partes.
2. Integracion Numerica 42
Solucion 14. Utilizando el Metodo de Simpson 3/8 dividiendo el intervalo en 200 partes.
2. Integracion Numerica 43
Solucion 15. Utilizando el Metodo de Boole dividiendo el intervalo en 1 parte.
Capıtulo 3
CODIGO FUENTE DE LOS GUI’S
3.1. Metodo del Trapecio
Listing 3.1: Boton Graficar
f unc t i on pushbutton1_Callback ( hObject , eventdata , handles )
g l oba l xx yy area n h x0 y0 f a b
f=get ( handles . edit1 , ' s t r i n g ' ) ;
a=str2double ( get ( handles . edit2 , ' s t r i n g ' ) ) ;
b=str2double ( get ( handles . edit3 , ' s t r i n g ' ) ) ;
n=str2double ( get ( handles . edit4 , ' s t r i n g ' ) ) ;
h=(b−a ) /n ;
x=a : h : b ;
xx=x ;
yy=eva l (f ) ;
area=(sum( yy )+sum( yy ( 2 : n ) ) ) ∗( h /2) ;
fa=yy (1) ; fb=yy ( n+1) ; %Limites l a t e r a l e s
axes ( handles . grafica )
u1=[a a ] ; v1=[0 fa ] ;
p l o t (u1 , v1 , ' co l o r ' , ' r ' ) ;
hold on
u2=[b b ] ; v2=[0 fb ] ;
p l o t (u2 , v2 , ' co l o r ' , ' r ' ) ;
x=a : 0 . 0 1 : b ;
y=eva l ( f ) ;
x0=x ; y0=y ;
yc=min( y ) ; yd=max(y ) ;
ax i s ( [ a−0.5 b+0.5 yc−1 yd+1])
p l o t (x , y , ' l i new idth ' , 2 . 5 , ' co l o r ' , ' r ' )
i f yc>=1
ax i s ( [ a−0.5 b+0.5 −1 yd+1])
3. Codigo Fuente de los GUI’S 45
end
i f yd<=1
ax i s ( [ a−0.5 b+0.5 yc−1 1 ] )
end
z=0∗y ;
p l o t (x , z , ' co l o r ' , 'k ' ) ;
p l o t (a , 0 , ' ∗b ' ,b , 0 , ' ∗b ' ) ;
g r i d on
s e t ( handles . edit5 , ' s t r i n g ' , ' ' )
s e t ( handles . edit6 , ' s t r i n g ' , ' ' )
s e t ( handles . listbox1 , ' s t r i n g ' , ' ' )
s e t ( handles . pushbutton1 , ' enable ' , ' o f f ' )
s e t ( handles . pushbutton2 , ' enable ' , 'on ' )
Listing 3.2: Boton Calcular
f unc t i on pushbutton2_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area n h x0 y0 f a b intex
syms x
integral ( hObject , eventdata , handles )
listado= ' Areas Pa r c i a l e s ' ;
u=[xx (1) xx ( 1 : n+1) xx (n+1) xx (1) ] ;
v=[0 yy ( 1 : n+1) 0 0 ] ;
axes ( handles . grafica )
d3=f i l l (u , v , [ 0 . 4 0 . 75 0 . 7 5 ] ) ;
f o r j=1:n
ux=[xx (j ) xx (j ) ] ; vx=[0 yy (j ) ] ;
p l o t ( ux , vx , ' co l o r ' , ' r ' )
s_area=(yy ( j )+yy ( j+1) ) ∗( h /2) ;
listado=strvcat ( listado , num2str ( s_area , ' %20.10 f ' ) ) ;
s e t ( handles . listbox1 , 'Value ' , 1) ;
s e t ( handles . listbox1 , ' s t r i n g ' , listado )
end
ar=num2str ( area , ' %20.10 f ' ) ;
are=num2str ( intex , ' %20.10 f ' ) ;
e r r o r=num2str ( abs ( area−intex ) , ' %20.10 f ' ) ;
p l o t (x0 , y0 , ' l i new idth ' , 2 , ' co l o r ' , ' r ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , ar )
s e t ( handles . edit6 , ' s t r i n g ' , are )
s e t ( handles . e r r or , ' s t r i n g ' , e r r o r )
s e t ( handles . pushbutton1 , ' enable ' , 'on ' )
s e t ( handles . pushbutton2 , ' enable ' , ' o f f ' )
hold off
3. Codigo Fuente de los GUI’S 46
Listing 3.3: Funcion Integral
f unc t i on integral ( hObject , eventdata , handles )
g l oba l intex
f=vectorize ( inline ( get ( handles . edit1 , ' s t r i n g ' ) ) ) ;
a=str2double ( get ( handles . edit2 , ' s t r i n g ' ) ) ;
b=str2double ( get ( handles . edit3 , ' s t r i n g ' ) ) ;
% Extremos de l i n t e r v a l o de i n t eg r a c i on
% In t e g r a l exacta ( r equ i e r e l a toolbox de s imbo l i co
syms x ;
intex=double ( int (f (x ) , 'x ' ,a , b ) ) ;
3. Codigo Fuente de los GUI’S 47
3.2. Metodo de Simpson 1/3
Listing 3.4: Boton Graficar
f unc t i on pushbutton1_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area h x0 y0 f a b n
f=get ( handles . edit1 , ' s t r i n g ' ) ;
a=str2double ( get ( handles . edit2 , ' s t r i n g ' ) ) ;
b=str2double ( get ( handles . edit3 , ' s t r i n g ' ) ) ;
n=str2double ( get ( handles . edit4 , ' s t r i n g ' ) ) ;
h=(b−a ) /(2∗ n ) ;
x=a : h : b ;
xx=x ;
yy=eva l (f ) ;
area=(sum( yy )+2∗sum( yy ( 2 : 2 : 2 ∗ n ) )+sum( yy ( 2 : 2∗ n ) ) ) ∗( h /3) ;
fa=yy (1) ; fb=yy (2∗ n+1) ;
%Limites l a t e r a l e s
axes ( handles . grafica )
u1=[a a ] ; v1=[0 fa ] ;
p l o t (u1 , v1 , ' co l o r ' , ' r ' ) ;
hold on
u2=[b b ] ; v2=[0 fb ] ;
p l o t (u2 , v2 , ' co l o r ' , ' r ' ) ;
x=a : 0 . 0 1 : b ;
y=eva l ( f ) ;
x0=x ; y0=y ;
yc=min( y ) ; yd=max(y ) ;
ax i s ( [ a−0.5 b+0.5 yc−1 yd+1])
p l o t (x , y , ' l i new idth ' , 2 , ' co l o r ' , ' r ' )
i f yc>=1
ax i s ( [ a−0.5 b+0.5 −1 yd+1])
end
i f yd<=1
ax i s ( [ a−0.5 b+0.5 yc−1 1 ] )
end
z=0∗y ;
p l o t (x , z , ' co l o r ' , 'k ' ) ;
p l o t (a , 0 , ' ∗b ' ,b , 0 , ' ∗b ' ) ;
g r i d on
s e t ( handles . edit5 , ' s t r i n g ' , ' ' )
s e t ( handles . edit6 , ' s t r i n g ' , ' ' )
s e t ( handles . listbox1 , ' s t r i n g ' , ' ' )
s e t ( handles . pushbutton1 , ' enable ' , ' o f f ' )
s e t ( handles . pushbutton2 , ' enable ' , 'on ' )
3. Codigo Fuente de los GUI’S 48
Listing 3.5: Boton Calcular
f unc t i on pushbutton2_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area h x0 y0 intex f a b n
integral ( hObject , eventdata , handles )
listado= ' Areas Pa r c i a l e s ' ;
axes ( handles . grafica )
xv=xx (1) ; yv=0;
f o r k=1:n
px=[xx (2∗ k−1) xx (2∗ k ) xx (2∗ k+1) ] ;
py=[yy (2∗ k−1) yy (2∗ k ) yy (2∗ k+1) ] ;
p=p o l y f i t (px , py , 2 ) ;
hh=h /10 ;
x=xx (2∗ k−1) : hh : xx (2∗ k+1) ;
y=polyva l (p , x ) ;
xu=x ; yu=y ;
xv=[xv xu ] ;
yv=[yv yu ] ;
end
u=[xv xx (2∗ n+1) xx (1) ] ;
v=[yv 0 0 ] ;
d3=f i l l (u , v , [ 0 . 5 0 . 8 0 . 8 ] ) ;
%areas p a r c i a l e s
f o r j=1:n
ux=[xx (2∗ j+1) xx (2∗ j+1) ] ; vx=[0 yy (2∗ j+1) ] ;
p l o t ( ux , vx )
s_area=(yy (2∗ j−1)+4∗yy (2∗ j )+yy (2∗ j+1) ) ∗( h /3) ;
listado=strvcat ( listado , num2str ( s_area , ' %20.10 f ' ) ) ;
s e t ( handles . listbox1 , ' s t r i n g ' , listado ) ;
end
ar=num2str ( area , ' %20.10 f ' ) ;
are=num2str ( intex , ' %20.10 f ' ) ;
e r r o r=num2str ( abs ( area−intex ) , ' %20.10 f ' ) ;
p l o t (x0 , y0 , ' l i new idth ' , 2 , ' co l o r ' , ' r ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , ar )
s e t ( handles . edit6 , ' s t r i n g ' , are )
s e t ( handles . e r r or , ' s t r i n g ' , e r r o r )
s e t ( handles . pushbutton1 , ' enable ' , 'on ' )
s e t ( handles . pushbutton2 , ' enable ' , ' o f f ' )
hold off
3. Codigo Fuente de los GUI’S 49
3.3. Metodo de Simpson 3/8
Listing 3.6: Boton Graficar
f unc t i on pushbutton1_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area n h x0 y0 f a b
f=get ( handles . edit1 , ' s t r i n g ' ) ;
a=str2double ( get ( handles . edit2 , ' s t r i n g ' ) ) ;
b=str2double ( get ( handles . edit3 , ' s t r i n g ' ) ) ;
n=str2double ( get ( handles . edit4 , ' s t r i n g ' ) ) ;
h=(b−a ) /(3∗ n ) ;
x=a : h : b ;
xx=x ;
yy=eva l (f ) ;
area1=sum( yy )+sum( yy ( 2 : 3∗ n ) ) ;
area2=sum( yy ( 2 : 3 : 3 ∗ n−1) )+sum( yy ( 3 : 3 : 3 ∗ n ) ) ;
area=(area1+area2 ) ∗((3∗ h ) /8) ;
fa=yy (1) ; fb=yy (3∗ n+1) ; %Limites l a t e r a l e s
axes ( handles . grafica )
u1=[a a ] ; v1=[0 fa ] ;
p l o t (u1 , v1 , ' co l o r ' , ' r ' ) ;
hold on
u2=[b b ] ; v2=[0 fb ] ;
p l o t (u2 , v2 , ' co l o r ' , ' r ' ) ;
x=a : 0 . 0 1 : b ;
y=eva l ( f ) ;
x0=x ; y0=y ;
yc=min( y ) ; yd=max(y ) ;
ax i s ( [ a−0.5 b+0.5 yc−1 yd+1])
p l o t (x , y , ' l i new idth ' , 2 , ' co l o r ' , ' r ' )
i f yc>=1
ax i s ( [ a−0.5 b+0.5 −1 yd+1])
end
i f yd<=1
ax i s ( [ a−0.5 b+0.5 yc−1 1 ] )
end
z=0∗y ;
p l o t (x , z , ' co l o r ' , 'k ' ) ;
p l o t (a , 0 , ' ∗b ' ,b , 0 , ' ∗b ' ) ;
g r i d on
s e t ( handles . edit5 , ' s t r i n g ' , ' ' )
s e t ( handles . edit6 , ' s t r i n g ' , ' ' )
s e t ( handles . listbox1 , ' s t r i n g ' , ' ' )
s e t ( handles . pushbutton1 , ' enable ' , ' o f f ' )
s e t ( handles . pushbutton2 , ' enable ' , 'on ' )
3. Codigo Fuente de los GUI’S 50
3. Codigo Fuente de los GUI’S 51
Listing 3.7: Boton Calcular
f unc t i on pushbutton2_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area h x0 y0 f a b n intex
integral ( hObject , eventdata , handles )
listado= ' Areas Pa r c i a l e s ' ;
axes ( handles . grafica )
xv=xx (1) ; yv=0;
f o r k=1:n
px=[xx (3∗ k−2) xx (3∗ k−1) xx (3∗ k ) xx (3∗ k+1) ] ;
py=[yy (3∗ k−2) yy (3∗ k−1) yy (3∗ k ) yy (3∗ k+1) ] ;
p=p o l y f i t (px , py , 3 ) ;
hh=h /10 ;
x=xx (3∗ k−2) : hh : xx (3∗ k+1) ;
y=polyva l (p , x ) ;
xu=x ; yu=y ;
xv=[xv xu ] ;
yv=[yv yu ] ;
end
u=[xv xx (3∗ n+1) xx (1) ] ;
v=[yv 0 0 ] ;
d3=f i l l (u , v , [ 0 . 5 0 . 8 0 . 8 ] ) ;
%areas p a r c i a l e s
f o r j=1:n
ux=[xx (3∗ j−2) xx (3∗ j−2) ] ; vx=[0 yy (3∗ j−2) ] ;
p l o t ( ux , vx , ' co l o r ' , ' r ' )
s_area=(yy (3∗ j−2)+3∗yy (3∗ j−1)+3∗yy (3∗ j )+yy (3∗ j+1) ) ∗(3∗ h /8) ;
listado=strvcat ( listado , num2str ( s_area , ' %20.10 f ' ) ) ;
s e t ( handles . listbox1 , ' s t r i n g ' , listado ) ;
end
ar=num2str ( area , ' %20.10 f ' ) ;
are=num2str ( intex , ' %20.10 f ' ) ;
e r r o r=num2str ( abs ( area−intex ) , ' %20.10 f ' ) ;
p l o t (x0 , y0 , ' l i new idth ' , 2 , ' co l o r ' , ' r ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , ar )
s e t ( handles . edit6 , ' s t r i n g ' , are )
s e t ( handles . e r r or , ' s t r i n g ' , e r r o r )
s e t ( handles . pushbutton1 , ' enable ' , 'on ' )
s e t ( handles . pushbutton2 , ' enable ' , ' o f f ' )
hold off
3. Codigo Fuente de los GUI’S 52
3.4. Metodo de Boole
Listing 3.8: Boton Graficar
f unc t i on pushbutton1_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area n h x0 y0 f a b
f=get ( handles . edit1 , ' s t r i n g ' ) ;
a=str2double ( get ( handles . edit2 , ' s t r i n g ' ) ) ;
b=str2double ( get ( handles . edit3 , ' s t r i n g ' ) ) ;
n=str2double ( get ( handles . edit4 , ' s t r i n g ' ) ) ;
h=(b−a ) /(4∗ n ) ;
x=a : h : b ;
xx=x ;
yy=eva l (f ) ;
area1=14∗yy (1)+14∗yy (4∗ n+1)+64∗sum( yy ( 2 : 2 : 4 ∗ n ) ) ;
area2=24∗sum( yy ( 3 : 4 : 4 ∗ n−1) )+28∗sum( yy ( 5 : 4 : 4 ∗ n−3) ) ;
area=(area1+area2 ) ∗( h /45) ;
fa=yy (1) ; fb=yy (4∗ n+1) ; %Limites l a t e r a l e s
axes ( handles . grafica )
u1=[a a ] ; v1=[0 fa ] ;
p l o t (u1 , v1 , ' co l o r ' , ' r ' ) ;
hold on
u2=[b b ] ; v2=[0 fb ] ;
p l o t (u2 , v2 , ' co l o r ' , ' r ' ) ;
x=a : 0 . 0 1 : b ;
y=eva l ( f ) ;
x0=x ; y0=y ;
yc=min( y ) ; yd=max(y ) ;
ax i s ( [ a−0.5 b+0.5 yc−1 yd+1])
p l o t (x , y , ' l i new idth ' , 2 , ' co l o r ' , ' r ' )
i f yc>=1
ax i s ( [ a−0.5 b+0.5 −1 yd+1])
end
i f yd<=1
ax i s ( [ a−0.5 b+0.5 yc−1 1 ] )
end
z=0∗y ;
p l o t (x , z , ' co l o r ' , 'k ' ) ;
p l o t (a , 0 , ' ∗b ' ,b , 0 , ' ∗b ' ) ;
g r i d on
s e t ( handles . edit5 , ' s t r i n g ' , ' ' )
s e t ( handles . edit6 , ' s t r i n g ' , ' ' )
s e t ( handles . listbox1 , ' s t r i n g ' , ' ' )
s e t ( handles . pushbutton1 , ' enable ' , ' o f f ' )
s e t ( handles . pushbutton2 , ' enable ' , 'on ' )
3. Codigo Fuente de los GUI’S 53
3. Codigo Fuente de los GUI’S 54
Listing 3.9: Boton Calcular
f unc t i on pushbutton2_Callback ( hObject , eventdata , handles )
c l c
g l oba l xx yy area h x0 y0 intex f a b n
integral ( hObject , eventdata , handles )
listado= ' Areas Pa r c i a l e s ' ;
axes ( handles . grafica )
xv=xx (1) ; yv=0;
f o r k=1:n
px=[xx (4∗ k−3) xx (4∗ k−2) xx (4∗ k−1) xx (4∗ k ) xx (4∗ k+1) ] ;
py=[yy (4∗ k−3) yy (4∗ k−2) yy (4∗ k−1) yy (4∗ k ) yy (4∗ k+1) ] ;
p=p o l y f i t (px , py , 4 ) ;
hh=h /10 ;
x=xx (4∗ k−3) : hh : xx (4∗ k+1) ;
y=polyva l (p , x ) ;
xu=x ; yu=y ;
xv=[xv xu ] ;
yv=[yv yu ] ;
end
u=[xv xx (4∗ n+1) xx (1) ] ;
v=[yv 0 0 ] ;
d3=f i l l (u , v , [ 0 . 5 0 . 8 0 . 8 ] ) ;
%areas p a r c i a l e s
f o r j=1:n
ux=[xx (4∗ j−3) xx (4∗ j−3) ] ; vx=[0 yy (4∗ j−3) ] ;
p l o t ( ux , vx )
s_area=(14∗yy (4∗ j−3)+64∗yy (4∗ j−2)+24∗yy (4∗ j−1)+64∗yy (4∗ j )+14∗yy (4∗ j+1) ) ∗( h /45) ;
listado=strvcat ( listado , num2str ( s_area , ' %20.10 f ' ) ) ;
s e t ( handles . listbox1 , ' s t r i n g ' , listado ) ;
end
ar=num2str ( area , ' %20.10 f ' ) ;
are=num2str ( intex , ' %20.10 f ' ) ;
e r r o r=num2str ( abs ( area−intex ) , ' %20.10 f ' ) ;
p l o t (x0 , y0 , ' l i new idth ' , 2 , ' co l o r ' , ' r ' ) ;
s e t ( handles . edit5 , ' s t r i n g ' , ar )
s e t ( handles . edit6 , ' s t r i n g ' , are )
s e t ( handles . e r r or , ' s t r i n g ' , e r r o r )
s e t ( handles . pushbutton1 , ' enable ' , 'on ' )
s e t ( handles . pushbutton2 , ' enable ' , ' o f f ' )
hold off
BIBLIOGRAFIA
[1] Buhmann, M. D. (2004). Radial Basis Functions: Theory and Implementations.
Cambridge University Press. United Kingdom.
[2] Aleman M.; Alvarez L.; Sanchez J. Analisis Numerico[en lınea]. [consulta 2012].
[3] Burden R.L; Faires J.D . (2001). Numerical Abalysis. Cengage Learning Latin
America.
[4] Cobos J. Apuntes de Calculo Numerico[en lınea].
http://ma1.eii.us.es/Material/Cal_Num_itis_Apuntes.pdf [consulta
2012]
[5] Comer E.(2009) Metodos Numericos Instituto Tecnologico de Tijuana.
[6] Mathews J.; Fink K.(2000) Metodos Numericos con MATLAB. Prentice Hall,
Madrid.
[7] Mejıa C.(2002) Invitacion al Analisis Numerico. Universidad Nacional de Colom-
bia, Medellın.
[8] Mora W.F.(2010) Introduccion a los Metodos Numericos. Instituto Tecnologico de
Costa Rica.
[9] Muller H. (1996) Una Introduccion al Analisi Numerico. Universidad Mayor de
San Simon. Cochabamba, Bolivia.
[10] Nakamura, S. (1992). Metodos Numericos Aplicados con Software. Pearson Edu-
cacion.
BIBLIOGRAFIA 56
[11] A. Quarteroni, F. Saleri. (2006). Calculo Cientifico con MATLAB y Octave.
Springer-Verlag, Italia, Milano.
[12] Velasquez J.(2007) Analisis Numerico. Ediciones Uninorte.
[13] Won Y. Yang , Wenwu Cao , Tae-Sang Chung , John Morris(2005) Applied Nu-
merical Methods Using MATLAB. John Wiley Sons.
[14] V. Dominguez. L. Rapun Matlab en cinco lecciones de Numerico[en lınea].
http://www.unavarra.es/personal/victor dominguez/ [consulta 2012]
[15] Carrasco V.(2011) Metodos Numericos Aplicados a la Ingenierıa Problemas en
Polymath y Matlab. MACRO
[16] Morales M.(2010) Matlab R2010a Metodos Numericos con Visualizacion Grafica.
MACRO
[17] Amancio R., Orbegoso G., Munoz G., Villalta R. (2010) Matlab 2010 - Software
para ciencia e ingenierıa. MACRO
[18] Moler, C. (2004) Numerical computing with Matlab. SIAM
[19] Pineiro G. APUNTES DE MATLAB [en lınea].
http://www.uhu.es/candido.pineiro/docencia/apuntesmatlab.pdf [consul-
ta 2012]
[20] J. Cooper A Matlab Companior for Multivariable Calculus
[21] Chavil M. Sistema experto en Maple Para el analisis de Curvas y superficies en
R3
[22] Gonzales M., Sanchez R. Graficas de curvas y superficies usando Matlab