Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTOMATIZACIÓN Y CONTROL
DEBERES
Métodos Numéricos
NRC: 3217
2. Segundo Parcial 18
2.1. Deber 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.8. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.9. Resolución Ejercicios SVD PDF . . . . . . . . . . . . . . . . . . . . 27
2.2. Deber Sistemas Lineales PDF . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3. Interpolación PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.8. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.9. Ejercicio 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1
2.3.10. Ejercicio 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.3.11. Ejercicio 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.12. Ejercicio 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.4. Trabajo Extra Programa SVD . . . . . . . . . . . . . . . . . . . . . . . . . 50
3. Tercer Parcial 51
3.1. Resumen de Lectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2. Derivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.8. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.9. Ejercicio 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.10. Ejercicio 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2.11. Ejercicio 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.12. Ejercicio 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.13. Ejercicio 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.14. Ejercicio 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.15. Ejercicio 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.2.16. Ejercicio 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3. Integración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.3.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.3.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3.8. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.4. Integración Compuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.4.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.4.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.4.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.4.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.4.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.5. Consulta General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.5.1. Método de Integración de Romberg . . . . . . . . . . . . . . . . . . 106
3.5.2. Integración Adaptativa . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.5.3. Método de Integración de Gauss-Legendre . . . . . . . . . . . . . . 118
3.6. Ejercicios EDO mattews . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.6.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.6.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.6.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.6.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.6.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
2
3.7. Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.7.1. Derivación Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.7.2. Integración Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.7.3. Ecuaciones Diferenciales Ordinarias . . . . . . . . . . . . . . . . . . 127
3
MÉTODOS NUMÉRICOS
Abril - Agosto 2018
1. Primer Parcial
1.1. Deber 1
TEOREMA DE TAYLOR
Encuentre el polinomio de grado 1, 2, 3, 4, 5 de la siguiente función
f (x) = ex
con x0 = −1; x0 = 0; x0 = 1.
Pn f k (x0 )(x − x0 )k
Pn (x) = k
k
x0 = 0
P1 (x) = 1 + x
x2
P2 (x) = 1 + x +
2!
x 2 x3
P3 (x) = 1 + x + +
2! 3!
x 2 x3 x4
P4 (x) = 1 + x + + +
2! 3! 4!
x 2 x3 x4 x5
P4 (x) = 1 + x + + + +
2! 3! 4! 5!
4
x0 =
−1
1 1
P1 (x) = + (x + 1)
e e
1 1 1 (x + 1)2
P2 (x) = + (x + 1) +
e e e 2!
1 1 1 (x + 1)2 1 (x + 1)3
P3 (x) = + (x + 1) + +
e e e 2! e 3!
1 1 1 (x + 1)2 1 (x + 1)3 1 (x + 1)4
P4 (x) = + (x + 1) + + +
e e e 2! e 3! e 4!
1 1 1 (x + 1)2 1 (x + 1)3 1 (x + 1)4 1 (x + 1)5
P5 (x) = + (x + 1) + + + +
e e e 2! e 3! e 4! e 5!
5
x0 = 1
P1 (x) = e + e(x − 1)
(x − 1)2
P2 (x) = e + e(x − 1) + e
2!
(x − 1)2 (x − 1)3
P3 (x) = e + e(x − 1) + e +e
2! 3!
(x − 1)2 (x − 1)3 (x − 1)4
P4 (x) = e + e(x − 1) + e +e +e
2! 3! 4!
(x − 1)2 (x − 1)3 (x − 1)4 (x − 1)5
P5 (x) = e + e(x − 1) + e +e +e +e
2! 3! 4! 5!
6
1.2. Deber 2
1.2.1. Ejercicio 1
Realizar los desarrollos de Taylor para:
a) f (x + h); x = x0 + h
7
0 00 000
f (x0 )h f (x0 )h2 f (x0 )h3 f IV (x0 )h4 f V (x0 )h5
f (x0 + h) = f (x0 ) + + + + + +
1! 2! 3! 4! 5!
f V I (x0 )h6 f V II (c)h7
+
6! 7!
b) f (x − h); x = x0 − h
1.2.2. Ejercicio 2
Demostrar: Si a ≤ b y c ≤ d, entonces a.c ≤ b.d
Si a ≤ b
Entonces a.c ≤ b.c → ∀c > 0
Si c ≤ d
Entonces b.c ≤ b.d → ∀b > 0
1.2.3. Ejercicio 3
Demostrar las propiedades de la norma
||x|| ≥ 0
◦ Si x 6= 0
◦ Entonces x > 0 y ||x|| = x > 0 ó
8
◦ x < 0 y ||x|| = −x > 0
◦ Ası́, pues, x 6= 0,implica ||x|| =
6 0 y ||x|| ≥ 0 .
||x|| = 0 ssi x = 0
◦ Equivalentemente si x = 0 → ||x|| = 0
◦ Como ||x + y|| y ||x|| + ||y|| son ambos no negativos, podemos concluir que
||x + y|| ≤ ||x|| + ||y|| por el teorema. Si x ≥ 0 y y ≥ 0, entonces x2 > y 2 si y
solo si x > y
1.3. Deber 3
1.3.1. Ejercicio 1
p
Como se propaga el error en la división p = p̂ + εp ; q = q̂ + εq
q
p p̂ + εp
=
q q̂ + εq
p p̂ q̂.εp − p̂.εq
= +
q q̂ q̂(q̂ + εq )
p p̂ q̂.εp − p̂.εq
− =
q q̂ q̂q
p p̂ q̂.εp − p̂.εq
−
q q̂ q̂q
p = p
q q
q̂.εp − p̂εq q̂.εp p̂.εq
εr .(p/q) = = −
pq̂ p.q̂ p.q̂
p̂.εq q p̂ q εq
εrp − . = εrp − .
pq̂ q p q̂ q
9
p̂ q̂
Si =1y =1
p q
p
εr = εrp − εrq
q
1.3.2. Ejercicio 2
Calcular la ecuación y el punto de corte mediante el método de Newton
Raphson Se tiene los siguientes datos:
◦ f (x)
0
◦ f (x)
◦ x0
Resolución:
0
y − f (x0 ) = f (x0 )(x − x0 )
Si y = 0
0
0 − f (x0 ) = f (x0 )(x1 − x0 )
f (x0 )
x1 = x0 − 0
f (x0 )
f (x1 )
x2 = x1 − 0
f (x1 )
f (x2 )
x3 = x2 − 0
f (x2 )
f (x3 )
x4 = x3 − 0
f (x3 )
..
.
f (xn )
xn+1 = xn − 0
f (xn )
1.3.3. Ejercicio 3
Calcular la ecuación y el punto de corte mediante el método de Secante Se
tiene los siguientes datos:
◦ f (x)
◦ x0
◦ x1
Resolución:
Se toma como base el método de Newton tomando a la derivada como la pendiente de la
recta entre los dos puntos.
0 f (x1 ) − f (x0 )
f (x1 ) =
x1 − x0
10
Reemplazando en la ecuación:
f (x1 )
x2 = x1 −
f 0 (x1 )
f (x1 )
x2 = x1 −
f (x1 ) − f (x0 )
x1 − x0
f (x1 )(x1 − x0 )
x2 = x1 −
f (x1 ) − f (x0 )
Hallamos los siguientes puntos:
f (x2 )(x2 − x1 )
x3 = x2 −
f (x2 ) − f (x1 )
f (x3 )(x3 − x2 )
x4 = x3 −
f (x3 ) − f (x2 )
..
.
f (xn )(xn − xn−1 )
xn+1 = xn −
f (xn ) − f (xn−1 )
1.4. Deber 4
1.4.1. Ejercicio 1
Denotemos por [a0 , b0 ], [a1 , b1 ], ..., [an , bn ]los intervalos que se generan en méto-
do de bisección.
a0 ≤ b 0
a0 + b 0
Si a1 = a0 entonces b1 = y viceversa.
2
a0 ≤ a1 ≤ b 1 ≤ b 0
ak + bk
Si ak+1 = ak entonces bk+1 = y viceversa.
2
ak ≤ ak+1 ≤ bk+1 ≤ bk
a0 ≤ a1 ≤ ...ak ≤ ak+1 ≤ bk+1 ≤ bk ... ≤ b1 ≤ b0
a0 ≤ a1 ≤ ... ≤ an ≤ bn ≤ ... ≤ b1 ≤ b0
11
b0 − a0
b 1 − a1 =
2
b 1 − a1 1 b 0 − a0 b 0 − a0
b 2 − a2 = = =
2 2 2 22
b 2 − a2 1 b 0 − a0 b 0 − a0
b 3 − a3 = = 2
=
2 2 2 23
b 3 − a3 1 b 0 − a0 b 0 − a0
b 4 − a4 = = 3
=
2 2 2 24
..
.
..
.
bn−1 − an−1 1 b0 − a0 b 0 − a0
b n − an = = n−1
=
2 2 2 2n
limn→∞ bn = limn→∞ an
b 0 − a0
limn→∞ (bn − an ) = limn→∞ =0
2n
limn→∞ bn − limn→∞ an = 0
limn→∞ bn = limn→∞ an
limn→∞ cn = limn→∞ an
an + bn
limn→∞ cn = limn→∞
2
an bn
limn→∞ cn = limn→∞ + limn→∞
2 2
1
limn→∞ cn = . (limn→∞ an + limn→∞ an )
2
1
limn→∞ cn = . (2.limn→∞ an )
2
limn→∞ cn = limn→∞ an
1.4.2. Ejercicio 2
1
Qué ocurrirá si usamos el método de bisección con f (x) = en:
(x − 2)
12
Como no se cumple, entonces decimos que no existe raiz en ese intervalo.
1.4.3. Ejercicio 3
Qué ocurrirı́a si usamos el método de bisección con f (x) = tan(x) en:
a+b
c1 = = 3,5 f (3).f (3,5) < 0
2
0,0533 < 0
a+b
c2 = = 3,25
2
f (3).f (3,25) < 0
−0,01551 < 0
a+b
c3 = = 3,125
2
f (3).f (3,125) < 0
13
0,0023 ≮ 0
f (3,125).f (3,25) < 0
−0,0018 < 0
..
.
lim π tan(x) = ∞
x→
2
lim + tan(x) = −∞
π
x→
2
lim π − tan(x) = ∞
x→
2
π
No existe la función en el punto x = por lo tanto no es contı́nua en el intervalo [1, 3]
2
y no se puede aplicar el método por la razón de que nunca va a converger.
1.4.4. Ejercicio 4
Supongamos que usamos el método de bisección para hallar un cero de f(x)
en el intervalo [2,7]. Cuántas bisecciones hay que hacer para asegurar que la
aproximación cn tenga una precisión de 5x10−9 ?
Tomando en cuenta el error:
|bn − an | ≤ error
b 0 − a0
b n − an =
2n
b 0 − a0
error =
2n
b 0 − a0
2n =
error
b 0 − a0
ln
error
n=
ln|2|
ln|b0 − a0 | − ln|error|
n=
ln|2|
Reemplazando:
ln|7 − 2| − ln|5x10−9 |
n=
ln|2|
n∼= 29,8974
n = 30
14
1.4.5. Ejercicio 5
El polinomio f (x) = (x − 1)3 (x − 2)(x − 3) tiene tres ceros: x = 1 de multipli-
cidad 3 y x = 2 y x = 3, cada uno de ellos de multiplicidad 1. Si a0 y b0 son
an + b n
números reales tales que a0 < 1 y b0 > 3 se eligen tales que cn = no es
2
igual a 1, ni a 2 ni a 3 para ningún n ≥ 1, entonces el método de bisección
convergerá a cuál o cuales ceros? porqué?
Se escoge un intervalo arbitrario:[0,7]
Se evalúa el intervalo:
0+5
c1 = = 2,5 f (0).f (2,5) < 0
2
−5,0625 ≮ 0
f (2,5).f (5) < 0
−324 < 0
2,5 + 5
c2 = = 3,75
2
f (2,5).f (3,75) < 0
−23,0309 < 0
..
.
15
1.4.6. Ejercicio 6
Sea f (x) = x3 − 3x − 2
f (pk−1 )
pk = pk−1 −
f 0 (pk−1 )
3
p − 3pk−1 − 2
pk = pk−1 − k−1 2
3pk−1 − 3
p3k−1 − 3pk−1 − 2
pk = pk−1 −
3p2k−1 − 3
p0 = 2,1
(2,1)3 − 3(2,1) − 2
p1 = 2,1 − = 2,006
3(2,1)2 − 3
(2,006)3 − 3(2,006) − 2
p2 = 2,006 − = 2,00002385
3(2,006)2 − 3
(2,00002385)3 − 3(2,00002385) − 2
p3 = 2,00002385 − = 2,0000000
3(2,00002385)2 − 3
(2,0000000)3 − 3(2,0000000) − 2
p4 = 2,0000000 − = 2,0000000
3(2,000000)2 − 3
00
0 f (x0 )(x − x0 )2
f (x) = f (x0 ) + f (x0 )(x − x0 ) +
2!
Donde el error es:
00
f (x0 )(x − x0 )2
Error =
2!
00
f (h)h2
Error(h) =
2!
Por lo tanto podemos concluir que el método converge cuadráticamente.
1.4.7. Ejercicio 7
Considere la función f (x) = cos(x)
a) Determine la fórmula de Newton Raphson pk = g(pk−1 )
f (pk−1 )
pk = pk−1 − 0
f (pk−1 )
cos(pk−1 )
pk = pk−1 +
sen(pk−1 )
16
b) Deseamos aproximarnos a la raı́z p = 3π/2. Podemos usar p0 = 3?. Porqué? p0 = 3
cos(3)
p1 = 3 + = −4,01
sen(3)
cos(−4,01)
p2 = −4,01 + = −4,85
sen(−4,01)
cos(−4,85)
p3 = −4,85 + = −4,715
sen(−4,85)
cos(−4,715)
p3 = −4,715 + = −4,712
sen(−4,715)
R// No se puede usar el punto p0 = 3 porque al trazar la recta pendiente en ese punto,
la misma corta con el eje x en -4 y por lo tanto converge a la raı́z negativa.
R// Si se puede usar p0 = 5 porque la recta tangente a ese punto corta con el eje x en
4.7 lo que hará que el método converge a x = 4,71
1.4.8. Ejercicio 8
Considere la función f (x) = xe−x
limk→∞ pk = 0
17
(21,065).e−21,065
p2 = 21,065 − = 22,1215
e−21,065 − (20)e−21,065
(22,1215).e−22,1215
p3 = 22,1215 − −22,1215 = 23,1415
e − (20)e−22,1215
(23,1415).e−23,1415
p4 = 23,1415 − −23,1415 = 24,1950
e − (20)e−23,1415
limk→∞ pk = ∞
2. Segundo Parcial
2.1. Deber 1
2.1.1. Ejercicio 1
Consultar acerca del método de Muller
El método de Muller es una generalización del método de la secante, en el sentido de
que no necesita el cálculo de la derivada de la función.
Es un método de interpolación que aproxima la función f (x) cuya raı́z interesa por un
polinomio cuadrático. Para determinar dicho polinomio se consideran tres puntos cercanos
a la raı́z de la ecuación f (x) = 0
Es un método que trabaja con iteraciones de tres puntos iniciales (p0 , f (p0 )), (p1 , f (p1 )) y
(p2 , f (p2 )). Entonces se constituye una parábola que pasa por estos tres puntos y se usa
la fórmula de resolución de las ecuaciones de segundo grado para determinar el punto de
corte de dicha parábola con el eje OX.
Este método puede emplearse tanto para hallar ceros reales como para hallar ceros. Sin
pérdida de generalidad, supongamos que p2 es la mejor aproximación a la raı́z y con-
sideramos la parábola, que se muestra en la Figura 1, que pasa por los tres puntos de
partida.
Los valores iniciales (p0 , f (p0 )), (p1 , f (p1 )) y (p2 , f (p2 )) para el Método de Muller
2.1.2. Ejercicio 2
Desarrollo del método Hacemos un cambio de variable
t = x − p2 (1)
18
Y usamos las diferencias
h0 = p0 − p2 y h 1 = p 1 − p2 (2)
consideramos el polinomio cuadrático en la variable t
y = at2 + by + c (3)
Ahora nos enfocamos en la figura 1 y vemos que cada punto inicial nos proporciona
una ecuación para a, b y c
2
En t = h0 : a(h0 ) + bh0 + c = f (p0 ),
En t = h1 : a(h1 )2 + bh1 + c = f (p1 ), (4)
En t = h2 : a(h2 )2 + bh2 + c = f (p2 ).
Para continuar con el proceso, elegimos los nuevos valores de p0 y p1 como los dos
puntos más cercanos a p3 ente {p0 , p1 , p2 } y p3 pasa a ser el nuevo p2 . Al ser un método
que necesita una serie de iteraciones necesita de varios procesos, pero solo hace falta una
evaluación de f en cada iteración.
Este método, al tratarse de una serie de iteraciones presenta un error que puede ser
calculado. También debemos tener en cuenta que entre mayor sea el números de iteraciones
el error será mejor y la aproximación será mejor. Para calcular el error tenemos la siguiente
formula.
p3 − p2
εRelativo = | | ∗ 100 %
p3
Si usamos el método de Muller para hallar las raı́ces reales de f (x) = 0, es posible
que los resultados obtenidos tenga parte compleja, esto es evidente en la ecuación (8). En
estos casos las partes complejas serán pequeñas en magnitud y podemos despreciarlas, y
ası́ trabajar solo con números reales.
19
2.1.3. Ejercicio 3
Deducir la fórmula generalizada para la matrı́z triangular inferior
Matriz 2x2 b1
x1 =
a11
. b2 − a21 x1
a11 0 b1 x2 =
a12 a21 b2 a22
Matriz 3x3
b1
x1 =
a11
a11 0 0 b1
a21 a22 0 b2 x = 2 − a21 x1
b
2
a31 a32 a33 b3 a22
b3 − a31 x1 − a32 x2
. x3 =
a33
b1 b3 − a31 x1 − a32 x2
Matriz 4x4 a11 0 0 0 b1
a21 a22 0 x 1 =
0 b2 a11 a33
a31 a32 a33 0 b3 b2 − a21 x1
x4 =
x2 = b4 − a41 x1 − a42 x2 − a43 x3
a41 a42 a43 a44 b4 a22
. x3 = a44
20
Matriz nxn
a11 0 0 0 ··· 0 b1
a21 a22 0 0 ··· 0 b2
a31 a32 a33 0 ··· 0 b3
.. .. .. .. .. .. ..
. . . . . . .
an1 an2 an3 an4 ··· ann bn
b1
x1 =
a11
b2 − a21 x1
x2 =
a22
b3 − a31 x1 − a32 x2
x3 =
a33
.. .. .. ..
. . . .
bn − an1 x1 − an2 x2 − an3 x3 − ... − an(n−1) xn
xn =
ann
FORMULA GENERALIZADA PARA RESOLVER UNA MATRIZ TRIANGULAR IN-
FERIOR DE DIMENSIÓN NxN
b1
si n = 1 , a11 6= 0
a11 P
xn = i−1
bi − j=1 aij xj (9)
si n > 1 , aii 6= 0
aii
2.1.4. Ejercicio 4
Programa para resolver una matriz triangular superior por el método de
Gauss
1 clear all
2 clc
3
4 %RESOLUCION DE ECUACIONES POR EL METODO
DE GAUSS
5 %MATRIZ TRIANGULAR SUPERIOR
6 A =[1 2 3 4 5;0 4 6 7 8;0 0 8 9 10;0 0 0 10 11;0 0 0 0 5]; %
Crea la matriz triangular superior
7 b =[1;2;3;4;5]; %Crea la matriz de terminos independientes
8 B=A;
9 B (: ,6) = b
10 n = rank ( A ) ; %Calcula el rango de la matriz y le asigna el
valor a n
11 x (n ,1) = b ( n ) / A (n , n ) ; %Calcula el ultimo termino de x
12 for i =n -1: -1:1 %Ciclo for para calcular cada termino de
x
13 c =0; %reinicia la variable c
21
14 for k = i +1: n %Ciclo for para calcular la sumatoria de
todos los terminos del producto entre A ( ij ) * x ( j )
15 c = c + A (i , k ) * x ( k ) ;
16 end
17 x ( i ) =( b ( i ) -c ) / A (i , i ) ; %Calcula el valor de x en i
18 end
19 x %Imprime las soluciones de las
ecuaciones
2.1.5. Ejercicio 5
Programa para resolver una matriz triangular inferior por el método de
Gauss
1 clear all
2 clc
3
4 %RESOLUCION DE ECUACIONES POR EL METODO DE
GAUSS
5 %MATRIZ TRIANGULAR INFERIOR
6 A =[1 0 0 0;2 3 0 0;4 5 6 0;7 8 9 10]; %Crea la matriz
triangular inferior A
7 b =[120;2;3;4]; %Crea la matriz de terminos
independientes b
8 B=A;
9 B (: ,5) = b
10 n = rank ( A ) ; %Calcula el rango de la matriz y le
asigna el valor a n
11 x (n ,1) =0;
12 x (1) = b (1) / A (1 ,1) ; %Calcula el primer termino de x
13 for i =2: n %Ciclo para calcular todos los
terminos de x desde 2 hasta n
14 c =0; %Reinicio la variable
15 for k =1: i -1 %Ciclo para calcular la sumatoria de
los productos de A (i , j ) * x ( j )
16 c = c + A (i , k ) * x ( k ) ;
17 end
18 x ( i ) =( b ( i ) -c ) / A (i , i ) ; %Calcula los terminos de x
19 end
20 x %Imprime las soluciones de las
ecuaciones
2.1.6. Ejercicio 6
Programa para resolver un sistema de ecuaciones mediante el método de
Gauss Jordan
1 function [ X ]= GausJordan (A , b )
2 [n , m ]= size ( A ) ;
22
3 C =[ A b ]
4 % se hace ceros bajo la diagonal
5 for ( j =1: m -1)
6 C ([ j ] ,:) =( C ([ j ] ,:) ) / C (j , j ) ;
7 for ( i = j +1: n )
8 C ([ i ] ,:) = C ([ i ] ,:) -( C ([ i ] ,[ j ]) / C ([ j ] ,[ j ]) ) .* C ([ j
] ,:)
9 end
10 end
11
12 % se hace ceros sobre la diagonal
13 for ( j = m : -1:2)
14 C ([ j ] ,:) =( C ([ j ] ,:) ) / C (j , j ) ;
15 for ( i =j -1: -1:1)
16 C ([ i ] ,:) = C ([ i ] ,:) -( C ([ i ] ,[ j ]) / C ([ j ] ,[ j ]) ) .* C ([ j
] ,:)
17 end
18 end
19 X = C (: , n +1) ./ diag ( C ) ;
20 end
2.1.7. Ejercicio 7
Compresión de Imágenes Escala de Grises
La rutina o código en Matlab que se muestra a continuación permite comprimir una
imagen en blanco y negro (o escala de grises) utilizando la descomposición en valores
singulares.
1
2 %Practica DVS
3 %Compresion de Imagenes en blanco y negro o escala de grises
4 clear all %borra todas las variables
5 %Pantalla para presentar la imagen
6 figure (1)
7 %Leemos la imagen guardada con el nombre ' playa . jpg ' y la
asignamos a la variable A0
8 A0 = imread ( ' pgris . jpg ' , ' jpg ' ) ;
9 %Visualizamos la imagen
10 imagesc ( A0 ) ; colormap ( gray ) ;
11 %Convertimos la imagen a formato numerico
12 A0 = double ( A0 ) ;
13 %Calculamos el tamano de la matriz ma0 = filas y na0 = columnas
14 [ ma0 , na0 ]= size ( A0 ) ;
15 %Descomposicion en valores singulares de la matriz A0
16 [ U0 , S0 , V0 ]= svd ( A0 ) ;
17 %Calculamos el tamano de la matrices U0 , S0 y V0
18 [ mu0 , nu0 ]= size ( U0 ) ; [ ms0 , ns0 ]= size ( S0 ) ; [ mv0 , nv0 ]= size ( V0 )
;
19 %Compresion
20 %Pantalla para presentar la nueva imagen
21 figure (2)
23
22 %bucle
23 for k =1:6 %k es el numero de imagenes a presentar
24 %r0 es el numero de valores singulares de A0
25 r0 =2^ k ;
26 %factorizacion de la matriz A0 , A0 = USV '
27 imaA0 = U0 (: ,1: r0 ) * S0 (1: r0 ,1: r0 ) * V0 (: ,1: r0 ) ' ;
28 %tamano de la matriz ( imagen ) comprimida
29 comp =( mu0 + nv0 +1) * r0 ;
30 %tamano de la matriz ( imagen ) original
31 total = ma0 * na0 ;
32 %muestra en la pantalla los valores de k , r0 , total y comp
33 disp ([ k r0 total comp ])
34 %transformo la matriz de formato doble a uint8
35 imaA0 = uint8 ( imaA0 ) ;
36 %ventana para la nueva imagen
37 subplot (2 ,3 , k ) ;
38 %instrucciones para visualizar la imagen
39 imagesc ( imaA0 ) ; colormap ( gray ) ;
40 end
41 %fin del bucle
42 %fin del codigo
24
100 100 100
2.1.8. Ejercicio 8
Compresión de Imágenes Color
Programa para comprimir imagenes a color:
clear all
clc
%Pantalla para presentar la imagen
figure(1)
%Leemos la imagen guardada con el nombre correspondiente ? _____ . jpg ? y la asign
A0=imread(’perritos.jpg’,’jpg’);
%Visualizamos la imagen
imagesc (A0) ;
%dividimos la imagen en tres partes y las convertimos a formato numerico:
imR=double(A0(: ,: ,1) ) ;% Rojo
imG=double(A0(: ,: ,2) ) ;% Verde
imB=double(A0(: ,: ,3) ) ;% Azul
%Calculo del tama~
nana de las matricies
[ma0, na0]= size (imR) ;
[ma1, na1]= size (imG) ;
[ma2, na2]= size (imB) ;
%Descomposicion en valores singulares para cada matriz RGB
[U0,S0 ,V0]=svd(imR) ;
[U1,S1 ,V1]=svd(imG) ;
[U2,S2 ,V2]=svd(imB) ;
%Calculamos el tama~
no de las matrices U,S y V
25
[mu0, nu0]= size (U0) ; [ms0, ns0]= size (S0) ; [mv0, nv0]= size (V0) ;
[mu1, nu1]= size (U1) ; [ms1, ns1]= size (S1) ; [mv1, nv1]= size (V1) ;
[mu2, nu2]= size (U2) ; [ms2, ns2]= size (S2) ; [mv2, nv2]= size (V2) ;
%Compresion
%Pantalla para las nuevas imágenes
figure(2)
%bucle
for k=1:6 %k es el numero de imagenes a presentar
r0=2^k; %r0 es el numero de valores singulares de A0
%factorizacion de la matriz A0, A0=USV?
imaA0=U0(:,1:r0)*S0(1:r0,1:r0)*V0(:,1:r0)’;
imaA1=U1(:,1:r0)*S1(1:r0,1:r0)*V1(:,1:r0)’;
imaA2=U2(:,1:r0)*S2(1:r0,1:r0)*V2(:,1:r0)’;
%tama~
no de la matriz (imagen) comprimida
comp0=(mu0+nv0+1)*r0;
comp1=(mu1+nv1+1)*r0;
comp2=(mu2+nv2+1)*r0;
%tama~
no de la matriz (imagen) original
total0=ma0*na0 ;
total1=ma1*na1 ;
total2=ma2*na2 ;
%transformo a una sola matriz Q
Q (: ,: ,1)=(imaA0) ;
Q (: ,: ,2)=(imaA1) ;
Q (: ,: ,3)=(imaA2) ;
%ventana para la nueva imagen
subplot (2 ,3 ,k) ;
%instrucciones para visualizar la imagen
imagesc ( uint8 ( Q ) )
end
26
100 100 100
a) r0 = 2 ∗ k
b) r0 = 3k
27
c) r0 = 3 ∗ k
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 8
Se pregunta:
28
1 2 3 1 2 3 .
4 5 6 0 −3 −6
−3 −6
7 8 8 0 −6 −13 = (1) =(39)-(36)=3
−6 −13
A2 x = b1 y A2 x = b2
2.2.2. Ejercicio 2
Considere el siguiente sistema lineal de ecuaciones
1 1
x1 + x2 + x3 = 2
2 3
1 1 1
x1 + x2 + x3 = 0 (10)
2 3 4
1 x1 + 1 x2 + 1 x3 = −1
3 4 5
a) Resolver el sistema utilizando em método de Gauss.
Resolviendo con Matlab se obtiene:
29
b) Resolver el sistema de manera exacta, analiticamente (comparar respues-
tas).
1 12 13 2 1 12 13
2
1 1 1 0 F2 − 1 F1 = 0 1 1 −1
2 3 4 2 12 12
1 1 1 1 1 4
3 4 5
−1 F 3 − 3
F 1 0 12 45
− 31 F3 − F2
1 1
1 2 3
2
1 1
= 0 12 12
−1
1 2
0 0 180 3
Resolviendo las ecuaciones:
1 2
x3 = x3 = 120
180 3
1 1
x2 + x3 = −1 x2 = −192
12 12
1 1
x1 + x2 + x3 = 2 x1 = 58
2 3
Las respuestas son diferentes sin embargo ambas cumplen con las igualdades de las
ecuaciones iniciales.
2.2.3. Ejercicio 3
Escribase una función de Matlab
[L,U,P]=fac_LUP{A}
que calcule la factorización LU de una matriz A utilizando el algoritmo
propuesto. La matriz L debe ser una matriz triangular inferior nxn, U una
triangular superior nxn y P ua matriz de permutación de las mismas dimen-
siones que A, tales que se cumpla L ∗ U = P ∗ A
1 function [ L U P ]= Fac_LUP ( A )
2 B=A;
3 [m , n ]= size ( A ) ;
4 L = eye ( n ) ;
5 P = eye ( n ) ;
6 for j =1: n
7 for i = j +1: m
8 if A (j , j ) ~=0
9 L (i , j ) = A (i , j ) / A (j , j ) ;
10 A (i ,:) = A (i ,:) -L (i , j ) * A (j ,:) ;
11 else
12 k =j -1;
13 [ mx c ]= max ( A ( j :m , j ) ) ; % maximo valor de las
columnas
30
14 A ([ c +k , j ] ,:) = A ([ j , c + k ] ,:) ; %cambio de filas
15 P ([ c +k , j ] ,:) = P ([ j , c + k ] ,:) ; %matriz de pivotes
16 L (i , j ) = A (i , j ) / A (j , j ) ; %matriz triangular
inferior de coeficientes
17 A (i ,:) = A (i ,:) -L (i , j ) * A (j ,:) ; %ceros en la
columna de los elementos de Gauss
18 end
19 end
20 end
21 U=A;
22 y=P*B
23 z=L*U
2.2.4. Ejercicio 4
Dado el sistema lineal de ecuaciones Ax = b, donde la matriz de coeficientes
A ∈ Rn×n es una matriz no singular, un método para resolver dicho sistema
consiste en calcular la factorizacion LU de la matriz A. Si para resolver el sis-
tema utilizamos el algoritmo del apartado anterior entonces, podemos obtener
la solución x resolviendo los dos sistemas triangulares siguientes.
Ly = P b
Ux = y
Escrı́base una función en Matlab
=sollu(A,b)
31
que calcule la solucion del sistema de ecuaciones Ax = b mediante el procedi-
miento descrito.
Sugerencia: Utilı́cense las funciones creadas en los apartados anteriores y la
de los ejemplos.
2.2.5. Ejercicio 5
Sea A ∈ Rn×n una matriz no singular, la matriz inversa puede calcularse
resolviendo el sistema matricial AX = In , donde X ∈ Rn×n e In es la matriz
identidad n × n. Escrı́banse ua función de Matlab
X=inversa(A)
32
I=eye(n);
for i=1:n
b=I(i,:);
y(1,:)=factoLU(A,b);
X=y’;
end
X
2.2.6. Ejercicio 6
La matriz de Hilbert es un clásico ejemplo de una matriz mal condicionada,
ésta se define de la siguiente manera:
1 21 1 1
3
. . . n
1 1 1 1
. . . n+1
2 3 4
. . . . . . .
Hn =
.
. . . . . .
. . . . . . .
1 1 1 1
n n+1 n+2
. . . 2n−1
Esta matriz puede ser fácilmente generada en Matlab, utilizando el comando
hilb(n), donde n es el orden de la matriz. En el presente ejercicio se pide:
x=gausselimi(A,b).
* Método de Gauss
33
b) Compare el error producido por los tres métodos.
Para comparar los métodos se utiliza el resultado de Matlab:
A=hilb(12);
b=ones(12,1);
x=inv(a)*b;
x1=Gauss2(A,b);
x2=GaussJordan(A,b);
x3=raicesLUP(A,b);
fprintf(’Error por Gauss \n’)
error1=max(abs(x-x1))/max(x);
fprintf(’Error por GaussJordan \n’)
error2=max(abs(x-x2))/max(x);
fprintf(’Error por RaicesLUP \n ’)
error3=max(abs(x-x3))/max(x);
34
x f(x)
-1 -1
0 0
1 1
x(x − 1) x(x + 1)
P2 (x) = − +
2 2
−x(x − 1) + x(x + 1) − x2 + x + x2 + x 2 x
P2 (x) = = =
2 2 2
P2 (x) = x
x f(x)
-1 -1
0 0
1 1
2 8
P3 (x) = f (x0 )L
3,0 (x) + f (x1 )L3,1 (x) + f (x
2 )L3,2 (x)
+ f (x3 )L3,3 (x)
(x − 0)(x − 1)(x − 2) (x + 1)(x(− 1)(x
(( −(2)
(( (x − 0)(x + 1)(x
P3 (x) = (−1) +(0) ((((( ( (
+(1)
(−1 − 0)(−1 − 1)(−1 − 2) (( (0 + 1)(0 − 1)(0 − 2) (1 − 0)(1 + 1)(1
(x + 1)(x − 0)(x − 1)
(8)
(2 + 1)(2 − 0)(2 − 1)
x(x − 1)(x − 2) x(x + 1)(x − 2) 8x(x + 1)(x − 1)
P3 (x) = − +
6 2 6
(x)(x − 1)(x − 2) − (3x)(x + 1)(x − 2) + (8x)(x2 − 1)
P3 (x) =
6
x3 − 3x2 + − 3x3 +
2x 3x2 + + 8x3 −
6x 8x
6 x3
P3 (x) = =
6 6
P3 (x) = x3
2.3.2. Ejercicio 2
Modificar el código dado para que realice el gráfico de los nodos (puntos)
y el polinomio interpolador.
1 clear all
2 clc
3 x1 =[ -1 0 1];
4 y1 =[ -1 0 1];
5 [ C1 L1 , P1 ]= lagrange ( x1 , y1 ) ;
35
6 n = length ( x1 ) ;
7
8 x2 =[ -1 0 1 2];
9 y2 =[ -1 0 1 8];
10 [ C2 L2 P2 ]= lagrange ( x2 , y2 ) ;
11 m = length ( x2 ) ;
12
13
14 hold on
15 grid on
16 fplot ( P1 ,[ x2 (1) -0.5 x2 ( m ) +0.5])
17 fplot ( P2 ,[ x2 (1) -0.5 x2 ( m ) +0.5])
18 plot ( x1 , y1 , ' o ' )
19 plot ( x2 , y2 , ' * ' )
20 xlabel ( ' x ' )
21 ylabel ( ' y ' )
22 legend ( ' Polinomio grado 2 ' , ' Polinomio grado 3 ' , ' 3 puntos ' , ' 4
puntos ' )
23 hold off
24
25 function [C ,L , PL ]= lagrange (x , y )
26 w = length ( x ) ;
27 L = zeros (w , w ) ;
28 for k =1: w
29 V = 1;
30 for j = 1: w
31 if j ~= k
32 V = conv (V , poly ( x ( j ) ) ) /( x ( k ) -x ( j ) ) ;
33 end
34 end
35 L (k ,:) = V ;
36 end
37 C = y;
38 C = C ' .* L ;
39 PL =0;
40 for i =1: w
41 PL = PL + C (i ,:) ;
42 end
43 PL = poly2sym ( PL ) ;
44 end
36
Interpolación de Lagrange
20
Polinomio grado 2
Polinomio grado 3
15 3 puntos
4 puntos
10
y
2.3.3. Ejercicio 3
Cree su propio código
1 clear all
2 clc
3
4 x1 =[13 14 15 16 17 18];
5 y1 =[18 18 17 16 15 14];
6 [ P1 ]= InterpolacionLagrange ( x1 , y1 ) ;
7 m = length ( x1 ) ;
8 P1
9 % x2 =[ -1 0 1 2];
10 % y2 =[ -1 0 1 8];
11 % [ P2 ]= InterpolacionLagrange ( x2 , y2 ) ;
12 % m = length ( x2 ) ;
13
14
15 hold on
16 grid on
17 title ( ' Interpolacion de Lagrange ' )
18 xlabel ( ' x ' )
19 ylabel ( ' y ' )
20 plot ( x1 , y1 , ' * ' )
21 %plot ( x2 , y2 , ' o ' )
22 fplot ( P1 ,[( x1 (1) -0.5) ( x1 ( m ) +0.5) ])
23 plot ([15.5] ,[16.33] , ' o ' )
24 plot ([15.5] ,[16.488] , ' + ' )
25 legend ( ' Tabla de Datos ' , ' Polinomio Interpolador ' , ' Temperatura
media ' , ' Temperatura media polinomio ' )
26 %fplot ( P2 ,[( x2 (1) -0.5) ( x2 ( m ) +0.5) ])
27 %legend ( ' Tabla de Datos 1 ' , ' Tabla de Datos 2 ' , ' Polinomio de
Lagrange grado 2 ' , ' Polinomio de Lagrange grado 3 ' )
37
28 hold off
29
30
31
32 function [ P ]= InterpolacionLagrange (x , y )
33 n = length ( x ) ;
34 for i =1: n
35 num =1;
36 deno =1;
37 for j =1: n
38 if j ~= i
39 num = conv ( num ,[1 -x ( j ) ]) ;
40 deno = deno *( x ( i ) -x ( j ) ) ;
41 end
42 end
43 P (i ,:) =( y ( i ) / deno ) * num ;
44 end
45 m = length ( P ) ;
46 PL =0;
47 for i =1: m
48 PL = PL + P (i ,:) ;
49 end
50
51 syms x
52 P =0;
53 for i =1: m
54 P = P + PL ( i ) * x .^( m - i ) ;
55 end
56 end
Interpolación de Lagrange
20
Tabla de Datos 1
Tabla de Datos 2
15 Polinomio de Lagrange grado 2
Polinomio de Lagrange grado 3
10
-5
-2 -1 0 1 2 3
38
2.3.4. Ejercicio 4
En la Tabla 3 se muestran temperaturas que fueron medidas cada hora,
durante un lapso total de 5 horas
H T
13 18
14 18
15 17
16 16
17 15
18 14
Tabla 3: Datos de la temperatura medida durante 5 horas.
13 + 14 + 15 + 16 + 17 + 18
Hm =
6
Hm = 15,5
39
(15,5)5 2(15,5)4 511(15,5)3 1018(15,5)2 26977(15,5)
P5 (15,5) = − + − + − 8536
120 3 24 3 10
P5 (15,5) = 16,488
16
y
15
14
13
12 13 14 15 16 17 18 19
x
2.3.5. Ejercicio 5
k xk f (xk ) k xk f (xk )
0 4 2 0 0 0
1 5 2.23 1 1 0.75
2 6 2.44 2 2 2.25
3 7 2.64 3 3 3.00
4 8 2.82 4 4 2.25
40
P2 (x) = 2 + 0,23(x − 4) − 0,01(x − 4)(x − 5)
P3 (x) = 2 + 0,23(x − 4) − 0,01(x − 4)(x − 5) + 0,001667(x − 4)(x − 5)(x − 6)
P4 (x) = 2+0,23(x−4)−0,01(x−4)(x−5)+0,001667(x−4)(x−5)(x−6)+0,000833(x−
4)(x − 5)(x − 6)(x − 7).
c) Calcular los valores de los polinomios hallados, en el apartado anterior, para los valores
de x dados.
x f (x) P (x)
4.5 2.1213 2.115
7.5 2.7386 2.7448
2.3.6. Ejercicio 6
Considere M+1 puntos (x0 , y0 ),...,(xM , yM ).
a) Pruebe que si las (N+1)-ésimas diferencias divididas son cero, entonces todas las si-
guientes hasta la M-ésima son también cero.
b) Pruebe que si las (N+1)-ésimas diferencias divididas son cero, entonces existe un po-
linomio PN (x) de grado Ntal que:
2.3.7. Ejercicio 7
En el código dado, sección anterior, la matriz D se emplea para almacenar
la tabla de diferencias divididas:
a) Compruebe que la siguiente modificación, del código dado, es una forma equivalente
de calcular el polinomio interpolador de Newton.
f o r k=0:N
A( k ) = y ( k ) ;
end
f o r j =1:N
f o r k=N: −1: j
A( k ) = (A( k)−A( k −1))/( x ( k)−x ( k−j ) ) ;
end
end
Modificando el código:
41
f u n c t i o n [ C,A]= newtonmodif ( x , y )
n=l e n g t h ( x ) ;
A=z e r o s ( 1 , n ) ;
f o r k=0:n
A( k)=y ( k ) ;
end
f o r j =1:n
f o r k=n : −1: j
A( k ) = ( ( (A( k)−A( k − 1 ) ) ) / ( ( x ( k)−x ( k−j ) ) ) ) ;
end
end
C=A( n , n ) ;
f o r k=n−1: −1:1
C=conv (C, p o l y ( x ( k ) ) ) ;
m=l e n g t h (C ) ;
C(m)=C(m)+A( k , k )
end
2.3.8. Ejercicio 8
Construir un programa para la interpolacion spline de grado 2.
El programa es el siguiente:
[n,p]=size(X);
[o,q]=size(Y);
ni=q-1;
a=1;
b=1;
c=1;
d=2;
s=[a b c];
t=[d b 0];
B=zeros(2*q-2,1);
A=Y’;
42
for i=1:q
a=(X(i))^2;
b=X(i);
H(i,:)=[a b c] ;
for i=1:ni-1;
J(i,:)=[d*X(i+1) 1 0 -d*X(i+1) -1];
Z=zeros(i,1);
end
end
M=zeros(3*ni);
for i=1:ni
M(2*i-1:2*i,3*i-2:3*i)=H(i:i+1,:) ;
end
M(1,1)=0;
for i=1:ni
B(2*i-1:2*i,:)=A(i:i+1,:);
end
K=[B;Z];
[nf,nc]=size(J);
for i=1:q-2
M(2*q-2+i,((5*i-4)-(2*i-2)):((5*i)-(2*i-2)))=J(i,:);
end
M(2*q-1,1)=0;
Sol=M(1:((2*q-2)+(q-1))-1,2:((2*q-2)+(q-1)));
sp=inv(Sol)*K;
coef=1;
%primera ecuacion de coeficientes b1x+c1=y
eq1=[sp(coef) sp(coef+1)]
%segunda ecuacion de coeficientes a2x^2+b2x+c2=y
eq2=[sp(coef+2) sp(coef+3) sp(coef+4)]
%tercera ecuacion de coeficientes a3x^2+b3x+c3=y
eq3=[sp(coef+5) sp(coef+6) sp(coef+7)]
eq4=[sp(coef+8) sp(coef+9) sp(coef+10)]
eq5=[sp(coef+11) sp(coef+12) sp(coef+13)]
eq6=[sp(coef+14) sp(coef+15) sp(coef+16)]
plot(X,Y,’g’,’LineWidth’,1);
x1=[min(X):0.1:max(X)];
Int1=interp1(X,Y,x1,’spline’);
Spl1=spline(X,Y’,x1);
plot(X,Y,x1,Int1,X,Y,’*’,’MarkerEdgeColor’,’r’,’LineWidth’,2)
title(’Interpolación por "splines cuadraticos"’);
hold on;
grid on;
2.3.9. Ejercicio 9
Consultar y desarrollar la metodologı́a para las funciones spline cúbicas.
43
Interpolación cúbica:
en los cuales se quiere interpolar la funcion f . Las abcisas no es necesario que sean
equidistantes, pero se suponen ordenados, o sea:
44
2.3.10. Ejercicio 10
Implementar un algoritmo para la interpolación spline cúbica. El algoritmo
para la resolución es:
1 clear all
2 clc
3
4
5 x1 =[1 2 3 4 5];
6 y1 =[1 1 2 6 24];
7 n = length ( x1 ) ;
8 A = zeros (4*( n -1) ) ;
9 b = zeros ([4*( n -1) ] ,1) ;
10 m = length ( A ) ;
11 k =1;
12 h =1;
13
14 for i =1:2:(2*( n -1) )
15 l =3;
16 for j = k : k +3
17 A (i , j ) = x1 ( h ) ^ l ;
18 A ( i +1 , j ) = x1 ( h +1) ^ l ;
19 l =l -1;
20 end
21 k = k +4;
22 h = h +1;
23 end
24
25 h =2;
26 k =1;
27
28 for i = i +2: i +n -1
29 l =2;
30 for j = k : k +3
31 A (i , j ) =( l +1) * x1 ( h ) ^ l ;
32 A (i , j +4) = -( l +1) * x1 ( h ) ^ l ;
33 l =l -1;
34 end
35 k = k +4;
36 h = h +1;
37 end
38
39 h =2;
40 k =1;
41
42 for i = i +1: i +n -2
43 for j = k :4: k +3
44 A (i , j ) =6* x1 ( h ) ;
45 A (i , j +1) =2;
46 A (i , j +4) = -6* x1 ( h ) ;
45
47 A (i , j +5) = -2;
48 end
49 h = h +1;
50 k = k +4;
51 end
52
53 A ( i +1 ,1) =3* x1 (1) ^2;
54 A ( i +1 ,2) =2* x1 (1) ;
55 A ( i +1 ,3) =1;
56
57 A ( i +2 ,1) =6* x1 (1) ;
58 A ( i +2 ,2) =2;
59
60
61 b (1 ,1) = y1 (1) ;
62 k =2;
63 for i =2:2:( n -1) *2 -1
64 b (i ,1) = y1 ( k ) ;
65 b ( i +1 ,1) = y1 ( k ) ;
66 k = k +1;
67 end
68 b ( i +2 ,1) = y1 ( k ) ;
69
70 X=A\b;
71 syms x
72 j =1;
73 for k =1: n -1
74 for i =1:4
75 PS (k , i ) = X ( j ) ;
76 j = j +1;
77 end
78 end
79 hold on
80 fplot ( gamma ( x ) ,[0 6])
81 plot ( x1 , y1 , ' * ' )
82 for i =1: n -1
83 fplot ( poly2sym ( PS (i ,:) ) ,[ x1 ( i ) , x1 ( i +1) ])
84 end
85 hold off
86
87 fprintf ( ' Polinomio de Splines grado 3 ' )
88 PS
2.3.11. Ejercicio 11
Resolver:
a) Interpolar por splines de grado 1,2 y 3 la funcion f (x) = x1 tomando los
puntos (0, 1; 10), (0, 2; 5), (0, 5; 2), (1; 1), (2; 0, 5), (5; 0, 2) y (10; 0, 1).
46
* Spline 1:
El gráfico es:
* Spline 2:
47
El gráfico es:
La respuesta es:
−50x + 15, x ∈ [0,1, 0,2]
2
133,33x − 103,333x + 20,3333 x ∈ [0,2, 0,5]
−64x2 + 94x − 29 x ∈ [0,5, 1]
f (x) = 2
33,5x − 101x + 68,5 x ∈ [1, 2]
2
−11,0333x + 77,1333x − 109,633 x ∈ [2, 5]
6,636x2 − 99,56x + 332,1 x ∈ [5, 10]
* Spline 3:
La respuesta es:
519,42x3 − 55,192x + 10, x ∈ [0,1, 0,2[
3 2
−190,406x + 155,827x − 39,6115x + 5 x ∈ [0,2, 0,5]
13,1774x3 − 15,5386x2 + 2,475x + 2 x ∈ [0,5, 1]
f (x) = 3 2
−1,5469x + 4,2275x − 3,1806x + 1 x ∈ [1, 2]
3 2
0,0562x − 0,4131x 0,6338x + 0,5 x ∈ [2, 5]
−0,00626x3 + 0,0925x2 − 0,3282x + 0,2 x ∈ [5, 10]
48
y el gráfico es:
xk y k
x0 0 1
1 25
x1 5 26
2 25
x2 5 29
3 25
x3 5 34
4 25
x4 5 41
1
x5 1 2
La respuesta es:
−1,8048x3 − 0,1201x + 1, x ∈ [0, 15
1,3982x3 ,1,0829x2 − 0,3367x + 0,9615 x ∈ [ 15 , 52 ]
f (x) = 0,4248x3 − 2,44x2 − 0,6021x + 0,8621 x ∈ [ 25 , 53 ]
0,4705x3 + 0,0109x2 − 0,6487x + 0,7353 x ∈ [ 35 , 54 ]
−0,4886x3 + 0,2932x2 − 0,5879x + 0,6098 x ∈ [ 54 , 1]
la gráfica es:
49
2.3.12. Ejercicio 12
Se considera la función polinomial a trozos:
x3 , x ∈ [0, 1[
f (x) =
0, 5(x − 1)3 + a(x − 1)2 + b(x − 1) + c x ∈ [1, 3]
Determinar que condiciones deben verificar los parámetros reales a, b y c para
que dicha función sea un spline cúbico sobre Γ = 0, 1, 3.
Se derivan una vez y se igualan teniendo en cuenta el punto en común:
entonces:
b=3
Se derivan una vez más y se igualan teniendo en cuenta el punto en común:
6x = 3(x − 1) + 2a en x=1
entonces:
a=3 y c=1
%Transpuesta de la matriz
[f c]=size(A);
for i=1:f
for j=1:c
At(j,i)=A(i,j);
end
end
50
for i=1:c
for j=1:c
AtxA(i,j)=At(i,:)*A(:,j);
end
end
[Vp Vl]=eig(AtxA);
Vl=diag(Vl);
Vl=Vl’;
[f3 x]=size(Vp);
Vaux=Vp;
Vaux(f3+1,:)=Vl;
Vaux=Vaux’;
[f3 x]=size(Vaux);
Vaux=sortrows(Vaux,x,’descend’);
Vaux=Vaux’;
[f3 x]=size(Vaux);
V=-Vaux([1:f3-1],[1:x]);
Vl=Vaux(f3,:);
for i=1:f
if Vl(i)~=0
U(:,i)=(1/sqrt(Vl(i)))*A*(V(:,i));
end
end
Sigma=zeros(f,c);
for i=1:f
Sigma(i,i)=sqrt(Vl(i));
end
Sigma
3. Tercer Parcial
3.1. Resumen de Lectura
Titulo: El hombre que calculaba
51
En el libro se narra la historia del personaje principal Beremiz Samir quien es un
calculador y gracias a sus habilidades matemáticas y su habilidad hacia los números le
ayuda a ser conocido e importante ya que él podı́a hacer grandes operaciones matemáticas
y observaciones acerca de un determinado problema con gran precisión y tener resultados
exactos.
Esta obra puede ser considerada al mismo tiempo como una novela y como un libro de
problemas matemáticos. El propio autor reconoció que uno de sus objetivos al escribirlo
fue el de contribuir a popularizar las matemáticas, presentándolas para ello integradas en
los acontecimientos y atravesadas por muchos otros aspectos, como cuestiones morales y
de historia.
Cada situación por más complicada que se presenta son resueltos con sabidurı́a y un
fondo matemático, además nos deja una reflexión de que todos los hombres podemos
superar cualquier situación con sencillez, voluntad y sapiencia, trayéndonos placer y sa-
tisfacción. En escuelas, colegios o hasta universidades, hacemos resistencia al aprendizaje
de las matemáticas, las historias vividas por Beremiz nos demuestran la importancia de
esta ciencia que nos enseña a razonar de manera lógica, segura, sin posibilidad de error, el
razonamiento lógico conduce nuestro pensamiento de manera correcta, aspecto necesario
en cualquier actividad de la vida diaria.
Por ejemplo, en uno de los problemas planteados durante el libro, “el calculador”
efectuó el producto de 284 por 347. Esta operación es considerada muy simple por otros
calculadores famosos, como el americano Arthur Griffith, que efectuaba en veinte segun-
dos, la multiplicación de dos números de nueve cifras cada uno, o Zacarı́as Dase, que lo
hacı́a con factores de más de treinta cifras. También el inglés Jadedish Buxton consiguió
efectuar una multiplicación de 42 cifras en cada uno de los factores.
Otro de los problemas interesantes es la demostración del teorema de Pitágoras me-
diante un sistema de cuadrados sobre los lados de un triángulo rectángulo.
Las historias del hombre que calculaba traen consigo mensajes axiológicos, los seres
aunque seamos muy sabios ser sencillos, comunicativos, solidarios con los problemas so-
ciales, entender que la resolución de un problema no debe llevarnos a conflictos, y la
superación de conflictos no debe distanciarnos entre seres humanos. Los relatos nos dejan
un mensaje de que en la vida todo es posible, para ello demos utilizar nuestras habilidades,
si bien es cierto Beremiz es muy hábil con las matemáticas, eso no es ningún obstáculo
para que pueda resolver problemas que no son matemáticos, ası́ mismo la solidaridad no se
desarrolla sólo entren quienes pensamos igual o pertenecemos a un mismo estrato social,
Beremiz es un árabe sin embargo sus enseñanzas tocan el corazón y son un ejemplo para
cualquier persona independientemente de su condición social, credo polı́tico o religión,
etc.
En el libro están presentes en todo momento la religión musulmana y la cultura árabe.
La contribución de los árabes al progreso de la Matemática ha sido notable debido a
las traducciones y divulgación de las obras de Euclides, de Menelao, de Apolunio, etc.,
además de las renovaciones metodológicas en el cálculo numérico (sistema indo-arábigo).
Une matemáticas con ficción e historia.
Su habilidad matemática causo gran asombro en todo lugar en el que resolvı́a un
problema matemático, dando un resultado positivo a las personas que tenı́an el problema
y él tomando provecho de sus habilidades.
Un hombre que iba camino a Bagdad se encuentra con un hombre que repetı́a cons-
tantemente el numero un millón cuatrocientos veinte tres mil setecientos cuarenta y cinco,
el hombre intrigado preguntó él porque de la repetición de este número y el hombre le
comenzó a contar su historia que comenzó cuando trabajaba con un rebaño de ovejas y
que mientras pastoreaba podı́a contar cada cosa que miraba en su camino y al ver este su
52
habilidad para los números decidió dedicarse a ser un calculados.
Beremiz tuvo numerosas aventuras como por ejemplo cuando viajaba se encontró con
un grupo de hombres que discutı́an acerca de la repartición de la herencia que su padre
habla dejado pero eran 35 camellos entre tres personas y este calculo que era imposible
Beremiz dejo satisfecho a los tres hombres.
Otra vez mientras viajaba se encontró a los hombres más ricos de Bagdad llamado
Salem Nasair a quien le habı́an robado sus pertenencias y habı́an matado a sus esclavos
y a quien Beremiz dio de comer durante todo el camino.
El matemático resuelve el problema del joyero, enseñándonos el valor de las matemáti-
cas, cuya enseñanza no trasciende en muchas aulas, gracias a ella se resuelven tantos y
tantos problemas como el de la edad de la novia, los vasos y otros que pueden aplicarse
a casos similares en nuestra vida cotidiana. Gran parte de nuestros docentes, estudiantes
y otros profesionales debemos tomar el mensaje de cómo Beremiz enseña a la hija de
Lezid que la matemática está relacionada estrechamente con otras ciencias ayudándose
mutuamente.
En todos los campos del quehacer diario las matemáticas están al servicio de la ciencia
y la ciencia engrandece al hombre, podemos decir entonces que las matemáticas son la
base de todas las ciencias. Vemos como gracias a ella el hombre alcanza recompensas
como un camello o metas jamás sonadas como el casarse con una mujer reservada para
los prı́ncipes con lo que alcanzó también la felicidad, esquiva hoy para mucha gente, pero
el logro más significante creo yo fue el convertirse a la religión cristiana hecho anecdótico
por no decirlo imposible siendo ambos de una religión contraria al catolicismo.
Al llegar a Bagdad encontraron a Ibrahim quien le dio dinero para que pagara a
Beremiz pero Beremiz encontró un error en la repartición del dinero y rectifico la operación
dejando impactados a todos.
De esta misma manera resuelve el caso de un de un joyero que debı́a recibir cierta
comisión por ventas.
Entre sus aventuras Beremiz se encuentra nuevamente con Salem Nasair y ambos
comentan con sus amigos las diversas formas geométricas que podemos encontrar en las
cosas.
Acudieron un dı́a unos hombres a quienes se les tenı́a que pagar para poder salvar un
hostal, pero al momento de realizar las reparticiones de los bienes que le correspondı́an
a cada una de las personas la operación era ilógica, pero Beremiz ayudo a resolver este
problema dejando impactados a los dueños del Hostal.
Cada una de las hazañas de Beremiz nos muestran que todo lo que hacemos tiene
solución, lo único es que debemos poner un poco más de atención a las cosas que tenemos
a nuestro alrededor, para poder resolver nuestros problemas de una manera correcta.
Hoy la tecnologı́a nos ha impuesto las computadoras que son medios modernos que
están al servicio de hombre y el desarrollo de la ciencia sin embargo las matemáticas in-
fluyen en todas las actividades humanas, pero nuestra formación integral está descuidada,
no hay una formación axiológica y sin ella el hombre es un ser incompleto. Los números
hacen canto, poseı́a, evangelio, para que los hombres tengamos sentimientos rectos, una
actuación lógica que nos conduce a la satisfacción moral, intelectual y fı́sica, para entender
el mundo que nos rodea y sentir la satisfacción de que todo se nos es dado para gozarlo,
todo se nos es dado para compartir – ayudar y todo se nos es dado para servir.
Para mı́ personalmente este hermoso libro es como una semilla de mostaza que siendo
un grano infinitamente pequeño en comparación con otras semillas, al sembrar produce
un árbol tremendamente grande y servicial, el haber leı́do considero una oportunidad que
me da la vida para saber valorar todo cuanto me rodea.
53
3.2. Derivación
3.2.1. Ejercicio 1
Escribir una función MATLAB df(x) que admita como entradas un vec-
tor de puntos x y los valores de una función f(x) y que calcule el valor de la
derivada primera en los puntos dados, utilizando la fórmula de diferencia ade-
lantada. Para calcular el valor en el extremo superior debe usarse la fórmula
de diferencia retrasada.
Se utilizará la fórmula de tres puntos adelantada; y para los dos últimos puntos la
retrasada:
function D=df(x,fx)
[m,n]=size(x);
h=x(n)-x(n-1);
for i=1:n-2
D(i)=(-fx(i+2)+4*fx(i+1)-3*fx(i))/(2*h);
end
for i=n-1:n
D(i)=(3*fx(i)-4*fx(i-1)+fx(i-2))/(2*h);
end
Por ejemplo, vamos a encontrar las derivadas de f (x) = x2 , con x=[1 2 3 4 5 6]:
fx =
1 4 9 16 25 36
>> df(x,fx)
ans =
2 4 6 8 10 12
Como se puede observar, las respuestas de las derivadas si coinciden con las de la derivada
f 0 (x) = 2x
3.2.2. Ejercicio 2
Aplicar la fórmula de dos puntos adelantada al cálculo de la derivada pri-
mera de f (x) = sin(x) en x = 2,13432. Comprobar que al ir reduciendo h el error
se reduce de manera aproximadamente lineal con h.
Para resolver este ejercicio, primero un pequeño algoritmo para resolverlo:
function D=dfad2(x,fx)
D=(fx(2)-fx(1))/(x(2)-x(1));
54
Ahora vamos viendo los resultados que se obtiene al reducir el valor d h:
ans =
-0.6752
ans =
-0.6016
ans =
-0.5615
ans =
-0.5408
ans =
-0.5366
ans =
-0.5345
55
>> cos(2.13432)
ans =
-0.5342
3.2.3. Ejercicio 3
Repetir el ejercicio anterior comparando la precisión de la fórmula de dife-
rencia adelantada con la retrasada. Aplicar también ambas fórmulas al cálculo
de la derivada de la función g(x) = 1/(1 + ex ) en x = 1/2.
Para resolver las funciones, y que nos de el resultado de las fórmulas de diferencia
adelantada y retrasada con dos puntos, se tiene:
function [D1,D2]=df2(x,fx)
D1=(fx(3)-fx(2))/(x(3)-x(2));
D2=(-fx(1)+fx(2))/(x(2)-x(1));
D1 =
-0.5345
D2 =
-0.5340
Como se vio en el ejercicio anterior, el valor real de la función f (x) = sin(x), evaluada
en el punto x = 2,13432, es -0,5342. Comparando lo obtenido con el valor real, se puede
observar que la fórmula retrasada nos da un valor un poco más exacto, ésto se debe a que
el h que se utilizó en la fórmula retrasada es ligeramente más pequeño que el utilizado en
la fórmula adelantada.
gx =
56
0.4013 0.3775 0.3543
>> [D1,D2]=df2(x,gx)
D1 =
-0.2320
D2 =
-0.2377
Ahora obtenemos el valor real de la derivada de la función:
1
g(x) =
1 + ex
ex
g 0 (x) = −
(1 + ex )2
e0,5
g 0 (0,5) = −
(1 + e0,5 )2
g 0 (0,5) = −0,2350
Observando los resultados, podemos verificar lo que se dijo en el ejercicio anterior,
que con un valor igual de h, con la fórmula retrasada se obtiene ligeramente una mejor
aproximación, es decir más cercana al valor real.
3.2.4. Ejercicio 4
Supongamos que se conoce el valor de la derivada mediante la fórmula de
diferencia adelantada para tres valores de h diferentes. ¿Es posible estimar el
valor del h óptimo? ¿Es posible estimar el error que se comete en el cálculo
en cada uno de los casos?. Aplicarlo al cálculo de la derivada de la función
f (x) = sin(x) en x = 0,6 usando h = 0,1, h = 0,01 y h = 0,0000000001.
El valor de h óptimo, realmente dependerá de la tolerancia que se necesite. Para ciertos
cálculos de ingenierı́a se requiere mayor exactitud que para otros. Claro que mientras el
valor de h sea más pequeño se obtendrá un valor más exacto y por ende el error que se
comete será menor.
Para comprobar lo expuesto anteriormente, se demostrará con el ejemplo propuesto
en el ejercicio:
Se tiene que la fórmula adelantada para hallar la derivada es:
f (x + h) − f (x)
f 0 (x) =
h
f (x) = sin(x) en x = 0,6 con h = 0,1
f (0,6 + 0,1) − f (0,6)
f 0 (0,6) =
0,1
sin(0,7) − sin(0,6)
f 0 (0,6) =
0,1
f 0 (0,6) = 0,7958
57
f (x) = sin(x) en x = 0,6 con h = 0,01
f (0,6 + 0,01) − f (0,6)
f 0 (0,6) =
0,01
sin(0,61) − sin(0,6)
f 0 (0,6) =
0,01
0
f (0,6) = 0,8225
f (x) = sin(x) en x = 0,6 con h = 0,0000000001
f (0,6 + 0,0000000001) − f (0,6)
f 0 (0,6) =
0,0000000001
sin(0,6000000001) − sin(0,6)
f 0 (0,6) =
0,01
0
f (0,6) = 0,8253
Y se tiene el valor real:
f 0 (0,6) = cos(0,6)
f 0 (0,6) = 0,8253
Hallando los errores:
V.Real − V.Encontrado
Er =
V.Real
Con h = 0,1:
Er = 3, 58 %
Con h = 0,01:
Er = 0, 34 %
Con h = 0,0000000001:
Er = 3,1417 × 10−5 %
Con lo obtenido, se puede observar que con el valor más pequeño de h se obtuvo un
resultado más aproximado al real; sin embargo para cálculos simples con un h=0.01, ya se
puede considerar aceptable, ya que se obtiene un error relativo de 0, 34 % y para cálculos
más exactos se va disminuyendo el valor de h.
3.2.5. Ejercicio 5
Calcular la derivada de la función f (x) = tan(x) en x = 3,14 usando h = 0,1
y h = 0,01. Comparar el resultado con el valor exacto. ¿Es buena la aproxima-
ción? ¿Por qué?
Usando la fórmula adelantada, se tiene:
f (x + h) − f (x)
f 0 (x) =
h
f (x) = tan(x) en x = 3,14 con h = 0,1
f (3,14 + 0,1) − f (3,14)
f 0 (3,14) =
0,1
tan(3,24) − tan(3,14)
f 0 (3,14) =
0,1
0
f (3,14) = 1,003188958
58
f (x) = tan(x) en x = 3,14 con h = 0,01
tan(3,15) − tan(3,14)
f 0 (3,14) =
0,01
f 0 (3,14) = 1,00001994
3.2.6. Ejercicio 6
Consulta: Calcular cotas para el error de truncación que se comete al apro-
ximar las derivadas de las funciones f (x) = 1/(1 + sin(x)) y g(x) = ln(1 + 2x).
Calcular las cotas teniendo en cuenta el error de redondeo y comprobar que
los errores reales están por debajo de lo permitido por la cota.
El truncamiento es el término usado para reducir el número de dı́gitos a la derecha del
separador decimal, descartando los menos significativos; es decir que a partir de de cierta
cifra, se hacen cero las demás cifras de la derecha; y debido a esto se presenta el error de
truncamiento.
Al desarrollar una serie de Taylor, se presenta un término de error, que viene dado
por:
(x − x0 )n+1
Rn(x) = f (n+1)
(n + 1)!
En donde ε es un valor entre x0 y x; y se pueden calcular las cotas superior e inferior;
sustuyendo los valores extremos en
varepsilon; y un valor intermedio serı́a recomendado para calcular la cota.
h2 f 000 (ε)
E(f, h)truncamiento =
6
Para la primera fórmula (f (x) = 1/(1 + sin(x))) se tiene:
Calculando las cotas para el ejercicio pedido, se tiene que usando la fórmula centrada,
que es la de más precisión; y con un h=0.01 en x=0; el término de error de truncamiento
viene dado por:
59
Cálculo de la cota:
0,012 f 000 (0)
E(f, h)truncamiento =
6
E(f, h)truncamiento = −8,333 × 10−5
Calculando el error de redondeo, se tiene:
E(f, h)redondeo =
h
10−7
E(f, h)redondeo =
0,01
E(f, h)redondeo = 1 × 10−5
Y finalmente, calculando la cota total, se tiene:
Calculando las cotas para el ejercicio, se tiene que usando la fórmula centrada, que es
la de más precisión; y con un h=0.01 en x=0; el término de error de viene dado por:
Cálculo de la cota:
0,012 f 000 (0)
E(f, h)truncamiento =
6
E(f, h)truncamiento = 2,6666667 × 10−4
Calculando el error de redondeo, se tiene:
E(f, h)redondeo =
h
60
10−7
E(f, h)redondeo =
0,01
E(f, h)redondeo = 1 × 10−5
Y finalmente, calculando la cota total, se tiene:
3.2.7. Ejercicio 7
Construir una tabla de derivadas primeras de la función g(x) definida por
la siguiente tabla en los puntos xi con la mayor precisión posible mediante
fórmulas de tres puntos
x g(x)
1.0 1.000000
1.2 0.997502
1.4 0.990025
1.8 0.960398
2.0 0.940678
Utilizamos la función df(x), que calcula con 3 puntos las diferencias adelantas, y de
los dos últimos puntos con las diferencias adelantadas.
Adelantada:
−f2 + 4f1 − 3f0
f 0 (x) =
2h
Retrasada:
3f0 − 4f−1 + f−2
f 0 (x) =
2h
61
function D=df(x,fx)
[m,n]=size(x);
h=x(n)-x(n-1);
for i=1:n-2
D(i)=(-fx(i+2)+4*fx(i+1)-3*fx(i))/(2*h);
end
for i=n-1:n
D(i)=(3*fx(i)-4*fx(i-1)+fx(i-2))/(2*h);
end
Aplicamos la función:
ans =
Columns 1 through 3
Columns 4 through 5
-0.135673333333334 -0.049221666666667
Se obtiene la tabla:
x g(x) g 0 (x)
1.0 1.000000 -0.0000425
1.2 0.997502 0.0119933
1.4 0.990025 -0.1152683
1.8 0.960398 -0.1356733
2.0 0.940678 -0.4922166
3.2.8. Ejercicio 8
Usando la fórmula de diferencia centrada
√ calcular la derivada primera de la
función f (x) = arctan(x) en el punto x = 2 (el valor correcto es 1/3). Utilizar
diferentes valores de h y estudiar los efectos de los errores de redondeo y de
truncación.
La fórmula de diferencia centrada es:
f1 − f−1 f (x + h) − f (x − h)
f 0 (x) = =
2h 2h
Aplicando la fórmula al ejercicio, se tiene:
62
Con h = 0,1 √ √
√ 0 f ( 2 + 0,1) − f (f ( 2 − 0,1)
f ( 2) =
2 × 0,1
√ √
0
√ arctan( 2 + 0,1) − arctan(f ( 2 − 0,1)
f ( 2) =
2 × 0,1
√
f 0 ( 2) = 0,3339506968
Con h = 0,01 √ √
√ f ( 2 + 0,01) − f (f ( 2 − 0,01)
f 0 ( 2) =
2 × 0,01
√ √
0
√ arctan( 2 + 0,01) − arctan(f ( 2 − 0,01)
f ( 2) =
2 × 0,01
√
f 0 ( 2) = 0,3333395062
Con h = 0,001 √ √
√0 f ( 2 + 0,001) − f (f ( 2 − 0,001)
f ( 2) =
2 × 0,001
√ √
0
√ arctan( 2 + 0,001) − arctan(f ( 2 − 0,001)
f ( 2) =
2 × 0,001
√
f 0 ( 2) = 0,333333395
El valor real es 1/3, y como se puede observar con la diferencia centrada se tiene un
valor más aproximado que el de la fórmula adelantada y de la retrasada, ya que como se
puede apreciar con h=0.1, ya se pudo obtener una aproximación aceptable para cálculos
simples que no requieren mucha precisión.
Ahora al hacer un estudio de los errores de truncamiento y redondeo, se tiene:
Se tiene que la fórmula centrada para hallar f’(x):
f1 − f−1
f 00 (x) =
2h
El error que se comete en la fórmula puede ser expresada ası́:
f1 − f−1
f 00 (x) = + E(f, h)
2h
En donde el error E(f, h), tiene una parte debida al error de truncamiento y otra
debida al error de redondeo, y se lo expresa de acuerdo a la sucesión construida:
Desarrollamos las series de Taylor en los puntos:
63
Resolviendo se tiene:
f (x + h) − f (x − h) h2 f 000 (x)
f 0 (x) = −
2h 6
Y la fórmula con el término de error es:
e1 − e−1 h2 f 000 (x)
E(f, h) = −
2h 6
Si asumimos que el error ek es de magnitud , con los signos que acumulan el error, y
que |f 000 (x)| ≤ M , se tiene el error:
M h2
|E(f, h)| ≤ +
h 6
Cuando h es muy pequeño, el error de redondeo es grande; y cuando h es grande el
error por truncamiento se agranda. El valor de h óptimo varı́a de acuerdo a la fórmula:
M h2
g(h) =
+
h 6
Si hacemos que g’(h)=0, se obtiene un valor óptimo de h:
1/3
3
h=
M
1/3
3(10−6 )
h=
0,9553
Un h aceptable serı́a de acuerdo al análisis, de h = 0,03
3.2.9. Ejercicio 9
Deducir una fórmula de cinco puntos que utilice los valores de la función
en los puntos x, x + h, x + 2h, x + 3h y x − h para calcular f 0 (x).
Primeramente se desarrolla las series de Taylor:
f 00 (x) f 000 (x)
f (x + h) = f (x) + hf 0 (x) + h2 + h3 + O(h4 )
2 6
f 00 (x) f 000 (x)
f (x − h) = f (x) − hf 0 (x) + h2 − h3 + O(h4 )
2 6
Restamos ambas series, y se tiene la ecuación:
f 000 (x)
f (x + h) − f (x − h) = 2hf 0 (x) + h3 + O(h4 )
3
Desarrollamos las otras series para los otros puntos:
f 00 (x) f 000 (x)
f (x + 2h) = f (x) + 2hf 0 (x) + (2h)2 + (2h)3 + O(h4 )
2 6
64
f 00 (x) f 000 (x)
f (x + 3h) = f (x) + 3hf 0 (x) + (3h)2 + (3h)3 + O(h4 )
2 6
Multiplicamos por 4 la serie de f(x+3h) y por -9 la serie de f(x+2h); y sumamos las
ecuaciones, para eliminar f”(x):
4f (x + 3h) − 9f (x + 2h) = −5f (x) − 6hf 0 (x) + 6h3 f 000 (x) + O(h4 )
Y se forma el sistema:
f 000 (x)
f (x + h) − f (x − h) = 2hf 0 (x) + h3 + O(h4 )
3
4f (x + 3h) − 9f (x + 2h) = −5f (x) − 6hf 0 (x) + 6h3 f 000 (x) + O(h4 )
Se multiplica por 18 la primera ecuación, y se resta con la segunda, para eliminar f’(x),
con error de truncamiento O(h3 ):
−4f (x + 3h) + 9f (x + 2h) + 18f (x + h) − 18f (x − h) = 5f (x) + 42hf 0 (x) + O(h3 )
Y se obtiene la fórmula con 5 puntos:
−4f (x + 3h) + 9f (x + 2h) + 18f (x + h) − 18f (x − h) − 5f (x)
f 0 (x) = + O(h3 )
42h
−4f3 + 9f2 + 18f1 − 5f0 − 18f−1
f 0 (x) = + O(h3 )
42h
3.2.10. Ejercicio 10
Se conocen los valores de la función de Bessel J0 (x) en los puntos J0 (0,0) =
1,00000000, J0 (0,1) = 0,99750156, J0 (0,2) = 0,99002497, J0 (0,3) = 0; 97762625, J0 (0,4) =
0,96039823 y J0 (0,5) = 0,93846981. Construir una tabla de derivadas en esos
puntos con la mayor precisión posible usando las fórmulas de tres puntos más
apropiadas.
Para tener una mayor precisión, su utilizará las siguientes fórmulas:
x J0 (x) Fórmula F
−f2 +4f1 −3f0
0.0 1.00000000 Tres puntos adelantada 2h
f1 −f−1
0.1 0.99750156 Tres puntos centrada 2h
f1 −f−1
0.2 0.99002497 Tres puntos centrada 2h
f1 −f−1
0.3 0.97762625 Tres puntos centrada 2h
f1 −f−1
0.4 0.96039823 Tres puntos centrada 2h
3f0 −4f−1 +f−2
0.5 0.93846981 Tres puntos retrasada 2h
[m n]=size(x);
h=x(2)-x(1);
D(1)=(-fx(3)+4*fx(2)-3*fx(1))/(2*h);
for i=2:n-1
D(i)=(fx(i+1)-fx(i-1))/(2*h);
end
D(n)=(3*fx(n)-4*fx(n-1)+fx(n-2))/(2*h);
65
Y aplicando el programa al problema dado, se tiene:
>> x=[0.0 0.1 0.2 0.3 0.4 0.5];
>> Jo=[1 0.99750156 0.99002497 0.97762625 0.96039823 0.93846981];
>> dc3(x,Jo)
ans =
Columns 1 through 3
Columns 4 through 6
3.2.11. Ejercicio 11
Calcular la derivada primera de la función f (x) = |x−2|cos(x) en x = 2 usando
las fórmulas de diferencias centradas y adelantadas. Comparar los resultados.
Con h = 0,1.
Utilizando la Fórmula de diferencias centrada:
f1 − f−1 f (x + h) − f (x − h)
f 0 (x) = =
2h 2h
f (2 + 0,1) − f( 2 − 0,1)
f 0 (x) =
2(0,1)
|2,1 − 2|cos(2,1) − |1,9 − 2|cos(1,9)
f 0 (x) =
2(0,1)
f 0 (x) = −0,090778268
66
|2,1 − 2|cos(2,1) − |2 − 2|cos(2)
f 0 (x) =
0,1
f 0 (x) = −0,5048461
Con h = 0,01.
Utilizando la Fórmula de diferencias centrada:
f1 − f−1 f (x + h) − f (x − h)
f 0 (x) = =
2h 2h
f (2 + 0,01) − f (2 − 0,01)
f 0 (x) =
2(0,01)
|2,01 − 2|cos(2,01) − |1,99 − 2|cos(1,99)
f 0 (x) =
2(0,01)
f 0 (x) = −0,0090928225
En este caso, vemos que nos da resultados diferentes utilizando ambas fórmulas, y
variando el h también se obtienen respuestas distintas; esto se debe a que la función en
el ejercicio no es derivable en el punto x = 2. Demostración:
Derivada lateral por la izquierda:
67
3.2.12. Ejercicio 12
Considérese la función
0, −1 < x < 4/5
f (x) = −x2
e , 4/5 ≤ x < 1
Para calcular f ’(4/5) ¿será mejor usar una fórmula adelantada o una centrada?
En f 0 (4/5), se puede usar la fórmula adelanta para hallar la derivada aproximándose
por la derecha; que es el tramo que contiene al punto 4/5. Sin embargo al analizar la
continuidad de la función, se tiene:
2
f (4/5) = e−(4/5) = 0,52729
2
lı́m + f (x) = lı́m + e−x = 0,52729
x→4/5 x→4/5
68
3.2.13. Ejercicio 13
Deducir las fórmulas centradas y adelantadas para la derivada tercera.
f 000 (x)
f (x + 2h) − f (x − 2h) = 4hf 0 (x) + 8h3 + O(h4 )
3
f 000 (x)
f (x + h) − f (x − h) = 2hf 0 (x) + 2h3 + O(h4 )
6
Y se tiene la fórmula:
f (x + 2h) − 2f (x + h) + 2f (x − h) − f (x − 2h)
f 000 (x) = + O(h2 )
2h3
f2 − 2f1 + 2f−1 − f−2
f 000 (x) = + O(h2 )
2h3
FÓRMULA CENTRADA DE ORDEN O(h4 )
69
Desarrollamos las series de Taylor en los puntos:
Y se tiene la fórmula:
−f (x + 3h) + 8f (x + 2h) − 13f (x + h) + 13f (x − h) − 8f (x − 2h) + f (x − 3h)
f 000 (x) =
8h3
−f3 + 8f2 − 13f1 + 13f−1 − 8f−2 + f−3
f 000 (x) =
8h3
FÓRMULA ADELANTADA DE ORDEN O(h2 )
3.2.14. Ejercicio 14
Al calcular la derivada segunda de una función, qué fórmula tendrá menor
influencia del error de redondeo, la centrada de tres puntos o la centrada de
cinco puntos? Razonar la respuesta y comprobar la hipótesis con el empleo de
la función f (x) = ex . Comparar los errores de redondeo con los que aparecen
al calcular f 0 (x). ¿Cuáles son mayores?
El error de redondeo es menor en la fórmula centrada de cinco puntos, ya que si se
utilizara el mismo h para ambas fórmulas, el redondeo es mejor cuando se tiene más
valores próximos a f(x). Y en el caso de tener cinco puntos, se obtiene una función mucho
más próxima a la real; y por ende el error de redondeo es menor.
Para ello se comprueba la hipótesis expuesta con lo siguiente, utilizando: h=0.1, en
x=1:
71
El valor real de la función es:
f 00 (x) = ex
f 00 (1) = 2,71828182
Y como se puede apreciar, el error de redondeo para la fórmula que tiene cinco puntos
es menor que la de tres puntos.
Ahora vamos a estudiar que ocurre con la fórmula de la primera derivada, y compararla
con la segunda derivada que para el caso de la función f (x) = ex , se tiene que f 0 (x) =
f 00 (x) = ex , bajo las mismas condiciones:
De orden O(h2 ):
f1 − f−1
f 0 (x) =
2h
f (x + h) − f (x − h)
f 0 (x) =
2h
e(1+0,1) − e(1−0,1)
f 0 (1) =
2(0,1)
f 0 (1) = 2,722814564
3.2.15. Ejercicio 15
Estudiar el efecto de los errores de truncación y redondeo en la fórmula
centrada de cinco puntos para f 00 . Particularizar para f (x) = 1/(1 + x2 ) en x = 1.
Se tiene que la fórmula centrada de cinco puntos para f”(x) es:
−f2 + 16f1 − 30f0 + 16f−1 − f−2
f 00 (x) =
12h2
El error que se comete en la fórmula de cinco puntos puede ser expresada ası́:
−f2 + 16f1 − 30f0 + 16f−1 − f−2
f 00 (x) = + E(f, h)
12h2
72
En donde el error E(f, h), tiene una parte debida al error de truncamiento y otra
debida al error de redondeo, y se lo expresa de acuerdo a la sucesión construida:
Desarrollamos las series de Taylor en los puntos:
16 M h4
|E(f, h)| ≤ +
3h2 90
Cuando h es muy pequeño, el error de redondeo es grande; y cuando h es grande el
error por truncamiento se agranda. El valor de h óptimo varı́a de acuerdo a la fórmula:
16 h4
g(h) = 2 +
3h 90
Si hacemos que g’(h)=0, se obtiene un valor óptimo de h:
1/6
240
h=
M
73
Para x=1, se tiene M = 0,5; y si se quiere tener una tolerancia de error = 10−9 ;
reemplazando en la fórmula se tiene :
1/6
240(10−9 )
h=
0,5
Resolviendo se observa que un h óptimo serı́a h=0.0885; aproximándolo h=0.09.
Y el error que se obtendrı́a en este caso serı́a:
16(10−9 ) 0,5(0,09)4
|E(f, h)| = +
3(0,09)2 90
|E(f, h)| = 1, 02 × 10−6
Resolviendo con la fórmula se tiene:
−f2 + 16f1 − 30f0 + 16f−1 − f−2
f 00 (x) =
12h2
−1/(1 + (1,18)2 ) + 16/(1 + (1,09)2 ) − 30/(1 + 12 ) + 16/(1 + (0,91)2 ) − 1/(1 + (0,82)2 )
f 00 (1) =
12(0,09)2
f 00 (1) = 0,5000321286
Siendo el valor real
3.2.16. Ejercicio 16
Deducir el término de error O(h5 ) en la fórmula de cinco puntos para f 000 .
La fórmula centrada de cinco puntos viene dada por la ecuación:
f2 − 2f1 + 2f−1 + f−2
f 000 (x) =
2h3
Primeramente desarrollamos las series de Taylor:
00 000 (4) (6)
0 2f (x) 3 f (x) 4f (x) 5f (x)
f (x + 2h) = f (x) + 2hf (x) + (2h) + (2h) + (2h) + (2h)
2 6 24 120
f 00 (x) f 000 (x) f (4) (x) f (6) (x)
f (x − 2h) = f (x) − 2hf 0 (x) + (2h)2 − (2h)3 + (2h)4 − (2h)5
2 6 24 120
f 00 (x) f 000 (x) f (4) (x) f (6) (x)
f (x + h) = f (x) + hf 0 (x) + h2 + h3 + (h)4 + (h)5
2 6 24 120
00 000 (4) (6)
f (x) f (x) f (x) f (x)
f (x − h) = f (x) − hf 0 (x) + h2 − h3 + (h)4 − (h)5
2 6 24 120
Restamos las dos primeras series desarrolladas:
6 M h2
|E(f, h)| ≤ +
2h3 4
Siendo el término de error O(h5 ) el siguiente:
h2 f (5) (x) M h2
O(h5 ) = =
4 4
3.3. Integración
3.3.1. Ejercicio 1
Se requiere realizar una integración numérica de la función f(x) en el in-
tervalo [0, 12]. Escriba los puntos en los cuales se necesita conocer la función
para los siguientes métodos de integración:
75
Método del trapecio en tres intervalos.
Los intervalos que se formarı́an en este caso son: [0,4], [4,8] y [8,12]
0, 4, 8 y 12
Y para este caso, se deben conocer las funciones en los extremos y en el punto medio
de cada intervalo. Las funciones que deben conocerse serı́a en puntos:
0, 3, 6 9 y 12
3.3.2. Ejercicio 2
Rπ
Calcular la cuadratura compuesta para dos intervalos de la integral [ 0 sin(x)dx
por el método del trapecio
El método del trapecio, usa la fórmula:
Z b
(b − a)
f (x)dx = (f (a) + f (b))
a 2
Como los extremos del intervalo total son 0 y π, entonces los dos intervalos equidistantes
son [0, π2 ] y [ π2 , π]. Calculando la cuadratura de la integral, se tiene:
π
Z π Z
2
Z π
sin(x)dx = sin(x)dx + sin(x)dx
π
0 0 2
π
2
− 0 π π − π2 π
= (sin(0) + sin( )) + (sin( ) + sin(π))
2 2 2 2
π π
= +
4 4
π
=
2
76
3.3.3. Ejercicio 3
Calcular la cuadratura compuesta para dos intervalos de la integral
Z 2
3x2 dx
0
Z 2 Z 1 Z 2
2 2
3x dx = 3x dx + 3x2 dx
0 0 1
3( 31 ) 3( 31 )
= [f (0) + 3f (1/3) + 3f (2/3) + f (1)] + [f (1) + 3f (4/3) + 3f (5/3) + f (2)]
8 8
1 1
= [3(0)2 + 9(1/3)2 + 9(2/3)2 + 3(1)2 ] + [3(1)2 + 9(4/3)2 + 9(5/3)2 + 3(2)2 ]
8 8
1 1
= (8) + (56)
8 8
= 8
3.3.4. Ejercicio 4
Comparar elR bmétodo del rectángulo con el método de Simpson en el cálculo
de la integral a sin(x)dx Calcular los errores asociados
77
Z b
f (x)dx = (b − a)f (a)
a
Z π π π
sin(x)dx = π− f
π
2
2 2
π π
= sin
2 2
π
=
2
= 1, 570796323
(b − a)2 0
Erect = f (θ)
2
(π − π2 )2
Erect = cos(θ)
2
π2
Erect = cos(θ)
8
(4)
f (θ) = cos(θ)
−1 ≤ cos(θ) ≤ 1
π2 π2 π2
≤ cos(θ) ≤
−
8 8 8
−1, 23370055 ≤ Erect ≤ 1, 23370055
MÉTODO DE SIMPSON
b
b−a
Z
a+b
f (x)dx = f (a) + 4f + f (b)
a 6 2
π π
+π
Z
1 π π 2
sin(x)dx = π− f ( ) + 4f + f (π)
π
2
6 2 2 2
π π
3π
= sin + 4sin + sin(π)
12 2 4
= 1, 002279877
(b − a)5 (4)
ESimp = f (θ)
90
(π − π2 )5
ESimp = cos(θ)
90
π5
ESimp = cos(θ)
2880
f (4) (θ) = cos(θ)
−1 ≤ cos(θ) ≤ 1
π (π − π2 )5
5
π5
− ≤ cos(θ) ≤
2880 90 2880
−0, 106256835 ≤ ESimp ≤ 0, 106256835
78
VALOR REAL
Z b
π
sin(x)dx = −cos(x)
a π
2
π
= −cos(π) + cos
2
= 1
3.3.5. Ejercicio 5
Aplicar la regla del punto medio, la regla del trapecio y la regla de Simpson
para aproximar la integral
Z 1
x2 e−x dx
0
Obtener en cada caso una cota del error y comparar el error con el error
real.
(b − a)3 00
Epunto medio = f (θ)
24
(1 − 0)3 00
Epunto medio = f (θ)
24
1
Epunto medio = f 00 (θ)
24
79
1 1 1
− (0, 367879441) ≤ f 00 (θ) ≤ (2)
24 24 24
−0,01532831 ≤ Epunto medio ≤ 0, 0833333
(b − a)3 00
Etrap = f (θ)
12
(1 − 0)3 00
Etrap = f (θ)
12
1
Etrap = f 00 (θ)
12
MÉTODO DE SIMPSON
Z b
b−a a+b
f (x)dx = f (a) + 4f + f (b)
a 6 2
Z 1
2 −x 1−0 0+1
x e dx = f (0) + 4f + f (1)
0 6 2
" 2 ! #
1 2 −0 1 1
= 0 e +4 e− 2 + 12 e−1
6 2
= 0, 162401683
(b − a)5 (4)
ESimp = f (θ)
90
80
(1 − 0)5 (4)
ESimp = f (θ)
90
1
ESimp = f (4) (θ)
90
VALOR REAL
1
1
−(x2 + 2x + 2)
Z
2 −x
x e dx =
0 ex
0
1
−x
2
= −(x + 2x + 2)e
0
−1
= −(1 + 2 + 2)e + 2e0
= −5e−1 + 2
= 0, 160602794
E = V.Real − V.Calculado
Epunto medio = 0, 160602794 − 0, 151632664 = 0,00897
Etrap = 0, 160602794 − 0, 18393972 = 0,02333
ESimp = 0, 160602794 − 0, 162401683 = 0,00179
Como se puede apreciar, los errores están por debajo de las cotas máximas, y además
se puede concluir que el método de Simpson es el más preciso de los aplicados, y el menos
preciso es el método del trapecio, en donde se obtuvo mayor error.
3.3.6. Ejercicio 6
En los casos que se relacionan a continuación se considera la integración
de la función dada f(x) sobre el intervalo [0, 1]. Aplique la regla trapecio, la
regla se Simpson, la regla se Simpson 3/8 y la regla de Boole. Utilice cinco
evaluaciones de la función en nodos equiespaciados con incremento h = 1/4.
f (x) = sin(πx)
81
f (x) = 1 + e−x cos(4x)
√
f (x) = sin( x)
TRAPECIO
b
b−a
Z
f (x)dx = (f (a) + f (b))
a 2
SIMPSON
b
b−a
Z
a+b
f (x)dx = f (a) + 4f + f (b)
a 6 2
SIMPSON 3/8
b
b−a
Z
3h
f (x)dx = [f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 )] , donde h =
a 8 3
BOOLE
Z b
2h b−a
f (x)dx = [7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )] , donde h =
a 45 4
function R=INTEG()
f=@(x)(sin(pi*x));
g=@(x)(1 + exp(-x)*cos(4*x));
r=@(x)(sin(sqrt(x)));
h=0:1/4:1;
[m n]=size(h);
R=zeros(3,4);
%Método del trapecio
for i=2:n
R(1,1)=R(1,1)+((h(i)-h(i-1))/2)*(f(h(i))+ f(h(i-1)));
R(2,1)=R(2,1)+((h(i)-h(i-1))/2)*(g(h(i))+ g(h(i-1)));
R(3,1)=R(3,1)+((h(i)-h(i-1))/2)*(r(h(i))+ r(h(i-1)));
end
%Método de Simpson
for i=2:n
R(1,2)=R(1,2)+((h(i)-h(i-1))/6)*(f(h(i-1))+4*f((h(i)+h(i-1))/2)+f(h(i)));
R(2,2)=R(2,2)+((h(i)-h(i-1))/6)*(g(h(i-1))+4*g((h(i)+h(i-1))/2)+g(h(i)));
R(3,2)=R(3,2)+((h(i)-h(i-1))/6)*(r(h(i-1))+4*r((h(i)+h(i-1))/2)+r(h(i)));
end
82
R(2,3)=R(2,3)+(3*(hs(4)-hs(1))/24)*(g(hs(1))+3*g(hs(2))+3*g(hs(3))+g(hs(4)));
R(3,3)=R(3,3)+(3*(hs(4)-hs(1))/24)*(r(hs(1))+3*r(hs(2))+3*f(hs(3))+r(hs(4)));
end
%Método de Boole
for i=2:n
hb=linspace(h(i-1),h(i),5);
R(1,4)=R(1,4)+(2*(hb(5)-hb(1))/180)*(7*f(hb(1))+32*f(hb(2))+12*f(hb(3))
+32*f(hb(4))+7*f(hb(5)));
R(2,4)=R(2,4)+(2*(hb(5)-hb(1))/180)*(7*g(hb(1))+32*g(hb(2))+12*g(hb(3))
+32*g(hb(4))+7*g(hb(5)));
R(3,4)=R(3,4)+(2*(hb(5)-hb(1))/180)*(7*r(hb(1))+32*r(hb(2))+12*r(hb(3))
+32*r(hb(4))+7*r(hb(5)));
end
>> INTEG
ans =
Columns 1 through 3
Column 4
0.636619693571424
1.007459827351629
0.601221890813809
3.3.7. Ejercicio 7
Integrando el polinomio de interpolación de Lagrange
x − x1 x − x0
P1 (x) = f0 + f1
x0 − x1 x1 − x0
en el intervalo [x0 , x1 ], deduzca la regla del trapecio.
83
Z x1 Z x1
f (x)dx = P1 (x)dx
x0
Zx0x1 Z x1
x − x1 x − x0
= f0 dx + f1 dx
x0 x0 − x1 x0 x1 − x0
Z x1 Z x1
f0 f1
= (x − x1 )dx + (x − x0 )dx
x 0 − x 1 x0 x 1 − x 0 x0
2 x1 2 x1
f0 x f 1 x
= − x1 x + − x0 x
x0 − x 1 2 x0 x 1 − x0 2
2 2
2 x0
x20
f0 x1 2 x 0 f 1 x1 2
= − x1 − + x1 x0 + − x0 x1 − + x0
x0 − x 1 2 2 x1 − x0 2 2
2
x1 x20
2
x20
f0 f1 x1
= − − − + x1 x0 + − x0 x1 +
x1 − x0 2 2 x1 − x0 2 2
f0 f 1
= (x2 + x20 − 2x1 x0 ) + (x2 + x20 − 2x0 x1 )
2(x1 − x0 ) 1 2(x1 − x0 ) 1
(x1 − x0 )2
= (f0 + f1 )
2(x1 − x0 )
(x1 − x0 )
= (f0 + f1 )
2
84
3.3.8. Ejercicio 8
Una fórmula de cuadratura en un intervalo [a,b] puede obtenerse a partir
de una fórmula de cuadratura en un intervalo [c,d] haciendo el cambio de
variable dado por la función lineal
b−a ad − bc b−a
x = g(t) = t+ , con dx = dt
d−c d−c d−c
Compruebe que x=g(t) es la lı́nea recta que pasa por los puntos (c,a) y
(b,d).
Primeramente verificamos que efectivamente es una recta, ya que viene dado de la
forma y = mx + b.
Ahora se va a comprobar que la recta pasa por el punto (c,a); para ello en la función
x=g(t), hacemos x=g(c), y nos debe dar como resultado a:
b−a ad − bc
g(t) = t+
d−c d−c
b−a ad − bc
g(c) = (c) +
d−c d−c
bc − ac ad − bc
= +
d−c d−c
bc − ac + ad − bc
=
d−c
a(d − c)
=
d−c
= a
b−a ad − bc
g(t) = t+
d−c d−c
b−a ad − bc
g(c) = (d) +
d−c d−c
bd − ad ad − bc
= +
d−c d−c
bd − ad + ad − bc
=
d−c
b(d − c)
=
d−c
= b
85
b
b−a
Z
f (x)dx = (f (a) + f (b))
a 2
Se va a comprobar que la regla del trapecio tiene el mismo grado de precisión en el
intervalo [0,1] mediante el cambio de variable expuesto en el encabezado del ejercicio,
con la fórmula del trapecio:
1 1
b−a a∗1−b∗0 b−a
Z Z
g(t)dt = f t+ dt
0 0 1−0 1−0 1−0
Z 1
= f [(b − a)t + a](b − a)dt
0
Z 1
= (b − a) f [(b − a)t + a]dt
0
1−0
= (b − a) [f ((b − a) ∗ 0 + a) + f ((b − a) ∗ 1 + a)]
2
(b − a)
= [f (a) + f (b − a + a)]
2
(b − a)
= [f (a) + f (b)]
2
86
Compruebe que la regla del Simpson tiene el mismo grado de precisión
en cualquier intervalo [a,b] que en el intervalo [0,2].
La fórmula de Simpson viene dada por:
b
b−a
Z
a+b
f (x)dx = f (a) + 4f + f (b)
a 6 2
2 2
b−a a∗2−b∗0 b−a
Z Z
g(t)dt = f t+ dt
0 0 2−0 2−0 2−0
Z 2
b−a b−a
= f t+a dt
0 2 2
b−a 2
b−a
Z
= f t + a dt
2 0 2
b−a1 b−a b−a b−a
= f ∗ 0 + a + 4f ∗1+a +f ∗2+a
2 3 2 2 2
b−a1 b+a
= f (a) + 4f + f (b − a + a)
2 3 2
b−a b+a
= f (a) + 4f + f (b)
6 2
b
b−a
Z
2h
f (x)dx = [7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )] donde h =
a 45 4
87
4 4
b−a a∗4−b∗0 b−a
Z Z
g(t)dt = f t+ dt
0 0 4−0 4−0 4−0
Z 4
b−a b−a
= f t+a dt
0 4 4
b−a 4
b−a
Z
= f t + a dt
4 0 4
b−a 2∗1 b−a b−a b−a
= ∗ 7f ∗ 0 + a + 32f ∗ 1 + a + 12f ∗2+a
4 45 4 4 4
b−a b−a
+32f ∗ 3 + a + 7f ∗4+a
4 4
2h
= [7f (a) + 32f (h + a) + 12f (2h + a) + 32f (3h + a) + 7f (b)]
45
2h
= [7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )]
45
function R=intrec(f,a,b,n)
%f es la función
%a y b son los extremos del intevalo
%ni, es el número de subintervalos
h=(b-a)/n;
x=a:h:b;
R=0;
for i=1:n
R=R+h*f(x(i));
end
function R=inttrap(f,a,b,n)
%f es la función
%a y b son los extremos del intevalo
%ni, es el número de subintervalos
h=(b-a)/n;
x=a:h:b;
R=0;
for i=1:n
R=R+(h/2)*(f(x(i))+f(x(i+1)));
end
88
MÉTODO DE SIMPSON
function R=intsimp(f,a,b,n)
%f es la función
%a y b son los extremos del intevalo
%ni, es el número de subintervalos
h=(b-a)/(2*n);
x=a:h:b;
[l m]=size(x);
R=h/3*(f(x(1))+f(x(m)));
for i=2:n+1
R=R+(h/3)*4*f(x(2*i-1));
end
for i=2:n
R=R+(h/3)*2*f(x(2*i));
end
3.4.2. Ejercicio 2
Aproxime cada una de las siguientes integrales, utilizando los programas
desarrollados.
R1
−1
(1 + x2 )−1 dx
R2
0
2x(cos(x))dx
Rπ
0
sin(2x)e−x dx
>> f1=@(x)((1+x^2)^(-1));
>> f2=@(x)(2*x*cos(x));
>> f3=@(x)(sin(2*x)*exp(-x));
Para todos los casos, se dividirá en 1000 intervalos, para poder comparar los resultados.
ans =
1.570795993461563
ans =
1.570795993461566
89
>> intsimp(f1,-1,1,1000)
ans =
1.570795826628232
ans =
0.806558465059901
ans =
0.804893877713711
ans =
0.803229035282255
ans =
0.382712858844212
ans =
0.382712858844213
ans =
0.382710361070309
90
Tabulando, se tiene:
MÉTODO f1 f2 f3
Método del rectángulo 1.570795993461563 0.806558465059901 0.382712858844212
Método del trapecio 1.570795993461566 0.804893877713711 0.382712858844213
Método de Simpson 1.570795826628232 0.803229035282255 0.382710361070309
3.4.3. Ejercicio 3
Considere las siguientes funciones
f (x) = x3 para 0 ≤ x ≤ 1
f (x) = x3 para 0 ≤ x ≤ 1
>> f1=@(x)(sqrt(1+9*x^4));
>> f2=@(x)(2*pi*x^3*sqrt(1+9*x^4));
>> intrec(f1,0,1,10^6)
ans =
1.547864573545320
>> inttrap(f1,0,1,10^6)
ans =
1.547865654684117
>> intsimp(f1,0,1,10^6)
91
ans =
1.547866735822719
>> intrec(f2,0,1,10^6)
ans =
3.563111917433472
>> inttrap(f2,0,1,10^6)
ans =
3.563121852021714
>> intsimp(f2,0,1,10^6)
ans =
3.563131786606015
Tabulando, se tiene:
>> g1=@(x)(sqrt(1+(cos(x))^2));
>> g2=@(x)(2*pi*sin(x)*sqrt((1+(cos(x))^2)));
>> intrec(g1,0,pi/4,10^6)
ans =
1.058095575796776
>> inttrap(g1,0,pi/4,10^6)
ans =
1.058095501392561
>> intsimp(g1,0,pi/4,10^6)
ans =
1.058095426988455
92
>> intrec(g2,0,pi/4,10^6)
ans =
2.422425913990404
>> inttrap(g2,0,pi/4,10^6)
ans =
2.422428050822541
>> intsimp(g2,0,pi/4,10^6)
ans =
2.422430187653901
Tabulando, se tiene:
>> h1=@(x)(sqrt(1+(exp(-2*x))));
>> h2=@(x)(2*pi*exp(-x)*sqrt(1+(exp(-2*x))));
>> intrec(h1,0,1,10^6)
ans =
1.192701576318436
>> inttrap(h1,0,1,10^6)
ans =
1.192701401972177
>> intsimp(h1,0,1,10^6)
ans =
1.192701227626107
>> intrec(h2,0,1,10^6)
ans =
93
4.849221702904675
>> inttrap(h2,0,1,10^6)
ans =
4.849218491473798
>> intsimp(h2,0,1,10^6)
ans =
4.849215280044673
Tabulando, se tiene:
(b − a)h 0
ERECT AN GU LO = − f (θ)
2
(b − a)h2 00
ET RAP ECIO = − f (θ)
12
(b − a)h4 (4)
ESIM P SON = − f (θ)
180
Se desarrolla un programa para analizar gráficamente el error:
function []=errorint(fp,f2p,f4p,a,b)
h=0.0001:0.01:1;
%Error rectangulo
Er=abs(-h*(b-a)/2*fp);
%Error trapecio
Et=abs(-(b-a)*h.^2/12*f2p);
%Error Simpson
Es=abs(-(b-a)*h.^4/180*f4p);
Erp=log(Er);
Etp=log(Et);
Esp=log(Es);
hp=log(h);
94
plot(h,Er);
hold on
plot(h,Et,’c’);
hold on
plot(h,Es,’r’);
xlabel(’h’);ylabel(’Error’);
Por tanto, para hallar el error, se debe encontrar las derivadas primera segunda y
cuarta de cada función, para hacer el análisis:
f (x) = x3 para 0 ≤ x ≤ 1
Z 1
longitud = g(x)dx
0
Z 1 √
longitud = 1 + 9x4 dx
0
Tomando un θ = 0, 5
g 0 (0,5) = 1,8
g 00 (0,5) = 8,208
g (4) (0,5) = −119,88
PARA LA LONGITUD:
>> errorint(1.8,8.208,-119.88,0,1)
Z 1
area = h(x)dx
0
Z 1 √
area = 2πx3 1 + 9x4
0
Tomando un θ = 0, 5
h0 (0,5) = 1,1625
95
h00 (0,5) = 7,476
h(4) (0,5) = 199,1831
PARA EL AREA:
>> errorint(1.1625,7.476,199.1831,0,1)
Tomando un θ = π/8
g 0 (π/8) = −0,2596
g 00 (π/8) = −0,5689
g (4) (π/8) = 1,9084
PARA LA LONGITUD:
>> errorint(-0.2596,-0.5689,1.9084,0,pi/4)
96
Z π/4
area = h(x)dx
0
Z π/4 p
area = 2πsen(x) 1 + cos2 (x)dx
0
Tomando un θ = π/8
h0 (π/8) = 7,2786
h00 (π/8) = −7,6564
h(4) (π/8) = 38,6602
PARA EL AREA:
>> errorint(7.2786,-7.6564,38.6602,0,\pi/4)
97
f (x) = e−x para 0 ≤ x ≤ 1
Z 1
longitud = g(x)dx
0
Z 1 √
longitud = 1 + e−2x dx
0
Tomando un θ = 0, 5
g 0 (0, 5) = −0,3145
g 00 (0, 5) = 0,5444
g (4) (0, 5) = 0,8749
PARA LA LONGITUD:
>> errorint(-0.3145,0.5444,0.8749,0,1)
Z 1
area = h(x)dx
0
Z 1 √
area = 2πe−x 1 + e−2x dx
0
Tomando un θ = π/8
h0 (π/8) = −5,6558
h00 (π/8) = 8,9296
h(4) (π/8) = 37,5192
PARA EL AREA:
>> errorint(-5.6558,8.9296,37.5192,0,1)
98
3.4.4. Ejercicio 4
Determine las constantes w0, w1 y w2 de manera que
Z 2
g(t)dt = w0 g(0) + w1 g(1) + w2 g(2)
0
Reemplazamos, g(t) = 1
Z 2
dt = w0 + w1 + w2
0
2
t = w0 + w1 + w2
0
2 = w0 + w1 + w2
99
Con g(t) = t2
Z 2
t2 dt = w0 (0)2 + w1 (1)2 + w2 (2)2
0
2
t3
= w1 + 4w2
3 0
8
= w1 + 4w2
3
2 = w0 + w1 + w2
2 = w1 + 2w2
8
= w1 + 4w2
3
100
3.4.5. Ejercicio 5
Use la relación f (x0 + ht) = g(t) y el cambio de variable x = x0 + ht con
dx = hdt para trasladar la regla de Simpson desde [0, 2] hasta el intervalo [x0 , x2 ]
Ell polinomio interpolador de Lagrange para la regla de Simpson es:
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
P2 (x) = f0 + f1 + f2
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
Integrando el polinomio, se tiene:
x2 x2 x2
(x − x1 )(x − x2 ) (x − x0 )(x − x2 )
Z Z Z
f (x)dx ≈ f0 dx + f1
x0 (x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 )
Zx0x2 x0
(x − x0 )(x − x1 )
+ f2
x0 (x2 − x0 )(x2 − x1 )
Se hace el cambio de variable x = xo + ht, con dx = hdt. Los nuevos lı́mites de integración
son t = 0 y t = 2. Como los nodos xk = x0 + kh están equiespaciados, podemos escribir
xk −xj = (k−j)h y x−xk = h(t−k) y usamos esto para simplificar las integrales y escribir:
x2 x2 Z x2
(x − x1 )(x − x2 ) (x − x0 )(x − x2 )
Z Z
f (x)dx ≈ f0 dx + f1
x0 (x0 − x1 )(x0 − x2 ) x0 (x1 − x0 )(x1 − x2 )
Zx0x2
(x − x0 )(x − x1 )
+ f2
x0 (x2 − x0 )(x2 − x1 )
x2 Z 2 Z 2
h(t − 1)h(t − 2) h(t − 0)h(t − 2)
Z
f (x)dx ≈ f0 dx + f1 dx
x0 0 (0 − h)(0 − 2h) 0 (h − 0)(h − 2h)
Z 2
h(t − 0)h(t − 1)
+ f2
0 (2h − 0)(2h − h)
Z 2 Z 2
h(t − 1)h(t − 2) h(t)h(t − 2)
= f0 dx + f1 dx
0 (−h)(−2h) 0 (h)(−h)
Z 2
h(t)h(t − 1)
+ f2
0 (2h)(h)
Z 2 Z 2
f2 2 2
Z
f0 2 2
= (t − 3t + 2)hdt − f1 (t − 2t)hdt + (t − t)hdt
2 0 0 2 0
hf0 2 2
Z 2
hf2 2 2
Z Z
2
= (t − 3t + 2)dt − hf1 (t − 2t)dt + (t − t)dt
2 0 0 2 0
hf0 t3 3t2 t3 hf2 t3 t2 2
= ( − + 2t) |20 −hf1 ( − t2 ) |20 + ( − ) |0
2 3 2 3 2 3 2
hf0 8 12 8 hf2 8 4
= ( − + 4) − hf1 ( − 4) + ( − )
2 3 2 3 2 3 2
h
= (f0 + 4f1 + f2 )
3
Z x2
h
f (x)dx ≈ (f0 + 4f1 + f2 )
x0 3
101
3.4.6. Ejercicio 6
Determine en cada uno de los siguientes casos, el número m y el tamaño
de los subintervalos h de manera que la regla del trapecio y la de Simpson
(considerar cada regla por separado) con m subintervalos nos permita obtener
la integral dada con una precisión de 5 × 10−9 .
R π/6
a) −π/6 cos(x)dx
R3 1
b) 2 5−x
dx
R2
c) 0
xe−x dx
Para tener esa precisión, se necesita que el error sea menor que el valor indicado,
entonces:
R π/6
a) −π/6 cos(x)dx
(b − a)h2 00
ET RAP ECIO =− f (θ)
12
−1 ≤ f 00 (θ) ≤ 1
De ahı́,
(b − a)h2 00
− f (θ) ≤ 5 × 10−9
12
π
+ π6 h2
6
≤ 5 × 10−9
12
πh2
≤ 5 × 10−9
36
h = 0, 000239
Ahora, al determinar el número de intervalos, se tiene:
b−a
h=
m
π
6
+ π6
0, 000239 =
m
π
6
+ π6
m=
0, 000239
m = 4375 intervalos
102
Con la regla de Simpson
−1 ≤ f (4) (θ) ≤ 1
De ahı́,
(b − a)h4 (4)
− f (θ) ≤ 5 × 10−9
180
π
+ π6 h4
6
≤ 5 × 10−9
180
πh4
≤ 5 × 10−9
540
h = 0, 04054
Ahora, al determinar el número de intervalos, se tiene:
b−a
h=
2m
π
6
+ π6
0, 04054 =
2m
π
+ π6
6
m=
2 ∗ 0, 04054
m = 13 intervalos
R3 1
b) 2 5−x
dx
f 00 (2) = 0, 0741
f 00 (3) = 0, 25
De ahı́,
(b − a)h2 00
− f (θ) ≤ 5 × 10−9
12
(3 − 2)h2
∗ 0, 25 ≤ 5 × 10−9
−
12
h = 0, 0004899
103
Ahora, al determinar el número de intervalos, se tiene:
b−a
h=
m
3−2
0, 0004899 =
m
1
m=
0, 0004899
m = 2041 intervalos
Con la regla de Simpson
(b − a)h4 (4)
ESIM P SON = − f (θ)
180
24
Como f (4) (x) = − (x−5)5 , entonces:
f (4) (3) = 0, 75
De ahı́,
(b − a)h4 (4)
− f (θ) ≤ 5 × 10−9
180
(3 − 2) h4
∗ 0, 75 ≤ 5 × 10−9
180
πh4
≤ 5 × 10−9
540
h = 0, 03309
Ahora, al determinar el número de intervalos, se tiene:
b−a
h=
2m
3−2
0, 03309 =
2m
1
m=
2 ∗ 0, 03309
m = 15 intervalos
R2
c) 0
xe−x dx
(b − a)h2 00
ET RAP ECIO = − f (θ)
12
104
Como f 00 (x) = xe−x − 2e−x , entonces:
f 00 (0) = −2
f 00 (2) = 0
De ahı́,
(b − a)h2 00
− f (θ) ≤ 5 × 10−9
12
(2 − 0)h2
≤ 5 × 10−9
− ∗ (−2)
12
h = 0, 00012247
Ahora, al determinar el número de intervalos, se tiene:
b−a
h=
m
2−0
0, 00012247 =
m
2
m=
0, 00012247
m = 16330 intervalos
Con la regla de Simpson
f (4) (0) = −4
105
3.5. Consulta General
3.5.1. Método de Integración de Romberg
a) Teorı́a
Como se estudió en los métodos de integración numérica, se pudo apreciar que los
términos de error ET (f, h) y ES (f, h) para la fórmula compuesta del trapecio y la
fórmula compuesta de Simpson son del orden O(h2 ) y O(h4 ), respectivamente. Y
además no es difı́cil ver que el término de error de la fórmula de Boole es del orden
O(h6 ). Entonces se tiene:
Z b
f (x)dx = T (f, h) + O(h2 )
a
Z b
f (x)dx = S(f, h) + O(h4 )
a
Z b
f (x)dx = B(f, h) + O(h6 )
a
Las reglas de Newton-Cotes rara vez se utilizan más allá de la regla de Boole, esto es por
que a partir de la cuadratura de nueve puntos de Newton-Cotes involucra pesos nega-
tivos; esto produce un error significativo debido al redondeo. La ventaja del método de
Romberg, es que todos los pesos son positivos y equiespaciados en el eje de las abscisas.
ET (f, h) = a1 h2 + a2 h4 + a3 h6 + ...
y Z b
f (x)dx = T (f, h) + a1 h2 + a2 h2 + a3 h6 + ...
a
Se multiplica la primera ecuación por 4, y se tiene:
Z b
4 f (x)dx = 4T (f, h) + a1 4h2 + a2 4h2 + a3 4h6 + ...
a
106
Ahora, se elimina a1 , restando:
Z b
3 f (x)dx = 4T (f, h) − T (f, 2h) − a2 12h4 − a3 60h6 − ...
a
La segunda mejora es la regla de Boole, que empieza con la fórmula que involucra
S(f,2h):
Z b
f (x)dx = S(f, 2h) + b1 16h4 + b2 64h6 + b3 256h8 + ...
a
Eliminando b1 de las dos últimas ecuaciones, el resultado involucra la regla de Boole:
b
16S(f, h) − S(f, 2h) b2 48h6 b3 240h8
Z
f (x)dx = − − − ...
a 15 15 15
b2 48h6 b3 240h8
= B(f, h) − − − ...
15 15
y
Q = R(2h, K − 1) + c1 4K h2K + c2 4K+1 h2K+2 + ...
una aproximación mejorada, tiene la forma:
4K R(h, K − 1) − R(2h, K − 1)
Q= + O(h2K+2 )
4K − 1
107
Las reglas iniciales, R(J, 0) son usadas para generar la primera mejora, R(J, 1) que a
su vez se utiliza para generar la segunda mejora, R(J, 2). Se tiene las fórmulas:
41 R(J, 0) − R(J − 1, 0)
R(J, 1) = para j ≥ 1
41 − 1
42 R(J, 0) − R(J − 1, 0)
R(J, 2) = para j ≥ 2
42 − 1
De ahı́, se tiene que la fórmula general para construir mejoras es:
4K R(J, K − 1) − R(J − 1, K − 1)
R(J, K) = para J ≥ K
4K − 1
Z b
f (x)dx = R(J, K) + bK h2K+2 f (2K+2) (cJ , K)
a
= R(J, K) + O(h2K+2 )
108
b) Código en Matlab
Para aproximar la integral Z b
f (x)dx ≈ R(J, J)
a
para generar una tabla de aproximaciones R(J, K) para J ≥ K y usando R(J +1, J +1)
como respuesta final. Las aproximaciones R(J, K) son almacenadas en una matriz
triangular inferior. Los elementos R(J, 0) de la fila 0 son calculados usando la secuen-
cia del trapecio basados en 2J subintervalos de [a, b]; entonces R(J, K) son calculados
con la regla de Romberg.
function [R,cuad]=romberg(f,a,b,tol)
%f es la función
%a y b son los lı́mites de integración
%tol es la tolerancia
%R es la tabla de Romberg
%cuad es la cuadratura de la integral
M=1;
h=b-a;
err=1;
J=0;
R=zeros(4,4);
R(1,1)=h*(f(a)+f(b))/2;
while err>tol
J=J+1;
h=h/2;
s=0;
for p=1:M
x=a+h*(2*p-1);
s=s+f(x);
end
R(J+1,1)=R(J,1)/2+h*s;
M=2*M;
for K=1:J
R(J+1,K+1)=R(J+1,K)+(R(J+1,K)-R(J,K))/(4^K-1);
end
err=abs(R(J,J)-R(J+1,K+1));
end
cuad=R(J+1,J+1);
c) Ejemplos
109
Hallar la cuadratura con el método de Romberg, de:
Z π/2
(x2 + x + 1)cos(x)dx
0
R =
Columns 1 through 3
0.785398163397449 0 0
1.726812656758237 2.040617487878499 0
1.960534166563895 2.038441336499114 2.038296259740489
2.018793948077854 2.038213875249173 2.038198711165844
2.033347341805016 2.038198473047404 2.038197446233953
2.036984954990182 2.038197492718571 2.038197427363316
Columns 4 through 6
0 0 0
0 0 0
0 0 0
2.038197162775770 0 0
2.038197426155669 2.038197427188531 0
2.038197427063782 2.038197427067343 2.038197427067225
r =
2.038197427067225
Por tanto se tiene que:
Z π/2
(x2 + x + 1)cos(x)dx ≈ 2,038197427067225
0
R =
Columns 1 through 3
1.859140914229523 0 0
110
1.571583165458632 1.475730582535002 0
1.490678861698856 1.463710760445597 1.462909438972970
1.469712276429665 1.462723414673269 1.462657591621780
1.464420310149482 1.462656321389421 1.462651848503831
1.463094102606428 1.462652033425411 1.462651747561143
Columns 4 through 6
0 0 0
0 0 0
0 0 0
1.462653594044777 0 0
1.462651757343228 1.462651750140477 0
1.462651745958878 1.462651745914234 1.462651745910103
r =
1.462651745910103
Y se tiene que la cuadratura es:
Z 1
2
ex dx ≈ 1,462651745910103
0
h
S(ak , bk ) = (f (ak ) + 4f (ck ) + f (bk ))
3
donde ck = 1/2(ak + bk ) es el centro de [ak , bk ] y h = (bk − ak )/2. Además si f ∈
C 4 [ak , bk ], entonces ahı́ existe un valor d1 ∈ [ak , bk ], entonces:
bk
f (4) (d1 )
Z
f (x)dx = S(ak , bk ) − h5
ak 90
REFINAMIENTO
111
la fórmula de Simpson recursivamente sobre cada pieza. Solamente dos evaluaciones
adicionales de f(x) se necesitan, y el resultado es:
h
S(ak1 , bk1 ) + S(ak2 , bk2 ) = (f (ak1 ) + 4f (ck1 ) + f (bk1 ))
6
h
+ (f (ak2 ) + 4f (ck2 ) + f (bk2 ))
6
donde ak1 = ak , bk1 = ak2 = ck , bk2 = bk , ck1 es el punto medio de [ak1 , bk1 ], y ck2
es el punto medio de [ak2 , bk2 ]. En la fórmula anterior el tamaño del paso es h/2, lo
que explica los factores h/6 en el lado derecho de la ecuación. Además, si f ∈ C 4 [a, b],
existe un valor d2 ∈ [ak , bk ], entonces:
Z bk
h5 f (4) (d2 )
f (x)dx = S(ak1 , bk1 ) + S(ak2 , bk2 ) −
ak 16 90
f (a) (d2 ) 16
−h5 ≈ (S(ak1 , bk1 ) + S(ak2 , bk2 ) − S(ak , bk ))
90 15
Luego se sustituye en la ecuación anterior para obtener el error estimado:
Z bk
1
f (x)dx − S(ak1 , bk1 ) + S(ak2 , bk2 ) ≈ |S(ak1 , bk1 ) + S(ak2 , bk2 ) − S(ak , bk )|
ak 15
Debido a que se asume f (4) (d1 ) ≈ f (4) (d2 ), la fracción 1/15, se reemplaza por 1/10 en
la parte derecha de la última ecuación. Ésto justifica la siguiente prueba.
PRUEBA DE EXACTITUD
112
su tolerancia.
Si la Integración adaptativa debe continuar, los intervalos más pequeños, deberı́an ser
redefinidos con sus respectivas tolerancias. El término de error en muestra que cada
vez que se redefine, el intervalo se divide en pequeños subintervalos con lo que hay
una reducción del error de aproximadamente 1/16. Ası́ el proceso termina después de
un número finito de pasos. Para evitar evaluaciones adicionales innecesarias de f(x),
los valores de la función pueden ser incluidos en la lista de valores correspondientes a
cada subintervalo.
b) Código en Matlab
Regla de Simpson para la aproximación:
Z b0
h
f (x)dx ≈ (f (a0) + 4f (c0) + f (b0))
a0 3
function Z=RSimp(f,a0,b0,tol0)
h=(b0-a0)/2;
C=zeros(1,3);
C(1)=f(a0);
C(2)=f((a0+b0)/2);
C(3)=f(b0);
S=h*(C(1)+4*C(2)+C(3))/3;
S2=S;
tol1=tol0;
err=tol0;
Z=[a0 b0 S S2 err tol1];
function [cuad]=adapt(f,a,b,tol)
%f es la función
%a y b son los lı́mites de integración
%tol es la tolerancia del error
%SRmat es la tabla de valores
%cuad es la cuadratura de la integral
113
% se inicializan las variables
SRmat=zeros(30,6);
iteracion=0;
done=1;
SRvec=zeros(1,6);
SRvec=RSimp(f,a,b,tol);
SRmat(1,1:6)=SRvec;
m=1;
estado=iteracion;
while (estado==iteracion)
n=m;
for j=n:-1:1
p=j;
SR0vec=SRmat(p,:);
err=SR0vec(5);
tol=SR0vec(6);
if (tol<=err)
%Biseca elintervalo, aplica la rela de Simpson
%recursivamente, y determina el error
estado=done;
SR1vec=SR0vec;
SR2vec=SR0vec;
a=SR0vec(1);
b=SR0vec(2);
c=(a+b)/2;
err=SR0vec(5);
tol=SR0vec(6);
tol2=tol/2;
SR1vec=RSimp(f,a,c,tol2);
SR2vec=RSimp(f,c,b,tol2);
err=abs(SR0vec(3)-SR1vec(3)-SR2vec(3)/30);
%Prueba de exactitud
if (err<tol)
SRmat(p,:)=SR0vec;
SRmat(p,4)=SR1vec(3)+SR2vec(3);
SRmat(p,5)=err;
else
SRmat(p+1:m+1,:)=SRmat(p:m,:);
m=m+1;
SRmat(p,:)=SR1vec;
SRmat(p+1,:)=SR2vec;
estado=iteracion;
end
end
end
end
cuad=sum(SRmat(:,4));
err=sum(abs(SRmat(:,5)));
SRmat=SRmat(1:m,1:6);
114
c) Ejemplos
>> [R,r]=adapt(f,0,3,10^-5)
R =
Columns 1 through 3
0 0.187500000000000 0.034743607971660
0.187500000000000 0.281250000000000 0.042255660337814
0.281250000000000 0.375000000000000 0.056880301390916
0.375000000000000 0.562500000000000 0.146367397547248
0.562500000000000 0.656250000000000 0.080933104436227
0.656250000000000 0.750000000000000 0.078677921424880
0.750000000000000 0.843750000000000 0.070755253540956
0.843750000000000 0.937500000000000 0.058687230826409
0.937500000000000 1.031250000000000 0.044945904980309
1.031250000000000 1.125000000000000 0.031901460682156
1.125000000000000 1.218750000000000 0.021018322792207
1.218750000000000 1.312500000000000 0.012752551457937
1.312500000000000 1.500000000000000 0.009882138423948
1.500000000000000 1.687500000000000 -0.000487493205888
1.687500000000000 1.875000000000000 -0.003928845244197
1.875000000000000 2.062500000000000 -0.004338535019037
2.062500000000000 2.250000000000000 -0.003617756684131
2.250000000000000 2.625000000000000 -0.004302927197983
2.625000000000000 3.000000000000000 -0.001362918723262
Columns 4 through 6
115
0.009881540779703 0.000000199214748 0.000000625000000
-0.000488547488466 0.000000351427526 0.000000625000000
-0.003929476113531 0.000000210289778 0.000000625000000
-0.004338847027974 0.000000104002979 0.000000625000000
-0.003617902497204 0.000000048604358 0.000000625000000
-0.004304374695961 0.000000482499326 0.000001250000000
-0.001363148574084 0.000000076616941 0.000001250000000
r =
0.671758191529990
R =
Columns 1 through 3
0 0.000000119209290 0.000000000052525
0.000000119209290 0.000000238418579 0.000000000100335
0.000000238418579 0.000000476837158 0.000000000283789
0.000000476837158 0.000000953674316 0.000000000802677
0.000000953674316 0.000001907348633 0.000000002270314
0.000001907348633 0.000003814697266 0.000000006421415
0.000003814697266 0.000007629394531 0.000000018162498
0.000007629394531 0.000015258789063 0.000000051371265
0.000015258789063 0.000030517578125 0.000000145299668
0.000030517578125 0.000061035156250 0.000000410968323
0.000061035156250 0.000122070312500 0.000001162387176
0.000122070312500 0.000244140625000 0.000003287689082
0.000244140625000 0.000488281250000 0.000009298772110
0.000488281250000 0.000976562500000 0.000026299672426
0.000976562500000 0.001953125000000 0.000074379766326
0.001953125000000 0.003906250000000 0.000210338481322
0.003906250000000 0.007812500000000 0.000594704872214
0.007812500000000 0.015625000000000 0.001680821744511
116
0.015625000000000 0.023437500000000 0.002174609615158
0.023437500000000 0.031250000000000 0.002572661248460
0.031250000000000 0.046875000000000 0.006135513385761
0.046875000000000 0.062500000000000 0.007251412041432
0.062500000000000 0.093750000000000 0.017267477690934
0.093750000000000 0.125000000000000 0.020366939642407
0.125000000000000 0.187500000000000 0.048347438186639
0.187500000000000 0.250000000000000 0.056787898103333
0.250000000000000 0.375000000000000 0.133917900573279
0.375000000000000 0.500000000000000 0.155886335958915
0.500000000000000 0.750000000000000 0.362233340601793
0.750000000000000 1.000000000000000 0.412819941034581
1.000000000000000 1.250000000000000 0.449160321429661
1.250000000000000 1.500000000000000 0.474578473819290
1.500000000000000 2.000000000000000 0.989478800524790
Columns 4 through 6
117
0.989483132241129 0.000001443905446 0.000002500000000
r =
3.141591830518394
Entonces el resultado de la integral es:
Z 2p
(4x − x2 ) ≈ 3,141591830518394
0
El objetivo de este método es hallar dichos puntos C y D que ajusten un trapecio que
devuelva la mejor aproximación de la integral numérica de la función dada.
Análisis:
h
T = [f (a) + f (b)]
2
h
Haciendo un cambio de variable w1 = w2 = 2
la formula se puede escribir de la
siguiente manera:
T = w1 f (a) + w2 f (b)
Ahora evaluando estos puntos para hallar el area del trapecio que mejor se aproxime
a la integral de la función nos queda lo siguiente:
118
1)
A = w1 f (z1 ) + w2 f (z2 )
F (z) = 1
F (z) = z
F (z) = z 2
F (z) = z 3
Ahora integramos cada función entre los limites -1 y 1 que son establecidos por Gauss,
esto limita a que solo se puedan encontrar integrales dentro de estos limites, pero
posteriormente se indicara un cambio de variable que se realiza para generalizar esta
integral a cualquier limite
Z 1
I1 = 1 dz = z|1−1 = 2
−1
1
z2 1
Z
I2 = z dz = | =0
−1 2 −1
1
z3 1
Z
2
I3 = z 2 dz = |−1 =
−1 3 3
1
z4 1
Z
I2 = z 3 dz = | =0
−1 4 −1
119
I1 = w1 f (1) + w2 f (1) = 2
I2 = w1 f (z1 ) + w2 f (z2 ) = 0
2
I3 = w1 f (z 2 1 ) + w2 f (z 2 2 ) =
3
I= w1 f (z 3 1 ) + w2 f (z 3 2 ) = 0
w1 = 1
w2 = 1
−1
z1 = √ = −0, 57735...
3
1
z2 = √ = 0, 57735...
3
Z 1
F (z) dz = w1 F (z1 ) + w2 F (z2 ) = F (−0, 57735...) + F (0, 57735...)
−1
Ahora para generalizar esta ecuación para una integral de cualquier limite se pro-
cede hacer un cambio de variable:
120
2x − (a + b)
z=
b−a
b−a a+b
f (x) = F ( z+ )
2 2
b−a
dx = dz
2
b 1
b−a b−a
Z Z
a+b
f (x) dx = F( z+ ) dz =
a 2 −1 2 2
Algo importante de este método es que puede extenderse a tres o mas puntos, la
ecuación generalizada para este caso seria:
Z 1
F (z) dz = w1 F (z1 ) + w2 F (z2 ) + w3 F (z3 ) + ... + wn F (zn )
−1
b) Código en Matlab
121
function cuad = gaussL(f,a,b,n)
cuad = 0;
A = [1 1 0 0 0 0 ; -0.577350269 0.577350269 0 0 0 0
; 0.5555556 0.8888889 0.5555556 0 0 0
; -0.774596669 0 0.774596669 0 0 0
; 0.3478548 0.6521452 0.6521452 0.3478548 0 0
; -0.861136312 -0.339981044 0.339981044 0.861136312 0 0
; 0.2369269 0.4786287 0.5688889 0.4786287 0.2369269 0
; -0.906179846 -0.538469310 0 0.538469310 0.906179846 0
; 0.1713245 0.3607616 0.4679139 0.4679139 0.3607616 0.1713245
; -0.932469514 -0.661209386 -0.238619186 0.238619186 0.661209386 0.932469514];
mul= (b-a)/2;
for j=1:n
x=(b+a+(b-a)*A(2*(n-1),j))/2;
cuad = cuad + A(2*(n-1)-1,j)*f(x)*mul;
end
c) Ejemplos
Zf (x) = x3 + 6x2 + 3x + 9
1
I= x3 + 6x2 + 3X + 9 dx = 22
−1
−1
I= 1.0000*f( √ 3
) + 1.0000f( √13 )
I= 1,0000 ∗ ((−0,577350269)3 + 6 ∗ (−0,577350269)2 + 3 ∗ (−0,577350269) + 9) +
1,0000 ∗ ((+0,577350269)3 + 6 ∗ (+0,577350269)2 + 3 ∗ (+0,577350269) + 9)
I= 9.075 + 12.92
I= 22
r =
22.000000193621588
122
r =
47.333335974180599
Por tanto I=47.333335974180599
f= @(y,i)(y+0.2*(13*y-0.0025*y*y-0.0001*i*0.2*0.5*(y*y+250*y)));
a=0;
b=1;
h=0.2;
ya=250;
T=a:h:b;
y=a:h:b;
y(1)=f(250,1);
for i=2:6
y(i)= f(y(i-1),i);
end
sol=[T’ y’]
sol =
1.0e+03 *
0 0.8685
0.0002 2.7456
0.0004 6.0656
0.0006 3.1339
0.0008 6.2653
0.0010 2.4382
123
3.6.2. Ejercicio 2
f= @(y,i)(y+0.2*(13*y-0.0025*y*y-0.0001*i*0.1*(5*y*y+250*y)));
a=0;
b=1;
h=0.2;
ya=250;
T=a:h:b;
y=a:h:b;
y(1)=f(250,1);
for i=2:6
y(i)= f(y(i-1),i);
end
sol=[T’ y’]
sol =
1.0e+03 *
0 0.8680
0.0002 2.7322
0.0004 5.8754
0.0006 2.4988
0.0008 5.5552
0.0010 2.7003
3.6.3. Ejercicio 3
(b) Repita el apartado (a) usando como valores iniciales y(0) = 200 e y(0) =
300.
Para 200
sol =
1.0e+03 *
0 0.6995
0.0002 2.2633
0.0004 5.4302
0.0006 3.6171
0.0008 5.8185
0.0010 1.9740
Para 300
124
sol =
1.0e+03 *
0 1.0339
0.0002 3.1650
0.0004 6.0792
0.0006 1.9140
0.0008 4.8698
0.0010 4.2334
3.6.4. Ejercicio 4
(c) Dibuje las soluciones aproximadas calculadas en los apartados (a) y (b)
sobre una misma gráfica.
3.6.5. Ejercicio 5
Pruebe que cuando se usa el método de Heum para resolver el problema
de valor inicial y 0 = f (t) en [a, b] con y(a) = y0 = 0 el resultado es
M −1
hX
y (b) = (f (tk ) + f (tk+1 ))
2 k=0
que es la aproximación dada por la regla compuesta del trapecio para aproxi-
mar la integral definida de f (t) en el intervalo [a, b]
125
3.7. Programas
3.7.1. Derivación Numérica
Adelantada
1 function [ R ]= derivAdelantada (f , x0 , h )
2 R =( f ( x0 + h ) -f ( x0 ) ) / h
3 end
Retrasada
1 function [ R ]= derivRetrasada (f , x0 , h )
2 R =( f ( x0 ) -f ( x0 - h ) ) / h
3 end
Centrada
1 function [ R ]= derivCentrada (f , x0 , h )
2 R =( f ( x0 + h ) -f ( x0 - h ) ) /(2* h ) ;
3 end
1 function [ R ]= TrapecioCompuesto (f ,a ,b , N )
2 h =( b - a ) / N ;
3 X=a:h:b;
4 sum =0;
5 for i =2: N -1
6 sum = sum + f ( X ( i ) ) ;
7 end
8 R =( h /2) *( f ( X (1) ) +2* sum + f ( X ( N ) ) ) ;
9 end
1
Simpson
3
1 function [ R ]= Simpson13 (f ,a , b )
2 h =( b - a ) /3;
3 c =( a + b ) /2;
4 R =( h /3) *( f ( a ) +4* f ( c ) + f ( b ) ) ;
5 end
1
Simpson compuesto
3
126
1 function [ R ]= simpson13compuesto (f ,a ,b , N )
2 h =( b - a ) / N ;
3 X=a:h:b;
4 sum1 =0;
5 sum2 =0;
6 for i =1: N -1
7 c =( X ( i ) + X ( i +1) ) /2;
8 sum1 = sum1 + f ( X ( i ) ) ;
9 sum2 = sum2 + f ( c ) ;
10 end
11 R =( h /3) *( f ( X (1) ) + f ( X ( N ) ) +2* sum1 +4* sum2 ) ;
12 end
1 function [ Y X ]= euler ( fx ,a ,b , y0 , N )
2 h =( b - a ) / N ;
3 X=a:h:b;
4 Y (1) = y0 ;
5 for i =1: N
6 Y ( i +1) = Y ( i ) +( h * fx ( Y ( i ) ) ) ;
7 end
8 end
Euler mejorado
1 function [ Y X ]= eulermejorado ( fx ,a ,b , y0 , N )
2 h =( b - a ) / N ;
3 X=a:h:b;
4 Y (1) = y0 ;
5 for i =1: N
6 Y ( i +1) = Y ( i ) +( h * fx ( Y ( i ) ) ) ;
7 end
8 for i =1: N
9 Y ( i +1) = Y ( i ) +(( h /2) *( fx ( Y ( i ) ) + fx ( Y ( i +1) ) ) ) ;
10 end
11 end
Runge Kutta
1 function [ Y X ]= Rungekutta (f ,a ,b , y0 , N )
2 h =( b - a ) / N ;
3 X=a:h:b;
4 Y (1) = y0 ;
5 for i =1: N
127
6 f1 = f ( X ( i ) ,Y ( i ) ) ;
7 f2 = f ( X ( i ) +( h /2) ,( Y ( i ) +( h /2) * f1 ) ) ;
8 f3 = f (( X ( i ) +( h /2) ) ,( Y ( i ) +( h /2) * f2 ) ) ;
9 f4 = f ( X ( i ) +h , Y ( i ) +( h * f3 ) ) ;
10 Y ( i +1) = Y ( i ) +( h /6) *( f1 +2* f2 +2* f3 + f4 ) ;
11 end
12 end
128