Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Abstract
En el siguiente documento se redacta el curso recibido de métodos numéricos de la Universidad de Las Fuerzas
Armadas Escuela Politécnica del Ejercito dictado por el Doctor Paúl Medina.
Keywords
Newton, Secante, tangente,series,sucesiones,errores, absoluto,relativo,propagación, aproximación, redondeo,
truncamiento,condición de una matriz,interpolación,polinomio, estabilidad, integración,derivación , ecuaciones
diferenciales, iteración ,Runge-Kutta,Legendre.
1 Departamento
Eléctrica y Electrónica , Escuela Politécnica del Ejército, Sangolquı́, Ecuador
* sagmsanty@hotmail.com
Contents
Tabla de contenidos 3
1 Introducción 4
1.1 Conceptos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Cifras significativas • Precisión • Exactitud • Convergencia • Estabilidad • Definición de lı́mite • Teorema de Bolzano • Teorema de Rolle
• Sucesión • Serie
2 Teorema de Taylor 4
2.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Orden de aproximación 6
3.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Error 7
Error de redondeo • Error de truncamiento • Error absoluto
4.1 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Propagación del error 7
5.1 Propagación en operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6 Métodos para el cálculo de raı́ces 9
6.1 Método de la bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Método analı́tico • Método gráfico
6.3 Método de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Sistemas de Ecuaciones Lineales 11
7.1 Condiciones de la solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8 Métodos de resolución de ecuaciones 11
8.1 Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2 Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.3 LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.4 Factorización QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
Curso de métodos numéricos — 2/145
1. Introducción
1.1 Conceptos generales
Para comenzar con el curso de Métodos numéricos es necesario tener ciertos conceptos precios.
1.1.1 Cifras significativas
Representas el número de dı́gitos a utilizar para representar una cantidad.
1.1.2 Precisión
Número de cifras significativas a usar en un número o cantidad.
1.1.3 Exactitud
Acercamiento al valor real
Cantidad Precisión Exactitud
π = 3.15 NO NO
π = 3.14 NO SO
π = 3.151692 SI NO
π = 3.141593 SI SI
1.1.4 Convergencia
Propiedad de una cantidad a llegar a un valor finito.
1.1.5 Estabilidad
Propiedad de una cantidad que no posee cambios bruscos.
Si una cantidad posee tanto las propiedades de convergencia y estabilidad se dice que es robusto.
1.1.6 Definición de lı́mite
∀ε > 0∃δ > 0 −→ |x − x0 | < δ ⇒ | f (x) − I| < ε (1)
2. Teorema de Taylor
El teorma de Taylor establece que si una función es continua y derivable en el intervalo [a,b] esta puede ser representada de la
forma
f (x) = Pn (x) + Rn (x) (2)
Teniendo el Polinomio de Taylor
n
f k (x0 )(x − xo )k
Pn (x) = ∑ (3)
k=0 k!
f (ε)(x − x0 )n+1
Rn (x) = (4)
(n + 1)!
Curso de métodos numéricos — 5/145
2.1 Ejemplo
Ejercicio 2.1
Represente f(x) como una serie de Taylor con sus cinco primeros términos
Solución
f (x) = ex
n=5
f (x) = ex
f (0) (x) = ex
f (1) (x) = ex
f (2) (x) = ex
..
.
f (n) (x) = ex
5
f (k) (x − x0 )k
P5 (x) = ∑
k=0 k!
f (0) (x − x0 )0f (1) (x − x0 )1 f (2) (x − x0 )2 f (3) (x − x0 )3 f (4) (x − x0 )4 f (5) (x − x0 )5
= + + + + +
0! 1! 2! 3! 4! 5!
x2 x3 x4 x5
= 1+x+ + + 0+
2 6 24 120
f (x) = ex = Pn (x) + Rn (x)
x2 x3 x4 x5 ec (x)6
= 1+x+ + + 0+ +
2 6 24 120 | {z 6! }
Ejercicio 2.2
Represente f(x) como una serie de Taylor con sus cinco primeros términos
Solución
2
f (x) = ex
n=5
2
f (x) = ex
2
f (0) (0)(x) = ex = 1
2
f (1) (0) = 2xex = 0
2 2
f (2) (0) = 2ex + 4x2 ex = 2
2 2
f (3) (0) = 12ex + 8x3 ex = 0
2 2 2 2
f (4 (0) = 12ex + 24x2 ex + 24x3 ex + 16x4 ex = 12
f (5) (0) = 0
x4
P5 (x) = 1 + x2 + + Rn (x)
2
Siendo el último término el residuo o error cometido
Curso de métodos numéricos — 6/145
3. Orden de aproximación
Se denota como O(hn ) Teniendo el polinomio de Taylor definido en (2)
Si existe Pn (h) que aproxima a f(n) existe M > 0, n ∈ N tal que
| f (n) − p(n)|
>M
|hn |
| f (n) − p(n)| > M|hn | (5)
n n
M|h | = O(h )
| f (n) − p(n)| > O(hn )
3.1 Ejemplo
Ejercicio 3.1
Represente f(x) como una serie de Taylor con sus cinco primeros términos
Solución
f(x)=ex
eε h2
P1 = 1 + h +
2!
= 1 + h + +Oh2
h2 eε h3
P2 = 1 + h + +
2 6
h2
= 1+h+ + Oh3
2
h2 h3 eε h4
P3 = 1 + h + + +
2 6 24
h2 h3
= 1+h+ + + Oh4
2 6
h2 h3 h4 eε h5
P4 = 1 + h + + + +
2 6 24 120
h2 h3 h4
= 1+h+ + + + Oh5
2 6 24
h2 h3 h4 h5 eε h6
P5 = 1 + h + + + + +
2 6 24 120 720
h2 h3 h4 h5
= 1+h+ + + + + Oh6
2 6 24 120
3.2 Propiedades
• O(hn ) ± O(hn ) = O(hn )
Ejercicio 3.2
Solución
h2 h3
eh = 1 + h + + + O(h4 )
2 6
h2 h4
cos(h) = 1 − + + O(h6 )
2 24
h2 h3 h2 h4
eh + cos(h) = 1 + h + + + O(h4 ) + 1 − + + O(h6 )
2 6 2 24
Curso de métodos numéricos — 7/145
h3
eh + cos(h) = 2 + h + + O(h4 )
6
h2 h3 h2 h4
e cos(h) = 1 + h + + + O(h4 )
h 1− + + O(h6 )
2 6 2 24
h 2 h3 h 2 h 3 h4 h5 h2 h4 h5 h6 h7 h4
eh cos(h) = 1+h+ + +O(h4 )−+ −+ −+ −+ −+ O(h4 )++ ++ ++ ++ ++ O(h4 )+
2! 3! 2! 3! 2!2! 2!3! 2! 4! 5! 2!4! 3!4! 4!
6 7 h2 6 h3 4 4 6
O(h ) + hO(h ) + + O(h ) + + O(h ) + O(h )O(h )
2! 3!
h3 4
1 + h − + + O(h )
3!
4. Error
4.0.1 Error de redondeo
Error producido por aproximación de decimales a su inmediato superior o inferior
4.1 Ejemplo
x=1.70
xb1 = 1.90
xb2 = 1.65
Ea1 = |1.70 − 1.90| = 0.2
Ea2 = |1.70 − 1.65| = 0.05
Er1 = 0.1176
Er2 = 0.0294
p = pb ± δ p
(6)
q = qb ± δ q
p + q = pb + qb ± δ p ± δ q
Teniendo el máximo error cuando δ p + δ q y el mı́nimo cuando −δ p − δ q
Asimismo para la resta
p − q = pb − qb ± δ p ± δ q
Teniendo el máximo error cuando δ p + δ q y el mı́nimo cuando −δ p − δ q
Para la multiplicación tendremos
Curso de métodos numéricos — 8/145
pq = ( pb ± δ p) · (b
q ± δ q)
pq = pbqb ± pbδ q ± qbδ q ± δ pδ q
pq − pbqb pbδ q qbδ p δ pδ q
=± ± ±
pq pq pq pq
pq − pbqb pbδ q qbδ p δ pδ q
≤ + +
pq pq pq pq
pq − pbqb pb δ q qb δ p δ p δ q pb qb
+ · ; ≈ ≈ 1; δ p · δ q ≈ 0
≤ + +
pq p q q p p q p q p q
pq − pbqb
pq ≤ εq + εq
Por lo que la propagación del error en la mutiplicación será la suma de los errores relativos; de esta forma se comprueba
también que el error para las potencias es
pn = nε p
p pb ± δ p
=
q qb ± δ q
q + pδ q = q pb + qδ p
pb
pbq − q pb qδ p pδ 1
= −
pq pq pq
q − q pb
pb
qb q qδ p pδ 1
=
pq pq pq
+
qb q
p pb
−
q qb
p = ε p + εq
q
5.2 Ejemplos
Ejercicio 5.1 En un experimento se introducen 2 lı́quidos en un tanque y se quiere hallar la masa del lı́quido. Se conoce M1
(masa del tanque 1 mas contenido) = 540 ± 10g m1 = 72 ± 1g M2 = 940 ± 20g m2 = 97 ± 1g.
Solución
L1 = 540 − 72 ± 11 = 468 ± 11
L2 = 940 − 97 ± 21 = 843 ± 21
LT = 468 ± 11 + 843 ± 21 = 1311 ± 32
Ejercicio 5.2 Para medir la altura de un árbol L, se mide la longitud de su sombra L1 la altura de un objeto de referencia L2 y
la longitud de su sombra L3 las medidas tomadas son:.
L1 = 200 ± 2cm
L2 = 100 ± 0.4cm
L3 = 10.3 ± 0.2cm Solución
Curso de métodos numéricos — 9/145
2
εL1 = = 0.010
200
0.4
εL2 = = 0.0004
100
0.2
εL3 = = 0.019
10.3
L1 ∗ L2 200 ∗ 100
L= = = 1941.47
L3 10.3
εT = 0.010 + 0.0004 + 0.019 = 0.033
ET = εT ∗ L = 0.033 ∗ 1941.75 = 64.077
L = 1947.75 ± 64.077
a+b
c= (7)
2
Y ahora tendremos las siguientes condiciones
Este proceso se repetirá iterativamente con c1 , c2 , c3 , . . . cn hasta que se llegue a una buena aproximación de la raı́z de acuerdo
al margen de error que se establezca con los criterios de parada siguientes.
f 0 (x0 )(x − x0 )
f (x) = f (x0 ) + + O(h2 ) f (x) = 0 0 = f (x0 ) + f 0 (x0 )(x − x0 )
1!
Despejando la ecuación obtenemos
f (x0 )
x = x0 − (9)
f 0 (x0 )
La cual será la fórmula recurrente de Newton para hallar eventualmente una raı́z
6.2.2 Método gráfico
Consiste en tomar un punto inicial y evaluar su recta tangente y el cruce de esta or el eje de las x obteniendo un nuevo punto en
el cuál se repetirá el mismo proceso hasta encontrar la raı́z deseada.
Una vez escogido el punto x0 y su imagen f (x0 ) se define el punto x1 ,0 el cual será el punto de corte de la recta tangente a
la curva en el punto (x0 , f (x0 )) con estos dos puntos se puede encontrar la pendiente de la forma:
0 − f (x0 )
m= (10)
x1 − x0
Al mismo tiempo sabemos que
m = f 0 (x0 ) (11)
Tomando (10) y (11) podemos se obtiene
0 − f (x0 )
f 0 (x0 ) =
x1 − x0
Y despejando x1 tendremos
f (x0 )
x1 = x0 − (12)
f 0 (x0 )
Obteniendo la fórmula de Newton que se repetirá hasta encontrar la raı́z
f (pk ) − f (pk−1 )
m= (13)
xk − xk−1
0 − f (pk )
m= (14)
xk+1 − xk
a11 a12 a13 ... a1n x1 b1
a21
a22 a23 ... a2n x2 b2
a31
a32 a33 ... a3n
= x3 b3
(17)
.. .. .. .. .. . .
. .. ..
. . . .
an1 an2 an3 ... ann xn bn
Para los siguientes métodos podemos utilizar laa propiedad que establece que las filas de una matriz se puede cambiar por otra,
siendo este proceso justificado por una matriz de permutación P la cual será la identidad con sus filas intercambiadas.
8.1 Gauss
El método de Gauss se basa principalmente en reducir en reducir la matriz de coeficientes A a una matriz triangular superior,
teniendo unicamente ceros por debajo de la diagonal
0
a11 a012 a013 . . . a01n
0
x1 b1
0 a0 a0 . . . a 0 x
2 b0
22 23 2n 20
0 0 x
0
0 a33 . . . a 3n 3 = b3
(19)
.. .. .. . . .
. .
. ..
. . . . . . .
0 0 0 ... a0nn xn b0n
8.2 Gauss-Jordan
El método de Gauss-Jordan tiene el mismo principio que el método de Gauss con la diferencia que también se trabajara tanto
con la matriz para hacerla triangular superior y luego seprocede a eliminar los elementos por encima de la diagonal teniendo ası́
una matriz diagonal con lo que la solución se obtendrá de una forma inmediata
Al igual que con Gauss procedemos a verificar que no existan ceros en la diagonal y de ser necesario cambiar las filas y
columnas de la matriz A y b con una matriz de permutación.
El siguiente paso es aplicar el algoritmo de Gauss como se muestra en (19) y una vez realizado este proceso aplicar el mismo
concepto para eliminar los elementos por encima de la diagonal obteniendo un nuevo sistema de la forma:
0
a11 00 0 . . . 00
0
x1 b1
0 a0 0 . . . 0 x2 b0
22 20
0 a033 . . .
0 0 x3 = b3 (20)
.. .. .. . . .
. .. ..
. . . . . . .
0 0 0 . . . a0nn xn b0n
8.3 LU
El método de factorización LU consiste basicamente en dividir a la matriz A en dos matrices L y U, la primera triangular
inferior y la segunda triangular superior y tendremos entonces el sistema:
a11 a12 a13 . . . a1n l11 0 0 ... 0 u11 u12 u13 . . . u1n
a21 a22 a23 . . . a2n l21 l22 ... 0
0 0 u22 u23 . . . u2n
a31 a32 a33 . . . a3n l31 l32 la33 . . . 0 0 0 u33 . . . u3n
= A = LU (22)
.. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
. . . . . . . . . . . . . . .
an1 an2 an3 ... ann ln1 ln2 ln3 ... lnn 0 0 0 ... unn
Esta es la factorización LU mas simple y uno de los métodos utilizados el mediante el algoritmo de Gauss para en donde
utilizaremos los elementos de la diagonal para transformar los elementos debajo de esta por medio de la resta de las filas de los
elementos a eliminar menos la fila de pivote multiplicado por un factor de multiplicación m dado por
m = amn /dmm
(23)
amn = amn − m ∗ dmm
siendo amn el elemento a eliminar y dmn el elemento de la diagonal qu nos ayudara a realizarlo. El factor m se guardará en la
matriz L en la posición del mismo elemento para el cual se intento eliminar.
Debido a que si existen ceros en la diagonal se deben intercambiar las filas tendremos la nueva igualdad
PA = LU (24)
Curso de métodos numéricos — 13/145
donde P sera una matriz de permutación compuesta por una matriz identidad la cual tendrá las filas cambiadas de la misma
manera que la matriz A sinceros en la diagonal.
Una vez obtenida las matrices L y U y sea el sistema (115 ) tendremos los sistemas
Ly = b0
(25)
Ux = y
8.4 Factorización QR
Introducción
Tengase el sistema de ecuaciones:
El método de resolución por factorización QR consiste en dividir a la matriz de coeficientes A en dos matrices de la forma
A = QR (26)
a11 a12 a13 q11 q12 q13 r11 r12 r13
a21 a22 a23 = q21 q22 q23 0 r22 r23
a31 a32 a33 q31 q32 q33 0 0 r33
Donde Q es una matriz ortogonormal que cumple con la caracterı́stica
QRx = b
Rx = QT b
(28)
Rx = c
Siendo
a11 a12 a13
V1 = a21 ;V2 = a22 ;V3 = a23
a31 a32 a33
V1
u1 =
||V1 ||
u02 = V2 − (u1 ·V2 ) · u1
u02
u2 = (29)
||u02 ||
u03 = V3 − (u2 ·V3 ) · u2 − (u1 ·V3 ) · u1
u03
u3 =
||u03 ||
Obteniendo la matriz Q
Q = (u1 u2 u3 ) (30)
Para obtener la matriz R tomamos (26) y multiplicamos por QT a ambos lados tendremos
QT M = QT QR
(31)
R = QT M
Ejemplo
Ejercicio 8.1
Solución Los cálculos se realizarán mediante el programa MATLAB Sea el sistema de ecuaciones
3x + 2y + z = 1
5x + 3y + 4z = 2
x+y−z = 1
1 1 0.1690 0.3714
0.2760
u2 = −0.3450
0.8971
1 1 0.2760 1 0.5071 −0.3333
u03 = 4 − 0.2760 −0.3450 0.8971 4 −0.3450 − 0.5071 0.8452
0.1690 4 0.8452 = 0.1667
−1 −1 0.8971 −1 0.1690 0.1667
Curso de métodos numéricos — 15/145
−0.8165
u3 = 0.4082
0.4082
Obteniendo por(30)
0.5071 0.2760 −0.8165
Q = 0.8452 −0.3450 0.4082
0.1690 0.8971 0.4082
Utilizamos (31) obteniendo
0.5071 0.8452 0.1690 3 2 1 5.9161 3.8187 3.7187
R = QT · A = 0.2760 −0.3450 0.8971 · 5 3 4 = 0.0000 0.4140 −2.0012
−0.8165 0.4082 0.4082 1 1 −1 0.0000 0.0000 0.4082
x 1.0000
y = 6.0005
z −4.0001
Por medio de una resolución de un sistema triangular se tiene el sistema iterativo siguiente
Tomando un vector solución x inicial se utiliza (33) donde tendremos un sistema a resolver encontrando x(x+1) el cuál será
nuevamente utilizado para el esquema iterativo; hasta que exista una diferencia pequeña entre cada elemento de x(i+1) y xi)
obteniendo la solución final.
Programa Una vez entendida la metodologı́a para utilizar el método de Gauss Seidel el algoritmo para realizarlo se basa en
ciclos repetitivos for y while de la siguiente manera:
Ejemplo Usaremos una matriz A y b del sistema de ecuaciones Ax=b para encontrar su solución a continuación.
0
a012 a013 a01n
a11 a12 a13 ... a1n a11 ... 11 0 0 ... 0
a21 a22 a23 ... a2n a0 a022 a023 ... a02n 0 12 0 ... 0
21
0 a032 a033 a03n
a31
a32 a33 ... a3n
a31 ... =0
0 13 ... 0 (34)
.. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
. . . . . . . . . . . . . . .
an1 an2 an3 ... ann a0n1 a0n2 a0n3 ... a0nn 0 0 0 ... 1n
A = USV T (36)
Donde A es la matriz diagonal formada por los valores singulares σ definidos por
p
σk = λk (37)
vn
vn = (38)
||vn ||
1
un = A ∗ vn (39)
σn
Para utilizar la ecuación(59) se deberá omitir los vectores nulos de las matrices o aquellos correspondientes a σ = 0 ya que
resultarı́an en vectores de valores infinitos. Una vez omitidos se deberá acomodar a las matrices para que la multiplicación sea
posible y comprobar esta descomposición que tiene aplicaciones útiles en diversas áreas.
Modificando únicamente los elementos de la diagonal, al ser el resto de los elementos fuera de la diagonal iguales a cero.
La solución a un sistema de ecuaciones se da por:
x = A∗−1 b (42)
Esp(A) ⊆ K. (43)
Las normas mas utilizadas serán kAk1 , kAk2 , kAk∞ , definidas como
( )
m
, kAk1 = max ∑ |ai j | , A = (ai j )εMmxn (K) (46)
i≤ j≤n
i=1
p
, kAk2 = ρ(A+ A) = µmax (47)
( )
n
, kAk∞ = max ∑ |ai j | , A = (ai j ) (48)
i≤i≤m
j=1
Una vez definida estos términos la condición de una matriz se dará por:
En caso que sea una matriz simétrica o hermı́tica debido a (49) se tendrá kAk2 como
|λmax |
cond2 (A) = kAkkA−1 k = ρ(A)ρ(A−1 ) = (51)
|λmin ||
11. Interpolación
Dados puntos dentro de un plano llamese interpolación a la unión de estos mediante una curva suave que los conecte de una
manera en la cuál se pueda estimar el comportamiento del sistema o fenómeno que genera estos datos. Dados N+1 datos se
puede trazar un polinomio de grado N o menor mediante diferentes métodos que estudiaremos a continuación.
N
∏ (x − x j )
j=0, j6=k
LN,k (x) = N
(54)
∏ (xk − x j )
j=0, j6=k
Siendo
ai = f [x0 , x1 , . . . , xi ]; i =, 1, 2, . . . , n (57)
Las condiciones para determinar los coeficientes de cada curva Spline de grado uno serán:
Curso de métodos numéricos — 21/145
• f (xi ) = y(xi )
• f (xi+1 ) = y(xi+1 )
Obteniendo cada curva y al unirlas obtener una interpolación completa de Spline grado 1.
11.3.2 Spline de grado 2
Para que una curva entre tres puntos sea suave debe de cumplir de cumplir las siguientes condiciones para las siguientes dos
curvas.
S1 (x) = a1 x2 + a2 x + a3 ;
x0 < x < x1
S
S2 (x) = b1 x2 + b2 x + b3 ; x1 < x < x2
• S1 (x1 ) = S2 (x1 )
• S1 (x1 ) = f (x1 )
• S1 (x0 ) = f (x0 )
• S2 (x2 ) = f (x2 )
Se puede observar que tenemos cuatro incógnitas a encontrar por lo que necesitaremos cuatro ecuaciones las cuales serán
obtenidas de las siguientes condiciones :
Para el intervalo [x0 , x1 ]
• Si (xi ) = f (xi )
• Si (xi+1 ) = f (xi+1 )
Concatenando estas curvas de Spline grado tres a lo largo de todos los datos dados, podemos construir una interpolación de
spline cúbicos.
Curso de métodos numéricos — 22/145
A = USV T (59)
Donde A es la matriz diagonal formada por los valores singulares σ definidos por
p
σk = λk (60)
vn
vn = (61)
||vn ||
Finalmente la matriz U tendrá como columnas um al producto dado por:
1
un = A ∗ vn (62)
σn
Para utilizar la ecuación(59) se deberá omitir los vectores nulos de las matrices o aquellos correspondientes a σ = 0 ya que
resultarı́an en vectores de valores infinitos. Una vez omitidos se deberá acomodar a las matrices para que la multiplicación sea
posible y comprobar esta descomposición que tiene aplicaciones útiles en diversas áreas.
12.2 Programa
Vectores y Valores Propios
Como se vio en la sección anterior la descomposición en valores singulares demanda encontrar los vectores y valores propios
de una matriz AT ∗ A, la cual es por definición cuadrada, lo cual hace posible este proceso, la función [a,b]eig(A) de Matlab
realiza este cálculo devolviendo un vector con cada valor propio y además una matriz conformada por cada vector propio
generado correspondientemente, sin embargo a continuación se redactará un programa [a,b]=EingenValues(A) que realizará el
mismo proceso.
Para comenzar comenzaremos por utiizar la función syms con la variable l para poder utilizar una matriz simbólica y restar
el valor de lambda en la diagonal, encontrando el determinante de esta y por lo tanto el polinomio caractéristico y gracias a
solve() los valores de lambda de la matriz los cuales ordenaremos de mayor a menor lo cual será necesario para la matriz de
valores singulares posteriormente.
Una vez determinados los valores propios determinaremos los vectores propios y los uniremos en una matriz para ası́ poder
utilizarla posteriormente para lo cual se ingresará a un ciclo for el cual realizará el mismo cálculo para cada valor propio,al ser
la matriz que usamos una matriz simbólica podemos substituir cada valor propio gracias a subs(), obteniendo la nueva matriz ,
con rref() se podrá reducir la matriz y null() encontrara los valores del vector propio convirtiéndolo con double() a un vector
Curso de métodos numéricos — 23/145
de formato double, en el caso que el valor propio genere dos vectores propios estos se mostrara cono una matriz constituida por
estos dos vectores, la funcion horzcat()uniremos estos vectores a la matriz M que retornaremos como la matriz de vectores
propios.
12.4 Ejemplo
Utilizaremos el programa con una matriz cuadrada 3x3 y una matriz 2x3.
Figure 13. Determinación de los vectores y valores propios de una matriz 3x3
La forma de reducir los valores propios de esta matriz será factorizandola para poder visualizar la matriz diagonal sabiendo que
la matriz A será.
A = UMxN SNxN (VNxP )T (63)
Curso de métodos numéricos — 26/145
Donde S es una matriz diagonal con los valores propios de la matriz, al tomar en cuenta menos valores propios reduciendo
el tamaño de la matriz y al operar tomar en cuenta menos numeros de columnas en la matriz U y menos filas en la matriz V T
para poder realizar la multiplicación de matrices se obtendrá una matriz A comprimida la cuál nos dará una imagen con un
tamaño menor.
13.2 Algoritmo
Utilizando el programa MATLAB podemos almacenr una imagen como una matriz o una supermatriz y poder realizar el
proceso de factorización SVD y disminución de valores singulares para poder comprimir una imagen.
Si observamos por ejemplo la imagen original con la tercera imagen comprimida, que posee una resolución visible
comparemos el tamaño que estas ocupan
Con lo que podemos comprobar que al disminuir el tamaño de la imagen también su tamaño en la computadora disminuya.
Curso de métodos numéricos — 28/145
• FLAC (.flac)
• AU (.au),MP3 (.mp3)
• MPEG-4 AAC (.m4a, .mp4)
En el cual nos dará un vector unidimensional con los valores de nivel de sonido y un vector bidimensional si es un archivo de
audio estereo y estos datos pueden ser graficados en matlab de la forma:
• FLAC (.flac)
• MPEG-4 AAC (.m4a, .mp4)
Además de esto se puede observar la diferencia entre la señal original y comprimida observando las gráficas de las señales y
observando un intervalo ampliado para notar una diferencia mayor.
14.2.2 Ejemplo
Para probar la compresión de imágenes se puede utilizar el archivo ”Frontieres” para poder realizar una compresión y se
observará los resultados.
Curso de métodos numéricos — 30/145
Observamos entonces que el archivo comprimido tendrá la mitad del tamaño original lo cual es lógico ya que solamente
hemos tomado la mitad de datos en la compresión., sin modificar notablemente la calidad del sonido al reproducir el nuevo
archivo.
Una señal de audio entonces tendrá al analizar con la transformada de Fourier el siguiente resultado.
Mientras las frecuencias son más altas el resultado en el análisis de Fourier muestra que sus valores van disminuyendo hasta
tender a cero, por lo que esto será la base para la compresión de audio; al eliminar las frecuencias casi nulas y volver al dominio
del tiempo con la transformada inversa de Fourier se obtiene una señal con menos datos de muestreo pero con una buena calidad
de audio.
Las funciones y=fft(x) y x=ifft(y) nos darán la tansformada rápida de Fourier y su transformada inversa para utilizarlos en el
programa Matlab en el código siguiente.
14.3.2 Ejemplo
Usaremos el archivo original del ejemplo anterior para comprimirlo por medio de la transformada de fourier obteniendo
Obteniendo además las gráficas de las señales originales y comprimidas en el dominio del tiempo y de la frecuencia de los dos
Al tomarse la tercera parte del vector de la frecuencia y su transformada inversa también tendrá un tercio del tamaño original se
puede notar que el archivo de audio tendrá un tercio del tamaño igualmente, obteniendo una compresión de sonido exitosa.
Curso de métodos numéricos — 34/145
f 0 (x0 )(x − x0 + δ ) f 00 (x0 )(x − x0 + δ )2 f (3) (x0 )(x − x0 + δ )3 f (4) (x0 )(x − x0 + δ )4
f (x+δ ) = f (x0 )+ + + + +Err(δ ) (64)
1! 2! 3! 4!
Donde Err(δ ) es el error cometido en la aproximación de la derivada en un punto, si se sustituye δ con un tamaño de paso h y
asumiendo que por su aproximación x es muy cercana a x0 se puede tener
Con esto se puede tomar por ejemplo reemplazando δ como h como tamaño de paso h se puede deducir la fórmula de la
derivada como
f 0 (x)(h) f 00 (x)(h)2
f (x + h) = f (x) + +
1! 2!
0 f (x + h) − f (x) f 00 (x)(h)
f (x) = − (66)
h 2
f (x + h) − f (x)
f 0 (x) = + O(h)
h
Si el paso h es muy pequeño y tiene a ser cero con la definición de lı́mite se obtiene
f (x + h) − f (x)
f 0 (x) = lim + O(h) (67)
h→ h
obteniendo ası́ la definición de la derivada, si se toma diferentes valores de paso como h,2h,3h,-h, etc con varias expansiones de
Taylor gracias a (65) se pueden obtener las diferentes derivadas en función de los pasos tomados, tomando esto en consideración
se redactarán las siguientes fórmulas de derivación numérica
Centradas (Orden O(h))
Las fórmulas de integración numérica se basan en la representación gráfica de la integral y esto es el área bajo la curva y de esta
manera poder encontrar el valor de la integral definida de una forma numérica.
Para poder desarrollar los diferentes métodos de integración se recurrirá a las antes mostradas fórmulas de interpolación y
aplicando las propiedades de integrales como se mostrará a continuación por interpolación de Lagrange como se conoce el
polinomio interpolador está definido como
n
Pn (x) = ∑ f (xk )Lk (x), xε[a, b]
k=0
n x−xj
Lk (x) = ∏
j=0, j6=k k − x j
x
Curso de métodos numéricos — 36/145
wk = ba Lk (x)dx
Donde los términos wk se denominan pesos y servirán para determinar el valor de la integral; a continuación se redactarán los
métodos de integración interpoltoria más comunes.
Obteniendo el método del rectángulo que se puede representar graficamente como aproximar el área trazando un rectángulo y
multiplicar la base de este por su altura.
Donde cada uno toma un numero de nodos equiespaciados y mientras mas puntos tome el metodo mas exacta sera la respuesta de
la integracion deseada, se sabe ademas que si el intervalo de integración es menor cualquiera de los metodos antes mencionados
tendra una integral mas exacta; por lo que la regla del trapecio podria ser mas exacta que la regla de Simpson si su intervalo es
menor, sin embargo como no se puede cambiar el intervalo de integracion porque se buscaria algo completamente diferente a lo
deseado originalmente se decidira dividira al intervalo de integracion en subintervalos mas pequenos de igual distancia cada
uno de ellos, distancia que vendra dada por :
b−a
h= (75)
k
Donde h sera la distancia del intervalo y k sera el numero de intervalos que se tomaran
k = 2m ; m = 0, 1, 2, 3, 4, . . . (76)
De esta manera se puede obtener varias aproximaciones de los metodos mencionados anteriormente utilizando la misma formula
para todos ellos, la aplicacion de estas formulas recursivas nos permite realizar un mayor numero de operaciones mas simples
en lugar de operaciones mas complejas.
Tendremos entonces gracias a (74) y a un analisis de sus errores respectivos la relacion
Z b
4T ( f , h) − T ( f , 2h)
f (x)dx = (77)
a 3
Que resulta sel la regla de Simpson y ademas
Z b
16S( f , h) − S( f , 2h)
f (x)dx = (78)
a 15
La cual resulta ser la regla de Boole; se puede observar que los metodos mas precisos y complejos se pueden representar como
una combinacion lineal de metodos massimples y para el caso de los metodos de (74) se denominara al metodo del trapecio
como R(J,0), el metodo de Simpson como R(J,1) y el metodo de Boole como M(J,2), siendo J el numero de intervalos tomados
para el metodo definido como m por (86 ) de esta forma la relacion entre meodos queda establecida por:
4K R(J, K − 1) − R(J − 1, K − 1)
R(J, K) = (79)
4K − 1
Y el calculo de estos métodos se puede realizar como los muestra la figura 40
Curso de métodos numéricos — 40/145
16.7.2 Programa
Para poder realizar el programa del método de Romberg se necesitara la integración del trapecio por lo que utilizaremos la sub
función trapint(a,b,f,m) que recibirá el intervalo de integración, la función a integrar y el numero de sub intervalos a utilizar.
Una vez utilizado esto podemos enviar los datos necesarios para obtener las diferentes integraciones del método del trapecio y
16.7.3 Ejemplos
Probaremos entonces la función del método de integración de Romberg a las siguientes funciones y se comprobaran con su
integral exacta en el intervalo [0.1]
f (x) = sin(x)
Curso de métodos numéricos — 41/145
f (x) = x2 − 3x + 10
f (x) = ex
Se basa principalmente en tratar al metodo de Simpson mencionado en (74) de una manera mas eficaz, dividiendo al intervalo
[a,b] en dos intervalos [a,c] y [c,b] y comparando su tolerancia dada por
Siendo
h x0 + xn
Ix0 ,xn = ( f (x0 ) + 4 f ( ) + f (xn ))
3 2
xn − x0
h=
2 (81)
Is = Ia,c + Ic,b
a+b
c=
2
Si la tolerancia resultante de este proceso es menor a la permitida esta sera la respuesta final de la integral, de lo contrario se
aplicara el mismo concepto hacia los nuevos dos intervalos reduciendo la tolerancia a la mitad para estos intervalos hasta que el
método converja a una integral con la tolerancia deseada.
Curso de métodos numéricos — 43/145
16.8.2 Ejemplo
Z 5π/8
cos(x4 )dx
π/8
tol = 0.01
5π/8 − π/8
cos(pi/8)4 + 4cos(3pi/8)4 + cos(5pi/8)4 ≈ −0.2766
I=
6
3π/8 − π/8
cos(pi/8)4 + 4cos(2pi/8)4 + cos(5pi/8)4 ≈ 0.5715
I1 =
6
5π/8 − 3π/8
cos(3pi/8)4 + 4cos(4pi/8)4 + cos(5pi/8)4 ≈ 0.3812
I2 =
6
Is = 0.5715 + 0.3812 = 0.9526
|Is − I| = 1.2292 > 0.01
Nuevo Intervalo [π/8, 3π/8]
I = 0.5715
I1 = 0.3861
I2 = 0.1947
Is = 0.5808
|Is − I| = 0.0094
Intervalo [3π/, 5π/8]
I = 0.3812
I1 = −0.1969
I2 = −0.2272
Is = −0.4240
|Is − I| = 0.8052
Nuevo Intervalo [3π/8, 4π/8]
I = 0.5715
I1 = −0.1969
I2 = −0.1568
Is = 0.04240
|Is − I| = −0.0412
Intervalo [4π/8, 5π/8]
I = −0.2272
I1 = 0.0136
I2 = 0.0646
Is = −0.0781
|Is − I| = 0.0353
R 5π/8
Siendo el resultado final la suma de los integrados con tolerancia aceptada displaystyle π/8 cos(x4 )dx ≈= 0.5808 − 0.1240 =
0.0032 + 0.0353 = 0.4721
Curso de métodos numéricos — 44/145
(x − x1 )( f x2 ) − f (x1 ))
y = f (x1 ) + (82)
x2 − x1
Y su area sera
2x2 2x1
A= f (x1 ) − f (x2 ) (83)
x2 − x1 x2 − x1
Ahora veamos la aproximación de la integral
Z 1
f (x)dx ≈ w1 f (x1 ) + w2 f (x2 ) (84)
−1
Para encontrar los pesos w y los coeficientes x de la integral del intervalo [-1 1] nos valdremos de cuatro funciones creando un
sistema de cuatro ecuaciones y cuatro incógnitas.
Z 1
f (x) = 1; 1dx = 2 = w1 + w2 (85)
−1
Z 1
f (x) = 1x; xdx = 0 = w1 x1 + w2 x2 (86)
−1
Z 1
f (x) = x2 ; x2 dx = 2/3 = w1 x12 + w2 x22 (87)
−1
Z 1
f (x) = x3 ; x3 dx = 0 = w1 x13 + w2 x23 (88)
−1
Curso de métodos numéricos — 45/145
w1 = w2 = 1
√
x1 = 1/ 3 (89)
√
x2 = −1/ 3
encontrando los pesos y nodos para reemplazar en (84) y encontrar el valor de la integral; para N nodos la interacion de
Gauss-Legendre tiene una exactitud de 2N-1 siendo la formula final
N
GN ( f ) = ∑ WN,k f (xN,k ) (90)
k=1
En general para N nodos la formula de Gauss Legendre viene dada por [1]
Z b N
b−a a+b b−a
f (x)dx = = ∑ wN,k f + v (91)
a 2 k=1 2 2 N,k
16.9.1 Programa
El algoritmo que redacta el procedimiento anterior tiene el calculo de la sumatoria del producto de pesos y evaluaciones de nodos al ingresar
como datos los limites de la integral, su función de tipo simbólica y en vectores los datos de nodos y pesos redactados en la tabla (47)
16.9.2 Ejercicios
Comparemos ahora con las funciones descritas anteriormente
f (x) = x2 − 3x + 10 (93)
f (x) = ex (94)
y0 = f (t, y) (95)
Con una división del intervalo [a,b] en los cuales se quiere encontrar la solución a la ecuación diferencial y dividirlo en M segmentos
equidistantes, con un tamaño de paso h definiendose la siguiente manera
b−a
h= (96)
M
Los métodos para la resolución de ecuaciones diferenciales se basan encontrar los valores de la función solución a partir de un valor inicial
dado como dato obteniendo ası́
y(t0 ) = y0 (97)
Gracias a este paso se comenzará a calcular los valores de la función, imagen de cada valor de tiempo dado como
tk = a + kh, h = 0, 1, . . . , M (98)
y00 (c)(t − t0 )2
y(t) = y(t0 ) + y0 (t0 )(t − t0 ) + ; y0 (t1 ) = f (t0 , y(t0 )), h = t1 − t0
2
y00 (c1 )h2
y(t1 ) = y(t0 ) + h f (t0 , y(t0 )) +
2
Y al considerar un paso h suficientemente pequeño, se puede despreciar el último término obteniendo finalmente la fórmula del cálculo de la
solución mediante el método de Euler
Para resolver le lado derecho de la ecuación que consta de una integral se usara la regla del trapecio con incremento h = (t1 − t0 ) obteniendo
h
y(t1 ) = y(t0 ) + ( f (t0 , y(t0 )) + f (t1 , y(t1 ))))
2
Sin embargo para poder realizar esta operación se necesitará del valor de y1 el cual es exactamente el que deseamos encontrar, par resolver
este problema se encontrará un valor aproximado de este por medio del método de Euler el cual es ta definido en ( 99 )obteniendo finalmente
la fórmula
h
yk+1 = yk + ( f (tk , y(tk )) + yk + h f (tk , yk )) (101)
2
El cual es el esquema iterativo para ası́ poder encontrar los valores próximos de la función solución
N
y( j) (tk ) j−1
y(tk + h) = y)tk ) + h ∑ h (102)
j=1 j!
Curso de métodos numéricos — 48/145
f 0 (t) = f
f 00 (t) = ft + fy f
f (3) = ftt + 2 fty f + fyy f 2 + fy ( ft + fy f )
(103)
f (4) = ( fttt + 3 ftty f ) + 3 ftyy f 2 + fyyy f 3 ) + fy ( ftt + 2 fty f + fyy f 2 ) + 3( ft + fy f )( fty + fyy f )) + fy2 ( ft + fy f )
!!!!
0 f 00 (yk ) f (3) (yk ) f (4) (yk )
yk+1 = yk + h f (yk ) + h +h +h
2 6 24
Hallando ası́ el siguiente punto de la función solución a la ecuación diferencial, al realizar este proceso para todos los puntos desde hasta b
con un paso h se encontrará los puntos correspondientes a la imagen de la función solución
yk+1 = yk + w1 k1 + w2 k2 + w3 k3 + w4 k4
k1 = h f (tk , yk )
k2 = h f (tk + a1 h, yk + b1 k1 )
(104)
k3 = h f (tk + a2 h, yk + b2 k1 + b3 k2 )
k4 = h f (tk + a3 h, yk + b4 k1 + b5 k2 + b6 k3 )
Con la resolución del sistema de ecuaciones que se logra al igualar los coeficientes con la serie de Taylor el método de Runge Kutta se basa
en el siguiente esquema
f 1 = f (tk , yk )
h h
f 2 = f tk + , yk + f1
2 2
h h
f 3 = f tk + , yk + f2 (105)
2 2
f 4 = f (tk + h, yk + h f3 )
h( f1 + 2 f2 + 2 f3 + f4 )
yk+1 = yk +
6
Hallando ası́ el siguiente punto de la función solución a la ecuación diferencial, al realizar este proceso para todos los puntos desde hasta b
con un paso h se encontrará los puntos correspondientes a la imagen de la función solución
18. Ejercicios
18.1 Método para el cálculo de raı́ces
Ejercicio 18.1
Demuestre a partir de la fórmula de Newton la fórmula de recursión
2P + A/Pk2 − 1
Pk = k−1 ; k = 1, 2, . . .
3
3
f (x) = x − A
Solución
Curso de métodos numéricos — 49/145
f 0 (x) = 3x2
(Pk−1 )3 − A
Pk = Pk−1 −
3(Pk−1 )2
3 − P3 − A
3Pk−1 k−1
=
3(Pk−1 )2
3 −A
2Pk−1
=
3(Pk−1 )2
(Pk−1 )2 (2Pk−1 − A/(Pk−1 )2 )
=
3(Pk−1 )2
(2Pk−1 − A/(Pk−1 )2 )
=
3
Ejercicio 18.2
Pruebe que
P f (Pk ) − Pk f (Pk−1 )
Pk+1 = k−1
f (Pk ) − f (Pk−1 )
Es algebraicamente equivalente al método de la secante
Solución
|b0 − a0 |
|b1 − a1 | =
2
|b1 − a1 | |b0 − a0 |
|b2 − a2 | = =
2 22
|b2 − a2 | |b0 − a0 |
|b3 − a3 | = =
2 23
..
.
|bn−1 − an−1 | |b0 − a0 |
|bn − an | = =
2 2n
Ejercicio 18.4
an + bn
Sea Cn = el punto medio en cada intervalo pruebe que
2
lim an = lim bn = lim cn
n→∞ n→∞ n→∞
Solución
b0 − a0
lim bn − an = lim ≈0
n→∞ n→∞ 2n
lim an = lim bn
n→∞ n→∞
an bn
lim cn = lim + lim
n→∞ n→∞ 2 n→∞ 2
1
lim cn = lim 2an
n→∞ 2 n→∞
lim cn = lim an = lim bn
n→∞ n→∞ n→∞
Curso de métodos numéricos — 50/145
Ejercicio 18.5
Realice la demostración geométrica para el cálculo de reı́ces por el método de Newton
Solución
Consiste en tomar un punto inicial y evaluar su recta tangente y el cruce de esta or el eje de las x obteniendo un nuevo punto en el cuál
se repetirá el mismo proceso hasta encontrar la raı́z deseada.
Una vez escogido el punto x0 y su imagen f (x0 ) se define el punto x1 ,0 el cual será el punto de corte de la recta tangente a la curva en el
punto (x0 , f (x0 )) con estos dos puntos se puede encontrar la pendiente de la forma:
0 − f (x0 )
m= (106)
x1 − x0
Al mismo tiempo sabemos que
m = f 0 (x0 ) (107)
Tomando (1) y (2) podemos se obtiene
0 − f (x0 )
f 0 (x0 ) =
x1 − x0
Y despejando x1 tendremos
f (x0 )
x1 = x0 − (108)
f 0 (x0 )
Ejercicio 18.6
Fórmula mejorada para la resolución de la ecuación de segundo grado. Supongamos que a 6= 0 y que b2 − 4ac > 0 y consideremos la
ecuación ax2 + bx + c = 0Sus raı́ces pueden hallarse mediante la conocida fórmula
√ √
−b + b2 − 4ac −b − b2 − 4ac
x1 = , x2 = (109)
2a 2a
Pruebe que estas raı́ces pueden calcularse ,mediante las fórmulas equivalentes
−2c −2c
x1 = √ , x2 = √ (110)
b + b2 − 4ac b − b2 − 4ac
Indicación racionalice el numerador de (109)
Solución
√
−b + b2 − 4ac
x1 =
2a
√ √
−b + b2 − 4ac −b − b2 − 4ac
= . √
2a −b − b2 − 4ac
b2 − b2 + 4ac
= √
2a(−b − b2 − 4ac)
−2c
= √
b + b2 − 4ac
Curso de métodos numéricos — 51/145
√
−b − b2 − 4ac
x2 =
2a
√ √
−b − b2 − 4ac −b + b2 − 4ac
= . √
2a −b + b2 − 4ac
b2 − b2 + 4ac
= √
2a(b − b2 − 4ac)
−2c
= √
b − b2 − 4ac
√
Observación Cuando |b| ≈ b2 − 4ac hay que proceder on cuiddo para evitar la pérdida de precisión por cancelación. Si b > 0, entonces
para evitar la pérdida de precisión por cancelación. Si b > 0, entonces x1 deberı́a ser evaluado con la fórmula (110) y x2 deberı́a ser calculado
con la fórmula (109);mientras que si Sib < 0 , entonces x1 deberı́a ser calculado usadno (109) y x2 deberı́a ser calculado usando (110)
Ejercicio 18.7
Use la fórmula adecuada para calcular x1 y x2 ,tal como se explica en el ejecicio 1, para hallar las raı́ces de las siguientes ecuaciones de
segundo grado.
a )x2 − 1000, 001x + 1 = 0
b )x2 − 10000, 0001x + 1 = 0
c )x2 − 100000, 00001x + 1 = 0
d )x2 − 1000000, 000001x + 1 = 0
Solución
a)
p
−(−1000.001) + (−1000.001)2 − 4(1)(1)
x1 =
2(1)
= 1000
−2(1)
x2 = p
−1000.001 − (−1000.001)2 − 4(1)(1)
x2 = 0.001
b)
p
−(−10000.0001) + (−10000.0001)2 − 4(1)(1)
x1 =
2(1)
= 10000
−2(1)
x2 = p
−10000.0001 − (−10000.0001)2 − 4(1)(1)
= 0.0001
c)
p
−(−100000.00001) + (−100000.00001)2 − 4(1)(1)
x1 =
2(1)
= 100000
−2(1)
x2 = p
−100000.00001 − (−100000.00001)2 − 4(1)(1)
= 0.00001
d)
p
−(−1000000.000001) + (−1000000.000001)2 − 4(1)(1)
x1 =
2(1)
= 1000000
−2(1)
x2 = p
−1000000.000001 − (−1000000.000001)2 − 4(1)(1)
= 0.000001
Curso de métodos numéricos — 52/145
Ejercicio 18.8
Use los resultados de los ejercicios 1 y 2 para construir un algoritmo y un programa en MATLAB √ que calcule las raı́ces de una ecuación
cuadrática en todas las situaciones posibles, incluyendo los casos problemáticos cuando |b| ≈ b2 − 4ac
Solución
Ejercicio 18.9
El perfil de un abrevadero de longitud L es un semicı́rculo de radio r (ver figura 55 ). Cuando esta lleno de agua hasta una distancia h del
borde superior, el volumen V de agua que contiene viene dado por
3 h 2 3 1/2
V = L 0.5πr arcsin − h(r − h )
r
Supuesto que L=10m, r=1m y V=12.4, determinar la profundidad del agua que hay en el abrevadero con una precision de 10−8
Solución
Para encontrar la profundidad del agua debemos conocer la altura h que existe para el volumen dado, por lo que reemplazamos los datos
dados en la ecuación que nos plantearemos a utilizar en Newton.
h
V = 10 0.5π13 arcsin − h(12 − h3 )1/2 − 12.4
1
Usando el programa para calcular Newton podemos obtener la respuesta.
Curso de métodos numéricos — 53/145
Finalmente la diferencia entre el radio del abrevadero y la altura encontrada será la profundidad P del pozo
P = 1 − 0.1652 = 0.8349
Ejercicio 18.10
Una partı́cula parte del reposo y se desliza a lo largo de un plano inclinado cuyo ángulo de inclinación θ cambia con velocidad constante,
dθ
= w < 0.
dt
Despuésde t segundos, la posición de la partı́cula vienen dada por
e − e−wt
wt
g
x(t) = − sin wt .
2w2 2
Supongamos que la partı́cula ha recorrido 1.7m en 1s. Determinar, con una precisión de 10−12 , la velocidad w a la que θ cambia.Emplear
en valor de g = −9.8m/s2
Solución
Para encontrar la velocidad w de la partı́cula al recorrer la distancia dada nos plantearemos la nueva ecuación y usaremos el programa de
Newton (ver figura 56) y encontraremos la raı́z
−9.8
= (sinh w − sin w) − 1.7
2w2
Ejercicio 18.11
L.L Vant-Hull(Solar Energy. 18.33 (1976)) dedujo la siguient ecuación de concentracion geométrica,C , en el estudio de la energı́a solar,
Ejercicio 18.12
En el estudio de una reserva de gas natural Collier et al. (Soc. Petr-Engs., 21 , 5 (1981)) obtuvieron la siguiente ecuación que gobierna
la relación entre la presión del gas y el volumen de reserva,
0.77295
y − 0.484696
x = y−1.5
0.515304
Curso de métodos numéricos — 55/145
donde b=1.5k/(1+k),x es el volumen normalizado, y es la presión y k=1.06315 , todos los valores estan adimensionalizados.
Una reserva es útil hasta que la presión cae a un valor que hace que la producción sea antieconómica. Determinar el valor de y donde la
curva solución intersecta en la lı́nea de corte x=0.15
Solución
Se plantea la ecuación nueva con los datos dados y se encuentra su raı́z.
y − 0.484696 0.772956
x = y−1.5 − 0.15
1 − 0.484696
Usamos el programa de Newton (ver fifura 56) para obtener la raı́z de esta función y tendremos el valor de y
Obteniendo y=26.9452
18.2 Matrices
Ejercicio 18.13
Sean A y B matrices invertibles de orden NxN y sea C=AB. Demuestre que C−1 =B−1 A−1 . Indicación.Use la propiedad asociativa del
producto de matrices.
Solución
C = AB
C−1C = (AB)−1 AB
I = (AB)−1 AB
IB−1 = (AB)−1 ABB−1
B−1 = (AB)−1 AI
B−1 = (AB)−1 A
B−1 A−1 = (AB)−1 AA−1
B−1 A−1 = (AB)−1 I
B−1 A−1 = (AB)−1
Curso de métodos numéricos — 56/145
Ejercicio 18.14
Demuestre las propiedades
IA = AI = A
c(AB) = (cA)B = A(cB)
Solución
A=A
IA = IA
IA = A
IAI = AI
IA = AI
IA = A
∴ IA = AI = A
c(AB) :
N N N
(c(a)mn (b)np )i j = ∑ caik bk j = ∑ (caik )bk j = ∑ aik (cbk j )
k=1 k=1 k=1
∴ c(AB) = (cA)B = A(cB)
Ejercicio 18.15
Sea A una matriz de orden MxN y X una matriz de orden Nx1
• ¿Cuántas multiplicaciones hacen falta para calcular AX?
• ¿Cuántas sumas hacen fanta para calcular AX?
Solución
Siendo las matrices
a11 a12 a13 ... a1n x11
a21 a22
a23 ... a2n x21
a31 a32
a33 ... a3n
x31
. .. .. .. .. ..
.. . . . . .
am1 am2 am3 ... amn xn1
Por cada fila realizaremos N multiplicaciones y al tener M filas tendremos MxN multiplicaciones ya que P=1, de lo contrario tendrı́amos
MxNxP multiplicaciones.
Dado que la fórmula de cada término es
N
axmp = ∑ amk xkp ; p = 1
k=1
N
axm1 = ∑ amk xk1
k=1
Teniendo esta sumatoria para cada elemento se tendrá N-1 sumas y al tener M filas en A y P columnas de X tendremos M(N-1)P sumas;
teniendo una sola columna en X la cantidad de sumatorias será M(N-1)1=M(N-1) sumas.
Curso de métodos numéricos — 57/145
Ejercicio 18.16
Sea A una matriz de orden MxN y sean B y C dos matrices de orden NxP. Pruebe la propiedad distributiva de la multiplicación matricial por
la izquierda A(B+C)=AB+AC
Solución
(b + c)i j = bi j + ci j
N
(a(b + c)i j = ∑ aik (b + c)k j
k=1
N
A(B +C) = ∑ a(b + c)i j
k=1
N
abi j = ∑ aik bk j
k=1
N
aci j = ∑ aik ck j
k=1
N N
(ab + ac)i j = ∑ aik bk j + ∑ aik ck j
k=1 k=1
N
= ∑ (aik bk j + aik ck j )
k=1
N
= ∑ aik (bik + ck j )
k=1
N
= ∑ aik (b + c)k j
k=1
N
AB + AC = ∑ a(b + c)i j
k=1
∴ A(B +C) = AB + AC
Ejercicio 18.17
Sea A una matriz de orden MxN y sean B y C dos matrices de orden NxP. Pruebe la propiedad distributiva de la multiplicación matricial por
la derecha (A+B)C=AC+BC
Curso de métodos numéricos — 58/145
Solución
(a + b)i j = ai j + bi j
N
((a + b)c)i j = ∑ (a + b)ik ck j
k=1
N
(A + B)C = ∑ (a + b)ci j
k=1
N
aci j = ∑ aik ck j
k=1
N
bci j = ∑ bik ck j
k=1
N N
(ac + bc)i j = ∑ aik ck j + ∑ bik ck j
k=1 k=1
N
= ∑ (aik ck j + bik ck j )
k=1
N
= ∑ (aik + bik ck j )
k=1
N
= ∑ (a + b)ik ck j
k=1
N
AC + BC = ∑ (a + b)ci j
k=1
∴ AC + BC = (A + B)C
Ejercicio 18.18
Calcule XX’ y X’X, donde X=[1 -1 2]. Nota X’ es el transpuesto del vector X
Solución
X = [1 −1 2]
1
X 0 = −1
2
1
0
XX = [1 −1 2] −1
2
= [(1)(1) (−1)(−1) (2)(2)]
= [6]
1
X 0 X = −1 [1 −1 2]
2
(1)(1) (1)(−1) (1)(2)
= (−1)(1) (−1)(−1) (−1)(2)
(2)(1) (2)(−1) (2)(2)
1 −1 2
= −1 1 −2
2 −2 4
Curso de métodos numéricos — 59/145
Ejercicio 18.19
Sea una matriz de orden MxN y sea B una matriz de orden NxP.Pruebe que (AB)’=B’A’.Indicación.Siendo C=AB pruebe, usando la definición
del producto de matrices, que el elemento (i,j) de C’ es igual al elemento(i,j) de B’A’
Solución
C = AB
N
abi j = ∑ aik bk j
k=1
N
(ab)0i j = ∑ ak j bik
k=1
N
= ∑ bik ak j
k=1
A0 = ANxM
B0 = BPxN
N
(b0 a0 )i j = ∑ bik ak j
k=1
(ab)0i j 0 0
= (b a )i j
∴ C = (AB)0 = B0 A0
0
Ejercicio 18.20
Use el resultado del ejercicio anterior y la propiedad asociativa del producto de matrices para probarque (ABC)’=C’B’A’ Solución
(ABC)0 = C0 B0 A0
(A(BC))0 = C0 B0 A0
(BC)0 A0 = C0 B0 A0
C0 B0 A0 = C0 B0 A0
Solución
Podemos obtener la matriz gracias a (??) obteniendo.
3 5 −4 x1 10
0 −2 1 x2 = 3
0 0 1 x3 8
Donde la solción final será
x1 59/6
x = x2 5/2
x3 8
Ejercicio 18.22
Realizar la factorización LU de la matriz
‘
4 3 −1
−2 −4 5
1 2 6
Solución
4 3 −1 4 3 −1 4 3 −1
−2 −4 5 ∼ F2 + 1/2F1 0 −5/2 9/2 ∼ 0 −5/2 9/2
1 2 6 F3 − 1/4F1 0 5/4 25/4 F3 + 1/2F2 0 0 17/2
Curso de métodos numéricos — 60/145
1 0 0 4 3 −1
L = −1/2 1 0 ; U = 0 −5/2 9/2
1/4 −1/2 1 0 0 17/2
Ejercicio 18.23
Realizar la descomposición en valores singulares de la matriz,ası́ como la matriz pseudoinversa
1 1 0
A=
0 1 1
Solución
1 0 1 1 0
1 1 0
AT A = 1 0 = 1 1 0
0 1 1
0 1 0 0 1
1 − λ 1 0
T
A A − λ I = 1 1−λ 0 = 0
0 0 1−λ
T
A A − λ I = λ (1 − λ )(λ − 2) = 0
λ1 = 0; λ2 = 1; λ3 = 2;
Para λ = 0
1 1 0 1 1 0
1 1 0 ∼ 0 0 0
0 0 1 0 0 1
−1
V1 = 1
0
√
−1/√ 2
V1norm = 1/ 2
0
Para λ = 1
0 1 0
1 0 0
0 0 0
0
V2 = 0
1
0
V2norm = 0
1
Para λ = 2
−1 1 0 −1 1 0
1 −1 0 ∼ 0 0 0
0 0 −1 0 0 −1
1
V3 = 1
0
√
1/√2
V3norm = 1/ 2
0
Curso de métodos numéricos — 61/145
√ √
1/√2 0 −1/√ 2
V = 1/ 2 0 1/ 2
0 1 0
√
2 0 0
S = 0 1 0
0 0 0
√
−1/ 2
1 1 0 √
1 1
u1 = √ = 1/ 2 =
2 0 0 1 0
0
0
1 1 1 0 0
u2 = = 0 =
1 0 0 1 1
1
1 0
U=
0 1
√ √ √
1/√2 0 −1/√ 2 1/ 2 0 1/2 0
A∗−1 −1 T
= V S U = 1/ 2 0 1/ 2 0 1 1 0
= 1/2 0
0 1
0 1 0 0 0 0 1
Ejercicio 18.24
Considere el siguiente sistema lineal de ecuaciones
1 1
x1 + x2 + x3 = 2
2 3
1 1 1
x1 + x2 + x3 = 0
2 3 4
1 x1 + 1 x2 + 1 x3 = −1
3 4 5
Resolver el sistema utilizando el método de Gauss.
Solución
Ejercicio 18.25
Resolver el sistema de forma exacta,es decir, analiticamente
Solución
Curso de métodos numéricos — 62/145
1 1/2 1/3 |2 1 1/2 1/3 |2 1 1/2 1/3 |2
1/2 1/3 1/4 |0 ∼ 0 1/12 1/12 | − 1 ∼ 0 1/12 1/12 |−1
1/3 1/4 1/5 | − 1 0 1/12 4/45 | − 5/3 0 0 1/180 | − 2/3
x3 = −2/3 ∗ 180 = −120
120
x2 = (−1 + ) ∗ 12 = 108
12
120 108
x1 = 2 + − = −12
3 2
Ejercicio 18.26
Escribase una función en Matlab que calcule la factorización LU de una matriz A usando el algoritmo, La matriz L debe ser una matria
triangular inferior nXn, U una matriz nXn triangular superior y P una matriz de permutación de las mismas dimensiones de A tal que se
cumple L*U=P*A.
Compruebe dicha función aplicándola a una matriz aleatoria 5x5
Dado el sistema lineal de ecuaciones Ax=b donde la matriz es no singular, un método para resolver dicho sistema consiste en calcular la
factorización LU de una matriz A. Si para resolver el sistema utilizado en el apartado anterior entonces, podemos obtener la solución x
resolviendo los dos sistemas triangulares
Ly = Pb
Ux = y
Escribase una función en Matlab que calcule la solución del sistema de ecuaciones Ax=b mediante el procedimiento descrito.
Compruebese la función con una matriz aleatoria 6x6 y un vector columna de 6 también aleatorio.
Solución
Ejercicio 18.27
Sea A Rnxn una matriz no singular,la matriz inversa puede calcularse resolviendo el sistema matricial AX=I donde XεRnxn e I es la matriz
identidad nxn, escribase una función de Matlab que calcule la matriz inversa de A.
Solución
Ejercicio 18.28
La matriz de Hilbert es un clásico ejemplo de una matriz mal condicionada, esta se defina de la siguiente manera:
1 1/2 1/3 ... 1/n
1/2
1/3 1/4 . . . 1/(n + 1)
. . . .. ..
.. .. ..
. .
1/n 1/(n + 1) 1/(n + 2) . . . 1/(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:
Resolver el sistema Hx=b donde b es el vector Hx y x (1,1,...,1)’ con n=12. Este sistema se debe resolver por 3 métodos distintos.Uno de los
métodos debe utilizar el programa de resolución por método de Gauss.
Compare el error producido por los tres métodos
Interprete los resultados
Solución
Se usará el método de Gauss, factorización LU y la descomposición en valores singulares y uso de la pseudoinversa obteniendo los siguientes
resultados
Curso de métodos numéricos — 65/145
Se observa que existen cambios muy grandes entre los diferentes sistemas y esto se debe a que la condición de la matriz es mucho mayor
que 1 por lo que el sistema a resolver resulta ser muy inestable, por lo que pequeños cambios en el sistema ocasionarán grandes cambios en la
solución, esto se puede evidenciar no solo en la condición de la matriz sino también en el proceso de descomposición en valores singulares
donde se observa que los valores singulares de la matriz son muy pequeños.
Debido a esto podemos observar que la descomposición en valores singulares es el método mas óptimo al no tomar en cuenta los valores
singulares muy pequeños que causan la estabilidad en el sistema obteniendo una solución deseada.
Curso de métodos numéricos — 66/145
Ejercicio 18.30
Modi?car el código dado para que realice el gráfico de los nodos (puntos) y el polinomio interpolador Solución
Ejercicio 18.31
Cree su propio código.
Solución
Ejercicio 18.32
En el cuadro siguiente 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
Solución
(x − 14)(x − 15)(x − 16)(x − 17)(x − 18) (x − 13)(x − 15)(x − 16)(x − 17)(x − 18)
y(x) =18 + 18 +
(13 − 14)(13 − 15)(13 − 16)(13 − 17)(13 − 18) (14 − 13)(14 − 15)(14 − 16)(14 − 17)(14 − 18)
(x − 13)(x − 14)(x − 16)(x − 17)(x − 18) (x − 13)(x − 14)(x − 15)(x − 17)(x − 18)
+ 17 + 16 +
(15 − 13)(15 − 14)(15 − 16)(15 − 17)(15 − 18) (16 − 13)(16 − 14)(16 − 15)(16 − 17)(16 − 18)
(x − 13)(x − 14)(x − 15)(x − 16)(x − 18) (x − 13)(x − 14)(x − 15)(x − 16)(x − 17)
+ 15 + 14
(17 − 13)(17 − 14)(17 − 15)(17 − 16)(17 − 18) (18 − 13)(18 − 14)(18 − 15)(18 − 16)(18 − 17)
x5 2x4 511x3 1018x2 26977x
= + + − + − 8536
120 3 24 3 10
Estimar la temperatura media dentro del lapso de las 5 horas dado
y(15.5)=16.4883
Dibuje los datos del cuadro y el polinomio interpolador encontrado, en el mismo gráfico. Discuta el error que puede aparecer al usar dicho
polinomio para estimar la temperatura media.
Se puede observar que ambas gráficas son muy parecidas, sin embargo la temperatura dentro de la tabla tiene un incremento lineal por
lo que la gráfica sera una recta, sin embargo la gráfica del polinomio interpolador es una curva de grado 5, por lo que en su valor medio
puede ser diferente variando de 16.5 a 16.4883 la cual aun si es pequeña puede ser significante.
Curso de métodos numéricos — 68/145
Ejercicio 18.33
Calcular el polinomio interpolador de los siguientes puntos
x y
-4 16
-2 4
0 0
2 4
4 16
Solución
(x − 0)(x − 2)(x − 4)(x + 2) (x − 0)(x − 2)(x − 4)(x + 4) (x − 4)(x − 2)(x + 4)(x + 2)
PN (x) = 16 +4 +0 +
(−4 − 0)(−4 − 2)(−4 − 4)(−4 + 2) (−2 − 0)(−2 − 2)(−2 − 4)(−2 + 4) (0 − 4)(0 − 2)(0 + 4)(0 + 2)
(x − 4)(x − 0)(x + 4)(x + 2) (x − 2)(x − 0)(x + 4)(x + 2)
+4 + 16
(2 − 4)(2 − 0)(2 + 4)(2 + 2) (4 − 2)(4 − 0)(4 + 4)(4 + 2)
= x2
f (x) = 3(sin(πx/6))2
k xk yk f [xk ] f [xk−1 , xk ] f [xk−2 , xk−1 , xk ] f [xk−3 , xk−2 , xk−1 , xk ] f [xk−4 , xk−3 , xk−2 , xk−1 , xk ]
0 0 0 0
1 1 0.75 0.75 0.75
2 2 2.25 2.25 1.5 0.375
3 3 3 3 0.75 -0.375 -0.25
4 4 2.25 2.25 -0.75 -0.75 -0.125 0.0313
P1 (x) = 0 + 0.75(x − 0)
P2 (x) = 0 + 0.75(x − 0) + 0.375(x − 0)(x − 1)
P3 (x) = 0 + 0.75(x − 0) + 0.375(x − 0)(x − 1) − 0.25(x − 0)(x − 1)(x − 2)
P4 (x) = 0 + 0.75(x − 0) + 0.375(x − 0)(x − 1) − 0.25(x − 0)(x − 1)(x − 2) + 0.0313(x − 0)(x − 1)(x − 2)(x − 3)
Valor exacto Interpolación
P1 (1.5) 1.5 1.1250
P2 (1.5) 1.5 1.4063
P3 (1.5) 1.5 1.5000
P4 (1.5) 1.5 1.5176
Valor exacto Interpolacion
P1 (3.5) 2.7999 2.6250
P2 (3.5) 2.7999 5.9063
P3 (3.5) 2.7999 2.6250
P4 (3.5) 2.7999 2.8304
Los valores del polinomio interpolador se acercan cada vez más mientras siga aumentando su grado debido a un mayor número de datos
que se analizan, sin embargo al ser una función trigonométrica podemos observar que uno de los polinomios no cumple con el valor exacto
debido a la inestabilidad de la función lo que se corrige en los siguientes polinomios.
Ejercicio 18.35
Considere M + 1 puntos (x0 , y0 ), ..., (xM , yM ).
a) Pruebe que si las (N + 1)-ésimas diferencias divididas son cero, entonces todas las siguientes hasta la M-ésima son también cero.
b) Pruebe que si las (N + 1)-ésimas diferencias divididas son cero, entonces existe un polinomio PN (x) de grado N tal que
PN (xk ) = yk para k =0 ,1,...,M.
Solución
xk yk f [xk ] f [xk−1 , xk ] ... f [xk−n+1 , . . . , xk ] f [xk−n+2 , . . . , xk ] ... f [xk−m , . . . , xk ]
x0 y0 f [x0 ]
x1 y1 f [x1 ] f [x0 , x1 ]
.. .. .. .. ..
. . . . .
..
xn yn f [xn ] f [xn−1 , xn ] . f [x0 , . . . , xn ]
..
xn+1 yn+1 f [xn+1 ] f [xn , xn+1 ] . f [x1 , . . . , xn+1 ] 0 ...
.. .. .. .. .. ..
. . . . . . 0 0
..
xm ym f [xm ] f [xm−1 , xm ] . f [xm−n , . . . , xm ] 0 0 0
PN = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 )(x − x1 ) . . . (x − xn )
Siendo el orden del polinomio interpolador N como máximo.
Curso de métodos numéricos — 70/145
Ejercicio 18.36
En el código dado, sección anterior, la matriz D se emplea para almacenar la tabla de diferencias divididas:
Compruebe 4 que la siguiente modificación, del código dado, es una forma equivalente de calcular el polinomio interpolador de Newton.
Solución
El código modificado es efectivamente una forma equivalente de calcular las diferencias divididas ya que toma los valores de xk y yk y las
utiliza para poder calcular los coeficientes ak del polinomio y almacenarlos en un vector.
Ejercicio 18.37
Determine el polinomio interpolador de Newton para la tabla
x y
0 10
1 4
2 -3
3 5
4 1
5 -2
Solución
Determinando la tabla de diferencias divididas se tiene
x y f [xk ] f [xk−1 , xk ] f [xk−2 , . . . , xk ] f [xk−3 , . . . , xk ] f [xk−4 , . . . , xk ] f [xk−5 , . . . , xk ]
0 10 10
1 4 4 -6
2 -3 -3 -7 -0.5
3 5 5 8 7.5 8/3
4 1 1 -4 -6 -4.5 -43/24
5 -2 -2 -3 0.5 13/6 5/3 83/120
PN (x) = 10 − 6(x − 0) − 0.5(x − 0)(x − 1) + 8/3(x − 0)(x − 1)(x − 2) − 43/24(x − 0)(x − 1)(x − 2)(x − 3)+
+ 83/120(x − 0)(x − 1)(x − 2)(x − 3)(x − 4)
83 5 209 4 361 3 1507 2 1631
= x − x + x − x + x + 10
126 24 8 24 60
Solución
Se tendrá la curva S definida como
S1 (x) = a1 x2 + a2 x + a3 ;
0<x<1
S(x) =
S2 (x) = b1 x2 + b2 x + b3 ; 1<x<2
Ejercicio 18.39
Construir un programa para la interpolación spline de grado 2.
Solución
Para utilizar una interpolación de Spline se deberá dividir al los datos obtenido en grupos de 3 para poder trazar una curva suave entre ellos y
concatenar todas estas para lograr una interpolación.
Para que una curva entre tres puntos sea suave debe de cumplir de cumplir las siguientes condiciones para las siguientes dos curvas.
S1 (x) = a1 x2 + a2 x + a3 ;
x0 < x < x1
S
S2 (x) = b1 x2 + b2 x + b3 ; x1 < x < x2
• S1 (x1 ) = S2 (x1 )
• S1 (x1 ) = f (x1 )
• S1 (x0 ) = f (x0 )
• S2 (x2 ) = f (x2 )
• S10 (x1 ) = S20 (x1 )
• Si no se da como dato la derivada será cero S10 (x1 ) = 0
Curso de métodos numéricos — 72/145
Por lo que la curva de interpolación entre estos tres puntos sera la resolución del sistema de ecuaciones. por lo que tendremos el programa
que hará esto.
El programa devolverá la derivada del punto x2 para poder utilizarlo en el siguiente grupo de puntos.Para poder utilizar esto en un grupo de
puntos utilizaremos otra función que controlará el proceso iterativo.
Para poder utilizar una interpolación de Spline de grado dos necesitaremos un numero impar de datos para utiliazr todos asi que de ser
necesario podemos añadir un dato extra que aunque no sea real nos servira para poder realizar la interpolación ya que no se deberá tomar en
cuenta cualquier valor fuera del intervalo de interpolación.
Curso de métodos numéricos — 73/145
Ejercicio 18.40
Consultar y desarrollar una metodologı́a para las funciones spline cúbicas.
Solución
Podemos determinar una interpolación de Spline cúbica para n+1 puntos si tomamos grupos de dos puntos y los unimos mediante una curva
suave de grado 3 para esto tendremos que:
Se puede observar que tenemos cuatro incógnitas a encontrar por lo que necesitaremos cuatro ecuaciones las cuales serán obtenidas de las
siguientes condiciones :
Para el intervalo [x0 , x1 ]
• Si (xi ) = f (xi )
• Si (xi+1 ) = f (xi+1 )
Concatenando estas curvas de Spline grado tres a lo largo de todos los datos dados, podemos construir una interpolación de spline cúbicos.
Ejercicio 18.41
Implementar un algoritmo para la interpolación spline cúbica.
Solución
Dada la explicación en el ejercicio anterior, se crea la función compcspline(x,y) que recibe los datos x e y, dos vectores de la misma
dimensión conteniendo los puntos dados y construye por partes las splines de grado cúbico, el programa utiliza la función cspline(x,y,d)
donde envia un dos vectores con dos puntos de x e y respectivamente y un vector con las derivadas de la curva Spline a construir, las cuales
serán cero para la primera curva y se calcularán de la curva para la siguiente interpolación.
Figure 78. Código para una interpolación de Spline cúbica entre dos puntos
Al poder realizar esta interpolación entre dos puntos se realizará la función compcspline(x,y) que recibirá los dos vectores con todos los
datos y enviará por grupos de dos la información a la función anterior, logrando realizar una interpolación cúbica de Spline.
Curso de métodos numéricos — 74/145
Ejercicio 18.42
Resolver:
a) Interpolar por splines de grado 1, 2 y 3 la función f(x)=1 x en tomando los puntos (0,1;10), (0,2;5), (0,5;2), (1;1), (2;0,5), (5;0,2) y
(10;0,1).
b) Interpolar por splines cúbicos la función f(x)= 1 x2+1 en el intervalo 0 ? x ? 1 tomando los seis puntos de las abcisas xk = k 5, k =0
,1,2,3,4,5.
Solución
x y
0.1 10
0.5 2
1 1
2 0.5
5 0.2
10 0.1
Para todos los casos tendremos 5 curvas interpoladoras que se calcularán a continuación.
Spline de grado 1
Curva S1
S1 (x) = ax + b
S1 (0.1) = a(0.1) + b = 10
S1 (0.5) = a(0.5) + b = 2
Resolviendo el sistema tendremos
S1 (x) = −20x + 12
Curva S2
S2 (x) = ax + b
S2 (0.5) = a(0.5) + b = 2
S2 (1) = a(1) + b = 1
Resolviendo el sistema tendremos
S2 (x) = −2x + 3
Curva S3
S3 (x) = ax + b
S3 (1) = a(1) + b = 1
S3 (2) = a(2) + b = 0.5
Resolviendo el sistema tendremos
S1 (x) = −0.5x + 1.5
Curva S4
S4 (x) = ax + b
S4 (2) = a(2) + b = 0.5
S4 (5) = a(5) + b = 0.2
Resolviendo el sistema tendremos
S4 (x) = −0.1x + 0.7
Curva S5
S5 (x) = ax + b
S5 (5) = a(5) + b = 0.2
S5 (10) = a(10) + b = 0.1
Curso de métodos numéricos — 75/145
Ejercicio 18.43
Se considera la función polinomial a trozos
3
x ; x0 < x < x1
r(x)
0.5(x − 1)3 + a(x − 1)2 + b(x − 1) + c; x1 < x < x2
Determinar qué 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}
Solución
Siendo las dos curvas de r(x)
r1 (x) = x3 r2 (x) = 0.5(x − 1)3 + a(x − 1)2 + b(x − 1) + c Se tiene las siguientes relaciones que deben cumplirse en el punto de unión de las
curvas x=1:
r1 (1) = r2 (1)
13 = 0.5(1 − 1)3 + a(1 − 1)2 + b(1 − 1) + c
c=1
r10 (1) = r20 (1)
3(1)2 = 3 ∗ 0.5(1 − 1)2 + 2a(1 − 1) + b
b=3
r100 (1) = r200 (1)
3 ∗ 2 ∗ 1 = 3 ∗ 2 ∗ 0.5(1 − 1) + 2a
2a = 6
a=3
Por lo que la curva r(x) será
3
x ; x0 < x < x1
r(x)
0.5(x − 1)3 + 3(x − 1)2 + 3(x − 1) + 1; x1 < x < x2
Curso de métodos numéricos — 77/145
Ejercicio 18.45
Aplicar la fórmula de dos puntos adelantada al cálculo de la derivada primera 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.
Solucion
Adelantada
f (x) = sin(x)
f 0 (2.13432) = cos(2.13432) = −0.53416
x = 2.13432
h=2
f (2.13432 + 2) − f (2.13432)
f 0 (x) = = −0.841449
2
h=1
f (2.13432 + 1) − f (2.13432)
f 0 (x) = = −0.838106
1
h = 0.5
f (2.13432 + 0.5) − f (2.13432)
f 0 (x) = = −0.719166
0.5
h = 0.2
f (2.13432 + 0.2) − f (2.13432)
f 0 (x) = = −0.614871
0.2
h = 0.1
f (2.13432 + 0.2) − f (2.13432)
f 0 (x) = = −0.575512
0.1
Ejercicio 18.46
Repetir el ejercicio anterior comparando la precision de la formula de diferencia adelantada con la retrasada. Aplicar también ambas
formulas al calculo de la derivada de la función g(x) = 1/(1 + ex) en x = 1/2.
Solucion
Curso de métodos numéricos — 78/145
Atrasada
f (x) = sin(x)
f 0 (2.13432) = cos(2.13432) = −0.53416
x = 2.13432
h=2
f (2.13432) − f (2.13432 − 2)
f 0 (x) = = −0.355731
2
h=1
f (2.13432) − f (2.13432) − 1
f 0 (x) = = −0.060869
1
h = 0.5
f (2.13432+) − f (2.13432) − 0.5
f 0 (x) = = −0.0.304251
0.5
h = 0.2
f (2.13432) − f (2.13432) − 0.2
f 0 (x) = = −0.446358
0.2
h = 0.1
f (2.13432) − f (2.13432) − 0.1
f 0 (x) = = −0.491645
0.1
1
b) g(x) = ; x = 1/2
1 + ex
Adelantada
1 1
−
0
g (x) = 1 + e x+h 1 + ex
h
Retrasada
1 1
x
−
g0 (x) = 1 + e 1 + ex−h
h
h Adelantada Retrasada
2 g’(x)=-0.50841 g’(x)=-0.220017
1 g’(x)=-0.195115 g’(x)=-0.244914
0.5 g’(x)=-0.217198 g’(x)=-0.249192
0.2 g’(x)=-0.228642 g’(x)=-0.240084
0.1 g’(x)=-0.231971 g’(x)=-0.237717
Ejercicio 18.47
Supongamos que se conoce el valor de la derivada mediante la formula de diferencia adelantada para tres valores de h diferentes. ¿Es
posible estimar el valor del h optimo? ¿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.
Solucion
Mientras mas pequena sea el paso h mas exacta sera sin embargo esto se cumplira hasta que la diferencia represente un cambio entre f(x)y
f(x+h), de o contrario laderivada tenderia a dar el erroneo valor de cero.
|0.795752 − 0.825356|
Errh=0.1 = 100% = 3.59%
0.825356
|0.822499 − 0.825356|
Errh=0.01 = 100% = 0.34%
0.825356
|0.8253 − 0.825356|
Errh=0.0000000001 = 100% = 0.004377%
0.825356
Ejercicio 18.48
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 aproximación ? ¿Por que?.
Solucion
f (x) = tan(x)
f 0 (x) = sec2 (x)
tan(3.14 + h) − tan(3.14)
f 0 (3.14) = 1 f 0 (x) =
h
h f’(x)
0.1 1.0319
0.01 1.00002
Es buena la aproximacion ya que al reducir la distancia h casi se obtiene en valor exacto de la derivada, sin embargo se debe de tener cuidado
al encontrar esta derivada ya que su imagen en 3.14 es casi cero por lo que esto podria generar problemas.
Ejercicio 18.49
Consulta: Calcular cotas para el error de truncacion que se comete al aproximar 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 esta por debajo de lo permitido
por la cota.
Solucion
La cota para el error de la primera derivada en el metodo del trapecio es:
h3
R( f ) = − max f 00 (x)
12 xε[a,b]
1
f (x) =
1 + sin(x)
cos(x)
f 0 (x) = −
(1 + sin(x))2
2 cos(x)2 + 0.5sin(x)(sin(x) + 1)
f 00 (x) =
(sin(x) + 1)3
−6cos(x) cos(x)2 + 0.83333(sin(x) − 0.2)(sin(x) + 1
f 000 (x) =
(sin(x) + 1)4
max | f 00 (x)| = 1.5708
h3
R( f ) = − 1.5708
12
Ejercicio 18.50
Construir una tabla de derivadas primeras de la función g(x) definida por la siguiente tabla en los puntos xi con la mayor precision posible
mediante formulas de tres puntos.
x g(x)
1.0 1.000000
1.2 0.997502
1.4 0.99002
1.8 0.960398
2.0 0.940678
Solucion
Adelantada
− f2 + 4 f1 − 3 f0
f 0 (x)
h
Retrasada
3 f0 − 4 f1 + f2
f 0 (x) =
2h
x g(x) g’(x) derivada utilizada
1.0 1.000000 -0.000085 Adelantada
1.2 0.997502 0.03598 Adelantada
1.4 0.990025 -0.339805 Adelantada
1.8 0.960398 -0.20351 Retrasada
2.0 0.940678 -0.073833 Retrasada
Ejercicio 18.51 √
Usando la formula 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 truncacion.
Solucion
√ √
f (x) = arctan(x); x = 2; f 0 ( 2) = 1/3
√ √ √
√ arctan( 2 + h) − 2arctan( 2) + arctan( 2 − h)
f 0 ( 2) =
h2
f 0 ( (2))
p
h
2 -0.288660
1 -0.339837
0.5 -0.322548
0.2 -0.315656
0.1 -0.314618
0.05 -0.314357
0.0001 -0.314267
Se puede observar que ninguna aproximación aunque llegue a estar cerca del valor real pueda llegar a este y se debe a que debido a la gran
cantidad de cifras decimales con las que esta función en particular trabaja, la computadora se ve obligada a recortar o truncar estos valores
que para el calculo de esta derivada representan detalles en la función y por eso se da el error producido, que no se elimina al disminuir el
paso h, sino que lo hace aumenta.r
Ejercicio 18.52
Deducir una formula 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’(x).
Solucion
h2 00 h3
f (x + h) = f (x) + f 0 (x)h + f (x) + f 000 (x) + O(h4 )
2 6
0 4h2 00 8h3 000
f (x + 2h) = f (x) + 2 f (x)h + f (x) + f (x) + O(h4 )
2 6
9h2 00 27h3 000
f (x + 3h) = f (x) + 3 f 0 (x)h + f (x) + f (x) + O(h4 )
2 6
h2 h3
f (x − h) = f (x) − f 0 (x)h + f 00 (x) − f 000 (x) + O(h4 )
2 6
Curso de métodos numéricos — 81/145
Adelantada
− f2 + 4 f1 − 3 f0
f 0 (x)
h
Retrasada
3 f0 − 4 f1 + f2
f 0 (x) =
2h
Ejercicio 18.54
Calcular la derivada primera de la función f (x) = |x − 2|cos(x) en x = 2 usando las formulas de diferencias centradas y adelantadas.
Comparar los resultados.
Solucion
Adelantada
− f2 + 4 f1 − 3 f0
f 0 (x)
h
Centrada
f1 − f−1
f 0 (x) =
2h
h f’(x) (centrada) f’(x)(adelantada)
2 -0.826822 0.653644
1 -0.765147 -0.989992
0.5 -0.4335941 -0.801144
0.2 -0.160652 -0.588501
0.1 -0.090778 -0.504846
La derivada adelantada tiene mas estabilidad y tiende al valor real de la derivada, mientras que la centrada es inestable y no converge al
valor deseado, esto ademas de el orden de aproximación que tiene puede deberse a que esta centrada en un punto donde la imagen de esta
función real es cero.
Ejercicio 18.55
Considerese la función
(
0 − 1 < x < 4/5
f (x) = −x2
e 4/5 ≤ x < 1
Para calcular f’(4/5) ¿sera mejor usar una formula adelantada o una centrada?
Solucion
Curso de métodos numéricos — 82/145
Seria mucho mejor utilizar la formula adelantada para encontrar la derivada en este punto ya que si se utiliza ya formula centrada se tendran
imágenes un la primera función a la izquierda e igualmente imágenes de la segunda a la derecha por lo que el método no tendrá una buena
aproximación a la derivada, ademas en la función existe una discontinuidad de salto por lo que no es continua en ese punto
Ejercicio 18.56
Deducir las formulas centradas y adelantadas para la derivada tercera.
Solucion
Derivada Centrada
h2 00 h3
f (x + h) = f (x) + f 0 (x)h + f (x) + f 000 (x) + O(h4 )
2 6
0 4h2 00 8h3 000
f (x + 2h) = f (x) + 2 f (x)h + f (x) + f (x) + O(h4 )
2 6
h2 h3
f (x − h) = f (x) − f 0 (x)h + f 00 (x) − f 000 (x) + O(h4 )
2 6
4h 2 8h3 000
f (x − 2h) = f (x) − 2 f 0 (x)h + f 00 (x) − f (x) + O(h4 )
2 6
Sumando la primera ecuacion con la segunda y la tercera con la cuarta
h3 000
f (x + h) − f (x − h) = 2 f 0 (x)h + f (x) + O(h4 )
6
16h3 000
f (x + 2h) − f (x − 2h) = 4 f 0 (x)h + f (x) + O(h4 )
6
Resolviendo estas dos ultimas ecuaciones
7 f 000 (x)h3
2 f (x + h) − 2 f (x − h) − f (h + 2h) + f (x − 2h) = + O(h4 )
3
3( f2 − 2 f1 + 2 f−1 − f−2
f 000 (x) =
7h3
Derivada Adelantada:
h2 00 h3
f (x + h) = f (x) + f 0 (x)h + f (x) + f 000 (x) + O(h4 )
2 6
4h 2 8h3 000
f (x + 2h) = f (x) + 2 f 0 (x)h + f 00 (x) + f (x) + O(h4 )
2 6
9h2 00 27h3 000
f (x + 3h) = f (x) + 3 f 0 (x)h + f (x) + f (x) + O(h4 )
2 6
16h2 00 64h3 000
f (x + 4h) = f (x) + 4 f 0 (x)h + f (x) + f (x) + O(h4 )
2 6
Sumando la primera ecuación con la tercer y la segunda con la cuarta
f (x + 3h) − 3 f (x + h) = −8 f (x) − 6h f 0 (x) + 3h3 f 000 (x) + O(h4 )
f (x + 4h) − 4 f (x + 2h) = −3 f (x) − 4h f 0 (x) + 16h2 /3 f 000 (x) + O(h4 )
Resolviendo estas dos ultimas ecuaciones
7 f (x) − 6 f (x + h) + 12 f (x + 2h) + 2 f (x + 3h) − 3 f (x + 4h) = 10h3 f 000 (x) + O(h4 )
3 f4 − 2 f3 − 12 f2 + 6 f1 − 7 f0
f 000 (x) =
10h3
Ejercicio 18.57
Al calcular la derivada segunda de una función, ¿que formula tendra 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). ¿Cuales son mayores?
Solucion
Al usar mas datos se obtendra mayor error en el redondeo ya que la propagaciondel error se dara en mas datos y se realizaran mas
operaciones .
ex+h − 2ex + ex−h
f 00 (x) =
h2
−e x+2h + 16ex+h − 30ex + 16ex−h + ex−2h
f 00 (x) =
12h2
Curso de métodos numéricos — 83/145
Ejercicio 18.58
Estudiar el efecto de los errores de truncacion y redondeo en la formula centrada de cinco puntos para f”. Particularizar para f(x) = 1/(1+x2)
en x = 1.
Solución
− f2 + 16 f1 − 30 f0 + 16 f−1 + f−2
f 00 (x) =
12h2
h = 0.1
numero de cifras decimales f2 f1 f0 f−1 f−2
2 0.40 0.45 0.5 0.55 0.60
4 0.4098 0.4524 0.5 0.5524 0.6097
6 0.409836 0.452488 0.5 0.552486 0.609756
8 0.40983606 0.45248868 0.5 0.55248618 0.60975609
Cifras decimales :8
−0.40983606 + 16(0.45248868) − 30(0.5) + 16(0.55248618) + 0.60975609
f 00 (1) = = 10.6626
12(0.1)2
Cifras decimales :6
−0.409836 + 16(0.452488) − 30(0.5) + 16(0.552486) + 0.609756
f 00 (1) = = 10.6625
12(0.1)2
Cifras decimales :4
−0.4098 + 16(0.4524) − 30(0.5) + 16(0.5524) + 0.6097
f 00 (1) = = 10.6392
12(0.1)2
Cifras decimales :2
−0.40 + 16(0.45) − 30(0.5) + 16(0.55) + 0.60
f 00 (1) = = 10
12(0.1)2
Cifras decimales :1
−0.4 + 16(0.4) − 30(0.5) + 16(0.5) + 0.6
f 00 (1) = = −3.333
12(0.1)2
Mientras se toman menoscifras significativas se redondea las mismas el cambio en la derivada se hace mas notorio ya que la distancia del
paso h es pequeño igualmente y el truncar demasiado a los valores a evaluar seria el equivalente a cambiar el tamaño del paso h
Ejercicio 18.59
Deducir el termino de error O(h5 ) en la formula de cinco puntos para f”’.
Solucion
Derivada Adelantada:
h2 00 h3
f (x + h) = f (x) + f 0 (x)h + f (x) + f 000 (x) + O(h5 )
2 6
4h 2 8h3 000
f (x + 2h) = f (x) + 2 f 0 (x)h + f 00 (x) + f (x) + O(h5 )
2 6
9h2 00 27h3 000
f (x + 3h) = f (x) + 3 f 0 (x)h + f (x) + f (x) + O(h5 )
2 6
16h2 00 64h3 000
f (x + 4h) = f (x) + 4 f 0 (x)h + f (x) + f (x) + O(h5 )
2 6
Sumando la primera ecuación con la tercer y la segunda con la cuarta
Ejercicio 18.61
Calcular la cuadratura compuesta para dos intervalos de la integral
Z π
sin xdx
0
por el método del trapecio.
Solución
2π 5π
Z π
π π π π
sin (x) dx = sin (0) + 2 sin + sin + sin + sin + sin + sin (π)
0 12 6 3 2 3 3
π √
= 4+2 3
12
π √
= 2+ 3
6
Z π
= 1.9541 ≈2= sin (x) dx
0
Ejercicio 18.62
Calcular la cuadratura compuesta para dos intervalos de la integral
Z 2
3x2 dx
0
Curso de métodos numéricos — 85/145
1 2
Z π
3x2 dx = 0 + 2 · 3(1)2 + 3(2)2
0 2
Z π
=9≈8= 3x2 dx
0
Ejercicio 18.63
Comparar el método del rectángulo con el método de Simpson en el calculo de la integral
Z b
sin xdx
a
(b − a)2 (b − a)5
Erect = f (θ ) ESimp = = f (4) (θ )
2 90
Ademas, calcular el valor exacto de la integral.
Solucion
Igualamos los errores para encontrar la distancia a,b en el cual son iguales.
b−a = 3
32
Erect = = 4.5
2
35
ESimp = = 2.7
90
b−a = 4
42
Erect = =8
2
45
ESimp = = 11.3778
90
Observando en este caso que el método del Simpson tendrá mejor precision si es que el intervalo es menor a 3.44689 y el método del
rectángulo sera mas apropiada si el intervalo supera esta cifra.
Ejercicio 18.64
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
Curso de métodos numéricos — 86/145
Obtener en cada caso una cota del error y comparar el error con el error real
Solucion
f (x) = x2 e−x
f 0 (x) = (2x − x2 )e−x
f 00 (x) = (x2 − 4 + 2)e−x
f 000 (x) = (−x2 + 6x − 6)e−x
f iv (x) = (x2 − 8x + 12)e−x
f v (x) = (−x2 + 10x − 20)e−x
max | f 00 (x)| = 2
max | f iv (x)| = 12
Punto medio:
Z 1
f (x) dx = (1 − 0) (0.5)2 e−0.5 = 0.151633
0
f 00 (θ )(ba)3
E( f ) =
24
2(1)3
E(0) = = 0.0833
24
0.151633 − 0.160603
Ereal = = 0.0558
0.160603
Trapecio
Z 1
(1 − 0) h i
f (x) dx = (0)2 e0 + (1)2 e−1 = 0.18394
0 2
f 00 (θ )(ba)3
E( f ) =
24
2(1)3
E(0) = = 0.0833
24
0.18394 − 0.160603
Ereal = = 0.1453
0.160603
Simpson
Z 1
(1 − 0) h 2 0 i
f (x) dx = (0) e + 2(0.5)2 e−0.5 + (1)2 e−1 = 0.162402
0 6
f iv (θ )(b − a)5
E( f ) =
180
12(1)3
E(0) = = 0.13333
90
0.162402 − 0.160603
Ereal = = 0.0112
0.160603
Ejercicio 18.65
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)
• f (x) = 1 + e−x cos (4x)
√
• f (x) = sin ( x)
Solucion
f (x) = sin(x)
Trapecio
Z 1
1−0
sin (x) dx = (0 + 0) = 0
0 2
Curso de métodos numéricos — 87/145
Simpson 3/8
Z 1
1−0
sin (x) dx = (sin (0) + 3 sin (π/3) + 3 sin (2π/3) + sin (π)) = 0.6495
0 8
Boole
Z 1
1−0
sin (x) dx = (7 sin (0) + 32 sin (π/4) + 12 sin (π/2) + sin (3π/4) + 7 sin (π)) = 0.636165
0 90
Z 1
−x 1−0
1+e cos (4x) dx = 1 + e−0 cos (0) + 1 + e−1 cos (4) = 1.37977
0 2
Simpson 3/8
Z 1
1−0
1 + e−x cos (4x) dx = 1 + e−0 cos (0) + 1 + e−1/3 cos (4/3) + 1 + e−2/3 cos (8/3) + 1 + e−1 cos (4) = 0.986427
0 8
Boole
Z 1
1−0
1 + e−x cos (4x) dx = (7(1 + e−0 cos (0)) + 32(1 + e−1/4 cos (1)) + 12(1 + e−2/4 cos (2)) + 32(1 + e−3/4 cos (3))+
0 90
+7(1 + e−1 cos (4))) = 0.986427
√
f (x) = sin( x)dx
Trapecio
Z 1
1−0
sin (x) dx = (0 + 0) = 0
0 2
Simpson 3/8
Z 1
√
1−0 p p
sin x dx = sin (0) + 3 sin 1/3 + 3 sin 2/3 + sin (1) = 0.583143
0 8
Boole
Z 1
√
1−0 √ p p p √
sin x dx = 7 sin 0 + 32 sin 1/4 + 12 sin 1/2 + 32 sin 3/4 + 7 sin 1 = 0.593376
0 90
Ejercicio 18.66
Integrando el polinomio de interpolacion de Lagrange
x − x1 x − x0
P1 (x) = f0 + f1
x0 − x1 x1 − x0
Z x1 Z x1 Z x1
f0 f1
P1 (x) dx = (x − x1 ) dx + (x − x0 ) dx ; x1 − x0 = h
x0 x0 − x1 x x1 − x0
x0
"0 # " #
f (x0 ) x12 − x02 2 f (x1 ) x12 − x02 2
=− − (x1 − x1 x0 ) + − (x1 x0 − x0 )
h 2 h 2
1 (x1 − x0 )(x1 − +x0 ) (x1 − x0 )(x1 − +x0 )
= f (x1 ) − x0 (x1 − x0 ) − f (x0 ) − x1 (x1 − x0 )
h 2 2
hx x0 i hx x0 i
1 1
= f (x1 ) + − x0 − f (x0 ) + − x1
2 2 2 2
x1 − x0 x0 − x0 x1 − x1 x1 − x0
= f (x1 ) + − f (x0 ) −
2 2 2 2
h h
= f (x1 ) − f (x0 )
2 2
h
= [ f (x1 ) + f (x0 )]
2
b−a
= [ f (x1 ) + f (x0 )]
2
1
= [ f (x1 ) + f (x0 )]
2
Ejercicio 18.67
Una formula de cuadratura en un intervalo [a,b] puede obtenerse a partir de una formula 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 =
d −c d −c d −c
• Compruebe que x = g(t) es la linea recta que pasa por los puntos (c,a) y (b,d).
• Compruebe que la regla del trapecio tiene el mismo grado de precision en cualquier intervalo [a,b] que en el intervalo [0,1].
• Compruebe que la regla del Simpson tiene el mismo grado de precision en cualquier intervalo [a,b] que en el intervalo [0,2].
• Compruebe que la regla del Boole tiene el mismo grado de precision en cualquier intervalo [a,b] que en el intervalo [0,4].
Ejercicio 18.68
Construya programas en Matlab para las reglas compuestas: rectángulo, trapecio y Simpson.
Solucion
Rectángulo
Trapecio
Simpson
Ejercicio 18.69
Aproxime cada una de las siguientes integrales, utilizando los programas desarrollados.
R1
1 + x2 dx.
a) −1
R2
b) 0 2x cos (x)dx.
sin (2x) e−x dx.
Rπ
c) 0
Solucion
R1
1 + x2 dx.
a) −1
R2
b) 0 2x cos(x)dx.
sin(2x)e−x dx.
Rπ
c) 0
Ejercicio 18.70
Considere las siguientes funciones
a) f (x) = x3 para 0 ≤ x ≤ 1.
b) f (x) = sin (x) para 0 ≤ x ≤ π/4.
c) f (x) = e−x para 0 ≤ x ≤ 1.
Teniendo presente que:
• Longitud de una curva. La longitud de una curva y = f(x) definida sobre un intervalo [a,b] es
Z bq
longitud = 1 + ( f 0 (x))2 dx
a
• Area de una superficie de revolución. El área de la superficie del solido de revoluciónón que se obtiene al girar alrededor del eje OX
la región limitada por la curva y = f(x) y el intervalo [a,b], viene dada por:
Z b q
area = 2π f (x) 1 + ( f 0 (x))2 dx
a
Curso de métodos numéricos — 91/145
Calcula la longitud de curva y la superficie de revolución de las curvas dadas, utilizando las reglas compuestas. Realice, ademas, un análisis
del error cometido por cada uno de los métodos. Mostrar las gráficas.
Solución
a)f(x)=3x 2
R1√
l= 0 1 + 9x4 dx
x 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
f(x) 1 1.068 1.25 1.5052 1.8028 2.1250 2.4622 2.8090 3.1623
R 1 2√
0 3x 1 + 9x4 dx
x 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
f(x) 0 0.0501 0.2344 0.6350 1.3521 2.4902 4.1550 6.4520 9.4868
Rectangulo
l=(1*0.25)+(1.25*0.25)+(1.5052*0.25)+(1.8028*0.25)+(2.4622*0.25)=1.3072
A=0.25(0+0.1908)+0.9375+3.3101+9.4868)=1.1096
Trapecio
l= 0.125( 1+2( 1.014+1.25+1.9615)+3.1623 )=1.5775
A=0.125 (0 +2(0.1908+0.9375+3.3101)+9.4868 )=2.2954
Simpson
l= 38 = (1 + 4(1.0011 + 1.0853 + 1.5405 + 2.5051) + 2(1.0174 + 1.25 + 1.9615) + 3.1623) = 1.5479
A= 83 (0 + 4(0.0469 + 0.4579 + 1.8023 + 5.7540) + 2(0.1908 + 0.9375 + 3.3101) + 3.1623) = 2.1092
Integración exacta
Z 1p
l= 1 + 9x4 dx = 1.5478
Z0 1 p
A= 3x2 1 + 9x4 dx = 2.1088
0
b)f(x)=sin(x)
R π/4 p
l= 0 1 + cos2 (x)dx
x 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
f(x) 1.4142 1.4108 1.4007 1.3841 1.3615 1.3333 1.3005 1.2639 1.2247
R π/4 p
0 sin(x) 1 + cos2 (x)dx
x 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
f(x) 0 0.1383 0.2733 0.4018 0.5210 0.6285 0.7225 0.8018 0.8660
Rectangulo
l=0.049087*(1.4142+1.4007+1.3615+1.3005+1.2247)=1.0754
A=0.049087*(0+0.2733+0.5210+0.7225+0.8660)=0.2978
Trapecio
l=0.3926*(1.4142+2(1.4007+1.3615+1.3005)+1.2247)=1.0568
A=0.3926*(0+2(0.2733+0.5210+0.7225)+0.8660)=0.3828
Simpson
l= 0.3926
3 = (1.4142 + 4(1.4108 + 1.3841 + 1.3333 + 1.2639) + 2(1.4007 + 1.3615 + 1.3005) + 1.2247) = 1.0581
A= 0.3926 3 (0 + 4(0.1383 + 0.4018 + 0.6285 + 0.8018) + 2(0.2733 + 0.5210 + 0.7225) + 0.8018) = 0.3855
Integración exacta
Z π/4 q
l= 1 + cos2 (x)dx = 1.0581
0
Z π/4 q
A= sin(x) 1 + cos2 (x)dx = 0.3855
0
c)f(x)=e( x)
R1
q
l= 0 1 + e( − 2x)dx
x 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
f(x) 1.0655 1.0834 1.1060 1.1342 1.1696 1.2134 1.2675 1.3337 1.4142
q
A= 01 e−1 1 + e( − 2x)dx
R
l=0.125*(1.4142+2(1.2675+1.1696+1.1060)+1.0655)=1.1957
A=0.125*(1.4141+2(0.9871+0.7094+0.5224)+0.3920)=0.7805
Simpson
l= 0.125
3 = (1.4142 + 4(1.3337 + 1.2134 + 1.1342 + 1.0834) + 2(1.2675 + 1.1696 + 1.1.1060) + 1.0655) = 1.1927
A= 0.125
3 (1.4142 + 4(1.1770 + 0.8340 + 0.6071 + 0.4516) + 2(0.9871 + 0.7094 + 0.5224) + 0.3920) = 0.7718
Integración exacta
Z π/4 q
l= 1 + e( − 2x)dx = 1.1927
0
Z π/4 q
A= e−x 1 + e( − 2x)dxdx = 0.0.7718
0
Ejercicio 18.71
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
f (x) = x
f (x) = x2
Ejercicio 18.72
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 ].
Solucion
Curso de métodos numéricos — 93/145
Ejercicio 18.73
Determine en cada uno de los siguientes casos, el numero 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 precision de 5x10−19 .
Z π/6
a) cos (x) dx
−π/6
Z 3
1
b) dx
2 5−x
Z 2
c) xe−x ) dx
0
Solución
Z π/6
a) cos (x) dx
−π/6
f (x) = cos(x)
f 0 (x) = −sin(x)
f 00 (x) = −cos(x)
f 000 (x) = sin(x)
f (iv) (x) = cos(x)
f (v) (x) = −sin(x)
max | f 00 (x)| = 1 = 1
max | f (iv) (x)| = 1
Trapecio
(π/6 + π/6)h2
5x10−19 = (1)
2
h = 9.77205x10−10
Simpson
(π/6 + π/6)h4
5x10−19 = (1)
180
h = 0.000096
Z 3
1
b) dx
2 5−x
Curso de métodos numéricos — 94/145
1
f (x) =
5−x
1
f 0 (x) =
(x − 5)2
2
f 00 (x) = −
(x − 5)3
6
f 000 (x) =
(x − 5)4
24
f (iv) (x) = −
(x − 5)5
120
f (v) (x) =
(x − 5)6
5∈
/ [2, 3]
Trapecio
2
f 00 (2) = −
27
1
f 00 (3) = −
4
(3 − 2)h2 1
5x10−19 = ( )
2 4
h = 2x10−9
Simpson
8
f (iv) (2) = −
9
f (iv) (3) = −3
(3 − 2)h4
5x10−19 = (3)
180
h = 0.000074
Z 2
c) xe−x dx
0
f (x) = xe−x
f 0 (x) = (1 − x)e−x
f 00 (x) = (x − 2)e−x
f 000 (x) = (3 − x)e−x
f (iv) (x) = (x − 4)e−x
f (v) (x) = (5 − x)e−x
max | f 00 (x)| = 1 = 1; x = 3
max | f (iv) (x)| = 1; x = 5
3∈
/ [0, 2]
5∈
/ [0, 2]
Curso de métodos numéricos — 95/145
Trapecio
f 00 (0) = −2
f 00 (2) = −0
(2 − 0)h2
5x10−19 = (2)
2
−10
h = 7.071x10
Simpson
f (iv) (0) = −4
f (iv) (2) = −0.2706
(2 − 0)h4
5x10−19 = (4)
180
h = 0.000069
h
ytk+1 = ytk + ( f (tk ) + f (tk+1 ))
2
h
y1 = y0 + ( f (t0 ) + f (t1 )) ; y0 = 0
2
h
= ( f (t0 ) + f (t1 ))
2
h
y2 = y1 + ( f (t1 ) + f (t2 ))
2
h h
= ( f (t0 ) + f (t1 )) + ( f (t1 ) + f (t2 ))
2 2
h
= ( f (t0 ) + f (t1 ) + f (t1 ) + f (t2 ))
2
h 1
= ∑ ( f (tk ) + f (tk+1 ))
2 k=0
h
y3 = y2 + ( f (t2 ) + f (t3 ))
2
h 1 h
= ∑ ( f (tk ) + f (tk+1 )) + 2 ( f (t2 ) + f (t3 ))
2 k=0
h 2
= ∑ ( f (tk ) + f (tk+1 ))
2 k=0
h M−1
yM = y(b) = ∑ ( f (tk ) + f (tk+1 ))
2 k=0
Ejercicio 18.75
El método de Richardson para mejorar las aproximaciones puede usarse en conjunción con el método de Heun.Si usamos el método de Heun
con tamaño de paso h,entonces tenemos
y(b) ≈ yh +Ch2
Si ahora lo usamos con tamaño de paso 2h, entonces tenemos
y(b) ≈ y2h + 4Ch2
Los términos que contienen Ch2 pueden eliminarse para obtener una aproximación mejorada a y(b)
4yh − y2h
y(b) ≈
3
Curso de métodos numéricos — 96/145
Este esquema de mejora puede usarse con los valores mostrados en el Ejemplo 9.7 para obtener una aproximación mejor a y(3).Calcule las
entradas que faltan en la tabla siguiente:
h yk (4yh − y2h )/3
1 1.732422 ——–
1/2 1.682121 1.665354
1/4 1.672269 ——–
1/8 1.670076 ——–
1/16 1.669558 1.669385
1/32 1.669432 ——–
1/64 1.669401 ——–
Solución
h yk (4yh − y2h )/3
1 1.732422 ——–
1/2 1.682121 1.665354
1/4 1.672269 1.668985
1/8 1.670076 1.669345
1/16 1.669558 1.669385
1/32 1.669432 1.669390
1/64 1.669401 1.669390
Ejercicio 18.76
En psicologı́a,la ley de estı́mulo respuesta de Wever-Fechner establece que la tasa de variación dr/dE de la reacción Ante un estı́mulo
E es inversamente proporcional al estı́mulo.Si llamamos valor umbral al mı́nimo nivel de estı́mulo S0 que es posible detectar, entonces el
problema de valor inicial que modela esta situación es
k
R0 = con R(S0 ) = 0
S
Supongamos que S0 = 0.1 y que R(0.1)=0. Use el método de Heun con h=0.1 para resolver
1
R0 = en [0.1,5.1] con R(S0 ) = 0 (112)
S
Solución
El esquema del método de Heun para este problema sera
0.1 1 1
R(Sk+1 ) = R(Sk ) + + R(Sk ) + 0.1 (113)
2 Sk Sk
S R
0.1 0
0.2 0.7500
0.3 1.1667
0.4 1.4583
0.5 1.6833
0.6 1.8667
0.7 2.0214
0.8 2.1554
0.9 2.2734
1 2.3790
1.1 2.4744
1.2 2.5615
1.3 2.6417
1.4 2.7158
1.5 2.7849
1.6 2.8495
1.7 2.9101
1.8 2.9673
1.9 3.0214
2 3.0727
2.1 3.1215
2.2 3.1681
2.3 3.2126
2.4 3.2551
2.5 3.2960
2.6 3.3352
2.7 3.3729
2.8 3.4093
2.9 3.4444
3 3.4783
3.1 3.5111
3.2 3.5429
3.3 3.5736
3.4 3.6035
3.5 3.6325
3.6 3.6607
3.7 3.6881
3.8 3.7147
3.9 3.7407
4 3.7660
4.1 3.7907
4.2 3.8148
4.3 3.8384
4.4 3.8614
4.5 3.8838
4.6 3.9058
4.7 3.9273
4.8 3.9484
4.9 3.9690
5 3.9892
5.1 4.0090
Curso de métodos numéricos — 98/145
1
Figure 87. Gráfica de la solución a la ecuación diferencial R0 =
S
Ejercicio 18.77
a) Escriba un programa que sirva para llevar a cabo el método de mejora de Richardson en el Ejercicio 7
b) Use su programa para aproximar y(2) n cada una de las ecuaciones de los Problemas 1-5 tomando h = 0.05 como tamaño de paso
inicial.El programa deberı́a terminar cuando el valor absoluto de la diferencia entre dos mejoras consecutivas sea menor que 10−6
Solución
El programa a crear deberá utilizar el método de Heun de forma que se tenga como retorno de la función implementada el valor de y(b)
con un numero de paso dado
Figure 88. Programa de Heun para el cálculo de y(b) con un tamaño de paso dado
La figura ( 88 ) muestra la implementación de dicho programa ahora se necesita un programa que ejecute esta función con varios tamaños de
paso distintos y calcule la mejora de Richarson entre dos pares de soluciones de la ecuación diferencial, una vez realizado esto el resto entre
las dos mejoras de Richarson sera el error a considerar para tomar la solución final
Curso de métodos numéricos — 99/145
En la figura (89) se muestra el programa que tendrá un bucle con criterio de parada el error entre las mejoras de Richarson y como
tolerancia 10−6
Al analizar este ejercicio en el programa se obtiene como resutlado con el primer paso h=0.05 un valor de infinito, l cual no coincide con su
valor real y(2)=-1/3, al observar la función solución podemos notar la razón de este error
1
y(t) =
1 − t2
y es que la función tiende a infinito y es discontinua en t=1 por lo que no se podrá utilizar ningún método numérico mencionado en este
documento para esta función.
Curso de métodos numéricos — 100/145
Ejercicio 18.78
Pruebe que el método de Taylor falla cuando queremos aproximar la solución y(t) = t 3/2 del problema de valor inicial
y0 (t) = t 3/2
y(2) (t) = (3/2)t 1/2
y(3) (t) = (3/4)t −1/2
y(4) (t) = (−3/8)t −3/2
Ahora se evalúan las derivadas en t0 = 0
y0 (0) = 03/2 = 0
y(2) (0) = (3/2)01/2 = 0
y(3) (0) = (3/4)0−1/2 = ∞
y(4) (0) = (−3/8)0−3/2 ∞
El método de Taylor presenta problemas en esta ecuación diferencial ya que la evaluación de este termino resulta infinito y su siguiente
valor sera infinito,por lo que el método divergerá y no se podrá encontrar una función con valores reales.
Ejercicio 18.79
Consideremos el problema de valor inicial y0 = 1 + y2 , y(0) = 1
Curso de métodos numéricos — 101/145
b) Evalué las derivadas en t=0 y úselas para calcular los cinco primeros términos del desarrollo de Maclaurin de tan(t)
f 0 (t) = f
f 00 (t) = ft + fy y0 = ft + fy f
f (3) = ftt + 2 fty y0 + fy y00 + fyy (y0 )2
= ftt + 2 fty f + fyy f 2 + fy ( ft + fy f )
(114)
f (4) = fttt + 3 ftty y0 + 3 ftyy (y0 )2 + 3 fty y00 + fy y000 + 3 fyy y0 y00 + fyyy (y0 )3
= ( fttt + 3 ftty f + 3 ftyy f 2 + fyyy f 3 ) + fy ( ftt + 2 fty f + fyy f 2 ) + 3( ft + fy f )( fty + fyy f ) + fy2 ( ft + fy f )
!!!!
0 f 00 (yk ) f (3) (yk ) f (4) (yk )
yk+1 = yk + h f (yk ) + h +h +h
2 6 24
Solución
y0 = 1 + y2
y(2) = 2yy0
= 2y(1 + y2 )
= 2y + 2y3
y(3) = 2y0 + 6y2 y0
= 2(1 + y2 ) + 6y2 (1 + y2 )
= 2 + 8y2 + 6y4
y(4) = 16yy0 + 24y3 y0
= 16y(1 + y2 ) + 24y3 (1 + y2 )
= 24y5 + 40y3 + 16y
y(0) = 1
y0 (0) = 1
y(2) (0) = 0
y(3) (0) = 2
y(4) (0) = 0
Ejercicio 18.80
Pruebe que cuando se usa el método de Runge-Kutta de orden N=4 para resolver el problema de valor inicial y’=f(t) en [a,b] con y(a)=0 el
resultado es
h M−1
y(b) ≈ ∑ f (tk ) + 4 f (tk+1/2 ) + f (tk+1 ))
6 k=0
donde h=(b-a)/M , tk = a + kh y tk+1/2 = a + k + 12 h que es la aproximación dada por la regla de Simpson (con incremento h/2) a la
Ejercicio 18.81
El método de Richardson para mejorar las aproximaciones puede usarse en conjunción con el método de Runge-Kutta .Si en el método de
Runge-Kutta de orden N=4 se usa usando un tamaño de paso h entonces y(b) ≈ yh +Ch4
pero si usamos un tamaño de paso 2h, entonces y(b) ≈ y2h + 16Ch2
Los términos que contienen Ch4 pueden eliminarse para obtener una aproximación mejorada a y(b)
16yh − y2h
y(b) ≈
15
Este esquema de mejora puede usarse con los valores mostrados en el Ejemplo 9.11 para obtener una aproximación mejor a y(3).Calcule las
entradas que faltan en la tabla siguiente:
h yk (4yh − y2h )/3
1 1.6701860 ——–
1/2 1.6694308 ——–
1/4 1.6693928 ——–
1/8 1.6693906 ——–
Solución
h yk (4yh − y2h )/3
1 1.6701860 ——–
1/2 1.6694308 1.66938
1/4 1.6693928 1.66932
1/8 1.6693906 1.6693
Ejercicio 18.82
En una reacción quı́mica,una molécula de una sustancia A se combina con una molécula de una sustancia B para formar una molécula de
una sustancia C.SE sabe que la concentración y(t) de la sustancia C en el instante t es la solución del problema de valor inicial
Curso de métodos numéricos — 103/145
Figure 95. Solución numérica al problema de reacción quı́mica y = 350(1 − e−0.2t )/(7 − 5e−0.2t )
Se aprecia que la solución en el intervalo [0,20] es muy próxima a la solución real y que al tender al infinito la curva en ambos casos
tiende a 50
Ejercicio 18.83
Resolviendo un problema de valor inicial adecuado, haga una tabla de valores de la función de distribución normal f(t) definida por la integral
1 1
Z x 2
f (x) = +√ e−t /2 dt para 0 ≤ x ≤ 3
2 2π 0
Utilice en sus cálculos el método de Runge-Kutta de orden N=4 con h=0.1
Su solución deberı́a coincidir los valores que se muestran en la siguiente tabla.Observación, Esta es una manera bastante aceptable de
generar una taba de valores de función de distribución normal estándar.
x f(x)
0.0 0.5
0.5 0.6914625
1.0 0.8413448
1.5 0.9331928
2.0 0.9772499
2.5 0.9937903
3.0 0.9986501
Solución
Utilizando el programa descrito en la figura ( 7 ) podremos observar los datos obtenidos y las gráficas de la solución numérica y real
x f(x)
0.0 0.5
0.5 0.6914733
1.0 0.8413554
1.5 0.9331958
2.0 0.9772473
2.5 0.9937871
3.0 0.9986483
Curso de métodos numéricos — 105/145
1 1 R x −t 2 /2
Figure 97. Solución real al problema de distribución f (x) = +√ 0e dt
2 2π
Ejercicio 18.84
b) Use su programa del apartado (a) para aproximar y(0.8) en el problema de valor inicial y0 = t 2 + y2 , y(0)=1 en [0,0.8]. Se sabe
que el valor de la solución exacta en t=0.8 es y(0.8)=5.8486168. Empiece con un tamaño de paso h=0.05 y utilice como criterio de
parada el que el valor absoluto de la diferencia entre dos mejoras de Richardson consecutivas sea menor que 10−7
Solución
El programa a crear deberá utilizar el método de Runge-Kutta de forma que se tenga como retorno de la función implementada el valor de
y(b)=y(0.8) con un numero de paso dado
Curso de métodos numéricos — 106/145
Figure 98. Programa de Runge-Kutta para el cálculo de y(b) con un tamaño de paso dado
La figura ( 98 ) muestra la implementación de dicho programa ahora se necesita un programa que ejecute esta función con varios tamaños de
paso distintos y calcule la mejora de Richarson entre dos pares de soluciones de la ecuación diferencial, una vez realizado esto el resto entre
las dos mejoras de Richarson sera el error a considerar para tomar la solución final En la figura (99) se muestra el programa que tendrá un
bucle con criterio de parada el error entre las mejoras de Richarson y como tolerancia 10−7
Se utilizará entonces el programa para la ecuación dad y los resultados se mostraran en la siguiente tabla.
h yk (yk − y2k )/15 error
0.05 5.848112336343729
0.025 5.848583276475173 5.848614672483936
0.0125 5.848614679514072 5.848616773049999 2.100566063312215e-06
0.00625 5.848616671716836 5.848616804530353 3.148035432332108e-08
Por lo que se evidencia que se necesitará de una aproximación de un paso de h=0.00625 para usarlo en la mejora de Richadson y obtener un
error de 10−7 , tolerancia que necesitarı́a un paso mucho mas pequeño si se utilizarı́a solamente el método de Runge-Kutta
Ejercicio 18.85
Considere la ecuación integro diferencial de primer orden
Z t
y0 = 1.3y − 0.25y2 − 0.0001y y(τ)dτ
0
a) Use el método de Runge Kutta de orden N=4 con h=0.2 el valor inicial y(0)=250 en el intervalo [0,20] y la regla del trapecio para
calcular una solución aproximada de la ecuación
b) Repita el apartado (a) usando como valores iniciales y(0)=200 e y(0)=300
c) Dibuje las soluciones aproximadas calculadas en los apartados (a) y (b) sobre una misma gráfica
Solución
Curso de métodos numéricos — 107/145
Al tomar el método del trapecio para la resolución de la integral desde 0 hasta t la ecuación integro-diferencial sera ahora
Como se puede observar las condiciones iniciales modifican de una manera drástica la ecuación integro diferencial y al tomar una condición
inicial de un valor menor se puede observar la solución de una mejor manera, en este caso y(0)=25 muestra la siguiente solución
19. Programas
19.1 Métodos para el cálculo de raı́ces
19.1.1 Método de bisección
Una vez ingresado los valores del limite izquierdo (a), derecho (b) y el error con el cual se trabajara (Err), además de la función (f)
comenzamos por condicionar que la imagen de ambos lı́mites al multiplicarse sea negativa lo que s indicará que existe una raı́z entre estos;
esto lo realizaremos con una condición if,sin embargo debemos tomar en cuenta el caso que la multilicación sea cero ya que encontrarı́amos
una raı́z directamente en uno de los lı́mites, si su producto es positivo se deberá mostrar que no existe raı́z.
Si es negativo entraremos al ciclo repetitivo for que ira de 1 al infinito excepto si la condición de la altura y el error se cumple, delo
contrario seguirá recortando el intervalo tomando el valor medio del intervalo y tomando como nuevo intervalo aquel donde el producto de
sus extremos sea negativo.
Para el ciclo for se utilizará el mismo concepto sin embargo se tiene un for que recorre de 1 a infinito y el criterio de parada de cumplirse
se saldrá automaticamente del bucle.
De igual manera para el criterio for tendremos un análisis similar simplemente tendremos un criterio de parada en una condición if
a11 a12 a13 ... a1n x1 b1
a21
a22 a23 ... a2n x2 b2
a31
a32 a33 ... a3n
= x3 b3
(116)
. .. .. .. .. .. ..
.. . . . . . .
an1 an2 an3 ... ann xn bn
Condiciones de la solución Existen varios métodos para poder resolver un sistema de ecuaciones lineales siempre que se cumpla con la
siguientes condiciones que las filas y columnas de la matriz son linealmente independientes y además de esto
Para los siguientes métodos podemos utilizar laa propiedad que establece que las filas de una matriz se puede cambiar por otra, siendo este
proceso justificado por una matriz de permutación P la cual será la identidad con sus filas intercambiadas.
19.2.1 Gauss
El método de Gauss se basa principalmente en reducir en reducir la matriz de coeficientes A a una matriz triangular superior, teniendo
unicamente ceros por debajo de la diagonal
0
a11 a012 a013 . . . a01n
0
x1 b1
0 a0 a0 . . . a 0 0
22 23 2n b20
x2
0 0 0 0
a33 . . . a3n = x3 b3
. . .. .. .. .. ..
.. .. . . . . .
0 0 0 ... a0nn xn b0n
Curso de métodos numéricos — 116/145
Procedemos a verificar que no existen ceros en la diagonal para lo cual de darse ese caso se intercambiaran las filas de la siguiente manera.
De existir el caso que al final de este procedimiento el elemento de la diagonal final sea cero y al ser el último no se lo pueda intercambiar
podemos usar una función auxiliar para poder solucionar este problema, de lo contrario diremos que la matriz es singular y no encontraremos
solución.—
Una vez cumplida esta condición podemos reducirla a una matriz triangular superior mediante el siguiente algoritmo
Curso de métodos numéricos — 117/145
Ejemplo
Teniendo un sistema este se lo puede representar por (116) en matrices
19.2.2 Gauss-Jordan
El método de Gauss-Jordan tiene el mismo principio que el método de Gauss con la diferencia que también se trabajara tanto con la matriz
para hacerla triangular superior y luego seprocede a eliminar los elementos por encima de la diagonal teniendo ası́ una matriz diagonal con lo
que la solución se obtendrá de una forma inmediata
Al igual que con Gauss procedemos a verificar por medio de la figura (118)y figura (119) nos aseguraremos que no existan ceros en la
diagonal y gracias al algoritmo de la figura (120) la transformaremos en una matriz diagonal superior.
A partir de este paso procedemos a trabajar con un nuevo algoritmo esta vez para hacer de la matriz una matriz diagonal eliminando los
Curso de métodos numéricos — 119/145
19.2.3 LU
El método de factorización LU consiste basicamente en dividir a la matriz A en dos matrices L y U, la primera triangular inferior y la segunda
triangular superior y tendremos entonces el sistema:
a11 a12 a13 . . . a1n l11 0 0 ... 0 u11 u12 u13 . . . u1n
a21 a22 a23 . . . a2n l21 l22 0 ... 0 u22 u23 . . . u2n
0
a31 a32 a33 . . . a3n l31 l32 la33 . . . 0 0 0 u33 . . . u3n
= A = LU (118)
. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
.. . . . . . . . . . . . . . .
an1 an2 an3 . . . ann ln1 ln2 ln3 . . . lnn 0 0 0 . . . unn
Esta es la factorización LU mas simple y uno de los métodos utilizados el mediante el algoritmo de Gauss para en donde utilizaremos los
elementos de la diagonal para transformar los elementos debajo de esta por medio de la resta de las filas de los elementos a eliminar menos la
Curso de métodos numéricos — 121/145
m = amn /dmm
(119)
amn = amn − m ∗ dmm
siendo amn el elemento a eliminar y dmn el elemento de la diagonal qu nos ayudara a realizarlo. El factor m se guardará en la matriz L en la
posición del mismo elemento para el cual se intento eliminar.
Debido a que si existen ceros en la diagonal se deben intercambiar las filas tendremos la nueva igualdad
PA = LU (120)
donde P sera una matriz de permutacı́ón compuesta por una matriz identidad la cual tendrá las filas cambiadas de la misma manera que la
matriz A sinceros en la diagonal.
Una vez obtenida las matrices L y U y sea el sistema (115 ) tendremos los sistemas
Ly = b0
(121)
Ux = y
Programa
Ejemplo
Usando el sistema de ecuaciones de los ejemplos anteriores podemos utilizar el algoritmo para el método LU.
0
a012 a013 a01n
a11 a12 a13 ... a1n a11 ... 11 0 0 ... 0
a21 a22 a23 ... a2n a021 a022 a023 ... 0
a2n 0 12 0 ... 0
0
a032 a033 a03n
a31
a32 a33 ... a3n
a31
... =0
0 13 ... 0 (122)
. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
.. . . . . . . . . . . . . . .
an1 an2 an3 ... ann a0n1 a0n2 a0n3 ... a0nn 0 0 0 ... 1n
Programa
Para implementar el algoritmo de la matriz inversa usaremos el algoritmo descrito en la figura 126.
Ejemplo
Encontraremos la inversa de la matriz A anteriores.
1 2 3 −2.66 2.66 −1
inv 4 5 6 = 3.33 −4.33 2
7 8 8 −1 2 1
Donde
N
PN (x) = ∑ f (xk )LN,k (x) (125)
k=0
N
∏ (x − x j )
j=0, j6=k
LN,k (x) = N
(126)
∏ (xk − x j )
j=0, j6=k
Donde an se obtendrá por medio del método de diferencias divididas obtenidas de la forma
Programa La implementación del código para realizar las diferencias divididas se centrará en utilizar una matriz y sus posiciones para
calcular las diferencias divididas dentro de la misma matriz, la cuál comenzará en una matriz nula llena de ceros.
Curso de métodos numéricos — 127/145
Para utilizar una interpolación de Spline se deberá dividir al los datos obtenido en grupos de 3 para poder trazar una curva suave entre ellos y
concatenar todas estas para lograr una interpolación.
Para que una curva entre tres puntos sea suave debe de cumplir de cumplir las siguientes condiciones para las siguientes dos curvas.
S1 (x) = a1 x2 + a2 x + a3 ;
x0 < x < x1
S
S2 (x) = b1 x2 + b2 x + b3 ; x1 < x < x2
• S1 (x1 ) = S2 (x1 )
• S1 (x1 ) = f (x1 )
• S1 (x0 ) = f (x0 )
• S2 (x2 ) = f (x2 )
Programa
Por lo que la curva de interpolación entre estos tres puntos sera la resolución del sistema de ecuaciones; por lo que tendremos el programa
que hará esto
El programa devolverá la derivada del punto x2 para poder utilizarlo en el siguiente grupo de puntos.Para poder utilizar esto en un grupo
de puntos utilizaremos otra función que controlará el proceso iterativo.
Curso de métodos numéricos — 129/145
Para poder utilizar una interpolación de Spline de grado dos necesitaremos un numero impar de datos para utilizar todos asi que de ser
necesario podemos añadir un dato extra que aunque no sea real nos servira para poder realizar la interpolación ya que no se deberá tomar en
cuenta cualquier valor fuera del intervalo de interpolación.
Una vez realizado el programa se lo probara con datos aleatorios que el programa ordenará para su uso y utilizará en los tres métodos,
tomando la función y=2x tendremos
Obteniendo el resultado que muestra que el método de Lagrange y Newton funcionan de una manera eficiente para una función lineal, sin
embargo la función de Sline al tomar la función a trozos y debido a sus condiciones formara un polinomio que aunque coincide en los datos
datos y se une con una curva suave,no es tan exacto como los dos métodos anteriores.
Ahora probraremos los métodos con una función trigonométrica y=sin(x)con 13 datos en el intervalo de 0 a 6.
Observamos que igual que en el ejemplo anterior el método de Spline por sus condiciones aunque cumple con los datos dados no es una
representación muy exacta de la función deseada, por lo que se optará por observar los resultados ahora con 63 puntos dados desde 0 a 6
obteniendo.
Curso de métodos numéricos — 131/145
Lo cual aunque aumenta considerablemente el esfuerzo en el cálculo muestra que el método de Spline mejora considerablemente,
aunque su exactitud no es tan buena como los métodos de Lagrange y Newton para una función conocida, y depende del número de datos
dados,además de esto se nota que aun existen pequeñas variaciones en la función de interpolación de Spline.
Ahora se puede experimentar con una serie de datos aleatorios y observar las interpolaciones resultantes
Con lo que podemos observar que los métodos de Lagrange y Newton forman una interpolación muy parecida, sin embargo alcanza
valores extremos más elevados en relación al método de Spline mientras mas se acercan a los extremos del intervalo seleccionado, lo cual
puede dar lugar a errores; considerando que fuera del intervalo los métodos de interpolación son serán exactos o precisos.
Para resolver le lado derecho de la ecuación que consta de un aintegral se usara la regla del trapecio con incremento h = (t1 − t0 ) obteniendo
h
y(t1 ) = y(t0 ) + ( f (t0 , y(t0 )) + f (t1 , y(t1 ))))
2
Sin embargo para poder realizar esta operación se necesitará del valor de y1 el cual es exactamente el que deseamos encontrar, par resolver
este problema se encontrará un valor aproximado de este por medio del método de Euler el cual es
Figure 151. Programa para la resolución de ecuaciones diferenciales por el método de Heun
Ejemplo
Para comprobar el funcionamiento del programa se plantea la siguiente ecuación
dy 1 2
= √ e−t
dt 2π
La cual es la ecuación de la distribución normal, aplicando el programa con un paso de h=0.5 y y(0)=0.5 se obtiene el siguiente resultado
Curso de métodos numéricos — 135/145
Figure 152. Solución numérica a la ecuación diferencial de una distribución normal por el método de Heun
Figure 153. Solución real a la ecuación diferencial de una distribución normal por el método de Heun
f 0 (t) = f
f 00 (t) = ft + fy f
f (3) = ftt + 2 fty f + fyy f 2 + fy ( ft + fy f )
(133)
f (4) = ( fttt + 3 ftty f ) + 3 ftyy f 2 + fyyy f 3 ) + fy ( ftt + 2 fty f + fyy f 2 ) + 3( ft + fy f )( fty + fyy f )) + fy2 ( ft + fy f )
!!!!
0 f 00 (yk ) f (3) (yk ) f (4) (yk )
yk+1 = yk + h f (yk ) + h +h +h
2 6 24
Curso de métodos numéricos — 136/145
Hallando ası́ el siguiente punto de la función solución a la ecuación diferencial, al realizar este proceso para todos los puntos desde hasta b
con un paso h se encontrará los puntos correspondientes a la imagen de la función solución.
Programa
El programa del método de Taylor utiliza la función diff() y subs() en conjunto para poder encontrar hasta la cuarta derivada en función de t
y y(t) para poder usarlos en el esquema iterativo antes descrito y asi poder encontrar los puntos de la función con un orden de aproximacion
O(h5 )
Figure 154. Programa para la resolución de ecuaciones diferenciales por el método de Taylor
Ejemplo
Para comprobar el funcionamiento del programa se plantea la siguiente ecuación
dy 1 2
= √ e−t
dt 2π
La cual es la ecuación de la distribución normal, aplicando el programa con un paso de h=0.5 y y(0)=0.5 se obtiene el siguiente resultado
Figure 155. Solución numérica a la ecuación diferencial de una distribución normal por el método de Taylor
Curso de métodos numéricos — 137/145
Figure 156. Solución real a la ecuación diferencial de una distribución normal por el método de Taylor
f 1 = f (tk , yk )
h h
f 2 = f tk + , yk + f1
2 2
h h
f 3 = f tk + , yk + f2 (134)
2 2
f 4 = f (tk + h, yk + h f3 )
h( f1 + 2 f2 + 2 f3 + f4 )
yk+1 = yk +
6
Hallando ası́ el siguiente punto de la función solución a la ecuación diferencial, al realizar este proceso para todos los puntos desde hasta b
con un paso h se encontrará los puntos correspondientes a la imagen de la función solución.
Programa
El programa implementado en Matlab para el método de Runge-Kutta evalué en cada iteración estas condiciones con un paso h dado de la
función en el intervalo [a,b] encontrando el siguiente punto y el cual se evalúa en un siguiente paso para encontrar la siguiente imagen de la
función solución.
Figure 157. Programa para la resolución de ecuaciones diferenciales por el método de Runge-Kutta
Ejemplo
Para comprobar el funcionamiento del programa se plantea la siguiente ecuación
dy 1 2
= √ e−t
dt 2π
Curso de métodos numéricos — 138/145
Figure 158. Solución numérica a la ecuación diferencial de una distribución normal por el método de Runge-Kutta
Figure 159. Solución real a la ecuación diferencial de una distribución normal por el método de Runge-Kutta
La cual es la ecuación de la distribución normal, aplicando el programa con un paso de h=0.5 y y(0)=0.5 se obtiene el siguiente resultado
Curso de métodos numéricos — 139/145
Se observa aunque en una proporción muy pequeña que los métodos de Runge-Kutta y de Taylor presentan una mejor precisión que el
método de Heun, sin embargo la complejidad de calcular estos dos métodos demanda mas recursos computacionales y tiempo de cálculo, por
lo que se debe tomar en cuenta estos aspectos si se quiere aplicar uno mde los métodos en la vida practica
Como se puede observar en la figura (163) la diferencia entre una señal analógica y una señal discreta es justamente su continuidad, sin
embargo una señal análoga que ha sido muestreada y almacenada en una base de datos para poder ser utilizada puede generar una buena señal
digital que la represente.
una señal discreta que se pueda interpretar, por lo tanto debe existir un paso de muestreo de tal tamaño que se pueda obtener un número
representativo de datos, este paso se define como perı́odo de muestra y se determina como
Td
δt = (135)
n
Donde Td y n son el Intervalo a muestrear y n el numero de muestras a tomar, la frecuencia de muestreo se define como:
1
fs = (136)
δt
Y es el número de muestras que se tomarán por cada tiempo de muestreo, ahora el objetivo central será analizar cual serı́a la frecuencia de
muestreo ideal para una determinada señal, el teorema del muestreo establece que si se conoce la frecuencia máxima de una señal el muestreo
se debe de realizar con una frecuencia tres veces mayor a esta, de tal manera que se pueda obtener una señal representativa.
Figure 164. Señal muestreada con una frecuencia tres veces su máxima frecuencia
Para una señal no determinista es decir que no pueda ser representada en el tiempo debido a una fórmula matemática se debe tomar una
frecuencia de muestreo mucho mayor y la frecuencia de muestreo para una señal es del orden de los khz (numero de muestras tomadas por
segundos), mientras más alta la frecuencia de muestreo, mejor la representación de esa señal y por ende mayor calidad de una señal.
Figure 165. Señal muestreada con una frecuencia tres veces su máxima frecuencia
Si se toma ahora por ejemplo un número menor de bits para poder representar una señal el proceso será el mismo sin embargo al tener una
cantidad menor de números que puedan representar nuestra señal el número de datos por el redondeo será mucho mayor, lo que ocasionará
una calidad mucho más baja en nuestra señal y un sonido de audio con ruido por consecuencia de esto.
21. Conclusiones
• Se pueden utilizar varios métodos iterativos para poder alcanzar soluciones aproximadas.
• Las herramientas computacionales como MATLAB pueden ser de gran ayuda al realizar cálculos repetitivos.
• Siempre existirá un margen de error que se debe intentar minimizar.
• Se pueden representar aproximadamente funciones por medio del polinomio de Taylor, lo cual representa una gran ayuda para
funciones complejas o difı́ciles de operar.
• Existen diferentes métodos de resolución de sistemas de ecuaciones lineales, cuyo uso depende de la aplicación que se utilice.
• Si un sistema es inestable pequeños cambios en el sistema pueden producir grandes cambios en la solución; para poder reducir la
estailidad se puede utilizar la descomposicı́on en valores y la pseudo inversa de la matriz de coeficientes sin tomar en cuenta los
valores singulares cercaos a cero,
• Existen sistemas de interpolación para un grupo de puntos dados dentro de un intervalo, cuyo uso dependerá del tipo de datos a
interpolar.
• Los métodos de derivació e integración utilizan ciclos repetitivos con un tamaño de paso que siendo apropiado dan una aproximación
muy cercana a sus valores reales.
• Los métodos de resolución de ecuaciones diferenciales utilizan los valores de la variable independiente y un valor inicial de la variable
dependiente para poder calcular valores siguientes aproximados de la función solución con un paso equidistante
• Los métodos numéricos representan una herramienta muy útil como aplicación en el campo de ciencias e ingenierı́a al momento de
realizar cálculos de complejidad muy alta.
• Los métodos de interpolación pueden ser utilizados para poder convertir una señal digital en una señal análoga para poder ası́ recuperar
datos almacenados digitalmente.
• La conversión análoga digital permite almacenar datos de una señal análoga en el tiempo y digitalizarla para su transmisión.
• El número de bits utilizados para la digitalización de una señal determina la cantidad de niveles de una señal que pueden representarse
digitalmente.
• La frecuencia de muestreo y la cantidad de datos que se toman en el muestreo de una señal determinan la calidad de la señal a
digitalizar, sin embargo un muestreo excesivo de datos de una señal generarı́a datos innecesarios que tomarı́an un cálculo con mayor
complejidad computacional.
References
[1] J. Mathews - K.Fink, Métodos numéricos con MATLAB, Prentice Hall,2000
[2] J. Sánchez - A..Souto, Problemas de Cálculo Numérico para ingenieros con aplicaciones MATLAB, McGraw-Hill ,2005
[3] Dr.P.Medina, SVD
[4] Dr.P.Medina, Sistemas Lineales
[5] Dr.P.Medina, Interpolación
[6] Dr.P.Medina, Derivación e integración
[7] A.Oppenheim - A.Willsky - S. Nawab Señales y sistemas. Pearson Educación (1998).