Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.1 Introducción
En ciencia y tecnología son comunes los problemas para los que no es posible hallar una
solución analítica. Es frecuente entonces reducir el problema a un caso particular, o
simplificar el modelo de modo que pueda ser analizado. Hay, sin embargo, situaciones
en que un modelo simplificado no es apropiado para describir los aspectos que son
importantes en el comportamiento. Se recurre entonces a soluciones numéricas. La
magnitud del trabajo es función de la precisión que se requiere. En los últimos 50 años,
gracias a las computadoras digitales, las posibilidades para utilizar eficientemente los
métodos numéricos han aumentado enormemente; y los puntos de vista con relación a
ellos han ciertamente cambiado.
1 c
x= 2x + 2
3 x
Empezando con la aproximación inicial x ≈ x 0 ≠ 0 , se puede iterar con:
1 c
x n +1 = 2 x n + 2
3 xn
Esta es una aplicación del conocido método de Newton para hallar raíces de una
ecuación no lineal. Por ejemplo, para el caso c = 2 (es decir x 3 = 2 ) y con x 0 = 1 se
obtienen:
1 2
x1 = 2 ⋅1 + 2 = 1.333 y
3 (1)
3
1 2
x2 = 2 ⋅ 1.333 + = 1.263 889
2 2.5
3 (1.333) y=x
2
y así sucesivamente:
x 3 = 1.259 933 493 450 1.5
y = 13 (2 x + 2 / x 2 )
x 4 = 1.259 921 050 018 1
0
Una interpretación geométrica de la 0 0.5 1 1.5 2 2.5 3 x
iteración se muestra en la figura.
Puede en este caso probarse que el proceso converge siempre, para cualquier selección
de x0. Si xn tiene t dígitos correctos, xn+1 tendrá por lo menos 2t –1 dígitos correctos.
Sin embargo, no todos los procesos iterativos funcionan. Por ejemplo, podría escribirse
x n +1 = 2 x n2 , lo que produce resultados alternados y obviamente no converge.
1 xn 1 5 x n −1 1 x n −1 ( x + 5) 1 1
y n + 5 y n −1 = ∫ 0 x+5
dx + ∫ 0 x+5
dx = ∫ 0 x+5
dx = ∫ 0
x n−1 dx =
n
y por lo tanto: yn = 1/n – 5yn-1. Esta expresión podría permitir determinar los sucesivos
yn a partir de un valor inicial, como y0. Sabiendo que:
xn 6
dx = [Ln(x + 5)]0 = Ln ≈ 0.182
1
y0 = ∫
1
0 x+5 5
Se obtienen (en todos los cálculos de este ejemplo se han considerado sólo tres cifras
significativas):
y 0 ≈ 0.182
y1 = 1 − 5 y 0 ≈ 0.090
y 2 = 12 − 5 y1 ≈ 0.050
y 3 = 13 − 5 y 2 ≈ 0.083 ¡Sorprendente que se obtenga y3 > y2 !
y 4 = 14 − 5 y 3 ≈ −0.165 ¡Absurdo!
y 5 = 15 − 5 y 4 ≈ 1.03 L
Los malos resultados se deben a que las aproximaciones y el uso de un número finito de
dígitos introducen errores, que se “propagan” a etapas posteriores del cálculo. La forma
y 7 = 15 (18 − y 8 ) ≈ 0.021
n creciente
1
y 6 = 15 ( 17 − y 7 ) ≈ 0.025 0.5
n decreciente
Y
y así sucesivamente:
0
y5 ≈ 0.028 0 1 2 3 4 5
y4 ≈ 0.034 -0.5
y3 ≈ 0.043
-1
y2 ≈ 0.058 n
y1 ≈ 0.088
y0 ≈ 0.182 ¡Correcto! (a pesar de la errada información inicial)
Sin embargo, no debe creerse que el utilizar fórmulas “al revés” es el remedio para todos
los problemas numéricos. Cualquier proceso que se plantee no será siempre aplicable,
ni en todos los casos el más efectivo.
En primer lugar deben citarse errores en los datos, puesto que ellos son en general
resultado de mediciones o estimaciones imperfectas. Es de esperar que los errores
relativos en los resultados sean del mismo orden de magnitud (o menores) que aquellos
de los datos. Sin embargo, éste no siempre es el caso: se dice entonces que el
problema es “mal condicionado”, es decir, la solución es muy sensible a pequeños
errores en los datos. Dificultades de este tipo pueden también no ser debidas a la
formulación del problema, sino a un mal condicionamiento del método numérico utilizado.
a = 0.1234567 ⋅ 10 0
b = 0.123567 ⋅10 4
c = −b
El esquema siguiente indica como se efectúa la suma en “punto flotante”:
b → 0.1234567 ⋅ 10 4
a → 0.0000123 ⋅10 4 (las cuatro cifras finales se recortan)
a + b → 0.1234690 ⋅10 4
c → −0.1234567 ⋅10 4
(a + b ) + c → 0.0000123 ⋅10 4 = 0.1230000
Esto es válido también para operaciones de otro tipo. Por ejemplo, las raíces de
x + 2bx + c = 0 podrían obtenerse de: x = −b ± b − c .
2 2
Sin embargo el proceso
alternativo (y teóricamente equivalente):
x1 = −b − ( signo b) b 2 − c
c
x2 =
x1
tiene mucho menos acumulación de error, especialmente cuando c es pequeño, porque
evita la resta de dos números del mismo orden de magnitud. Considérese, por ejemplo,
la ecuación: x 2 − 64 x + 1 = 0 . Trabajando con 5 cifras significativas:
2.1 Definiciones
Una matriz Α = (aij), de orden n x m, es un conjunto de números dispuestos en n filas y m
columnas.
a11 a12 a13 .... a1 m
a 21 a 22 a 23 .... a2m
A = a 31 a 32 a 33 .... a3m
.....
a n1 an2 a n3 .... a nm
Un elemento, aij, se identifica por dos sub – índices, el primero de los cuales denota la
fila y el segundo la columna. Si m = 1 se tiene una matriz columna o "vector" de
dimensión n:
b1
b
b = 2
M
b3
1 2 + i 3 − 2i 0
2−i 5 1− i 1+ i
H= i = −1
3 + 2i 1 + i 3 2 − 3i
0 − +
1 i 2 3i 4
es una matriz Hermitiana. Si todos los elementos de una matriz Hermitiana son reales,
es decir a ij = a ji , se tiene una matriz simétrica.
1 −1
−1 2 −1
B= −1 2 −1
− 1 2 − 1
−1 1
Si en una matriz cuadrada todos los elementos por encima (o por debajo) de la diagonal
principal son cero se dice que ésta es una matriz triangular inferior (superior):
En lo que sigue se usan letras negritas para denotar matrices. Para las matrices
columna y para las matrices filas se usan minúsculas, mientras que para las matrices
rectangulares (incluyendo las matrices cuadradas) se usan mayúsculas. En todos los
casos, los elementos de una matriz se indican en minúsculas.
Igualdad. Dos matrices, A, B, del mismo orden, son iguales si cada elemento de una es
igual al correspondiente elemento de la otra. A = B implica a ij = bij para todo i, j.
Suma (resta). La suma (o diferencia) de dos matrices A, B del mismo orden es una
tercera matriz del mismo orden, cuyos elementos se obtienen sumando (restando)
algebraicamente los correspondientes elementos de las dos matrices originales:
∂A ∂aij
=B ⇒ = bij
∂α ∂α
y la integral de una matriz en forma similar.
Multiplicación por un escalar. El producto de una matriz por un escalar es otra matriz
del mismo orden cuyos elementos son los de la matriz original multiplicados por el
escalar:
αA = B ⇒ α a ij = bij
1 4
1 2 3
A = 2 5 A T =
3 6 4 5 6
La transpuesta de una matriz simétrica es obviamente la matriz original. Productos del
tipo A T A resultan siempre en matrices simétricas. Lo mismo puede decirse de
T
productos A SA si S es simétrica.
det A = A = ∑± a
n!
1i a 2 j a 3 k K a nr
Donde cada término de la suma incluye un solo elemento de cada fila y de cada
columna. Si en estos productos se considera a los elementos ordenados por filas 1, 2, ..
n, los índices de las columnas en cada término de la suma pueden ser obtenidos como
permutación del orden normal. Según el número de cambios requeridos para esta
permutación sea par o impar se asigna al producto correspondiente el signo + o -. La
suma incluye las n! permutaciones posibles.
a b a
b
det = det bc = ad − bc
c d 0 d−
a
• En consecuencia, la determinante de una matriz con dos filas (o columnas) iguales (o
proporcionales) es cero. Más aún,si dos o más columnas (filas) de una matriz A son
linealmente dependientes, es decir α1a1+ α2a2+ α3a3+...+ αn-1an-1+ αnan = 0 para un
conjunto de coeficientes αi de los que por lo menos uno es distinto de cero, la
determinante es cero. Se dice entonces que la matriz A es singular. Considérese por
ejemplo el caso:
1 1 0
A = 1 2 1
0 1 1
1 1 0 0
A es singular puesto que: (1)1 + (− 1)2 + (1)1 = 0
0 1 1 0
• La determinante de una matriz triangular es igual al producto de los elementos de su
diagonal principal.
• Para un producto matricial se cumple que:
det (A ⋅ B K C ) = det( A ) ⋅ det( B) K det(C)
A −1 A = AA −1 = I n (A )
−1 −1
=A
−1
Obviamente I n = I n . La inversa de una matriz diagonal es otra matriz diagonal, cuyos
elementos son inversas de los elementos de la matriz original. La inversa de una matriz
triangular (inferior o superior) es otra matriz triangular del mismo tipo.
(AB K C)−1 = C −1 K B −1 A −1
Una matriz Q se denomina ortogonal si: Q Q T = I n . Particularmente, si Q es una matriz
−1
cuadrada se tiene entonces que Q = Q T . Por ejemplo:
cos θ − sen θ
R =
sen θ cos θ
es ortogonal, puesto que:
cos θ sen θ
R −1 = = R T
− sen θ cos θ
.
Refiriéndose a una matriz con coeficientes complejos, U, se dice que ésta es unitaria si
U U* = I
Alternativamente, puede decirse que los vectores son linealmente dependientes si uno
cualquiera de ellos puede expresarse como combinación lineal de los otros:
vr = ∑c v
i≠ r
i i (y linealmente independientes si esto no es posible).
o bien: Ax = b
Muchos métodos frecuentemente utilizados en ingeniería, como por ejemplo los métodos
de elementos finitos para la solución de ecuaciones en derivadas parciales, resultan en
n
∑
1 bi −
xi = u ik x k (2.4b)
u ii
k = i +1
Este proceso se denomina “sustitución inversa”. Análogamente, para un sistema Lx = b,
en el que L es una matriz triangular inferior no singular ( l ii ≠ 0 para todo i), puede
utilizarse una sustitución directa o “reducción”:
b1
x1 = (2.5a)
l11
i −1
∑
1 bi −
xi = l ik x k (2.5b)
lii
k =1
En ambos casos, la solución del sistema requiere n divisiones y 1
2
n (n − 1) operaciones
de multiplicación y suma (casi lo mismo que para multiplicar una matriz triangular por un
vector).
a i(11)
li1 = (1)
(2.7a)
a11
Con ello se obtiene:
(1)
a11 x1 + a12
(1)
x 2 + a13
(1)
x3 + K + a1(n1) x n = b1(1)
( 2)
a 22 x 2 + a 23
( 2)
x3 + K + a 2( 2n) x n = b2( 2)
( 2)
a 32 x 2 + a 33
( 2)
x3 + K + a 3( 2n) x n = b3( 2) (2.7b)
KK
a n( 22) x 2 + a n( 23) x3 + K + a nn
( 2)
x n = bn( 2)
donde
a i(22)
li 2 = ( 2)
a 22
o en notación matricial: Ux = b.
1 2 3 4 x1 2
(1) 1 4 9 16 x 2 10
=
(1) 1 8 27 64 x3 44
(1) 1 16 81 256 x 4 190
Los números indicados a la izquierda (entre paréntesis) son los factores li1 por los que es
necesario multiplicar la ecuación 1 antes de restarla de la ecuación i, para lograr el
objetivo de eliminar x1 de la segunda y las siguientes ecuaciones.
1 2 3 4 x1 2
0 2 6 12 x 2 8
=
(3) 0 6 24 60 x 3 42
(7) 0 14 78 252 x 4 188
Análogamente:
1 2 3 4 x1 2
0 2 6 12 x 2 8
0 =
0 6 24 x3 18
(6) 0 0 36 168 x 4 132
1 2 3 4 x1 2
0 2 6 12 x 2 8
0 =
0 6 24 x3 18
0 0 0 24 x 4 24
finalmente:
24 x 4 = 24 x4 = 1
6 x3 + 24 x 4 = 18 x3 = −1
2 x 2 + 6 x3 + 12 x 4 = 8 x2 = 1
x1 + 2 x 2 + 3 x3 + 4 x 4 = 2 x1 = −1
El proceso antes descrito falla cuando se presenta un pivote, a ii(i ) , igual a cero. Un
ejemplo simple de tal situación es el siguiente:
1 1 1 x1 1
1 1 2 x 2 = 2
1 2 2 x 1
3
La matriz de coeficientes no es singular y el sistema tiene una solución única
x = (1 − 1 1) . Sin embargo, después del primer paso (efectuado en el orden indicado
T
anteriormente), se obtiene:
1 1 1 x1 1
0 0 1 x 2 = 1
0 1 1 x 0
3
y siendo a 22 = 0 , no es posible proseguir como habitualmente. La solución es en este
( 2)
caso obvia: intercambiar las ecuaciones (filas) 2 y 3. En general, si a ii(i ) = 0 , algún otro
(i )
elemento de la misma columna, a ji , debe ser distinto de cero (lo contrario implicaría
una dependencia lineal de por lo menos dos de las ecuaciones, es decir la singularidad
de A). Intercambiando las filas j e i puede entonces continuarse la reducción. Dados los
(i )
elementos a ji de la columna i, es conveniente escoger como pivote aquel de máximo
valor absoluto, puesto que el uso de pivotes pequeños introduce fuertes errores en la
solución. El ejemplo siguiente es ilustrativo:
3 × 10 −11 1 x1 7
=
1 1 x 2 9
Trabajando con 10 cifras significativas se obtiene:
de donde: x2 = 7
x1 = 0
1 1 x1 9
=
3 × 10
−11
1 x 2 7
2.5.3 Descomposición A = LU
Supóngase que A es tal que el proceso de reducción del método de Gauss puede
efectuarse sin necesidad de intercambiar filas o columnas. En tal caso, la
descomposición A = LU donde L es una matriz triangular inferior con l ii = 1 y U es una
matriz triangular superior, es única. Esto puede probarse fácilmente por inducción. Para
el caso del primer ejemplo:
1 2 3 4 1 0 0 0 1 2 3 4
1 4 9 16 1 1 0 0 0 2 6 12
1 8 27 64 = 1 3 1 0 0 0 6 24
1 16 81 256 1 1 0 0 24
7 6 0
1 2 3 4 1 2 3 4
1 4 9 16 1 2 6 12
1 8 27 64 ⇒ 1 3 6 24
1 16 81 256 1 6 24
7
En los casos en los que se efectúan intercambios de filas y/o columnas es siempre
posible (si A no es singular) obtener factores triangulares L y U tales que LU = A’,
Todos los métodos tratados en esta sección pueden considerarse como variantes del
método de Gauss.
1 k −1
l ik =
u kk
ai k −
∑l ip u pk
i = k + 1,⋅ ⋅ ⋅n (2.9b)
p =1
en lugar de efectuar “reducciones” como anteriormente. Esta modificación (Doolitle) es
conveniente cuando se usan calculadoras manuales, ya que evita la escritura de muchos
resultados intermedios. Su uso en computadoras es ventajoso si las operaciones se
hacen con una precisión mayor que aquella con la que se almacenan los resultados.
d ii = u ii
u ij (2.10)
rij = j >i
d ii
Si durante el proceso de reducción se usa la ecuación i para eliminar xi, no sólo de las
ecuaciones que siguen a la i sino también de la ecuaciones precedentes, se tiene el
método de Gauss – Jordan. Para el ejemplo antes considerado:
1 2 3 4 x1 2
1 4 9 16 x 2 10
1 8 27 64 x = 44
3
1 16 81 256 x 190
4
1 2 3 4 x1 2
0 2 6 12 x 2 8
0 6 24 60 x = 42
3
0 14 78 252 x 188
4
1 0 0 4 x1 3
0 2 0 − 12 x 2 − 10
0 =
0 6 24 x3 18
0 0 0 24 x 4 24
1 0 0 0 x1 − 1
0 2 0 0 x 2 2
0 = de donde se obtiene fácilmente la solución.
0 6 0 x 3 − 6
0 0 0 24 x 4 24
El método de Gauss- Jordan es más simple de programar, pero requiere casi 1.5 veces
el número de operaciones del método de Gauss tradicional.
Finalmente, para concluir esta sección, debe mencionarse que el método de Gauss es
aplicable también a sistemas de ecuaciones con coeficientes complejos. Por ejemplo:
2 1 − i 0 x1 4 − 2i
1 + i 2 1 + i x 2 = 8 + 4i
0 1− i 3 x3 11 − 2i
2 1 − i 0 x1 4 − 2i
0 1 1 + i x 2 = 5 + 3i
0 1− i 3 x3 11 − 2i
2 1 − i 0 x1 4 − 2i
0 1 1 + i x 2 = 5 + 3i
0 0 1 x3 3
de donde:
x3 = 3
x 2 = (5 + 3i ) − 3(1 + i ) = 2
x1 = 1
2
[(4 − 2i) − 2(1 − i)] = 1
2.5.5 Inversión de Matrices
-1
Si la inversa, A , de una matriz A se conoce, la solución de un sistema Ax = b puede
-1 -1
escribirse x = A b. Podría entonces parecer conveniente determinar A , en especial si
se tienen varios sistemas de ecuaciones con la misma matriz de coeficientes. Sin
embargo, la solución puede ser obtenida con mucho menos operaciones – y en general
con mucha más precisión – utilizando la descomposición A = LU. La solución de los dos
2
sistemas triangulares Ly = b y Ux = y requiere sólo O(n ) operaciones (por cada
columna de b ó x). Por otro lado, la multiplicación A-1b también demanda O(n2)
1 1 1
A = 2 1 3
3 1 4
En la columna de la izquierda se tienen la matriz A y sus sucesivas modificaciones. A la
derecha se presentan la matriz I y las modificaciones obtenidas efectuando sobre las
filas las mismas operaciones que en A:
1 1 1 1 0 0
2 1 3 0 1 0
3 1 4 0 0 1
1 1 1 1 0 0
0 − 1 1 − 2 1 0
0 − 2 1 − 3 0 1
1 0 2 − 1 1 0
0 1 − 1 2 − 1 0
0 0 − 1 1 − 2 1
1 0 0 1 −3 2
0 1 0 1 1 − 1 = A −1
0 0 1 − 1 2 − 1
Alternativamente, si la descomposición A = LU de una matriz A se conoce, la inversa
-1 -1 -1 2
puede obtenerse de A = U L , también en O(n ) operaciones. Si en los cómputos
-1 -1
para L y U se hacen intercambios de filas, el producto U L resulta la inversa de una
-1 -1
cierta matriz A’. La matriz A puede obtenerse a partir de (A’) intercambiando
columnas en secuencia inversa a los cambios de fila durante el proceso.
Para la matriz antes considerada:
1 1 1 1 0 0 1 1 1
2 1 3 = 2 1 0 0 − 1 1
3 1 4 3 2 1 0 0 − 1
A = LU
La inversa de una matriz triangular es otra matriz del mismo tipo, fácil de determinar.
Para una matriz triangular inferior, L, cada columna de la matriz inversa L-1 puede ser
obtenida por sustitución directa o “reducción”: LY = In.
y ij = 0 i< j (2.11a)
1 0 0 1 1 2
−1
−1
L = − 2 1 0 U = 0 − 1 − 1
1 − 2 1 0 0 − 1
1 −3 2
−1
−1
−1
A =U L = 1 1 − 1
− 1 2 − 1
En otras palabras, la sub – matriz que debe aún reducirse en un paso dado es también
simétrica. Esto puede probarse por inducción, teniendo en cuenta las condiciones
iniciales de simetría y además que:
a ki(i )
a kj(i +1) = a kj(i ) − l ki a ij(i ) = a kj(i ) − a ij(i ) (2.13a)
a ii(i )
a (jii )
a (jki +1) = a (jki ) − l ji a ik( i ) = a (jki ) − a ik( i ) (2.13b)
a ii( i )
5 −4 1 0 x1 0
− 4 6 − 4 1 x 2 1
1 − 4 6 − 4 x = 0
3
0 1 − 4 5 x 0
4
En las sucesivas etapas del proceso de eliminación, las sub matrices que quedan por
reducir siguen siendo simétricas:
5 − 4 1 0 x1 0 x1 8
0 5 − 5
14 16
1 x 2 1 x
2 1 13
0 0 = de donde =
15
− 207 x3 87 x 3 5 12
7
0 0 0 5 76 x 4 7
6 x 4
La simetría de la matriz por reducirse permite hacer: l ki = a ik
(i ) (i )
a ii(i ) (utilizando a ik en
( i +1)
(i )
lugar de a ki ) y restringir los cálculos de: a kj = a kj(i ) − l ki a ij(i ) a las columnas k ≤ j ≤ n ,
en lugar de i ≤ j ≤ n. El número de operaciones para la reducción es entonces
2
O( 1 6 n ) , aproximadamente la mitad que para el caso general.
También los requerimientos de memoria pueden reducirse, almacenando los coeficientes
de la matriz en un arreglo monodimensional. Para el caso de una matriz simétrica de
alta densidad el siguiente esquema de numeración de los coeficientes es apropiado:
1 2 4 7 11 M M
3 5 8 12 M M
6 9 13 M M
10 14 M M
15 M M
M M
1
2
n (n + 1)
aii( k ) > 0 i ≥ 1, k ≤ n
2
a ij( k ) ≤ a ii( k ) a (jjk ) k ≤ i, j ≤ n (2.14)
i −1 2
rii = a ii − ∑ rpi
2
(2.15a)
p =1
1 i −1
rij = aij − ∑ rpi rpj j = i + 1, i + 2,L (2.15b)
rii
p =1
Para el ejemplo anterior se obtiene:
( )
1
r22 = a 22 − r122 2
= 1.6733
r23 = (a 23 − r12 r13 ) r22 = -1.9123
( )
1
( )
1
0
0.5976
y=
0 . 7808
1.2781
y finalmente:
8
1 13
x=
5 12
7
Puede anotarse que R está relacionada con las L y U de Gauss mediante RT= LD;
R = D –1U; donde D = diag ( u11 u 22 L )
u nn .
Los sistemas de ecuaciones en que los coeficientes forman matrices banda son
frecuentes. Tales sistemas se resuelven eficientemente por el método de Gauss y otros
similares, ya que éstos conservan la estructura de banda de las matrices: A = LU:
1 −1 0 0 0 1 0 0 0 0 1 −1 0 0 0
−1 2 −1 0 0 −1 1 0 0 0 0 1 −1 0 0
0 −1 2 −1 0 = 0 −1 1 0 0 0 0 1 −1 0
0 0 −1 2 − 1 0 0 −1 1 0 0 0 0 1 − 1
0 0 0 −1 2 0 0 0 −1 1 0 0 0 0 1
– – –1
Nótese que A 1 = U 1L no es una matriz banda:
5 4 3 2 1
4 4 3 2 1
A −1 = 3 3 3 2 1
2 2 2 2 1
1 1 1 1 1
Particularmente simples de tratar son los sistemas con matrices banda simétricas y
definidas positivas (no se requieren intercambios de filas y/o columnas). Dos posibles
esquemas para almacenar los coeficientes en un arreglo monodimensional son en este
caso:
1 8 15
⋅ 2 9 16
⋅ ⋅ 3 10 17
A= ⋅ ⋅ 4 11 18
⋅ ⋅ 5 12 19
⋅ ⋅ 6 13 ( 20)
⋅ ⋅ 7 (14) ( 21)
Las posiciones tales como 14, 20 y 21 no se usan, pero se requieren para tener un
número fijo de coeficientes en cada codiagonal, lo que facilita la programación. Siendo
el ancho de la semibanda, m, mucho menor que el número de ecuaciones, n, las
posiciones de memoria “perdidas” son despreciables. Este esquema de almacenamiento
(y su variante por filas) es apropiado cuando el ancho de banda es aproximadamente
constante.
a1 b1 x1 c1
b1 a2 b2 x2 c2
x c
3 = 3
b2 a3 b3
(2.16)
O M M
bn − 2 a n−1 bn −1 x n−1 c n −1
bn −1 a n x n c n
a1 b1 1 r1 b1
b1 a2 b2 q1 1 r2 b2
b2 a3 b3 q2 1 r3 b3
=
O O O r4 O
bn − 2 a n −1 bn −1 q n− 2 1 O bn −1
bn −1 a n q n−1 1 rn
Los datos de cada bloque se almacenan en disco. Éstos son leídos a la memoria
principal conforme van siendo utilizados y regrabados en la memoria auxiliar una vez
operados. La solución del sistema de ecuaciones por el método de Gauss (u otro similar)
requiere mantener en memoria principal la información de por lo menos dos bloques en
forma simultánea. Así por ejemplo, durante el proceso de reducción, las ecuaciones del
bloque k deben ser utilizadas para reducir ecuaciones del mismo bloque y de los bloques
sucesivos k+1, k+2, ...., k+n (n en general es pequeña), lo que implica que, estando el
bloque k en memoria, los bloques sucesivos deben ser leídos, parcialmente reducidos, y
regrabados en secuencia. Algo similar ocurre con el proceso de sustitución inversa.
Aunque la magnitud del vector residuo r = b – A x no da una indicación directa del error
en x, es posible utilizar residuos para estimar el error e incluso para corregir la solución.
Esto se discute más adelante.
x p
= ( x1p + x 2p + K )1 / p 1≤ p ≤ ∞ (2.18a)
x 2
= ( x12 + x 22 + K)1 / 2 (norma Euclidiana) (2.18b)
x ∞
= máx x i (máximo valor absoluto) (2.18c)
ax = a x (2.19)
x+y ≤ x + y
La norma de una matriz cuadrada, A , puede ser definida en forma consistente con la
definición de norma de un vector:
Ax
A p
= máx
p
(x ≠ 0 ) (2.20a)
x p
λ máx , λ máx
1/ 2 T
La norma A 2
es donde es el máximo valor característico de A A (ver
capítulo 3). Por otro lado:
n
A ∞
= máx
i ∑j =1
a ij (2.20b)
AB ≤ A B (2.21)
de donde:
δ x = − A −1 δA (x + δ x)
tomando normas:
δ x ≤ A −1 δA x + δx
y dividiendo entre x + δx :
δx δA
≤ Κ (A ) (2.23)
x + δx A
donde K (A ) = A A −1 (2.24)
−1 / 2
es el número de condicionamiento de la matriz A. Dado que A −1 = λ mín , donde
2
λ min T
es el menor valor característico de la matriz A A, puede escribirse:
(
K 2 (A ) = λ máx / λ mín )1/ 2
(2.25)
de donde:
δ x = A −1δb
δ x ≤ A −1 δb
b
y dado que b = A x, lo que implica x ≥
A
se obtiene:
δx δb
≤ K (A ) (2.27)
x b
δ x ≤ 2 ∈ K (A) x (2.28)
La expresión (3) implica que si A y b están dadas con t cifras significativas, el número de
cifras que puede esperarse sean correctas en la solución, s, puede estimarse mediante:
s ≥ t − log 10 [K ( A )] (2.29)
0.659 − 0.563
además: A −1 = 10 6
− 0.913 0.780
de donde A −1 = 0.913 x 106 + 0.780 x 106 = 1.693 x 106
∞
K ∞ (A ) = A ∞
A −1 = 1.572 x 1.693 x 106 = 2.7 x 106
∞
1.441969 1.0040807
A T A =
1.040807 0.751250
Note que en el ejemplo anterior la matriz A no era simétrica, por lo que fue necesario
evaluar los valores característicos de A T A . Si A fuera simétrica, los valores
T
característicos de A A serían exactamente los cuadrados de los valores característicos
de A.
l ki = a ki(i ) / aii(i )
Sin embargo, como resultado de los errores de redondeo, los valores calculados (aquí
indicados en barras) satisfacen:
(i ) (i )
l ki = ( a ki / a ii )(1 + δ1 )
( i +1) (i ) (i )
a kj = ( a kj − l ki a ij (1 + δ 2 ))(1 + δ 3 ) (2.31)
( i +1) (i ) (i )
bk = (b k − l ki b i (1 + δ 4 ))(1 + δ 5 )
( i +1) (i ) (i )
bk = b k − l ki b i + e k(i )
(i ) ( i +1)
ekj(i ) ≤ 3 ∈ .máx a kj , a kj
(2.33)
(i ) ( i +1)
c k(i ) ≤ 3 ∈ .máx b k , b k
(1)
precedentes para escribir a kj en función de los l ki , a ij . (es decir los elementos de las
matrices L y U). Se obtiene así:
r s
∑ e kj(i ) = ∑l
(i )
a kj + ki a ij (2.34a)
i =1 i =1
b k = bk , se
(1)
donde r = min (k-1,j), s = min (k, j). Por otro lado, teniendo en cuenta que
obtiene:
k −1 k
∑ c k(i ) = ∑l
(i )
bk + ki b i (2.34b)
i =1 i =1
A + ∆A = L U
b + ∆b = L y
Los elementos de ∆A son sumatorias de los e kj(i ) ; los elementos de ∆b son sumatorias
(i )
de los c k . Las expresiones (4) dan una medida de estas perturbaciones. Obsérvese
que las expresiones (2.23) y (2.27) son aplicables también en este caso, y un valor de
K ( A ) alto indica que los errores de redondeo tendrán efectos importantes en la
solución.
Por otro lado, las expresiones (2.33) y (2.34) indican que es conveniente limitar el
crecimiento de los a kj(i ) , bk(i ) . Este es el propósito al realizar intercambios de filas y/o
columnas.
máx a ij( k )
gn =
i , j ,k
(2.35)
máx a ij(1)
i, j
teniendo que:
En tal caso, es recomendable equilibrar las ecuaciones. Para las incógnitas deben
seleccionarse escalas que reflejen su importancia relativa. Las ecuaciones deben
multiplicarse por factores D1 tales que:
x = x ( 0 ) + ∆x ( 0 )
y entonces:
A ∆x (0) = r (0)
donde: r ( 0 ) = b − Ax ( 0)
( )
también en O n 2 operaciones. Dado que L y U no son los factores exactos de A , y
además se introducen nuevos errores de redondeo, es necesario iterar:
r (i ) = b − A x (i )
L z (i ) = r ( i ) (2.36)
U ∆x (i ) = z (i )
x ( k +1) = x ( k ) + ∆x ( k )
Pero nada se ganaría si las operaciones se hicieran siempre con el mismo número de
cifras significativas empleadas en los cómputos originales. Si los aij bi xi están dados
con t dígitos, el cómputo de los residuos:
n
ri( k ) = bi − ∑a xj =1
ij
(k )
j
debe hacerse con 2 t dígitos (para minimizar errores de cancelación). Sin embargo, el
almacenamiento de los resultados puede hacerse en precisión simple, es decir, con t
dígitos.
1 ∆x
(1)
κ(A ) ≤ (2.37)
nε x ( 2 )
donde n es el orden del sistema y ∈ es el máximo error relativo de redondeo (al operar
en precisión simple). Si ∆x (1) no es mucho menor que x (1) , o lo que es lo mismo,
si κ(A ) n ε no es mucho menor que 1, el proceso iterativo no es adecuado. En tal caso,
la única alternativa sería operar con mayor precisión en toda la solución.
5 7 3 x1 0.
7 11 2 x2 = − 1
3 2 6 x3 0.
y supóngase que la computadora opera en base 10 con 3 cifras significativas. La
factorización de la matriz de coeficientes, A = L U , resulta en:
Y entonces:
(redondeado a 3 cifras significativas). Este resultado es mejor que x (1) (en este caso el
resultado es exacto, aunque debería decirse que por accidente).
Puede verificarse fácilmente que la matriz A del ejemplo anterior es bien condicionada.
para el cual se obtuvo anteriormente κ(A ) de orden 2 x 106. Supóngase que se opera
en base 10 con 6 cifras significativas:
se pierden cifras significativas en el elemento a22 de esta última matriz al restar dos
números que solo difieren en la última cifra almacenada). De aquí resultan:
(
r (1) = 0.139 ⋅ 10 −6 0.692 ⋅ 10 −6 ) T
∑
1 b −
xi( k +1) = aij x (jk ) (2.38)
aii i
j ≠i
La aproximación es arbitraria; con frecuencia x ( 0) = 0 . Si los xi( k +1) se determinan en el
orden habitual, al determinar xr( k +1) ya se han previamente obtenido las nuevas
aproximaciones x1( k +1) , x2( k +1) L xr( k−1+1) . Sin embargo, en el método de Jacobi no se hace
uso de estas nuevas aproximaciones hasta la iteración siguiente, difiriendo en esto del
método de Gauss - Seidel:
i −1 n
∑ ∑
1 b −
xi( k +1) = aij x (jk +1) − aij x (jk ) (2.39)
aii i
j =1 j = i +1
Nótese que sólo se requiere almacenar las últimas aproximaciones a los xi .
5 −1 −1 0 x1 1
−1 5 0 − 1 x2 2.75
−1 =
0 5 − 1 x3 − 1
0 −1 −1 5 x4 − 2.75
La solución exacta es
0 0 0 0 0
1 0.2 0.55 -0.2 -0.55
2 0.27 0.48 -0.27 -0.48
3 0.242 0.508 -0.242 -0.508
4 0.2532 0.4968 -0.2532 -0.4968
5 0.24872 0.50128 -0.24872 -0.50128
6 0.250512 0.499488 -0.250512 -0.499488
7 0.249795 0.500205 -0.249795 -0.500205
8 0.250082 0.499918 -0.250082 -0.499918
9 0.249967 0.500033 -0.249967 -0.500033
10 0.250013 0.499987 -0.250013 -0.499987
11 0.249995 0.500005 -0.249995 -0.500005
12 0.250002 0.499998 -0.250002 -0.499998
0 0 0 0 0
1 0.2 0.59 -0.16 -0.464
2 0.286 0.5144 -0.2356 -0.49424
3 0.255760 0.502304 -0.247696 -0.499078
4 0.250922 0.500369 -0.249631 -0.499853
5 0.250147 0.500059 -0.249941 -0.499976
6 0.250024 0.500009 -0.249991 -0.499996
7 0.250004 0.500002 -0.249998 -0.499999
8 0.250001 0.500000 -0.250000 -0.500000
9 0.250000 0.500000 -0.250000 -0.500000
i −1 n
∑ ∑a
1 b −
ri( k ) = aij x (jk +1) − x (jk ) (2.40b)
aii i ij
j =1 j =i
0 0 0 0 0
1 0.210000 0.621600 -0.165900 -0.481803
2 0.295197 0.507233 -0.240892 -0.497478
3 0.251172 0.500414 -0.249680 -0.499972
4 0.250096 0.500005 -0.249990 -0.499998
5 0.249998 0.500000 -0.250000 -0.500000
6 0.250000 0.500000 -0.250000 -0.500000
Estos métodos no son necesariamente más precisos que los procesos de eliminación. El
ejemplo al inicio de la sección 2.6 muestra que si el sistema es mal condicionado puede
aceptarse como correcta una solución totalmente equivocada, pero con la que se tiene
un residuo “pequeño”.
x ( k +1) = G x ( k ) + f (2.41)
2 − 1 2 0 0 0 1 0 0 − 12
= + +
−1 2 0 2 − 12 0 0 1 0 0
G = (I + β Ti )
−1
[ (1 − β)I − β Ts ] (2.45)
Por otro lado, dado, que la solución exacta, x , debe cumplir la ecuación (2.41), se tiene
que:
x =G x+f (2.46)
(x ( k +1)
)
− x = G x(k ) − x( ) (2.47a)
de donde:
(x ( k +1)
) ( ) ( )
− x = G x ( k ) − x = G 2 x ( k −1) − x = L = G k +1 x ( 0) − x ( ) (2.47b)
(x ( 0)
)
− x = α1 φ1 + α 2 φ 2 + α 3 φ3 + L + α n φ n
(x (k )
) ( )
− x = G k x ( 0) − x = α1 λk1 φ1 + α 2 λk2 φ2 + α 3 λk3 φ3 + L + α n λkn φ n (2.47c)
(
Lim x (k ) − x = 0 ) (2.48a)
k →∞
g ii = 0
i≠ j j ≠i
y finalmente se concluye que las condiciones para la convergencia son las mismas que
para el método de Jacobi (aunque en general el método de Gauss -Seidel converge más
rápidamente).
Considérese la función:
f (x) = 12 xT A x − xT b (2.51)
d
f (x ( 0) + α z )
dα α=0
f (x ( 0) + α z ) = 12 (x (0) + α z )T A (x ( 0) + α z ) − (x ( 0) + α z )T b
(2.53a)
= 12 α 2 z T A z − α z T r ( 0) + f (x (0) )
de donde:
d
f (x ( 0) + α z ) = −z T r (0)
dα α=0
x (1) = x ( 0) + α 0 r ( 0)
r (k ) = b − A x(k ) (2.54a)
T
r (k ) r (k )
αk = T
(2.54b)
r (k ) A r (k )
x ( k +1) = x ( k ) + α k r ( k ) (2.54c)
x = x ( 0 ) + ∆x
∆x puede expresarse como n vectores linealmente
combinación lineal de
independientes. En particular, si se consideran vectores s 0 , s 1 , s 2 L s n − 2 , s n −1 , que
satisfacen las relaciones de ortogonalidad:
s Ti A s j = ci δ ij
puede escribirse:
x (1) = x (0 ) + α 0 s 0
x ( 2) = x (1) + α 1 s1
LL
x ( k +1) = x ( k ) + α k s k
LL
x = x ( n ) = x ( n −1) + α n −1 s n −1
alternativamente:
n −1
x=x (0)
+ ∑α
k =0
k sk (2.55)
Suponiendo que los vectores s k son conocidos, los coeficientes α k pueden obtenerse
utilizando las relaciones de ortogonalidad ya mencionadas. Dado que:
n −1
r (i ) = b − A x (i ) = A x − x (i ) = ( ) ∑α k A sk (2.56)
k =i
T
premultiplicando por s j se obtiene:
n −1
s Tj r (i ) = ∑α
k =i
k s Tj A s k = 0 si j < i (2.57)
= α j s Tj A s j si j ≥ i
de donde puede escribirse:
s Tj r ( j )
αj = (2.58a)
s Tj A s j
s k +1 = r ( k +1) − β k s k (2.59)
donde:
s Tk A r ( k +1)
βk = (2.60)
s Tk A s k
s Tk A r (´+1)
( )
s Tk +1 A s k = s Tk A r ( k +1) − β k s k = s Tk A r ( k +1) − (s T
k )
A sk = 0
s Tk A s k
As j =
1
αj
(
r ( j −1) − r ( j ) )
y por lo tanto, para j < k :
1 ( k ) T ( j −1) 1 ( k ) T ( j )
s Tk +1 A s j = r r − r r =0
αj αj
Dado x ( 0 ) , determinar r ( 0) = s 0 = b − A x ( 0)
Y luego para k = 0, 1, 2 L n − 1 :
r ( k +1) = r ( k ) − α k q k
T
r ( k +1) q k
T
r ( k +1) r ( k +1)
βk = =−
s Tk q k T
r (k ) r (k )
2 −1 0 0
A = −1 2 − 1 b = 0
0 −1 2 4
Con la aproximación inicial x ( 0) = 0 se obtienen
:
r ( 0) = s 0 = b − A x (0) (0 0 4)
T
q0 = A s0 (0 −4 8)
T
T
α 0 = (r ( 0 ) r ( 0 ) ) (s T0 q 0 ) 1
/2
x (1) = x ( 0 ) + α 0 s 0 (0 0 2)
T
r (1) = r (0 ) − α 0 q 0 (0 2 0)
T
T
β 0 = (r (1) q 0 ) (s T0 q 0 )
1
/4
s1 = r (1) − β0 s 0 (0 2 1)
T
q1 = A s1 (−2 3 0)
T
T 2
α 1 = (r (1) r (1) ) (s1T q 1 ) /3
x ( 2 ) = x (1) + α 1 s 1 (0 43 8 3)
T
r ( 2 ) = r (1) − α 1 q 1 (4 3 0 0)
T
T
β1 = (r ( 2 ) q 1 ) (s1T q 1 ) 4
/9
s 2 = r ( 2 ) − β1 s 1 (4 3 89 4 9)
T
q2 = A s2 ( 16 9 0 0)
T
T
α 2 = (r ( 2 ) r ( 2 ) ) (s T2 q 2 ) 3
/4
x ( 3) = x ( 2 ) + α 2 s 2 (1 2 3)
T
Y luego para k = 0, 1, 2 L n − 1 :
que:
f = r T r = bT b − 2xT A T b + xT A T A x (2.63)
y por lo tanto:
∂f
= −2 AT b + 2 AT A x = 0
∂x
el método de mínimos cuadrados puede formularse como la solución del sistema de
ecuaciones normales:
(A A ) x = A b
T T
(2.64)
1 0 0 1
2
0 1 0
0 1
x
0 1 3
x2 =
−1 1 0 1
x3
0 −1 1 2
1
0 1 1
las ecuaciones normales son en este caso:
x = ( 1.25 3)
T
1.75
Un método alternativo (y numéricamente mejor condicionado) se basa en al
descomposición de la matriz de coeficientes, A , en el producto de una matriz ortogonal,
Q , y una matriz triangular superior, R (en el capítulo relativo a valores y vectores
característicos se describen procedimientos que pueden ser empleados para esto).
Al tenerse A = Q R (2.65)
( )
las ecuaciones normales A A x = A b pueden rescribirse:
T T
A T ( b − Ax ) = 0
R T QT ( b − Q R x ) = 0
(
R T QT b − R x = 0 )
La matriz R no es singular y por tanto:
R x = QT b (2.66)
de donde:
0 0 1.4142 x3 4.2426
y finalmente: x = ( 1.25 3)
T
1.75
3.1. Introducción
El producto de una matriz cuadrada, A, por un vector (matriz columna), x, es otro vector,
cuyas componentes son habitualmente no proporcionales a x. Sin embargo, puede
existir un vector φ no nulo tal que:
Aφ=λφ (3.1a)
Por ejemplo,
2 − 1 1 1
= 1
−1 2 1 1
2 − 1 1 1
= 3
−1 2 − 1 − 1
1 1
en este caso φ1 = y φ 2 = son vectores característicos, a los que corresponden
1 − 1
los valores propios 1 y 3, respectivamente. Otros vectores, no paralelos a los dos antes
mencionados, no cumplen la condición (3.1a):
2 − 11 0
=
−1 2 2 3
0 1
El vector no puede expresarse como un múltiplo de .
3 2
El problema clásico de valores y vectores característicos consiste en la determinación de
los vectores φ y los correspondientes escalares λ para los que se cumple (3.1a). Con
frecuencia se presenta el problema general:
Aφ=λBφ (3.1b)
B-1 A φ = λ φ (3.2)
φ = R-1 z (3.3b)
(R ) A R z = λ z
-1 T -1
(3.3c)
B AB z=Hz=λz
-½ -½
a ij
Donde hij = .
bi b j
Nótese que los valores característicos son los mismos que los del problema original; los
correspondientes vectores característicos se relacionan mediante (3.4b).
(A - λ B ) φ = 0 (3.5a)
Y entonces:
j
Restando (3.6b) de (3.6c) se obtiene: ∑ c (λ
i =1
i s − λ i ) Βφ i = 0
A ( c1 φ 1 + c2 φ 2 + c3 φ 3 + … ) = λ i B ( c1 φ 1 + c2 φ 2 + c3 φ 3 + … )
Teniéndose n vectores característicos linealmente independientes de dimensión n, estos
constituyen una base completa. Cualquier otro vector de tal dimensión puede
expresarse como combinación lineal de los vectores característicos:
v = α1 φ1 + α2 φ2 + α3 φ3 + … + αn φn (3.8)
1 3 1 1 1
= 2 − 2
2 1 − 1
φ s* Αφ r = λ r φ s* Bφ r (3.9a)
φ r* Αφ s = λ s φ r* Bφ s (3.9b)
φ *s Αφ r = λ*s φ *s Bφ r (3.9c)
(λ r )
− λ*s φ *s Bφ r = 0 (3.9d)
Si r=s, al ser B una matriz definida positiva se tendría φ *r Bφ r > 0 . Por lo tanto, siendo
λ r = λ s , se tendría λ r − λ*r = 0 lo que implica que todos los λ son números reales. Si
Por otro lado, si λ r ≠ λ s se tiene que λ r − λ*s ≠ 0 y en consecuencia (3.9d) implica que:
φ *s A φ r = a r δ rs (3.10b)
2 − 1 1
(1 1) =2
−1 2 1
2 − 1 1
(1 − 1) =6
−1 2 − 1
2 − 1 1
(1 1) =0
−1 2 − 1
φ *s B φ r = δ rs (3.11a)
Se dice entonces que los vectores están normalizados respecto a la matriz B. En tal
caso se tiene también:
φ *s A φ r = λ r δ rs (3.11b)
φTi Αφ i
ρ(φ i ) = (3.12)
φTi Bφ i
Esta expresión puede aplicarse también con aproximaciones a los vectores propios. Si x
es una aproximación a un vector característico con un error de orden ε, el cociente de
Rayleigh, ρ(x), aproxima el correspondiente valor característico con un error de orden ε .
2
v v v
λ i = a s1 1 + a s 2 2 + L + a ss + L + a sn n (3.13b)
vs vs vs
y por lo tanto:
λ i − a ss = a s1 + a s 2 + L + 0 + L + a sn
(3.13c)
En consecuencia, cada valor característico λ i está dentro de por lo menos uno de los
círculos con centro en a ss y radio igual a la suma de los valores absolutos de la
correspondiente fila s.
2 − 1
A =
−1 4
que es definida positiva, puede asegurarse que sus valores característicos (que son
números reales) están dentro de los intervalos (1,3) y (3,5). Efectivamente, en este caso
λ =3± 2 .
Aφ=λφ (3.14a)
2
¿Cuáles son los valores característicos de la matriz A = A A?
(AA) φ = A (A φ) = A (λ φ) = λ (A φ)= λ2 φ
k
Este resultado puede extenderse para la matriz A (siendo k un exponente). Los
vectores característicos son los mismos que los de la matriz A, mientras que los
correspondientes valores característicos son λk:
Ak φ = λk φ (3.14b)
Esto es incluso válido para exponentes negativos. Por ejemplo, multiplicando ambos
miembros de (3.15a) por λ A se obtiene:
-1 -1
2 − 1
A =
−1 2
5 − 4
A 2 = AA =
− 4 5
Los métodos que se presentan en esta sección son los más eficientes cuando sólo se
requieren un valor característico y su vector asociado, o en todo caso cuando el número
de valores y vectores característicos por determinar es pequeño.
B x j +1 = A x j (3.15a)
x j +1
x j +1 = (3.15b)
r j +1
donde rj+1 es un escalar que normaliza el vector utilizado en la iteración. Lo habitual es
tomar rj+1 como el elemento de máximo valor absoluto en x j +1 , lo que significa escalar el
vector de aproximación de modo que la mayor componente sea igual a 1..
A x0 = ∑ α Aφ = ∑ α λ B φ
i i i i i (3.16b)
y por lo tanto:
∑ (α λ ) φ
1
x1 = i i i (3.16d)
r1 n
Lim x k = φn (3.17a)
k →∞
Lim rk = λ n (3.17b)
k →∞
Esto es válido aún cuando αn = 0 puesto que, por lo menos al tratar con grandes
matrices, los errores de redondeo (debidos a la aritmética imperfecta del computador)
introducen siempre una componente según φn. La convergencia es muy rápida si
5 −2 0 1 0 0
A = − 2 3 − 1 B = 0 2 0
0 −1 1 0 0 3
Aún cuando en este caso se tienen matrices simétricas, el procedimiento descrito se
aplica a matrices cuadradas cualesquiera.
k xk Ax k x k +1 r k+1 ρ (xk+1)
1.00000
El procedimiento converge al valor característico: φ3 = − 0.25180
0.01623
que corresponde al valor característico de mayor módulo, λ3 = 5.503605.
Para determinar el vector característico asociado al valor propio de menor módulo (el
modo fundamental) puede usarse una "iteración inversa":
A x j +1 = B x j (3.18a)
x j +1
x j +1 = (3.18b)
r j +1
Lim x k = φ1 (3.20a)
k →∞
1
Lim rk = (3.20b)
k →∞ λ1
Para las matrices del caso anterior y considerando, por ejemplo, el vector inicial:
0
x 0 = 1
2
se obtiene el vector asociado al valor característico de menor módulo, es decir, λ1.
Nótese que r es ahora una aproximación de 1 / λ1, mientras que en la iteración directa lo
era de λn. También en este caso se observa que el cociente de Rayleigh es siempre una
mejor aproximación al valor característico.
3.2.3 Traslación
Nótese que el nuevo sistema (3.21b) tiene los mismos vectores característicos que el
sistema original (3.21a) y valores característicos λ i - µ. Desde el punto de vista del
polinomio característico, se ha trasladado el origen:
p(µ ) 150
100
50
0
0 1 2 3 4 5 6 7
µ
-50
1 1
Si µ ≈ λ 1 puede lograrse que: λ 1 − µ >> λ 2 − µ y por tanto: <<
λ1 − µ λ2 − µ ,
con lo que la convergencia mejora en forma apreciable.
4.846 −2 0
A − 0.154 B = − 2 2.692 −1
0 −1 0.538
y por iteración inversa:
k xk Bx k x k +1 r k+1 ρ (xk+1)
0.22129
Se obtienen: λ1 = 0.154 + 0.000624 = 0.154624 y φ1 = 0.53613 .
1.00000
x Tk +1 y k
µ k +1 = µ k + (3.22)
x Tk +1 y k +1
(
y k +1 = x Tk +1 y k +1 )−1
2 y k +1
Lim y k = B φ1 (3.23a)
k →∞
Lim µ k = λ1 (3.23b)
k →∞
La convergencia es cúbica.
v = α1 φ1 + α2 φ2 + α3 φ3 + ... + αn φn (3.24a)
es decir:
Luego es suficiente restar de v los αi φi para obtener un vector que (salvo por la
imprecisión en la aritmética no tiene componentes según los vectores característicos
previamente hallados.
Para el ejemplo antes tratado, suponiendo que se haya obtenido el primer vector
característico:
0.221295029
φ1 = 0.536128843
1.000000000
k xk Bx k x k +1 r k+1 ρ (xk+1)
k α1
0 -1.565 x 10-6
1 -1.580 x 10-5
2 -0.000123
3 -0.000941
4 -0.007188
5 -0.056063
Como estas componentes tienden a crecer más rápidamente que la propia solución, es
necesario eliminarlas cada 4 ó 5 pasos, utilizando el mismo proceso inicial:
7 0.52288
1.00000
-0.39599
0.52288
1
se obtienen: λ 2 = = 1.17511 y φ2 = 1.00000
0.85098 − 0.39599
3.2.5 Deflación
~ ~
Otra alternativa es hacer una deflación, obteniendo un nuevo sistema A φ = λ B φ , de
orden menor, con los mismos valores característicos del problema original, excepto los
previamente determinados. En lo que sigue se aplica esta idea a un problema de la
forma clásica H φ = λ φ .
P = ( p1 p 2 L p n −1 φ1 ) (3.26)
Esta matriz tiene los mismos valores característicos que la matriz original, H . Lo mismo
~
se puede decir de H , excepto por λ1 .
( )
Nótese que P T H P = J Tn −1 L J T2 J 1T H J 1 J 2 L J n −1 , pudiéndose evaluar fácilmente los
sucesivos productos, ya que en cada caso sólo se alteran dos filas y dos columnas.
se tiene:
qk
sk =
q k +1
(3.28c)
x
c k = k +1
q k +1
5 − 1.414214 0
−1 −1
H= B 2 AB 2 = − 1.414214 1 .5 − 0.408248
0 − 0.408248 0.333333
Y para H φ = λ φ pueden obtenerse (por iteración inversa):
Para H φ = λ φ pueden obtenerse (por iteración inversa):
0.11625
φ1 = 0.39827
0.90987
Luego:
q1 = 0.11625 s1 = 0.28019 c1 = 0.95994
q 2 = 0.41489 s 2 = 0.41489 c 2 = 0.90987
q 3 = 1.00000
0.95994 0.28019 0 1 0 0
P = − 0.28019 0.95994 0 0 0.90987 − 0.41489
0 0 1 0 0.414898 0.90987
es decir:
5.48594 − 0.27561 0
P H P = − 0.27561
T
1.19271 0
0 0 0.15462
Nótese el λ 1 en la esquina inferior derecha. Los valores característicos de
~ 5.48594 − 0.27561
H = son λ 2 = 1.1751 y λ 3 = 5.5036 , es decir, iguales a los
− 0.27561 1.19271
restantes valores característicos del problema original. Los correspondientes vectores
resultan:
0.0638 0.9980
z2 = y z3 =
0.9980 − 0.0638
de donde:
−1 z k
φk = B 2P
0
−1
El factor B 2 se requiere para obtener los vectores del problema general en su forma
original.
Los métodos de este grupo son eficientes sólo si se requieren todos o una alta
proporción de los valores y vectores característicos. La idea básica de estos procesos
consiste en hacer un cambio de variables:
φ=Pz (3.29a)
(P AP)z=λ(P BP)z
-1 -1
(3.29b)
Este sistema tiene los mismos valores característicos que el sistema original y vectores
propios relacionados por (3.29a). Si las transformaciones son tales que las nuevas
matrices tienen valores y vectores característicos fáciles de determinar, se ha resuelto
indirectamente el problema original.
a1 z1 b1 z1
a2 b2
z2 = λ z2 (3.30)
O M O M
a n z n bn z n
( Pk A Pk ) φ =λφ
T (k) (k+1) (k+1)
Siendo:
A(k+1) = PkTA(k) Pk (3.32c)
y por tanto:
2 a ij( k ) π
tg 2θ k = 0 ≤ θk ≤ (3.34b)
a ii( k ) − a (jjk ) 4
Sólo los elementos de dos filas y de dos columnas (i, j ) se alteran en cada paso.
En un cierto paso se hacen cero los elementos aij y aji. Sin embargo, las sucesivas
rotaciones reintroducen valores significativos en estas posiciones, por lo que es
necesario repetir el proceso en varios "ciclos" para todos los elementos de fuera de la
diagonal principal. El proceso es convergente. Si en un ciclo dado los cocientes
γ ij =
[a ] (k ) 2
ij
(3.36)
a ii( k ) a (jjk )
Desde un punto de vista teórico sería más eficiente hacer cero los elementos aij en
orden decreciente de los γ ij , definidos por (3.36), pero las comparaciones necesarias
son relativamente lentas. Por eso se prefiere seguir un orden fijo en la selección de los
elementos y efectuar las rotaciones sólo si γ ij es mayor que una tolerancia, variable en
función del número de ciclo, m (por ejemplo 10-2m). La convergencia del proceso se
puede verificar con una medida similar.
Para determinar los vectores característicos es suficiente efectuar el producto de las
matrices Pk ya que:
2 -3 1 0
- 3 6 -3 1
A ( 0) =
1 -3 6 − 3
0 −3 4
1
En el primer paso se hacen cero los coeficientes a12 y a21. En las expresiones
precedentes:
(0)
a11 = 2 a 22
(0)
= 6 a12
(0)
= a 21
(0)
= −3
0.995574 0 - 0.0939783 0
0 1 0 0
P2 =
0.0939783 0 0.995574 0
1
0 0 0
0.317644
11.0269
A (18) =
5.08272
1.57279
-6
No se muestran los coeficientes con valor absoluto menor que 10 . Los coeficientes
(18)
de la diagonal de A son (aproximaciones a) los valores característicos de la matriz
A. Nótese que no se obtienen en orden ascendente o descendente. Las columnas del
producto P1 P2 L P18 son los correspondientes vectores, que se obtienen normalizados:
Φ Φ = I. Esto se comprueba fácilmente, ya que las matrices Pk son todas
T
ortogonales.
El método de Jacobi puede también emplearse para hallar los valores y vectores
característicos de una matriz Hermitiana, H , cuyos coeficientes (en general complejos)
tienen simetría conjugada. En este caso se hacen productos de la forma:
H ( k +1) = U *k H ( k ) U k (3.38)
en los que U k es una matriz unitaria, es decir, tal que U −k 1 = U *k (el superíndice *
denota en este caso la conjugada traspuesta). Para hacer cero el coeficiente hij se
utiliza:
col i col j
1
O
cos φ − e i θ sen φ
Uk =
fila i (3.39)
iθ
e sen φ cos φ fila j
O
1
Suponiendo que:
En lo que sigue se supone que A y B son simétricas y que esta última es definida
positiva (y posiblemente no diagonal). Debe anotarse que si B fuera diagonal sería
más eficiente transformar el problema a la forma clásica.
B(k+1) = PkTB(k) Pk
donde Pk es una matriz similar a la utilizada para el proceso clásico:
col i col j
1
O
αk
Pk = 1
fila i (3.42)
γk 1 fila j
O
1
α y γ se determinan de:
a ij(k +1 ) = a (kji +1 ) = α k a ii(k) + (1 + α k γ k ) a ij( k ) + γ k a (k)
jj = 0
a ij(k)
en el que puede considerase, por ejemplo: αk = 0 γk = (3.44b)
a (k)
jj
Definiendo:
c3 = 1
2
(a (k )
ii b (jjk ) − bii( k ) a (jjk ) )
d = c3 + ( signo c 3 ) c 32 + c1c 2
se obtienen:
c2 c1
γk = − αk = (3.45b)
d d
El radical en la expresión de d es siempre positivo si B es una matriz definida positiva.
Puede observarse que si B fuera la matriz identidad se obtendrían: α k = − γ k = −tg θ .
1 − 1 2 1
A =
B =
−1 1 1 2
Para estas pequeñas matrices con un paso es suficiente:
i=1, j=2
a11 = 1 a22 = 1 a12 = a21 = -1
b11 = 2 b22 = 2 b12 = b21 = 1
c1 = 3 c2 = 3 c3 = 0
d=3 α = - γk =1
1 − 1 1 − 1 1 1 4 0
A(1) = P1TA(0) P1 = =
1 1 − 1 1 − 1 1 0 0
1 − 1 2 1 1 1 2 0
B(1) = P1TB(0) P1 = =
1 1 1 2 − 1 1 0 6
de donde:
λ2 = 4/2 = 2
λ1 = 0/6 = 0
1 1 1 2 0 0.7071 0.4082
Φ = P1 diag (bi ) =
-½
=
− 1 1 0 1 6 − 0.7071 0.4082
La post multiplicación de P1 sólo es necesaria para escalar los vectores de modo que
φ Ti B φ j = δ ij . Al igual que en el procedimiento clásico los valores característicos (y los
correspondientes vectores) no quedan necesariamente ordenados.
3.3.4 El Método QR
es decir si es casi triangular superior, excepto por una codiagonal inferior. Para el caso
particular en que la matriz A es además simétrica (y por lo tanto tridiagonal):
a1 b1
b1 a2 b2
A= b2 a3 b3 (3.47)
b3 a 4 O
O O
el método QR es aún más eficiente, requiriendo tan solo O(12n) por paso.
Debe anotarse además que, a diferencia del método de Jacobi, el método QR mantiene
la posible configuración banda de la matriz y permite efectuar traslaciones (análogas a
las de una iteración inversa), tanto para acelerar la convergencia como para mejorar la
precisión en los valores característicos de interés. El objetivo del proceso conocido
como QR es la determinación de los valores característicos; conocidos estos, los
correspondientes vectores pueden obtenerse por iteración inversa con traslación.
(0)
Considerando A = A, el paso básico del método QR consiste en hacer la
descomposición:
A (k ) = Q k R k (3.48a)
A ( k +1) = R k Q k (3.48b)
Q Tk A ( k ) = R k (3.48c)
y por lo tanto:
A ( k +1) = R k Q k = Q Tk A ( k ) Q k (3.48d)
A (k ) φ (k ) = λ φ (k ) (3.49a)
al efectuar el cambio de variables:
φ ( k ) = Q k φ ( k +1) (3.49b)
se obtiene:
(Q T
kA
(k )
Qk )φ ( k +1)
= λ φ ( k +1) (3.49d)
Ambas matrices tienen los mismos valores característicos (que en consecuencia son
los de la matriz original) y vectores característicos relacionados por (3.49b).
A medida que k crece A ( k ) converge a una matriz triangular superior (cuyos valores
característicos son los elementos de la diagonal principal); para el caso simétrico A ( k )
converge a una matriz diagonal. Los valores característicos se obtienen en orden
descendente; así la aproximación al valor característico de menor módulo se obtiene en
la posición nn de la matriz.
La convergencia del proceso es análoga a la de la iteración inversa. Cuando en pasos
sucesivos se obtienen valores similares en el extremo inferior de la diagonal principal,
puede afirmarse que se tiene una aproximación al primer valor característico. La
convergencia puede acelerarse efectuando traslaciones:
µ k = a nn
(k )
(3.50a)
A ( k +1) = R k Q k − µ k I (3.50b)
Nótese que los valores característicos de esta nueva matriz son iguales a los de la
(k )
matriz original menos la translación. Cuando se logra que a nn = 0 puede hacerse una
traslación:
µ k = a n( k−1) ,n −1 (3.50c)
φ ( 0 ) = Q 1Q 2 Q 3 L (3.51)
pero este proceso es poco eficiente, siendo más conveniente obtener estos vectores
por iteraciones inversas con traslaciones iguales a los valores característicos ya
determinados. Esto permite también mejorar la precisión en los λ .
y por lo tanto:
Q = P21 P31 L Pn ,n −1 (3.52b)
a ii( k )
cos θ =
d
a (jik )
sen θ = (3.53b)
d
d= (a ) + (a )
(k ) 2
ji
(k ) 2
ii
.894427 - .447214 0
P21 = .447214 .894427 0
0 0 1
1 0 0
P32 = 0 .952579 - .304290
0 .304290 .952579
2.236068 2.683281 0.447214
R1 = T T
P32 P21 A ( 0) = 0 3.286332 1.460532
0 0 1.632993
3.200000 1.469694 0
A (1)
= R 1Q1 = R 1 P21 P32 = 1.469694 3.244444 .496904
0 .496904 1.555556
.908739 - .417365 0
P21 = .417365 .908739 0
0 0 1
1 0 0
P32 = 0 .978097 - .208150
0 .208150 .978097
3.521363 2.689686 L
R2 = T T
P32 P21 A (1) = 0 2.387242 .765454
0 0 1.427490
4.322580 .996351 0
A (2)
= R 2 Q 2 = R 2 P21 P32 = .996351 2.281193 .297132
0 .297132 1.396226
Y en el tercer paso:
.974449 - .224610 0
P21 = .224610 .974449 0
0 0 1
1 0 0
P32 = 0 .989134 - .147017
0 .147017 .989134
4.435924 1.483271 .066739
R3 = T T
P32 P21 A ( 2 ) = 0 2.021076 .491663
0 0 1.33850
3.331794 .453953 0
A (3)
− 1.323944 I = .453953 .696375 .196780
0 .196780 0
3.405209 .088938 0
A (4)
= .088938 .678541 - .017396
0 - .017396 - .055581
Se hace entonces una nueva traslación:
µ 4 = -.055581 ⇒ µ = ∑µ k = 1.268362
obteniéndose:
3.463559 .018800 0
A (5)
= .018800 .731767 .000010
0 .000010 - .000413
y nuevamente:
µ 5 = -.000413 ⇒ µ = ∑µ k = 1.267949
obteniéndose:
3.464096 .003973 0
A (6)
= .003973 .732056 0
0 0 0
Se observa ahora que el coeficiente a33 es menor que 10-6, lo que implica que λ1 es
aproximadamente igual a la suma de las traslaciones previamente realizadas.
Conviene luego hacer una traslación igual al resultado obtenido para a22 a fin de
mejorar la precisión para el segundo valor característico:
µ 6 = .732051 ⇒ µ = ∑µ k =2
2.732050 .003973 0
A (6)
− 0.732051 I = .003973 0 0
0 0 - .732051
2.732050 .003973
A (6) =
.003973 0
1.000000 - .000307
P21 = Q 7 =
.000307 1.000000
2.732051 .000840
R 7 = P21
T
A ( 6) =
0 − .000001
2.73205 0
A ( 7 ) =
0 0
Los coeficientes indicados como 0 son menores que 10-6. Los valores característicos
de esta matriz son 0 y 2.732051. Para obtener aquellos de la matriz original deben
sumarse las traslaciones:
λ1 = -0.732051 + 2 = 1.267949
λ2 = 0 + 2 = 2
λ3 = 2.732051 + 2 = 4.732051
La transformación a la forma Hessemberg sólo requiere hacerse una vez. Por lo tanto
las O ( 5
3 )
n 3 que se gastan en la transformación están plenamente justificadas.
Entre los procedimientos que se encuentran en la literatura para efectuar la
transformación, se propone el cambio de variables φ = B φ , con lo que el problema
original Α φ = λ φ se reescribiría como B −1 Α B φ = λ φ o bien H φ = λ φ . En este
caso B −1 Α B = H o, lo que es lo mismo, Α B = B H . En el proceso original de
Hessemberg se usa una matriz B de la forma:
n r
∑ ∑b
1 a ir +
bi ,r +1 = a ik bkr − ik hkr i = r + 2, L n (3.55c)
hr +1,r
k = r +1 k =1
Este procedimiento podría fallar si en algún paso hr +1, r = 0 . El proceso podría
recomenzarse con una primera columna de B diferente, lo que en general evitaría el
error, aunque esto no puede garantizarse. Por otro lado, el procedimiento antes
expuesto no mantiene la posible simetría de la matriz A .
P = I − 2 w wT (3.56)
A ( k +1) = Pk A ( k ) Pk (3.57a)
donde:
Pk = I − θ k w k w Tk
2
θk = (3.57b)
w Tk w k
w k = v k + signo a k( k+)1,k ( )v k e k +1
siendo:
0
M
e k +1 = 1 la columna k + 1 de la matriz identidad (de orden n ).
M
0
Para que el proceso sea más eficiente, debe observarse que al premultiplicar A , cuyas
columnas son a1 a 2 a 3 L , por la matriz P , cada columna se modifica en forma
independiente. Las columnas de A = PA resultan:
( ) (
a j = I − θ k w k w Tk a j = a j − θ k w Tk a j w k ) (3.58a)
( )
ai = a i I − θ k w k w Tk = a i − θ k ( a i w k ) w Tk (3.58b)
4 3 2 1
3 4 3 2
A= =A
(1)
2 3 4 3
1 2 3 4
Transformación de la primera columna a la forma Hessemberg:
0
3
v1 = v1 = 3.74166
2
1
0 0 0
3 1 6.74166
w 1 = v 1 + v 1 e 2 = + 3.74166 = θ1 = 0.03964
2 0 2
1 0 1
1.00000
− 2.02190
θ1 P1 A w 1 =
(1)
0.22681
0.42543
4.00000 - 3.74166 0 0
- 3.74166 8.28571 - 1.30143 - 2.25428
A (2) = P1 A P1 =
(1)
0 - 1.30143 1.07067 0.91128
0 - 2.25428 0.91128 2.64362
Transformación de la segunda columna a la forma Hessemberg:
0
0
v2 = v 2 = 2.60298
− 1.30143
− 2.25428
0 0 0
0 0 0
w 2 = v 2 + v 2 e3 = − 2.60298 = θ 2 = 0.09840
− 1.30143 1 − 3.90441
− 2.25428 0 − 2.25428
4.00000 - 3.74166 0 0
- 3.74166 8.28571 - 1.30143 - 2.25428
P2 A ( 2) =
0 2.60298 - 1.32452 - 2.74510
0 0 - 0.47162 0.53254
0
1
θ 2 P2 A w 2 =
( 2)
1.11774
0.06306
4.00000 - 3.74166 0 0
- 3.74166 8.28571 2.60298 0
H = A ( 3) = P2 A ( 2) P2 =
0 2.60298 3.03959 - 0.22540
0 0 - 0.22540 0.67470
Los dos procesos que se describen en lo que sigue son adecuados para sistemas de
orden grande en el caso en que se requieran muchos vectores característicos.
4 − λ 2 0 0
2 8 − 2λ 2 0
p(λ ) = det
0 2 8 − 2λ 2
0 0 2 4 − λ
= 4 λ − 64 λ + 364 λ − 864 λ + 720 = 0
4 3 2
µ k − µ k −1
µ k +1 = µ k − η p (µ k ) 1≤ η ≤ 2 (3.59)
p (µ k ) − p(µ k −1 )
La evaluación de p (µ ) no requiere tener el polinomio p (λ ) en forma explícita.
donde:
det (L ) = l11 l 22 l 33 l 44 L = 1
det (U ) = u11 u 22 u 33 u 44 L
(3.60b)
2 .5 2 0 0 1 0 0 0 2 .5 2 0 0
2 5 2 0 .800 1 0 0 0 3.4 2 0
A − 1 .5 B = =
0 2 5 2 0 .588 1 0 0 0 3.824 2
0 0 2 2.5 0 0 .523 1 0 0 0 1.454
p (1.5) = 2.5 ⋅ 3.4 ⋅ 3.824 ⋅ 1.454 = 47.25
Análogamente se obtienen:
µk p (µ k ) Número de coeficientes negativos
en la diagonal principal de U
1.5 47.25 0
λ1 2.0 0 0
2.5 -8.75 1
λ2 3.0 0 1
3.5 11.25 2
4.0 16.00 2
4.5 11.25 2
λ3 5.0 0 2
5.5 -8.75 3
λ4 6.0 0 3
6.5 47.25 4
a. Iteración inversa:
AX k +1 = BX k
La matriz A debe factorizarse antes de iniciar las iteraciones. Los vectores X k +1
son más “paralelos” a los primeros p vectores característicos.
A ( k +1) = X Tk +1 A X k +1
B ( k +1) = X Tk +1 B X k +1
Las matrices A ( k +1) y B ( k +1) son cuadradas, simétricas, de orden q .
A ( k +1) Q k +1 = B ( k +1) Q k +1 Λ k +1
Λ k +1 es una matriz diagonal, cuyos coeficientes son los valores característicos del
problema proyectado. Si los X k +1 definen un subespacio que contiene a los p
primeros vectores propios, los p menores valores en Λ k +1 son parte de la solución
buscada.
X k +1 = X k +1 Q k +1
( )
X Tk +1 A X k +1 = Q Tk +1 X Tk +1 A X k +1 Q k +1 = Q Tk +1 A ( k +1) Q k +1 = Λ q
X Tk +1 B X k +1 = Q Tk +1 (X T
k +1 B X k +1 )Q k +1 = Q Tk +1 B ( k +1) Q k +1 = I q
Lim Λ k = diag λ 1 ( λ2 L λp L )
k →∞
Lim X k = diag φ1 ( φ2 L φp L )
k →∞
( k +1)
Habiéndose obtenido en dos ciclos sucesivos los estimados λ p y λ p
(k )
para el mayor
de los valores característicos requeridos, el cociente λ(pk +1) − λ(pk ) λ(pk +1) da una
Aproximación Inicial
b. Iteración inversa:
Yk +1 = B X k
L U Z k +1 = Yk +1
A ( k +1) = Z Tk +1 Yk +1
B ( k +1) = Z Tk +1 B Z k +1
Las matrices A ( k +1) y B ( k +1) son cuadradas, simétricas, de orden q .
(A ( k +1)
)
+ µ B ( k +1) Q k +1 = B ( k +1) Q k +1 Λ k +1
X k +1 = Z k +1 Q k +1
f. Verificación de la convergencia
Ejemplo simple
2 −1 0 0 0
−1 2 −1 0 1
A= B=
0 −1 2 − 1 0
0 0 −1 2 2
En este caso particular la iteración inversa produce en un solo paso el subespacio que
incluye a los dos primeros vectores característicos, ya que dos de los valores
característicos son infinitos. Para hacer más eficiente el proceso debe factorizarse
primero la matriz A :
0 0
0 1
Con la aproximación inicial: X 0 =
0 0
1 0
Se obtiene por iteración inversa:
0 0 0.4 0.6
0 1 0.8 1.2
B X0 = L U X1 = B X 0 X1 =
0 0 1.2 0.8
2 0 1.6 0.4
Proyectando las matrices A y B en el subespacio definido por los vectores X1 :
3 .2 0 .8 5.76 2.24
A (1) = X1T A X1 = B (1) = X1T B X1 =
0 .8 1.2 2.24 1.76
1 α 1 − 0.5
P = =
γ 1 1 1
6.00 0 12 0
P T A P = P T B P =
0 1.20 0 0.96
de donde:
a b 0 0.50 0
Λ = 11 11 =
0 a 22 b2 0 1.25
4.1 Introducción
La primera parte de este capítulo considera el caso en que la raíz, x , es una raíz simple,
es decir, f ′( x ) ≠ 0 . Las dificultades que se presentan en el caso de raíces múltiples se
discuten en la sección 4.6. La sección 4.7 revisa métodos específicos para extraer
“ceros" (raíces) de polinomios.
b0 = 2 -0.5
obteniéndose:
-1
Se han subrayado las cifras correctas. Puede observarse que la convergencia es lenta.
f ( x ) = f ( x 0 ) + ( x − x 0 ) f ′( x 0 ) + 12 ( x − x 0 ) f ′′( x 0 ) + L = 0
2
f(x)
0.5
0.25
0 x
1.75 x i +1 2 xi 2.25
-0.25
f ( x) = x p − c = 0
f ' ( x) = p x p −1
Con el método de Newton:
1 2
Para obtener la raíz cúbica de 2 se tendría: xi +1 =
2 x i + 2
3 xi
e iniciando los cálculos con x 0 = 1 :
i xi ε i = xi − x
0 1 -0.259921
1 1.333 0.073412
2 1.2638889 0.003968
3 1.2599334934 1.244 ⋅ 10 −5
4 1.25992105001778 1.229 ⋅ 10 −10
Puede observarse que la convergencia es muy rápida. Sin embargo este no siempre es
el caso. Considérese, por ejemplo, la ecuación:
f ( x ) = 2 − x − ctg ( x ) = 0
para la que f ′( x) = −1 + cos ec 2 (x )
0 = f ( x ) = f ( x n ) + ( x − x n ) ⋅ f ′( x n ) +
1
(x − x n )2 ⋅ f ′′(η ) η en intervalo ( x, x )
2
Dividiendo entre f ′( x n ) (que se supone distinto de cero):
f (x n ) 2 f ′′(η )
+ ( x − x n ) = x − x n+1 = − 12 (x − x n )
f ′( x n ) f ′( x n )
1 f ′′ (η ) 2
∴ ε n +1 = εn
2 f ′ (x n )
Esto es válido sólo si f ′(x ) ≠ 0 , es decir si la raíz es simple. El caso de raíces múltiples
se revisa más adelante. El proceso converge cuando ε n +1 < ε n , es decir si:
ε 0 f ′′ f ′ < 1 . Si la raíz es simple y la aproximación inicial es adecuada, la convergencia
del método de Newton es cuadrática.
Con el método de Newton pueden también obtenerse raíces complejas. Esto requiere
que la aproximación inicial sea un número complejo. Por ejemplo, si:
f ( x) = x 2 + 1 = 0
se tendría:
f (xi ) 1 1
xi +1 = xi − = xi . −
f ′( xi ) 2 xi
i xi
0 1+ i
1 0.25 + 0.75 i
2 − 0.075 + 0.975 i
3 0.0017 + 0.9968 i
4 − 0.000005 + 1.000004 i
Si en x n +1 = x n −
f ( xn )
la derivada f ′( x n ) se aproxima por
( f n − f n−1 ) , donde
fn
f ′( x n ) (xn − x n−1 )
denota f ( x n ) , se tiene el método de la Secante:
x n +1 = x n + hn
(xn − x n−1 )
hn = − f n Se supone que f n ≠ f n −1
( f n − f n−1 )
Para cada punto, n, solo debe evaluarse una función, f n , mientras que el método de
Newton requiere también la evaluación de f n′ .
Es importante hacer notar que NO es conveniente rescribir estas expresiones en la
forma:
(xn−1 ⋅ f n − x n ⋅ f n−1 )
xn+1 =
( f n − f n−1 )
ya que con esta última expresión pueden introducirse fuertes errores numéricos cuando
x n ≈ x n −1 y f n ⋅ f n −1 > 0 .
1 2. 0.090703 0.066
ε n +1 = ε n +
(ε n )
f ′( x ) + 12 ε n2 f ′′( x ) + K (ε n − ε n −1 )
=
(ε n − ε n −1 ) f ′( x ) + 12 (ε n − ε n −1 )2 f ′′( x ) + L
( )
= ε n + ε n f ′( x ) + 12 ε n2 f ′′( x ) + K ( f ′( x ) + 1
2
(ε n + ε n−1 ) f ′′( x ) + K)
1
2
f ′′( x )
∴ε n +1 ≈ 12 ε n ε n −1
f ′( x )
donde se obtiene: β
2
= β +1→ β = 1
2
(1 + 5 ) = 1.618K Es decir, la convergencia del
método de la secante es entre lineal y cuadrática.
f ( x) = (2 − x) tg x − 1 = 0
es equivalente a ctg x = ( 2 − x) . En este caso podría iterarse con ctg x n +1 = 2 − x n o, lo
que es lo mismo, x n +1 = arc ctg (2 − x n ) . Sin embargo, la iteración escrita al revés, es
decir x n +1 = 2 − ctg x n , no funciona.
y(x)
n xn
0. 2
0
1 0.464
1.5
2 0.577
3 0.6125
1
4 0.6245
5 0.6286
2-x
0.5
6 0.6301 ctg x
...
0 x
10 0.6308017
-0.5 0 0.5 1 1.5 2 2.5
...
-0.5
20 0.630812760
ctg x −
ε n +1
( )
+ O ε 2n +1 = (2 − x ) − ε n
sen 2 x
y siendo x la solución exacta, ésta satisface idénticamente la ecuación: ctg x = ( 2 − x ) ;
de donde se concluye que:
( )
ε n +1 ≈ sen 2 x ε n ≈ 13 ε n
n xn
0 0.6
1 0.538
2 0.325
3 0.965
4 2.69
5 4.01
f (x n ) = f (x ) + (x n − x ) f ′(x ) + 1
2
(xn − x )2 f ′′(x ) + K
Para x n ≈ x puede escribirse:
f (x n )
xn − x ≈
f ′(x )
Si el error en la evaluación de f ( x n ) es de O(δ ) ( δ depende de la precisión de la
computadora y es independiente de x ) el error en la aproximación de la raíz x n − x es
δ δ
de O . Entonces, si f ′(x ) es muy pequeño se tiene que >> δ y se dice
f ′(x ) f ′(x )
que la raíz x está mal condicionada.
f ′( x ) = f ′′( x ) = K f (m −1) ( x ) = 0 .
En tal caso:
1
δ ⋅ m! m
x n − x = O (m )
f (x )
El exponente 1 m implica que las raíces múltiples son en general mal condicionadas.
( )
1 2
x n − x = O 12 ⋅ 10 −8 ⋅ 22 2 = ⋅ 10 − 4 = 0.7071K10 −4
2
es decir, cualquier valor en el rango: 0,99992929 ≤ x ≤ 1,00007071 sería aceptado como
exacto, pudiéndose tener un error relativo de orden 10 −5 .
p(x)
1
Raíz bien
condicionada
0.5
0 x
0 1 2 3 4 5
-1
1 a 10 1 a 10
11 10.85
12 12.38 ± 0.11i
13
14 14.37 ± 0.72i
15
16 16.57 ± 0.88i
17
18 18.67 ± 0.35i
19
20 20
Este ejemplo es particularmente mal condicionado, pero son frecuentes las dificultades
análogas al evaluar los ceros (es decir, las raíces) de polinomios. La evaluación de las
raíces de un polinomio es un problema numérico que debe evitarse, a menos que los
datos iniciales hayan sido los coeficientes del polinomio en forma explícita.
1 f ′′(x ) 2
ε n+1 = ε n
2 f ′(x )
tiene convergencia lineal cuando la raíz es múltiple. Para una raíz de multiplicidad m :
ε n +1 = (1 − 1
m
) ε n + O ( ε 2n )
El método de Newton modificado:
f (x n )
x n +1 = x n − m
f ′( x n )
f ′′( x n )
u ′( x n ) = 1 − u (x n )
f ′(x n )
u (x n )
x n +1 = x n −
u ′(x n )
Pero nótese que esto es poco efectivo cuando la raíz es simple, puesto que se requiere
evaluar una función adicional, f ′′( x n ) .
En esta sección se revisan algunos de los muchos métodos específicos para evaluar las
raíces (ceros) de polinomios: ρ(x ) = x n + a1 x n −1 + a 2 x n − 2 + K + a n −1 x + a n = 0
(x − α 1 )(x − α 2 )(x − α 3 )K (x − α n ) = 0
Es frecuente subestimar las dificultades que se presentan en problemas de este tipo.
Los métodos mencionados en los acápites anteriores (Newton, secante y otros) son
también aquí aplicables, aunque pueden ser poco eficientes.
Este es un proceso "clásico", que en general resulta poco apropiado, porque se obtiene
primero la raíz de mayor módulo.
Por tanto:
t p = c1α 1p + c 2 α 2p + K + c n α np
tρ
Lim = αn
ρ →∞ t ρ−1
.
Esto es análogo a una iteración directa para determinar un valor propio de una matriz.
También aquí la convergencia es lenta cuando α n ≈ α n −1 . El proceso converge a αn,
aún cuando c n = 0 (gracias a los errores de redondeo). El inconveniente principal de
este método es que extrae primero la raíz de mayor módulo y la "deflación" con esta raíz
(que no es exacta) puede introducir errores importantes en las otras raíces.
Con t 0 = t1 = t 2 = 0 y t 3 = 1 se obtienen:
tk
k tk ≈αn
t k −1
4 2.0 2.0
5 2.75 1.375
6 3.25 1.1818
7 4.3125 1.3269
8 6.7500 1.5652
9 10.9844 1.6273
10 17.0469 1.5519
...
15 125.113 1.5104
16 188.240 1.5046
...
19 632.809 1.4986
20 949497 1.5004
Este es un proceso que puede ser empleado para mejorar el condicionamiento de las
raíces, pero es inadecuado para completar la extracción de las mismas.
Dado: p1 ( x ) = x n + a1 x n −1 + a 2 x n − 2 + K + a n −1 x + a n = 0
O bien: p1 ( x) = ( x − α 1 )(x − α 2 )(x − α 3 )K ( x − α n ) = 0 .
Puede formarse un nuevo polinomio
φ (x ) = (− 1)n p1 ( x ) p1 (− x ) = ( x 2 − α 1 2 ) ( x 2 − α 2 2 ) ( x 2 − α 3 2 ) L ( x 2 − α n 2 ) .
Como φ(x ) solo contiene potencias pares de x , se puede definir:
p 2 (x ) = φ ( x )= (x − α 1
2
) (x − α 2 ) (x − α 3 )K( x − α n )
2 2 2
los coeficientes a1
(r+1) ( r +1)
, a2 , a 3( r +1) L de p 2 m (x ) resultan:
min(n − i ,i )
( )
a i( r +1) = (−1) n −i a i(r )
2
+2 ∑ (− 1) j
a i(+r )j a i(−r )j
j =1
Y para m (o r ) suficientemente grande, puede escribirse:
(r ) a 2(r ) a k(r )
α ≈ a1
m
α ≈ m
K α ≈ m
a1(r ) a k( r−)1
1 2 k
Estas expresiones permiten, en teoría, determinar los valores absolutos de las raíces.
Los signos deben obtenerse por sustitución en el polinomio original p ( x ) = 0 .
r m a1 a2 a3
0 1 -6. 11. -6.
1 2 -14. 49. -36.
2 4 -98. 1393. -1296.
3 8 -6818.2 1.6864 x 106 -1.6796 x 106
4 16 -4.3112 x 107 2.8212 x 1012 -2.8212 x 1012
....
2.8212 ⋅ 1012
α 216 ≈ = 6.5438 ⋅ 10 4
4.3112 ⋅ 10 7
[
H ( x k ) = (n − 1) (n − 1)( p ′( x k ) ) − n p ( x k ) p ′′( x k )
2
]
Como en otros casos, debe considerarse el signo que evita la cancelación, es decir,
aquel para el que x k +1 − x k resulta lo más pequeño posible.
xk p (x k ) p ′(x k ) p ′′( x k ) H (x k )
0 40320 -109584 236248 5.499492E+10
0.937418 369.916 -6836.714 31394.812 1.639940E+09
0.999940 0.302 -5041.569 26140.729 1.245010E+09
1.000000
Aunque este método puede ser usado también para extraer raíces complejas, en ese
caso no puede garantizarse la convergencia. Si se tuvieran pares de raíces complejas,
( )
ρ ( x ) = x 2 + rx + s ⋅ q(x , r , s ) + xF (r , s ) + G (r , s ) .
dF dG
de donde, con la notación Fr = L Gs = , se tiene:
dr ds
G ⋅ Fs − F ⋅ G s
rn +1 = rn −
Fr G s − Fs G r rn , sn
G ⋅ Fr − F ⋅ G r
s n +1 = s n −
Fr G s − Fs G r rn , sn
( )
q + x 2 + rx + s ⋅ q s + ( xFs + G s ) = 0
El siguiente ejemplo ilustra un paso del proceso. Supóngase que se tiene el polinomio:
p( x ) = x 4 − 5 x 3 + 14 x 2 − 25 x + 25 = 0
y un factor aproximado x 2 − 4 x + 4 (es decir ro = −4 , s 0 = +4 ). Dividiendo p ( x ) entre
este factor (utilizando el procedimiento de Ruffini) se obtiene:
p (x ) 1 -5 14 -25 25
− r0 = 4 4 -4 24
− s 0 = −4 -4 4 -24
q(x) 1 -1 6 3 1
-xq(x) -1 1 -6 0
4 -4 -12
-4 4 12
-1 -3 -14 12
-q(x) -1 1 -6
4 -4
-4 4
-1 -3 -2
y de estos resultados:
w = Fr ⋅ G s − Fs ⋅ G r = 64
r1 = −4 −
(1)(− 3) − (3)(− 2) = −4.0469
64
s1 = 4 −
(1)(− 14) − (3)(12) = 4.7813
64
es decir: x 2 + r1 x + s1 = x 2 − 4.0469 x + 4.7813
Fs = −3.0938 G s = −0.5803
Este proceso tiene algunas similitudes con el método de iteración inversa para hallar
vectores característicos. Converge a la raíz de menor módulo (lo que es beneficioso
para una "deflación" adecuada; véase la sección 4.7.6) y permite efectuar translaciones
para acelerar la convergencia. Es probablemente el mejor de los métodos para extraer
raíces de polinomios (pero en algunos casos no es el más eficiente). El algoritmo tiene 3
etapas:
n
a. Dado el polinomio p ( x) = ∑ax
i =0
i
n −i
con a o = 1, a n ≠ 0 , se determina:
n
(0 )
h ( x) = p ′( x) = ∑ (n − i ) a x
i =0
i
n −i −1
1 (k ) h ( k ) ( 0)
h (k +1) ( x) = h ( x) − p ( x) k = 0, 1, 2 L
x p ( 0)
A medida que k crece, las razones entre los coeficientes de h (k ) ( x) y aquellos de
h (k +1) ( x) tienden a hacerse constantes e iguales a la raíz de menor módulo:
h ( k ) ( 0)
α 1 ≈ (k +1)
h ( 0)
b. En una segunda etapa, con una “translación” fija s 0 ≈ r1 , se determinan:
1 (k ) h (k ) ( s 0 )
h (k +1) ( x) = h ( x) − p( x)
(x − s 0 ) p(s 0 )
c. Y finalmente se refina la aproximación con translaciones variables en cada paso:
h (k −1) (s k )
s k +1 = s k + ≈ r1
h (k ) (s k )
1 (k ) h (k ) ( s k +1 )
h (k +1) ( x) = h ( x) − p ( x)
(x − s k +1 ) p( s k +1 )
p(x ) = ( x − α 1 ) ( x − α 2 )m 2 ( x − α 3 )m 3 K = 0
m1
∑ c ( ) (x − α )
p ( x)
h (0 ) ( x ) = i
0
donde ci(0 ) = mi . Puede probarse por inducción que los sucesivos polinomios
h (1) ( x ) h ( 2) (x ) h (3) (x )L son también polinomios de grado n − 1 . Supóngase que:
∑ c(
p ( x)
h (k −1) ( x) = k −1)
i
(x − α i )
(k −1) h (k −1) ( s k )
Entonces: h (k ) ( x) =
1
h ( x) − p ( x )
(x − s k ) p(s k )
p( s k )
∑c( k −1)
∑c( k −1)
1 p( x) p( x)
= −
(x − s k ) i
(x − α i ) p( s k ) i
(s k − α i )
ci(k −1)
∑ (α ∑ c ( ) (x − α )
p( x) p( x)
= = k
i − s k ) ( x − αi )
i
i
Esta expresión puede también usarse para determinar las translaciones más adecuadas:
h (k −1) ( s k )
w (k ) ( s k )
s k +1 = s k + (k ) = s k − (k )
h (s k ) w′ ( s k )
donde:
p ( x)
w (k ) ( x) = (k )
h ( x)
1 (k −1) h (k −1) ( s k )
h (k ) ( s k ) = h ( x ) − p ( x)
(x − s k ) p( s k ) x = sk
w (k ) ( s k )
s k +1 = s k −
w′ ( k ) ( s k )
w′′ (k ) (α 1 ) 2
ε k +1 ≈ 1
εk
w ′ ( k ) (α 1 )
2
p ( x)
w (k ) ( x) =
h ( k ) ( x)
p ( x)
h (k ) ( x) = ci(k ) + g ( x) p ( x)
(x − α 1 )
1
Para x ≈ α1 se tiene: >> g ( x) y por lo tanto:
( x − α1 )
p ( x) (x − α1 )
w (k ) ( x) = (k ) = (k )
h ( x) c1 + g ( x)( x − α 1 )
puede aproximarse por:
[
w ( k ) ( x) = ( x − α 1 ) (c1( k ) ) −1 − g ( x) (x − α1 ) (c1( k ) ) −2 K ]
de donde:
ε k = (β ε k −1 K) ε 2k −1
γ
de donde ε k +1 = ε 3k ⋅ ε −k 1−1 y considerando ε k +1 = C ⋅ ε k se obtiene finalmente γ = 2.62 .
El orden de convergencia es superior al del método de Newton.
h (0 ) ( x) = p ′( x) = 2 x − 2
1 (0 ) h ( 0 ) ( 0)
h (1) ( x) = h ( x ) − p ( x) = 2 x − 2
x p ( 0)
y es evidente que, si se continuara con el proceso, h (n ) ( x ) = 2 x − 2 Es decir, en un paso
se tiene convergencia. Esto se debe a que en realidad se tiene una sola raíz con
multiplicidad 2.
h (k −1) ( s ) −2
α1 = s + (k ) = 0+ =1
h ( s) −2
x2 x1 x0 h( s k −1 ) sk h( s k ) p( s k )
1 p ( x) 1. -3. 2.
2 h (0 ) ( x) = p ′( x) 2. -3. 0. -3. 2.
Sin embargo, a medida que se calculan las raíces éstas no pueden obtenerse en forma
exacta y la deflación con una raíz que es solo aproximada produce un polinomio q(x) que
está afectado por esos errores.
Considérese, por ejemplo, x 2 − 101x + 100 = 0 , cuyas raíces exactas son α 1 = 1, α 2 = 100.
Si se obtiene primero la raíz α 2 (aquella de mayor módulo) con un 0,1% de error:
α 2 ≈ 100.1, la deflación produce:
En conclusión, los errores introducidos por la deflación son menores si las raíces se
determinan en orden ascendente de valores absolutos.
Sin embargo, en la mayor parte de los casos prácticos será necesario iterar. Muchos de
los métodos antes descritos para resolver una ecuación no lineal pueden generalizarse
para resolver sistemas de ecuaciones no lineales:
f i ( x1 , x2 , x3 , K xn ) = 0 i = 1,2,3, K n
f (x) = 0
Iteración directa
xi
(k +1)
( (k ) (k )
= g i x1 , x 2 , x3 , K x n
(k ) (k )
)
o bien con
xi
(k +1)
(
= g i x1
(k +1)
, x2
(k +1)
, K x i(+k1) , K x n
(k )
)
Estos son los equivalentes no lineales de los métodos de Jacobi y Gauss – Seidel.
x = 12 sen ( x + y )
y = 12 cos ( x − y )
Puede iterarse con:
x ( k +1) = 12 sen ( x ( k ) + y ( k ) )
y ( k +1) = 12 cos ( x ( k +1) − y ( k ) )
Obteniéndose (con la aproximación inicial x ( 0 ) = y ( 0 ) = 0 ):
k x (k ) y (k )
1 0 0.5
2 0.239 712 729 0.483 158 048
3 0.330 770 125 0.494 205 706
4 0.367 265 691 0.495 976 965
5 0.379 977 102 0.496 639 778
...
10 0.386 424 387 0.496 949 307
...
20 0.386 450 795 0.496 950 555
Método de Newton
(
f (x (k +1) ) ≈ f (x (k ) ) + D (x (k ) ) x (k +1) − x (k ) = 0 )
En la sección 4.7.4 se presentó una aplicación de estas ideas. El proceso converge si
x (k ) es suficientemente cercano a la solución exacta x , lo que es relativamente fácil
f 1 ( x, y ) = 0
f 2 ( x, y ) = 0
puede escribirse:
∂f 1 ∂f 1
f 1 ∂x ∂y
x ( k +1) − x ( k ) 0
+ ∂f ∂f 2 ( k +1) =
f 2 2 − y 0
(k )
y
∂ x ∂y
expresión en la que f 1 , f 2 y sus derivadas se calculan con la aproximación x ( k ) , y ( k ) .
Luego se obtienen:
∂f 2 ∂f
x ( k +1) x ( k ) 1 f 1 − f2 1
∂y ∂y
( k +1) = ( k ) −
y y d − f ∂ f ∂f 1
2
+ f
1 ∂x 2
∂x
∂f 1 ∂f 2 ∂f1 ∂f 2
siendo d = det ( D) = − .
∂x ∂y ∂y ∂x
Considérese, por ejemplo:
f 1 ( x, y ) = x 2 + y − 1 = 0
f 2 ( x, y ) = ( x − 1) 2 + ( y − 0.5) 2 − 1 = 0
Estas ecuaciones tienen dos soluciones:
r1 = (0.125 122 549 762, 0.984 344 347 550)
r2 = (1.215 146 790 092, − 0.476 581 721 472)
k x (k ) y (k ) f1 f2
0 0.000000 0.000000 -1.000000 0.250000
1 -0.375000 1.000000 0.140625 1.140625
2 0.125000 1.234375 0.250000 0.304932
3 0.095595 0.991726 0.000865 0.059743
4 0.125088 0.985223 0.000870 0.000912
5 0.125122 0.984344 0.000000 0.000001
6 0.125123 0.984344 0.000000 0.000000
Con otras aproximaciones iniciales, como por ejemplo (1,0) ó (1,−1) , se obtiene r2
x ( k +1) = x ( k ) − α k ∇F = x ( k ) − 2α k D T f
Aproximaciones
La evaluación de los n 2 coeficientes de la matriz D ( x (k ) ) , es decir:
d ij = ∂ f i ∂ x j
puede requerir demasiadas operaciones, por lo que es común volver a evaluar D solo
cada cierto número, m , de pasos (y no en cada paso). Se tiene así el método de
Newton - Raphson modificado:
( )
f (x (k ) ) + D (x ( p ) ) x (k +1) − x (k ) = 0 k = p, p + 1, K p + m .
δ fi f i ( x + h j e j ) − f i ( x)
d ij = ( x) ≈
δ xj hj
donde e j es la columna j de la matriz identidad de orden n , y los h j ≠ 0 son
(k −1) − x (k ) (esto es el método de la secante, que da un
arbitrarios, por ejemplo: h j = x j j
orden de convergencia de aproximadamente 1.6). Si en cambio se toma h j = f j ( x (k ) )
se obtiene una generalización del método de Steffensen.
lo que permite utilizar muchos de los procesos para resolver sistemas de ecuaciones
diferenciales ordinarias descritos en el capítulo 6. Por ejemplo, pueden considerarse
δf δx δf
=D ∆α = ∆x ∆α = ∆ f
δx δα δα
y entonces:
D( x ( k ) ) ⋅ ∆ x ( k ) = ∆ f ( k )
x (k +1) = x (k ) + ∆x (k )
Este es el método de Euler, un proceso simple pero no siempre adecuado.
∆2 f k = ∆ f k +1 − ∆ f k = f k + 2 − 2 f k +1 + f k
∆n f k = ∆n −1 f k +1 − ∆n −1 f k
n
i n
∆n f k = ∑ (− 1) i f
i =0
k + n −i
n n!
donde: =
i i!(n − i )!
Una tabla de diferencias es un arreglo de la forma:
k fk ∆f k ∆2 f k ∆3 f k ∆4 f k ∆5 f k ∆6 f k ∆7 f k
0 0 0 0 0 1 -5 15 -35
1 0 0 0 1 -4 10 -20 35
2 0 0 1 -3 6 -10 15
3 0 1 -2 3 -4 5
4 1 -1 1 -1 1
5 0 0 0 0
6 0 0 0
7 0 0
8 0
Las diferencias finitas tienen ciertas propiedades análogas a las derivadas. Así por
ejemplo:
∆ (c1u k + c 2 v k ) = c1 ∆u k + c 2 ∆v k
∆ (u k v k ) = u k ∆v k + v k +1 ∆u k
u v k ∆u k − u k ∆v k
∆ k =
vk v k v k +1
n −1 n −1
∑ u i ∆v i = ( u n v n − u 0 v 0 ) − ∑∆(u v i i +1 )
i =0 i =0
∇ n f k = ∇ n −1 f k − ∇ n −1 f k −1
y diferencias centrales:
δ f k = f k+ 1 − f k− 1
2 2
δ f k = δ f k + 1 − δ f k − 1 = f k +1 − 2 f k + f k −1
2
2 2
.....
δ n f k = δ n −1 f k + 1 − δ n −1 f k − 1
2 2
Y en general:
∆n f k = ∇ n f k + n = δ n f k + n
2
[ x0 , x1 ] − [ x1 , x 2 ]
[ x 0 , x1 , x 2 ] =
x0 − x 2
...
[ x 0 , x1 , L x n −1 ] − [ x1 , x 2 , L x n ]
[ x 0 , x1 , x 2 , L x n ] =
x0 − x n
Por ejemplo:
k xk fk [x k , x k +1 ] L
0 0 -5 6 2 1 0 0
1 1 1 12 6 1 0
2 3 25 30 11 1
3 4 55 63 15
4 6 181 108
5 7 289
Para el caso de puntos con espaciamiento uniforme, h , las diferencias divididas pueden
relacionarse con diferencias finitas hacia delante:
∆n f i
[ x i , xi +1 , x i + 2 , L x i + n ] =
n! h n
Si f (x) es un polinomio de grado n , las diferencias finitas (de cualquier tipo) de orden
n + 1 o superior obtenidas con los f k = f ( x k ) son cero. En el ejemplo anterior f ( x) es
un polinomio de tercer grado.
xn f ( xk )
0 1.000 000
0.1 0.995 004
0.2 0.980 067
0.3 0.955 336
0.4 0.921 061
0.5 0.877 582
Y se requiere calcular f (0.25) . Para ello, f ( x) puede aproximarse localmente por una
función más simple, g ( x) , tal que g ( x k ) = f ( x k ) . El caso más común es aquel en que
g ( x) es un polinomio, pero también son frecuentes las aproximaciones con funciones
trigonométricas, por ejemplo:
f ( x k + αh) ≈ f k + α ∆f k + 12 α (α − 1) ∆2 f k =
(α − 1) (α − 2) α (α − 1)
= f k + α (2 − α ) f k +1 + f k +2
2 2
f ( x) = f 0 + [x 0 , x1 ]( x − x 0 ) + [x 0 , x1 , x 2 ]( x − x 0 ) ( x − x1 ) +
+ [x 0 , x1 , x 2 , x3 ] ( x − x 0 ) ( x − x1 ) ( x − x 2 ) + L
Esta última expresión es válida también para puntos con espaciamiento no uniforme.
f (0.25) = 0.980067 + (−0.247301) (0.25 − 0.2) + (−0.477270) (0.25 − 0.2) (0.25 − 0.3) +
+ (0.060908) (0.25 − 0.2) (0.25 − 0.3) (0.25 − 0.4) + L = 0.968914
f ( x k + αh) = f k + α δ f k + 1 + 12 α (α − 1) δ 2 f k + 16 α (α − 1) (α + 1) δ 3 f k + 1 + L
2 2
f ( x k + αh) = f k + α δ f k − 1 + 12 α (α + 1) δ 2 f k + 16 α (α − 1) (α + 1) δ 3 f k − 1 + L
2 2
Estas son las fórmulas de Gauss. Promediando las dos expresiones se obtiene la
fórmula de Stirling:
α + α δ 2 f + α (α − 1) δ 3 f
2 2
f ( x k + αh ) = f k + δ
k+1
f + δ f k−1 k k+1
+ δ 3 f k − 1 + L
2 2 2 2 12 2 2
Esta fórmula es más adecuada para análisis teóricos que para el cómputo práctico. El
polinomio de interpolación se obtiene como:
m
p( x) = ∑ g ( x) ⋅ f
i =0
i i
j =0 i −x ) j
j ≠i
Nótese que g i ( x j ) = δ ij .
( x − 0) ( x − 3) 1
g 1 ( x) = = 2 (− x 2 + 3 x)
(1 − 0) (1 − 3)
( x − 0) ( x − 1) 1 2
g 2 ( x) = = ( x − x)
(3 − 0) (3 − 1) 6
2
p( x) = ∑ g ( x) ⋅ f
i =0
i i = 2x 2 + 4x − 5
p (i ) ( x j ) = f (i ) ( x j ) i = 0,1, K m
j = 0,1, K n − 1
La interpolación de una función cuando una o más de sus derivadas son conocidas en
cada punto se llama interpolación de Hermite. p(x ) puede obtenerse utilizando la fórmula
de Newton con diferencias divididas y considerando que:
f ( x1 ) − f ( x 0 )
[x0 , x 0 ] = xLim = f ′( x 0 )
→x
1 0 (x1 − x0 )
f ′( x 0 ) − [x 0 , x1 ]
[x0 , x0 , x1 ] =
(x0 − x1 )
También podrían usarse las expresiones de Lagrange, considerando primero puntos a
una distancia pequeña, ε , y luego identificando a las derivadas con los límites de
diversas expresiones para ε → 0 .
v −v θ 2(v A − v B ) θ A + θ B
p (x ) = v A + θ A (x − 0 ) + B 2 A − A ( x − 0 ) + + (x − 0 ) (x − L )
2 2
3 2
L L L L
( ) ( )
p( x) = 1 − 3ξ 2 + 2ξ 3 v A + 3ξ 2 − 2ξ 3 v B + ξ (1 − ξ ) θ A L − ξ 2 (1 − ξ )θ B L donde ξ =
2 x
L
.
1. 1.76
2. 0.41
3. -0.16
4. -0.32
x ≈ 2.37
n
(x − x r )
donde g xi ( x) = ∏ (x
r =0 i − xr )
y expresiones similares en las direcciones y, z .
r ≠i
D C B
P
β ∆y
E O A
α ∆x
∆y
F G H
∆x
donde:
a1 = 12 α (α − 1) b1 = 12 β (β − 1)
a2 = 1 − α 2 b2 = 1 − β 2
a 3 = 12 α (α + 1) b3 = 12 β (β + 1)
Sin embargo, en muchos casos es necesario trabajar con mallas no regulares, como la
mostrada en la figura siguiente. Las diferencias finitas no son entonces la herramienta
más adecuada. El concepto de elementos finitos es útil y permite un tratamiento más
simple. La región en estudio se divide en subregiones o elementos, conectados en un
número finito de nudos con los elementos adyacentes.
∑ N ( x, y , z ) = 1
i =0
i
1 x x y y
N i ( x, y ) = 1 + i 1 + i
i = 1,2,3,4
4 a a b b
Y Y
4 3 4 7 3
b b
8 6
X X
b b
1 2 1 5 2
a a a a
1 x x y y x x y y
Ni = 1 + i 1 + i i + i − 1 i = 1,2,3,4
4 a a b b a a b b
Ni = 1− 1 + y i y i = 5,7
2 a b b
xi x y
2
1
Ni = 1 + 1 − i = 6,8
2 a a b
L1 + L2 + L3 = 1 .
∑i =1
Li x i = x ∑L y
i =1
j j =y
Para un elemento con 3 nudos, el valor de una función, f ( x, y ) , puede obtenerse por
interpolación lineal de los tres valores nodales f 1 , f 2 , f 3 :
3
f ( x, y ) = ∑L f
i =1
i i 3
es decir, N i ( x, y ) = Li ( x, y ) .
En forma similar, para un elemento con 6 nudos 2
(nudos adicionales al centro de cada lado), f ( x, y )
puede obtenerse por interpolación cuadrática de
los valores nodales. 1
N i = Li (2 Li − 1) i = 1,2,3
N 4 = 4 L1 L2 3
N 5 = 4 L2 L3
5
N 6 = 4 L3 L1
6
(Los elementos triangulares de mayor orden son en 2
general poco útiles). Pueden escribirse fácilmente
expresiones análogas para los correspondientes 4
elementos tridimensionales. 1
Ni = 1
8
( 1 + ξ i ξ )( 1 + η iη )( 1 + ς i ς )( ξ i ξ + η iη + ς i ς − 2 ) i = 1, L8
N i = g (ξ , ξ i ) g (η , η i ) g (ς , ς i ) i = 9, L 20
donde: g( ξ ,ξi ) = 1
2
(1 + ξ ξi ) si ξ i = ±1
g( ξ ,ξi ) = 1 − ξ ( 2
) si ξ i = 0 .
Las coordenadas x, y, z pueden asociarse con las ξ , η , ς usando las mismas funciones
de interpolación:
20
x= ∑ N ( ξ ,η , ς ) x
i =1
i i
20
y= ∑ N ( ξ ,η , ς ) y
i =1
i i
20
z= ∑ N ( ξ ,η , ς ) z
i =1
i i
Nótese que también es posible hacer mapeos con las coordenadas de área.
5.3. Derivación
Dados f 1 ≈ f ( x1 ), f 2 ≈ f ( x 2 ) K f n ≈ f ( x n ) puede obtenerse una aproximación, g (x) , a la
función f (x) , tal que g ( x i ) = f ( x i ) para i = 1,2, K n . Este es el problema de interpolación
considerado en la sección 5.2. Entonces, las derivadas de f (x) podrían aproximarse,
localmente, por aquellas de g (x) . Sin embargo, debe tenerse presente que pequeños
errores en los valores de la función pueden amplificarse enormemente al calcular las
derivadas. A mayor orden de la derivada, mayores son las probabilidades de errores de
cancelación.
f ( x i ± h) = f ( x i ) ± h f ′( x i ) + 12 h 2 f ′′( x i ) ± 16 h 3 f ′′′( x i ) + K
hf ′( x i ) = f ( x i + h) − f ( x i ) − 12 h 2 f ′′( x i ) − K
Pero las expresiones más simples son las más frecuentemente utilizadas.
Igualmente, f ′′(x ) puede ser aproximada por diferencias finitas de segundo orden:
f ′′( x i ) = f i′′=
f i +1 − 2 f i + f i −1
h2
( )
+ O h2 = δ 2 fi + O h2 ( )
Por ejemplo, para la función de la tabla precedente:
0.995004 − 2 (0.980067) + 0.955336
f ′′(0.2) ≈ ≈ −0.97925
(0.1) 2
y las derivadas de orden superior pueden ser aproximadas por las correspondientes
diferencias finitas.
∆m f i
≈
(m)
Por ejemplo: fi
hm
δmf
≈ mi
(m)
fi
h
∂ 2u ∂ 2u
∇ 2u = +
∂x2 ∂ y2
en un punto de coordenadas xi , y j puede aproximarse por:
ui +1, j − 2ui , j + ui −1, j ui , j +1 − 2u , j + ui , j +1
∇52uij = +
h2 h2
con un error de O h 2 ( )
Nótese que en ∇ 2 u y ∇ 52 u ij el símbolo ∇ no es el operador para
diferencias hacia atrás.
∂f ∂x ∂y ∂z ∂f
∂ξ ∂ξ ∂ξ ∂ξ
∂x
∂f ∂x ∂y ∂z ∂f
= ∂y
∂η ∂η ∂η ∂η
∂f ∂x ∂y ∂z ∂f
∂ς ∂ς ∂ς ∂ς ∂z
∂f ∂f ∂f
O en notación más compacta: =J . Los elementos de la matriz J y de se
∂x ∂r ∂r
obtienen con expresiones e la forma:
∂x
n
∂Ni
∂ξ
= ∑
i =1
∂ξ
xi
M
∂z n
∂Ni
∂η
= ∑
i =1
∂η
zi
dx dy dz = det( J ) ⋅ d ξ d η d ς
lo que facilita enormemente las integrales, ya que los límites de integración son en cada
caso −1 y +1 .
y n + k + a1 y n + k −1 + K + a j y n + k − j + K + a k y n = 0
p(r ) = r k + a1 r k −1 + a 2 r k − 2 + K + a k −1 r + a k = 0 .
y j = c1 r1 j + c 2 r2 j + c3 r3 j + K c k rk j
Lo cual puede probarse por simple sustitución. Si en cambio se tiene una raíz de
j
multiplicidad m , deben considerarse términos q ( j ) r , donde q ( j ) es un polinomio de
orden m − 1 . En cualquier caso la solución tiene k constantes independientes.
( )
Tn = c1 e +iθ
n
( )
+ c 2 e −iθ
n
= c1 e inθ + c 2 e −inθ . Con las condiciones iniciales T0 ( x ) = 1 ,
T1 ( x ) = x = cos θ se obtienen c1 = c 2 = 1
2
y finalmente Tn ( x) = 12 e inθ + 12 e − inθ = cos nθ ,
donde θ = arc cos x .
∫ a
f ( x) dx
(x1 − x0 ) [ f ( x0 ) + f ( x1 )]
x1
∫ x0
f ( x) dx ≈ 1
2
∫ f ( x) dx = ( x1 ) + K
IV
x0 3 90
∫ x0
f ( x) dx =
3
∫1 x
≈ 1
2
y en forma similar
h T (h )
0.5 1.610846
0.25 1.609552
0.125 1.609446
( f 0 + 3 f1 + 3 f 2 + f 3 ) + O h 7( )
x3 3h
∫ x0
f ( x) dx =
8
y la regla de Bode:
(7 f 0 + 32 f1 + 12 f 2 + 32 f 3 + 7 f 4 ) + O h 9 ( )
x4 2h
∫ x0
f ( x) dx =
45
También pueden obtenerse fórmulas que utilizan puntos uniformemente espaciados pero
no incluyen los valores de la función en uno o en los dos límites de la integral. Estas son
las fórmulas de Newton - Cotes de intervalo abierto. Por ejemplo:
3h
( f1 + f 2 ) + O h 3 ( )
x3
∫ x0
f ( x) dx =
2
4h
(2 f1 − f 2 + 2 f 3 ) + O h 5 ( )
x4
∫ x0
f ( x) dx =
3
Si T (h ) es la aproximación de
b
∫a
f ( x) dx obtenida de la aplicación de la regla de los
y entonces:
4T (h) − T (2h) b
3
= ∫ a
f ( x) dx + a 2 h 4 + a 3 h 6 + K
( )
O h 4 , menor que el de T (h ) o T (2h ) . En forma similar, para la regla de Simpson:
b
S ( h) = ∫ a
f ( x) dx + a 2 h 4 + a 3 h 6 + a 4 h 8 + K
b
S ( 2h) = ∫ a
f ( x) dx + a 2 (2h) 4 + a 3 (2h) 6 + a 4 (2h) 8 + K
y entonces:
Obsérvese que estos resultados coinciden con los obtenidos de la regla de Simpson.
∆i = 2
2 j −1
j
2
4
hj = j ∑ f (a + i h )
i =1
j T1, j
∆i = 2
0 4. 2.4
1 2. 0.333 333 1.866 667
2 1. 0.75 1.683 333
3 0.5 1.574 603 1.628 968
4 0.25 3.199 689 1.614 406
5 0.125 6.427 862 1.610 686
∫ f (x )dx ≈ c f (x ) + c f (x 2 ) + c 3 f (x 3 ) + L + c m f (x m )
b
1 1 2
a
f (x ) dx ≈ w1 f (x1 ) + w2 f (x 2 ) + w3 f (x 3 )
b
∫a
Esta expresión será exacta si f ( x) es un polinomio de grado igual o menor que 5 (es
decir, 2(3)-1) ¿Cuáles deben ser las abscisas x1 , x 2 , x 3 ? Esto se considera brevemente
en lo que sigue. g ( x ) = (x − x1 )(x − x 2 )( x − x3 ) , cuyas raíces son
El polinomio
precisamente las abscisas de integración, es de tercer grado. En consecuencia la
integración:
b
∫a
g ( x) dx = w1 g ( x1 ) + w2 g ( x 2 ) + w3 g ( x3 ) = 0
∫a
x g ( x) d x = w1 x1 g ( x1 ) + w2 x 2 g ( x 2 ) + w3 x 3 g ( x 3 ) = 0
∫a
x 2 g ( x) d x = w1 x12 g ( x1 ) + w2 x 22 g ( x 2 ) + w3 x32 g ( x3 ) = 0
Es decir, x1 , x 2 , x 3 son los 3 ceros del polinomio g ( x ) que satisface las condiciones de
ortogonalidad:
b
∫ g ( x) dx = 0
a
b
∫ x g ( x) dx = 0
a
b
∫ x g ( x) dx = 0
2
a
∫a ∫ −1
y en tal caso las abscisas z i son los ceros del polinomio que satisface las condiciones:
∫−1
P3 ( z ) dz = 0
+1
∫−1
z P3 ( z ) dz = 0
+1
∫−1
z 2 P3 ( z ) dz = 0
1 z 0.
2 1
2
(3z − 1)
2 ± 0.57735 K
3 1
2
(5z − 3z )
3 0., ± 0.77459 K
4 1
8
(35z − 30 z
4 2
+3 ) ± 0.33998 K , ± 0.86113K
5 1
8
(63z − 70 z
5 3
+ 15 z ) 0., ± 0.53846 K , ± 0.90617 K
∫ F ( z)dz = w F ( z ) + w F ( z ) + K + w
−1
1 1 2 2 m F (zm ) = 0
zi wi
0. 0.56888 88888 88889
±0.53846 93101 05683K 0.47862 86704 99366
±0.90617 98459 38664 K 0.23692 68850 56189
[ ]
b
∫ f ( x) dx =
a
1
2 (b − a) w1 f ( x1 ) + w2 f ( x 2 ) + K + wm f ( x m )
donde:
xi = 12 (b − a) z i + 12 (b + a)
x i = ( z i + 3) / 2 y se tiene:
1
Véase: "Handbook of Mathematical Functions".- M. Abramowitz e I.A. Segun, editores. Dover Publications
Inc., N.Y. 1965
∑ w f ( x ) = 0.6931474 .
2
y finalmente ∫1
1
x
dx ≈ 12 (2 − 1)
i =1
i i
Fórmula de Radau:
n −1
+1
2
∫ −1
f ( x)dx ≈ 2 f (−1) +
n
∑ w f (x )
i =1
i i
(Pn−1 ( x) + Pn ( x)) (1 − xi )
Las abscisas son los ceros de y los pesos: wi =
(1 + x ) (nPn −1 ( xi )) 2
Fórmula de Lobatto:
+1 n −1
∫ f ( x)dx ≈
2
[ f (1) + f (− 1)] + ∑ w f (x )
n(n − 1)
i i
−1
i =1
∫ 0
e − x f ( x)dx ≈ ∑ w f (x )
i =1
i i
∑ f (x )
f ( x)
∫ −1
1− x2
dx ≈
n i =1
i
∫∫ f ( x, y ) dx dy ≈ ∑ ∫
i =1
wi f ( x i , y ) dy ≈ ∑∑ w w
i =1 j =1
i j f ( xi , y j )
6.1. Introducción
En muchos problemas de ciencia e ingeniería se plantean ecuaciones diferenciales
ordinarias (EDO). Por ejemplo, y ′ = f ( x, y ) con la condición inicial y (a ) = c . No
siempre es factible hallar una solución analítica de tales ecuaciones. En este capítulo se
revisan procedimientos numéricos de solución de EDO basados en la aproximación de
los operadores de derivación por diferencias finitas. Tales procedimientos son también
aplicables cuando se tienen sistemas de ecuaciones diferenciales de primer orden, como
por ejemplo:
y& = f (t , y ) (6.1a)
e incluso ecuaciones de orden superior: y ′′′ = f ( x, y , y ′, y ′′) , que con algunos cambios
de variables pueden siempre convertirse en un sistema de ecuaciones diferenciales de
primer orden. Así:
y ′′ = x 2 − y ′ − z 2 y (0 ) = 0 y ′(0) = 1
con condiciones iniciales y
z ′′ = x + z ′ + y 3 z (0 ) = 1 z ′(0 ) = 0
es equivalente a:
u′ = x 2 − u − z 2 y (0 ) = 0
v′ = x + v + y 3 z (0 ) = 1
con condiciones iniciales
y′ = u u (0 ) = 1
z′ = v v(0 ) = 0
Este es el método más simple para resolver EDO de primer orden y ′ = f ( x, y ) con
y (a) = c . El intervalo entre a y b se divide en subintervalos habitualmente iguales, de
longitud h , de modo que x n = a + n h . Haciendo y 0 = c se determinan sucesivamente
y1 y 2 y 3 y 4 L que son aproximaciones a los valores exactos
y ( x1 ) y ( x 2 ) y ( x 3 ) y ( x 4 ) L Para ello y ′( x i ) se aproxima por ∆y i h = ( y i +1 − y i ) h , de
donde resulta la fórmula de recursión:
Este método es aplicable en situaciones en las que f podría ser una función bastante
complicada, o podría ser el resultado de operaciones y decisiones no expresables por
una simple fórmula, pero se presenta aquí un caso muy simple, con propósitos
didácticos.
y ( x) ≈ [2 y ( x, h) − y ( x,2h)] + O h 2 ( )
Esta expresión sería correcta para una extrapolación pasiva, es decir la que se hace
para mejorar algunos resultados y típicamente no en cada paso. En cambio, una
extrapolación activa, sería aquella que se realiza en cada paso, utilizándose los valores
así mejorados en los sucesivos pasos del proceso. En ciertos casos la extrapolación
pasiva puede ser más conveniente, por ser numéricamente más estable. Para el
ejemplo anterior, con extrapolación pasiva se obtiene:
y ( x n +1 ) = y ( x n ) + h y ′( x n ) + 12 h 2 y ′′( x n ) + L
Se tiene que:
y ( x n +1 ) − y ( x n ) = h f ( x n , y ( x n )) + O h 2 ( )
Remplazando en la primera expresión:
ε n +1 − ε n = h [ f ( x n , y n ) − f ( x n , y ( x n ))] + O h 2 ( )
∂f
Pero: f ( x n , y n ) = f ( x n , y ( x n )) + ( y n − y ( x n )) +L
∂y x = xn
y = y ( xn )
De donde:
∂f
ε n+1 ≈ ε n 1 + h
∂y x = xn
y =α
∂f
Si h es suficientemente pequeño y es negativa el método de Euler es adecuado.
∂y x = xn
y =α
k xk y( xk ) yk εk
0 0 0 0 0
1 0.01 0.0001 0 -0.0001
2 0.02 0.0004 0.0012 0.0008
3 0.03 0.0009 -0.0064 -0.0073
4 0.04 0.0016 0.0672 0.0656
5 0.05 0.0025 -0.5880 -0.5905
Estos métodos son, como el método de Euler, de paso simple. Es decir, sólo se requiere
conocer y n para determinar y n +1 . Las fórmulas de Runge – Kutta requieren evaluar
f ( x, y ) en diversos puntos apropiadamente ubicados en el intervalo [xn , xn +1 = xn + h ] ,
ponderándose los resultados de modo de obtener un error de truncación del mayor orden
posible.
yˆ = y n + α h f ( x n , y n )
y n +1 = y n + β h f ( x n , y n ) + γ h f ( x n + α h, yˆ )
Siendo
f ( x n + α h, yˆ ) = f ( x n , y n ) + α h
∂f
∂x x = xn
+ ( yˆ − y n )
∂f
∂y x = xn
+ O h2( )
y = yn y = yn
y n +1 = y n +
h
[ f ( x n , y n ) + f ( x n + h, yˆ )]
2
Puede anotarse que si f no fuera función de y este método equivale a evaluar la
integral:
xn +1
y n +1 = y n + ∫ xn
y ′( x) dx
El método de Ralston:
k1 = f ( x n , y n )
k 2 = f (x n + 34 h, y n + 34 k1 h )
y n +1 = y n + h ( 13 k1 + 23 k 2 )
[ f ( xn ) + 4 f ( xn + 12 h) + f ( xn + h)]
xn +1 h
y n +1 − y n = ∫ xn
y ′( x) dx ≈
6
Como ejemplo de aplicación de este método, considérese la ecuación diferencial:
1
y ′ = ( x + y) 2
Una alternativa más conveniente sería aprovechar los resultados parciales al usar un
proceso de orden m para determinar otra con un proceso de orden m + 1 . Por ejemplo,
en el procedimiento de Runge - Kutta Cash – Karp se emplean las fórmulas de cuarto
orden (global):
y n +1 = y n + h ( 378
37
k1 + 250
621
k3 + 125
594
k 4 + 1771
512
k6 )
y n +1 = y n + h ( 272825 k +
648 1
18 575
48 384
k3 + 13525
55 296
k 4 + 14277 k + 14 k 6 )
336 5
Este es el método explícito del punto medio (en inglés conocido como leapfrog), un
método de doble paso, puesto que la expresión para obtener y n +1 requiere y n −1 e y n .
Algunas ventajas y desventajas de los métodos de pasos múltiples con relación a los
métodos de un solo paso pueden citarse:
Entre los métodos de paso múltiple que se encuentran en la literatura están los métodos
explícitos de Adams – Bashfort:
y n +1 = y n + h (β1 f n + β 2 f n −1 + β 3 f n − 2 + L + β k +1 f n − k )
y n +1 − y n = h ( f n + 12 ∇f n + 125 ∇ 2 f n + 83 ∇ 3 f n + L) (A-B)
y n +1 − y n = h ( f n +1 − 12 ∇f n +1 − 121 ∇ 2 f n +1 − 1
24
∇ 3 f n +1 + L) (A-M)
Por otro lado, pueden escribirse expansiones en series de Taylor, obteniéndose las β
por identificación de coeficientes. Así, para la expresión explícita con k = 1 :
y n +1 = y n + h (β1 f n + β 2 f n −1 )
y ( x n + h) ≈ y ( x n ) + h (β1 y ′( x n ) + β 2 y ′( x n − h))
y ( x n + h) ≈ y ( x n ) + h β1 y ′( x n ) +
(
+ h β 2 y ′( x n ) − h y ′′( x n ) + 12 h 2 y ′′′( x n ) − L )
y ( x n + h) ≈ y ( x n ) + h (β1 + β 2 ) y ′( x n ) + h 2 (−β 2 ) y ′′( x n ) + O h 3 ( )
Comparando con:
y ( x n + h) = y ( x n ) + h y ′( x n ) + 12 h 2 y ′′( x n ) + O h 3 ( )
Se tiene que: β1 + β 2 = 1 y − β 2 = 12 , de donde: β1 = 3
2
y β 2 = − 12 , es decir:
h
y n +1 = y n + ( 3 f n − f n −1 )
2
Algunos resultados similares se listan a continuación. El error de truncación local es de
( )
O h k + 2 y el global de O h k +1 : ( )
Métodos de Adams – Bashfort (explícitos):
k y n +1 = y n + h (β1 f n + β 2 f n −1 + β 3 f n − 2 + L + β k +1 f n − k )
0 y n +1 = y n + h f n Euler
y n +1 = y n + h ( 3 f n − f n −1 )
1
2
1
3 y n +1 = y n + 1
24
h ( 55 f n − 59 f n −1 + 37 f n −2 − 9 f n −3 )
k y n +1 = y n + h (β 0 f n +1 + β1 f n + β 2 f n −1 + β 3 f n − 2 + L + β k f n − k +1 )
0 y n +1 = y n + h f n +1 Euler inverso
El error de truncación de una fórmula implícita de este tipo es siempre menor que el error
del correspondiente proceso explícito del mismo orden. Excepto en el caso trivial en que
la función f ( x, y ) es lineal, la solución de la(s) ecuación(es) que definen el proceso
implícito requiere iterar. Con tal fin, se utiliza como primera aproximación el resultado
obtenido con la fórmula explícita (predictor). Esta aproximación se refina utilizando
repetidamente la correspondiente fórmula implícita (que en este contexto se denomina
corrector). Por ejemplo:
y n(0+)1 = y n + h f ( x n , y n )
y n(i++11) = y n + h f ( x n +1 , y n(i+)1 )
Predictor: y n(0+)1 = y n −3 + 43 h ( 2 f n − f n −1 + 2 f n − 2 ) O ( h y (ξ ) )
14
45
5 v
[
y 2( 0 ) = y1 + 0.05 − 3 x1 ( y1 ) 2 + x 0 ( y 0 ) 2 = ]
[
= 1.980 198 + 0.05 − 0.3 ⋅ (1.980 198) 2 − 0 = 1.921 380 ]
y luego con el corrector (en este caso la regla trapezoidal, también conocida como
método de Crank Nicholson):
y n+1 = y n + 12 h ( f n +1 + f n )
se tiene:
[
y 2(1) = y1 + 0.05 − x 2 ( y 2( 0 ) ) 2 + x1 ( y1 ) 2 = ]
[
= 1.980 198 + 0.05 − 0.2 ⋅ (1.921 380) 2 − 0.1 ⋅ (1.980198) 2 = 1.923 675 ]
Y en forma similar:
y 2( 2 ) = 1.923 587
y 2(3) = 1.923 590
y 2( 4 ) = 1.923 590
h2
y ( x + h) = y ( x) + h y ′( x) + y ′′( x) + L
2
se remplaza por:
y n +1 = y n + h f ( x n , y n )
Al emplear un método numérico para resolver EDO, se espera que éste sea
convergente, lo que significa que al trabajar con intervalos, h , cada vez más pequeños,
las soluciones deben aproximar cada vez más a la solución exacta. Para que el
procedimiento numérico sea convergente debe ser consistente y estable.
Alternativamente, podría decirse que un método es estable si, para condiciones iniciales
típicas y siempre que los errores de truncación y de redondeo sean pequeños, se tiene
convergencia.
i xi y (xi ) yi ei = y i − y (x i )
2.0
1.5
1.0
0.5
y(x)
0.0
0 2 4 6 8 10 12
x
-0.5
-1.0
-1.5
-2.0
r 2 = 1+ 2α r
( ) ( )
1
r1 = α + 1 + α 2 2 = 1 + α + 12 α 2 + O α 4
1
r2 = −
r1
e α = 1 + α + 12 α 2 + 16 α 3 + O α 4 ( )
se concluye que:
r1 = e α − 16 α 3 + O α 4 ( )
r1n ≈ e αn = e λ n h = e λxn
y en consecuencia:
(
C 2 = e −0.1 − r1 ) (r 2 − r1 ) ≈ 7.469 947 ⋅ 10 −5
Para h → 0 se requiere que una de las raíces sea igual a 1 (esto es un requisito para
que el método sea consistente). Sin embargo, si dos o más raíces tienen módulo igual a
1 el método es débilmente estable y con frecuencia tiene problemas numéricos. Este es
el caso del método explícito del punto medio, del que se trató en el acápite anterior.
Im λh
2
0 Re λh
-3 -2 -1 0 1 2
-1
-2
Región de estabilidad absoluta - Euler
Puede concluirse que el método de Euler es apropiado para integrar ecuaciones cuya
solución es exponencialmente decreciente ( λ < 0 ), pero no para el caso en que la
solución es oscilatoria y no amortiguada ( λ imaginaria pura).
Re λh
0
-2 -1 0 1 2 3
-1
-2
Todos los procesos de Runge Kutta del mismo orden tienen la misma región de
estabilidad absoluta. Por ejemplo, considérese un proceso de segundo orden, método
de Heun, también llamado Euler modificado:
yˆ = y n + h f ( x n , y n )
y n +1 = y n +
h
[ f (x n , y n ) + f (x n +1 , yˆ )]
2
que aplicado a la ecuación y ′ = λ y resulta:
yˆ = y n + h λ y n = (1 + λ h ) y n
y n +1 = y n +
h
2
[λ y n + λ ( y n + h λ y n )] = 1 + λ h + [ 1
2
(λ h )2 ] y n
y por lo tanto : r = 1 + λ h + 1
2
(λ h )2 . La condición r ≤ 1 es satisfecha por todos los
puntos dentro del elipsoide que se muestra en la figura siguiente:
2 Im λh
Re λh
0
-3 -2 -1 0 1
-1
-2
Región de estabilidad absoluta
Runge Kutta - Segundo Orden
k1 = λ h y n
k 2 = λh (1 + 12 λh ) y n
(
k 3 = λh 1 + 12 λh + (λh ) ) y1
4
2
n
= λh (1 + λh + (λh ) + (λh ) ) y
1 2 1 3
k4 2 4 n
Y resulta:
r = 1 + λh + 1
2
(λh )2 + 16 (λh )3 + 241 (λh )4
La expresión es la misma para cualquier otro método de Runge Kutta de cuarto orden
(global): La región de estabilidad absoluta es aquella dentro del límite indicado en la
figura siguiente:
4 Im ( λh)
1
Re ( λh)
0
-3 -2 -1 0 1
-1
-2
-3
-4
Región de estabilidad absoluta
Runge - Kutta 4o Orden
Las mismas ideas pueden también aplicarse a métodos de pasos múltiples. Por
ejemplo, para la regla explícita del punto medio, a la que se hizo referencia al inicio de
esta sección:
y n +1 = y n −1 + 2 h f (x n , y n ) = y n −1 + 2 λh y n
y n +1 = y n + 12 h [ f ( x n , y n ) + f ( x n +1 , y n +1 )]
y n +1 = y n + 12 λ h ( y n + y n +1 )
de donde:
(1 − 12 λ h) r = (1 + 12 λ h )
1 + 12 λ h
y por lo tanto se requiere que: r = ≤ 1 , es decir Re(λ h ) ≤ 0 .
1 − 12 λ h
y n +1 = y n + h [y n′ + 16 (k1 + k 2 + k 3 )]
Este procedimiento se basa en sustituir las derivadas por sus aproximaciones con
diferencias centrales. Así al resolver:
mu&& + ku = f (t )
u − 2 u n + u n +1
se puede aproximar la segunda derivada con: u&&n = n −1
(∆t ) 2
(∆t ) 2
de donde resulta: u n +1 = 2 u n − u n −1 + ( f (t ) − k u n ) .
m
u n +1 = u n + u& n + 1 ∆t
2
m c m c
(∆t ) 2 + 2 ∆t u n +1 = f (t n ) − k − (∆t ) 2
2m
un −
(∆t ) 2 − 2 ∆t u n −1
[
u n +1 = u n + ∆t u& n + (∆t ) α u&&n + ( 12 − α )u&&n +1
2
]
El caso con δ = 12 y α = 16 corresponde a suponer que u&& (la aceleración) varía
linealmente en el intervalo. Aparentemente esa elección sería mejor que δ = 12 y α = 14
(lo que físicamente se interpretaría como suponer una aceleración constante promedio).
Sin embargo, esta última elección es más apropiada, también por consideraciones de
estabilidad, a las que se hace referencia más adelante.
Al remplazar las aproximaciones en:
m u&&n +1 + c u& n +1 + k u n +1 = f (t n +1 )
se obtiene: kˆ u n +1 = fˆ n +1
donde:
kˆ = k + a 0 m + a1 c
fˆ n +1 = f n +1 + m (a 0 u n + a 2 u& n + a 3 u&& n ) + c (a1u n + a 4 u& n + a 5 u&& n )
1 δ ∆t δ
a3 = −1 a4 = −1 a5 = − 2
2α α 2 α
a 6 = ∆t (1 − δ ) a 7 = δ ∆t
Todos los métodos para resolver EDO de segundo orden pueden ser escritos en la
forma:
u n +1 = A u n + b f n
donde u n representa ahora el conjunto de resultados que describen la respuesta en el
paso n . Por ejemplo, para el método de diferencia central:
u n +1 2 − (ω ∆t ) 1 − β ω ∆t u n ( ∆t ) 2
2
−
= 1 + β ω ∆t 1 + β ω ∆t + 1 + β ω ∆t f n
u n u
1 0 n −1 0
Los errores se comportan en forma análoga, pudiendo demostrarse que:
ε n +1 = A ε n
y por lo tanto, para que los errores se reduzcan (es decir, para que el método sea
estable) se requiere que:
ρ ( A) = máx λi ≤ 1
Dos procesos a los que también se hace referencia en la literatura son los métodos de
Houbolt y de Wilson. Ambos métodos son también (para una selección apropiada de sus
parámetros) incondicionalmente estables, pero acumulan mucho más errores que el de
Newmark de aceleración constante y por tanto no son tan convenientes.
u n +1 = u n + u& n + 1 ∆t
2
K ˆ =K + a M + a C =LU
0 1
ˆf
n +1 = f n +1 + M (a 0 u n + a 2 u n + a 3 u n ) + C (a1u n + a 4 u n + a 5 u n )
& && & &&
y luego:
&& t + ∆t = a 0 (u t + ∆t − u t ) − a 2 u& t − a 3 u
u && t
u& t + ∆t = u& t + a 6 u
&& t + a 7 u
&& t + ∆t
Estos vectores constituyen una base completa, y por lo tanto la solución x(t ) puede
siempre expresarse como una combinación lineal de los referidos vectores:
x (t ) = ∑a j φj
x& (t ) = ∑ a& j (t ) φ j
∑ a& j Bφj + ∑a j A φ j = f (t )
φ *s B φ r = δ rs
φ *s A φ r = λ r δ rs
∑ a& j φ Τι B φ j + ∑a j φ Τι A φ j = φ Τι f (t )
Se observa que la mayor parte de los productos que se tienen en cada suma son cero.
Sólo son distintos de cero aquellos en los que los dos índices i,j son iguales. En
consecuencia se obtienen ecuaciones “desacopladas”, independientes para cada
componente a j (t ) :
a& i + λ i ai = φ Τι f (t )
x 0 = x ( 0) = ∑ a (0) φj j
a i (0) = φ Τι B x 0
Resolver n de estas ecuaciones desacopladas es mucho más fácil que resolver un solo
sistema de ecuaciones diferenciales de orden n (puede aquí hacerse un paralelismo con
el caso de ecuaciones algebraicas). Además, en muchas situaciones prácticas se
observa que las componentes a (t ) asociadas a los mayores valores característicos son
x (t ) = ∑a j φj
a& i + λi a i = φ Τι f 0 (a t + b)
Nuevamente, la solución puede escribirse como una combinación lineal de los vectores
característicos (que en lo que sigue se han supuesto normalizados respecto a M ):
u(t ) = ∑a j (t ) φ j
φ *s M φ r = δ rs
φ *s K φ r = ω 2r δ rs
Pero, salvo en algunos casos particulares, no podría afirmarse algo similar con la matriz
C . Sin embargo, hay aplicaciones en que la inclusión del término C u& es sólo un
artificio para introducir disipación en las ecuaciones lineales, que realmente podría
haberse considerado con una K variable, dependiente de u . En este contexto, podría
introducirse directamente la disipación en las ecuaciones desacopladas, no siendo
necesario determinar la matriz C :
2 Tmín
∆t ≤ =
ω máx π
ω1 ≤ ω 2 ≤ L << ω máx
T1 ≥ T2 ≥ L >> Tmín
200.5 199.5
A =
199.5 200.5
Los valores característicos de la matriz A son λ1 = ω12 = 1 y λ 2 = ω 22 = 400 .
Supóngase que las condiciones iniciales son:
1 1
u = cos t + 0.01 cos 20 t
− 1 1
El primer modo, con ω1 = 1 y T1 = 2 π es el importante en la solución. La contribución
del segundo modo, con ω 2 = 20 y T2 = π / 10 es comparativamente pequeña.
1.01 0
con condiciones iniciales u 0 = y u& 12 = u& (0) + 2 ∆t u
1 && 0 =
− 0.99 0
Para integrar apropiadamente el primer modo sería suficiente considerar un ∆t del
orden de T1 / 20 ≈ 0.3 . Sin embargo, es el segundo modo, poco importante en la
respuesta, el que en este caso controla la estabilidad. Se requiere reducir el intervalo,
de modo que: ∆t < 2 / ω2 = T2 / π = 0.1 lo que indirectamente hace que se obtenga
precisión en la integración de la componente significativa. En las figuras siguientes se
muestran resultados obtenidos con ∆t = 0.1001 (el procedimiento es inestable) y con
∆t = 0.09 (procedimiento estable). Los resultados serían aún más precisos si T1 >> Tn ,
como ocurre típicamente al resolver grandes sistemas de ecuaciones diferenciales.
1000
500
0
u
0 2 4 6 8 10
-500
-1000
t
Resultados obtenidos con ∆t = 0.1001
2
1
1
0
u
-1 0 2 4 6 8 10
-1
-2
t
Resultados obtenidos con ∆t = 0.09
8.1 Introducción
∑ (a ) ∑c iΩ jt
f (t ) = 12 a 0 + j cos (Ω j t ) + b j sen(Ω j t ) = j e (8.1)
j =1 j = −∞
siendo i = − 1 .
1.5
0.5
0
-6 -4 -2 0 2 4 6
-0.5
-1
-1.5
1
Jean Baptiste Joseph Fourier (1768-1830), ingeniero francés. En 1807 presentó a la Academia Francesa su
teorema relativo a las series de F., que publicó posteriormente como parte de su Teoría Analítica del Calor.
∑c
i Ω j tn
f n = f (t n ) = j e (8.3)
j = −∞
j+ N j
( )e
2πi n ∆t 2πi n ∆t
i Ω j + N tn N ∆t 2πi n N ∆t i Ω j tn
Nótese que e =e = e =e , por lo que factorizando
se puede escribir:
N −1
∑ cˆ
i Ω jtn
fn = j e (8.4)
j =0
Caso continuo
T si j = k (8.6)
(ϕ j , ϕ k ) =
0 si j ≠ k
Para j ≠ k :
T i Ω jt T e 2πi ( j − k ) − e 0
(ϕ j , ϕ k ) = ∫ e e −i Ω k t dt = ∫ e 2πi ( j − k ) t / T dt = =0
0 0 2πi ( j − k ) / T
Caso discreto
En este caso el producto interno de dos funciones con igual período, T , cada una
expresada por una colección de N valores numéricos, se define como:
N −1
( f , g) = ∑f
n =0
n gn
j−k
Si j − k es un múltiplo de N se tiene que es un entero y por lo tanto:
N
N −1
(ϕ j , ϕ k ) = ∑1 = N
m =0
j −k
2πi
donde q = e N
. Esta es la suma de N términos de una progresión geométrica, con
valor inicial 1 y razón q , que resulta:
qN −1 1−1
(ϕ j , ϕ k ) = = =0
q −1 q −1
Excepto para el caso antes mencionado, en que j − k es un múltiplo de N , para el que
se tiene q = 1 . Resumiendo, para el caso discreto:
N si j − k es múltiplo de N (8.7)
(ϕ j , ϕ k ) =
0 en otros casos
∞ 2 πi +∞
jt
f (t ) = ∑c
j = −∞
j e T
= ∑c
j = −∞
j ϕ j (t )
N −1 2πi N −1
jn
O en el caso discreto f n = ∑j =0
c j e N
= ∑c
j =0
j ϕ j (t n )
( f ,ϕk ) = ∑c
j
j (ϕ j , ϕ k )
N −1 2πi
1 − jn
cj =
N
∑
n =0
fn e N
en el caso discreto (8.9)
Las funciones de varias variables se tratan en forma análoga, considerando una variable
a la vez. Supóngase que se conocen los valores de la función periódica (en ambas
direcciones) f ( x p , y q ) que corresponden a abscisas x p = p ∆x y ordenadas y q = q ∆y
siendo p = 0, 1, 2, K M − 1 y q = 0, 1, 2, K N − 1 :
M −1 N −1 2πi
kq
2πi
jp
c e N e M
f pq = f ( x p , y q ) = ∑ ∑
j =0
jk
(8.10)
k =0
M −1 1 N −1 kq
− 2πi − 2πi jp
1 e M
c jk =
M
∑ p=0
N ∑f
q =0
pq e N
(8.11)
Supóngase una función f (t ) no periódica, definida para − ∞ < t < ∞ y tal que tiende a
cero cuando t tiende a más infinito o a menos infinito. En tal caso, puede obtenerse el
límite de (8.8) para T → ∞ :
∞
F (Ω ) = ∫−∞
f (t ) e − i Ωt dt (8.12)
1 ∞
f (t ) =
2π ∫−∞
F (Ω ) e i Ω t d Ω (8.13)
f (t ) real F ( −Ω ) = F ( Ω)
f (t ) imaginaria F ( − Ω) = − F (Ω )
f (t ) simétrica F ( − Ω ) = F (Ω )
f (t ) antisimétrica F ( −Ω ) = − F ( Ω)
∞
Llamando F (Ω) a la transformada de f (t ) , es decir: F (Ω ) = ∫ −∞
f (t ) e − i Ωt dt
∞
y U (Ω) a la transformada de Fourier de u (t ) : U (Ω ) = ∫ u (t ) e − i Ωt dt
−∞
se obtiene:
(− Ω m + i Ω c + k ) U (Ω) = F (Ω)
2
o bien:
U (Ω ) = H ( Ω ) F (Ω )
(
donde H (Ω) = − Ω 2 m + i Ω c + k )
−1
es una función de transferencia. Luego se obtiene
la función u (t ) con la transformada inversa:
1 ∞
u (t ) =
2π ∫ −∞
U ( Ω) e i Ω t d Ω
Au ′ + Bu = c f ( x) ⇒ (A + i Ω B ) U(Ω) = c F (Ω)
En este caso U (Ω) denota una matriz columna que agrupa las transformadas de las
funciones agrupadas en u(t ) . Luego:
1 ∞
u (t ) =
2π ∫ −∞
U ( Ω) e i Ω t d Ω
2
Cooley, J.W. y Tukey, J.W. An algorithm for machine calculation of complex Fourier series. Math.Comp.,
19:297-201, 1965.
Para empezar, puede observarse que, dejando de lado el factor 1 / N , las expresiones
(8.14) y (8.15) son ambas de la forma:
N −1 2πi
±
cj = ∑f
n =0
n u jn
u=e N
(8.16)
Nótese que u N
= 1 . Los párrafos siguientes se refieren a (8.16), y son igualmente
aplicables a la determinación de los c j (análisis de Fourier) o a la de los f n (síntesis de
Fourier). Se presenta el algoritmo FFT en su forma más simple, suponiendo que N es
una potencia exacta de 2 , es decir, N = 2 m . Sin embargo, pueden aplicarse ideas
similares cuando N es arbitrario.
Los valores f n pueden separarse en dos grupos, aquellos que ocupan las posiciones
pares: n = 2 p y aquellos que ocupan las posiciones impares: n = 2 p + 1 . Luego:
N N
−1 −1
2 2
cj = ∑f
p=0
2p (u 2 ) jp + u j ∑f
p=0
2 p +1 (u 2 ) jp
cq = φq + u q ϕ q (8.17a)
cN = φq + u q ϕ q (8.17b)
+q
2
N N
−1 −1
2 2
siendo φ q = ∑f
p =0
2p (u 2 ) pq y ϕ q = ∑f
p =0
2 p +1 (u 2 ) pq “transformadas” con N / 2 puntos.
2πi
±
Nótese que u 2 = e N /2 , expresión análoga a la de u pero con N / 2 puntos.
0000 0 0 0 0 0 0000
0001 1 2 4 8 8 1000
0010 2 4 8 4 4 0100
0011 3 6 12 12 12 1100
0100 4 8 2 2 2 0010
0101 5 10 6 10 10 1010
0110 6 12 10 6 6 0110
0111 7 14 14 14 14 1110
1000 8 1 1 1 1 0001
1001 9 3 5 9 9 1001
1010 10 5 9 5 5 0101
1011 11 7 13 13 13 1101
1100 12 9 3 3 3 0011
1101 13 11 7 11 11 1011
1110 14 13 11 7 7 0111
1111 15 15 15 15 15 1111
u = e ±2πi / 2 = 1 ⇒ c0 = φ0 + ϕ 0
c1 = φ 0 − ϕ 0
u = e ±2πi / 4 = ±i ⇒ c0 = φ0 + ϕ 0
c2 = φ0 − ϕ 0
c1 = φ1 ± i ϕ1
c3 = φ1 m i ϕ1
Y así sucesivamente hasta combinar los resultados de 2 FFT con N / 2 puntos para
producir la FFT con N puntos.
Para una función no periódica, como podría ser el registro de una componente de
aceleración sísmica, estrictamente no podría emplearse el algoritmo FFT, puesto que se
obtienen los coeficientes de una serie de Fourier y no propiamente la transformada. Sin
embargo, puede considerarse a la función como si fuera periódica agregándole
suficientes ceros como para asegurar que, dada la disipación existente en todos los
sistemas reales, no haya influencia significativa de un período sobre el siguiente.
200 f (t)
100
0 t
0 20 40 60 80 100 120 140 160
-100
-200
4.0E-05 |F( Ω )|
3.0E-05
2.0E-05
1.0E-05
0.0E+00 Ω
0 20 40 60 80