Está en la página 1de 152

1.

Algunas Ideas Generales sobre Métodos Numéricos

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.

En la mayor parte de los métodos numéricos se aplican ideas relativamente simples.


Una idea frecuente es la de iteración, es decir, la repetición de un proceso en forma tal
que se obtienen cada vez mejores aproximaciones a la solución. Para ilustrar el uso de
iteraciones considérese la solución de x 3 = c . En este caso x es la raíz cúbica de c .
Esta ecuación puede reescribirse como:

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

x 5 = 1.259 921 049 895 0.5

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.

H. Scaletti - Métodos Numéricos: Introducción 1-1


Otra idea frecuente es la de aproximar localmente una función complicada por una
función lineal (o quizás parabólica u otra relativamente simple). Esto es lo que se hace
al interpolar entre dos líneas de una tabla, o en procesos tales como el método de
Newton – Raphson para mejorar la aproximación a una raíz de una función f ( x) = 0 , la
integración de una función por el método de los trapecios, la solución de una ecuación
diferencial y ′ = f ( x, y ) por el método de Euler, por citar sólo algunos de los métodos más
conocidos.

En muchos casos se obtiene un conjunto de resultados en una sucesión de etapas, para


cada una de las cuales se consideran como datos los resultados de la etapa anterior.
Tales procesos se denominan de recursión. Son muy poderosos, pero deben ser
utilizados con propiedad. La “Regla de Horner” para evaluar un polinomio tal como
n −1
p( x) = a0 x + a1 x + K + a n −1 x + a n proporciona un ejemplo simple de recursión.
n
El
polinomio p(x) puede evaluarse realizando las operaciones:
p0 = 0
p1 = p 0 x + a 0
p 2 = p1 x + a1
M
p n = p n −1 x + a n = p( x)

La acumulación de errores en un proceso de este tipo puede ser importante.

El ejemplo siguiente ilustra también el uso de una recursión y el fenómeno conocido


como “inestabilidad numérica”. Supóngase que se requiere calcular, para n = 0, 1, 2, ...
1
xn
yn =
∫ 0 x+5
dx

Puede observarse que los valores de yn decrecen con n. Además:

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

H. Scaletti - Métodos Numéricos: Introducción 1-2


en que estos errores se propagan (o disipan) es decisiva en la utilidad de un método
numérico dado.
En el proceso utilizado, un pequeño error ε en yo se multiplica por –5 en el cálculo de
y1. Sin tener en consideración los errores introducidos en los redondeos de este paso, se
produce un error de 25 ε en y2. El resultado del paso k está afectado por el error inicial
k
multiplicado por (-5) . A esto deben agregarse los efectos de los errores introducidos en
todos los pasos intermedios. Si se hubieran utilizado más cifras decimales en los
cálculos, los resultados absurdos habrían también aparecido, aunque un tanto más
adelante en el proceso. La inestabilidad numérica puede evitarse seleccionando un
algoritmo más adecuado. Así, utilizando la fórmula “en la otra dirección”:
11 
y n -1 =  − yn 
5n 
el error queda dividido por 5 en cada paso. Sabiendo que yn decrece cuando n crece,
pueden iniciarse los cálculos con algo tan pobre como y10 = 0 , obteniéndose:
y 9 = 15 (101 − 0) = 0.020
y8 = ( − y 9 ) ≈ 0.019
1 1
5 9
1.5

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.

1.2 Fuentes de Error


Los resultados numéricos están afectados por errores provenientes de diversas fuentes.

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.

Un segundo grupo de errores es debido a simplificaciones en el modelo matemático del


problema y a la truncación de expresiones (series por ejemplo), cuyo objetivo es evitar
que la formulación se complique más allá de lo que razonablemente puede manejarse.

H. Scaletti - Métodos Numéricos: Introducción 1-3


Más importantes desde el punto de vista de los métodos numéricos son los errores de
truncación y redondeo. Éstos son función del procedimiento empleado y de las
características de operación de la computadora. La mayor parte de las computadoras
trabajan internamente con sistemas de numeración binarios, octales o hexadecimales y
tienen dos “tipos” de aritmética: de punto fijo (o “enteros”) y de punto flotante (o “reales”).
La aritmética de punto fijo es exacta, pero está limitada a números enteros y a un rango
pequeño. En consecuencia, la mayor parte de las operaciones se efectúan con la
aritmética de punto flotante. En la aritmética de punto flotante la representación interna
de un número es de la forma: a = m ⋅ 10 q , donde m es la mantisa y q el exponente.
Sólo se almacenan t cifras (en base b ) de la mantisa, y por lo tanto cualquier número
puede ser representado con un error relativo que no excede 1
2
b t −1 (habitualmente entre
-6 -15
10 y 10 ). Para q se usa un número finito de posiciones de memoria y en
consecuencia existe un “rango” aceptable (en general muy grande) para los números con
punto flotante.

Las operaciones aritméticas en punto flotante tienen propiedades algo diferentes de


aquellas correspondientes en la aritmética “exacta”. Así por ejemplo, la suma (o resta)
no es estrictamente asociativa.

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

mientras que (b + c) + a = 0.1234567 ⋅10 0 . El orden de las operaciones sí afecta los


resultados.

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:

x1 = 32 + 1023 ≈ 32 + 31.984 = 63.984 ± 12 ⋅ 10 −3


x 2 = 32 − 1023 ≈ 32 − 31.984 = 0.016 ± 12 ⋅ 10 −3

H. Scaletti - Métodos Numéricos: Introducción 1-4


El error relativo en x 2 es muy grande. La resta se ha hecho en forma exacta; la causa
del error está más bien en el redondeo previo de la raíz cuadrada. Si en cambio se toma
x 2 = 1 x1 se obtiene:
1
x2 = = 0.015629 ± 0.0000005
1
63.984 ± ⋅ 10 −3
2
con un error relativo del mismo orden que el de x1 .

Finalmente, deben mencionarse errores humanos y errores de la computadora. Estos


últimos son prácticamente inexistentes, los primeros son en cambio la causa de muchos
resultados inesperados.

H. Scaletti - Métodos Numéricos: Introducción 1-5


2. ÁLGEBRA LINEAL

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 

Si en cambio n = 1, se tiene una matriz fila: c = [c1 c2 K c m ] . Si n = m se dice que


la matriz es cuadrada (de orden n). Por ejemplo:
1 2 3 4   d1 0 0 0  1 0 0 0
     
1 4 9 16  0 d2 0 0  0 1 0 0
A= D=  In = 
1 8 27 64  0 0 d3 0 0 0 1 0
     
1 16 81 256  0 0 0 d 4  0 0 0 1 
   
A, D e In son matrices cuadradas. La matriz D = diag [d 1 d 2 K d n ] es una matriz
diagonal, cuyos elementos son todos cero, excepto aquellos ubicados en la diagonal
principal (de la esquina superior izquierda a la inferior derecha). Un caso particular es el
( )
de I n = diag [1 1 K 1] = δ ij , que es una matriz unidad (o identidad) de orden n. La
matriz identidad tiene en el álgebra matricial un papel similar al uno en álgebra común.
Por otro lado, el equivalente del cero es una matriz nula (no necesariamente cuadrada),
cuyos elementos son todos ceros.

Las matrices cuadradas cuyos elementos tienen simetría conjugada: a ij = a ji (donde *
indica conjugada compleja) se denominan Hermitianas. Por ejemplo:

 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.

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-1


Una matriz cuadrada en la que la mayor parte de los elementos son ceros y los
elementos con valor significativo están agrupados alrededor de la diagonal principal se
denomina matriz banda. Por ejemplo:

 1 −1 
 
−1 2 −1 
B= −1 2 −1 
 
 − 1 2 − 1
 
 −1 1 

Las líneas paralelas a la diagonal principal se llaman codiagonales. El número total de


diagonal y codiagonales con elementos significativos en el ancho de banda (3 en este
ejemplo). Para matrices simétricas puede también hablarse de un ancho de semi –
banda; que incluye a la diagonal principal (2 en el ejemplo precedente). Una matriz
banda tiene baja densidad. Por densidad se entiende la razón entre el número de
elementos con valor significativo y el número total de elementos.

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):

 l 11 0 0 L 0   u11 u12 u13 L u1n 


   
 l 21 l 22 0 L 0   0 u 22 u 23 L u 2n 
L =  l 31 l 32 l 33 L 0  U= 0 0 u 33 L u 3n 
   
K  K 
   
 l n1 l n2 l n3 L l nm   0 0 0 L u nm 

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.

2.2 Operaciones Básicas con Matrices


Subdivisión o partición. El conjunto de elementos de una matriz A puede ser dividido
en otros más pequeños mediante líneas horizontales y/o verticales. Las distintas partes,
A11, A12, etc. son submatrices de la matriz A. Las submatrices pueden tratarse como
elementos comunes de una matriz, excepto que deben operarse según las reglas del
álgebra matricial.

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±B=C a ij ± bij = cij

La suma (resta) de matrices es asociativa y conmutativa:


(A + B ) + C = A + (B + C ) A+B=B+A

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-2


Derivada e integral. Análogamente, puede definirse la derivada de una matriz:

∂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

Multiplicación de dos matrices. Dos matrices, A (m x p) y B (p x n) pueden ser


multiplicadas en el orden A B sólo si son conformables para el producto, es decir, si el
número de columnas de A es igual al número de filas de B. El producto C (m x n) es
una matriz cuyos elementos se obtienen de:
p
cij = ∑a
k =1
ik ⋅ bkj i = 1, m j = 1, n

Por ejemplo, si:


5 3 1 1 5
   
A= 4 6 2 B = 2 4 C = A⋅B
10 3 4  3 2 
 
c11 = 5 ⋅ 1 + 3 ⋅ 2 + 1 ⋅ 3 = 14
 14 39 
c 21 = 4 ⋅ 1 + 6 ⋅ 2 + 2 ⋅ 3 = 22  
⇒ C =  22 48 
K  28 70 
c32 = 10 ⋅ 5 + 3 ⋅ 4 + 4 ⋅ 2 = 70  

La multiplicación de matrices es asociativa y distributiva, pero en general no es


conmutativa:
A (B ⋅ C) = ( A ⋅ B) C A (B + C) = AB + AC AB ≠ BA

Siendo el orden de multiplicación importante, es frecuente enfatizarlo, diciendo por


ejemplo que en el producto AB la matriz A premultiplica a B, o bien que B postmultiplica
a A. En algunos casos AB = BA ; se dice entonces que A y B son conmutables.

Es fácil verificar que el producto de dos matrices triangulares inferiores (superiores) es


otra matriz triangular inferior (superior).

Transposición. La transpuesta AT de una matriz A es aquella cuyas filas son las


columnas de A (y viceversa). Si A = B = (bij ) , entonces bij = a ji :
T

 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.

Cuando se transpone un producto matricial la secuencia de los factores debe invertirse:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-3


(AB K C)T = CT K B T A T
Determinante de una matriz cuadrada. Es un número que resulta de:

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.

Las siguientes propiedades facilitan el cómputo de la determinante de una matriz


cuadrada A cualquiera:

• Si se intercambian dos filas (columnas) la determinante cambia de signo.


• La determinante de una matriz, A , es igual a la determinante de su transpuesta.
• El valor de la determinante de una matriz A no se altera si una columna (fila)
multiplicada por un escalar se suma algebraicamente a otra columna (fila):

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)

Así, por ejemplo, si:


1 2 3 4  1 0 0 0 1 2 3 4
    
1 4 9 16  1 1 0 0 0 2 6 12 
A= =
1 8 27 64  1 3 1 0 0 0 6 24 
    
1 16 81 256  1 1   0 0 24 
   7 6 0

entonces: det( A) = (1) ⋅ (1 ⋅ 2 ⋅ 6 ⋅ 24 ) = 288

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-4


Inversa de una matriz. Si una matriz A es no singular, es posible obtener su “inversa”,
A-1, que satisface:

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.

La inversión de matrices permite efectuar la operación equivalente a la división del


álgebra común.

AB = C ⇒ B = A −1C (véanse los comentarios del ítem 2.5.5)

Para la inversa de un producto matricial se cumple:

(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

2.3 Espacios y Subespacios Vectoriales


Una matriz columna de orden n es un conjunto números que pueden ser interpretados
como componentes de un vector en un espacio de dimensión n.

Se dice que un conjunto de vectores v1 v2 v3 .... v5 son linealmente dependientes si


existen números α1 α2 α3 .... α5, no todos cero, tales que:
α1v1 + α 2 v 2 + α 3 v 3 + K + α 5 v 5 = 0

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).

p vectores linealmente independientes de orden n ( n ≥ p ) conforman una base de un


espacio vectorial de dimensión p. Por otro lado, q vectores, de los que p ( p ≤ q ) son
linealmente independientes, están contenidos en un espacio de dimensión p.

Si los vectores linealmente independientes x1 x2 .... xp constituyen una base de un


espacio vectorial de dimensión p, un sub – conjunto de estos puede considerarse como
base de un sub – espacio contenido en el espacio vectorial original.

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-5


Las columnas (o filas) de una matriz rectangular A pueden tratarse como vectores. El
número de vectores linealmente independientes define el “rango” de la matriz. Una
matriz cuadrada es no singular si su rango es igual al orden de la matriz, es decir si
todas las columnas son linealmente independientes. Lo contrario implica que una o más
columnas (filas) pueden obtenerse como combinación lineal de las otras y la
determinante es cero.

2.4 Sistemas de Ecuaciones Lineales


Se ha estimado que un 75% de los problemas de ingeniería se presenta, en alguna
etapa del trabajo, la solución de un sistema de ecuaciones lineales:
a11 x1 + a12 x 2 + a13 x 3 + K + a1n x n = b1
a 21 x1 + a 22 x 2 + a 23 x3 + K + a 2 n x n = b2
a 31 x1 + a 32 x 2 + a33 x 3 + K + a 3n x n = b3 (2.1a)
⋅⋅⋅
a n1 x1 + a n 2 x 2 + a n3 x3 + K + a nn x n = bn

o bien: Ax = b

 a11 a12 a13 K a1n   x1   b1 


 
 a 21 a 22 a 23 K a 2 n   x 2  b2 
a    
a 32 a 33 K a 3n   x3  = b3  (2.1b)
 31 
L  M   M 
    
 a n1 an2 a n3 K a nn   x n  bn 

En las secciones siguientes se supone que el sistema de ecuaciones tiene solución


única, es decir, que det(A) ≠ 0 .

La solución de sistemas de ecuaciones es un buen ejemplo de las diferencias entre las


matemáticas “clásicas” y los métodos numéricos modernos. Así, la Regla de Cramer:

 a11 a12 K b1 K a1n 


 
 a 21 a 22 K b2 K a 2n 
det a 31 a 32 K b3 K a 3n 
 
L 
 
 a n1 an2 K bn K a nn 
xj = (2.2)
 a11 a12 K a1 j K a1n 
 
 a 21 a 22 K a2 j K a 2n 
det a 31 a 32 K a3 j K a 3n 

L 
 
 a n1 an2 K a nj K a nn 

si bien proporciona fórmulas explícitas es tremendamente ineficiente cuando se trata de


resolver sistemas con más de 3 incógnitas (excepto para casos muy especiales de la
matriz de coeficientes).

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

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-6


el planteamiento de grandes sistemas de ecuaciones lineales. El costo de análisis y en
muchos casos la factibilidad de un modelo suficientemente preciso dependen en gran
medida de la forma de almacenamiento de las ecuaciones y de la eficiencia del algoritmo
utilizado en su solución.

2.5 Métodos Directos para la Solución


de Sistemas de Ecuaciones Lineales
Este acápite considera métodos que, de no haber errores de redondeo, producen la
solución exacta en un número finito de pasos. Para sistemas Ax = b, en los que A es de
alta densidad, los métodos directos son en general los más eficientes (para las
computadoras actualmente utilizadas). Sin embargo, cuando un gran número de
elementos de A son cero, y en especial cuando A es definida positiva ( x T Ax > 0 para
cualquier x ≠ 0 ), puede ser más conveniente utilizar un método iterativo en que se
obtiene una secuencia de soluciones aproximadas que convergen a la solución exacta.

2.5.1. Sistemas Triangulares

La solución de sistemas de ecuaciones lineales es particularmente simple cuando la


matriz de coeficientes es triangular. Por ejemplo, considérese un sistema Ux = b en el
que U es triangular superior:
u11 x1 + u12 x 2 + u13 x3 + K + u1n x n = b1
u 22 x 2 + u 23 x3 + K + u 2 n x n = b2
u 33 x3 + K + u 3n x n = b3
(2.3)
KK
u n −1,n −1 x n −1 + u nn x n = bn
u nn x n = bn

Si U es no singular ( u ii ≠ 0 para todo i), las incógnitas pueden evaluarse en el orden: n,


n-1, n-2, n-3, ... 2, 1:
bn
xn = (2.4a)
u nn

 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).

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-7


2.5.2 Método de Gauss

Éste es el más importante de los métodos directos para la solución de sistemas de


ecuaciones lineales. La idea básica está en combinar las distintas ecuaciones para ir
eliminando incógnitas en forma sistemática y obtener finalmente un sistema triangular,
fácil de resolver. Considérese el sistema de orden n:
(1)
a11 x1 + a12
(1)
x 2 + a13
(1)
x 3 + K + a1(1n) x n = b1(1)
(1)
a 21 x1 + a 22
(1)
x 2 + a 23
(1)
x 3 + K + a 2(1n) x n = b2(1)
(1)
a 31 x1 + a 32
(1)
x 2 + a 33
(1)
x 3 + K + a 3(1n) x n = b3(1) (2.6)
KK
a n(11) x1 + a n(12) x 2 + a n(13) x 3 + K + a nn
(1)
x n = bn(1)

o en forma compacta: Ax = b. En lo que sigue se supone que A es no singular.


Supóngase también que a11 ≠ 0 . Puede entonces eliminarse x1 de la ecuación i si de
ésta se resta la ecuación 1 multiplicada por:

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 ij( 2) = aij(1) − l i1 a1(1j)


(2.7c)
bi( 2) = bi(1) − l i1 b1(1)

En forma similar, puede eliminarse x2 de las ecuaciones i = 3,4,..n restando de la


ecuación i la ecuación 2 multiplicada por:

a i(22)
li 2 = ( 2)
a 22

y así sucesivamente hasta obtener el sistema triangular:


(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)
( 3)
a 33 x3 + K + a 3(3n) x n = b3(3) (2.8)
KK
(n)
a nn x n = bn( n)

o en notación matricial: Ux = b.

Los elementos a11 (1) ( 2)


, a 22 ( 3)
, a 33 K a n( n−−1,1n)−1 que se usan como divisores en esta reducción
se llaman “pivotes”. El proceso – tal como ha sido planteado hasta el momento – falla si
alguno de estos es cero. Esto en general no ocurre si la matriz A tiene diagonal

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-8


dominante (es decir, si aii > ∑a
j ≠i
ij ) o si A es simétrica (AT = A) y definida positiva
(vTAv > 0 para v arbitrario).

El siguiente ejemplo ilustra el proceso:

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

Para estimar el esfuerzo de cómputo es habitual referirse al número de "operaciones"


requeridas. La costumbre es contar como una operación a la combinación de una suma
(o resta, o simplemente una copia) con una multiplicación (o división). Esta práctica
proviene de las épocas en que el tiempo requerido para efectuar una multiplicación o una
división era un orden de magnitud mayor que el necesario para una suma o una resta,
pudiendo despreciarse estas últimas. La reducción de la matriz de coeficientes requiere
de un número de operaciones de orden n 3 . La reducción del segundo miembro y la
1
3
2
sustitución inversa requieren aproximadamente n operaciones. Si se tuvieran varios
sistemas de ecuaciones con la misma matriz de coeficientes: Ax = b1, Ay = b2, ... sólo
se requeriría efectuar la reducción de A una vez, por lo que el número de operaciones
sería siempre aproximadamente 1 3 n 3 . Más precisamente, se hacen 1 3 n 3 + 2 n 2 + 2 3 n

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2-9


operaciones para resolver un sistema de n ecuaciones lineales, pero si n es grande sólo
el primer término es importante.

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:

 3.000 000 000 × 10 −11 1   x1   7 


  =

 0 10  
(
− 3.333 333 333 × 10   x 2  7 − 3.333 333 333 × 10 )
10 

de donde: x2 = 7
x1 = 0

La solución correcta es, sin embargo, x1 = 2 . Es fácil comprobar que no se presenta


este problema si se evita el pivote pequeño intercambiando previamente las ecuaciones:

 1 1  x1  9 
  = 
 3 × 10
−11
1  x 2  7 

El intercambio de filas al que se ha hecho referencia se denomina “intercambio parcial”.


Alternativamente, puede pensarse en un “intercambio completo”, en que se selecciona el
siguiente pivote como el elemento de máximo valor absoluto entre todos los elementos
de la sub matriz por reducirse. Se intercambian entonces filas (ecuaciones) y columnas
(incógnitas) para continuar el proceso como se ha descrito.

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 10


El intercambio parcial es generalmente satisfactorio, desde el punto de vista de la
estabilidad numérica, y requiere bastante menos trabajo que el proceso con intercambio
total.

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

Los elementos de L son justamente los coeficientes l ij usados durante la reducción; U


es en cambio ¡la matriz A reducida!

Se ha mencionado anteriormente que varios sistemas de ecuaciones con la misma


matriz de coeficientes pueden ser resueltos simultáneamente. Sin embargo, no siempre
se conocen desde un principio todos los vectores de coeficientes del segundo miembro.
Por ejemplo, puede querer resolverse Ax1 = b y Ax2 = x1. Aún en este caso, al resolver
el segundo sistema no es necesario volver a reducir la matriz A como al inicio. El
sistema Ax = b es equivalente a LUx = b, o bien a los dos sistemas triangulares: Ly = b
2
, Ux = y. Siendo L y U conocidos, estos dos sistemas pueden resolverse en O(n )
operaciones. L y U pueden almacenarse en las mismas posiciones de memoria que en
la matriz A: a ii(i ) se determina con el objeto de hacer a ki(i +1) = 0 ,
Como l ki = a ki
(i )

l ki puede almacenarse en las posición de a ki . Por otro lado, no es necesario almacenar


los elementos de la diagonal de L (que son todos iguales a 1). Dado que los elementos
de U son aquellos de la matriz reducida, el efecto de la reducción o descomposición en
la distribución de memoria es de la forma:

 a11 a12 a13 K a1n   u11 u12 u13 K u1n 


   
 a 21 a 22 a 23 K a2n   l 21 u 22 u 23 K u 2n 
a a 32 a33 K a 3n  ⇒  l 31 l32 u 33 K u 3n 
 31   
L  L 
   
 a n1 a n2 a n3 K a nn   l n1 l n 2 l n3 K u nn 
Para el ejemplo precedente:

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’,

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 11


donde A’ es la matriz que resulta de efectuar los intercambios mencionados en la matriz
original A.

2.5.4 Otros Métodos Directos

Todos los métodos tratados en esta sección pueden considerarse como variantes del
método de Gauss.

Una posible alternativa es la de calcular los elementos de L y U mediante las fórmulas:


k −1
u k j = ak j − ∑l
p =1
kp upj j = k , k + 1,⋅ ⋅ ⋅n (2.9a)

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.

El método de Crout efectúa la factorización A = LDR, donde L es la misma matriz


triangular inferior obtenida durante el proceso de Gauss, D es una matriz diagonal y R es
una matriz triangular superior con coeficientes 1 en su diagonal principal. D y R están
relacionados con la U de Gauss.

d ii = u ii
u ij (2.10)
rij = j >i
d ii

En particular, para A simétrica: R = LT. Este método no posee ventajas ni desventajas


con relación al de Gauss, bien sea en cuanto a estabilidad numérica y precisión, como
en el número de operaciones necesarias.

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  

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 12


1 0 − 3 − 8   x1   − 6 
 
0 2 6 12   x 2   8 
0  = 
0 6 24   x3   18 
 
0 0 36 168   x 4  132

Nótese que se utilizó la segunda ecuación para reducir no solamente las ecuaciones 3 y
4, sino también la ecuación 1. Análogamente:

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)

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 13


-1
operaciones. Sin embargo, la determinación de A requiere aproximadamente el triple
de trabajo que para obtener L y U. El número de operaciones necesarias para obtener
la inversa de una matriz cuadrada (no simétrica) de orden n es n 3 + 2 n 2 − n + 1 .

No obstante esto, en algunos casos se necesita la inversa en forma explícita. La inversa


puede obtenerse de un modo eficiente resolviendo n sistemas de ecuaciones lineales:
AX = In, donde X = A-1. El siguiente ejemplo utiliza una variante del método de Gauss
con este objeto:

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)

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 14


1  i −1 
y ij =
l ii  ∑
 δ ij − l ik y kj 

i≥ j (2.11b)
 k= j 
En forma análoga, la inversa, U-1, de una matriz triangular superior, U, es también una
matriz triangular superior. Cada fila i, puede determinarse mediante UZ = In:
j −1
1  
z ij =
u jj
 δ ij −
 ∑z ik u kj


i≤ j (2.12a)
 k =i 
z ij = 0 i> j (2.12b)

Para las matrices L y U del ejemplo considerado:

 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
 

2.5.6 Casos Especiales

Matrices Simétricas Definidas Positivas.

Para una matriz simétrica: a (jk1) = a kj(1) .


Si se efectúa la reducción de Gauss sin
intercambio de filas y/o columnas se tiene también que: a jk = a kj para i < j , k ≤ n .
(i ) (i )

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 )

Puede observarse que, si los coeficientes en la etapa i son simétricos, aquellos en la


etapa i + 1 también lo son, puesto que se obtienen operando del mismo modo con
números iguales.

Considérese, por ejemplo, el sistema de ecuaciones con coeficientes simétricos:

 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:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 15


5 − 4 1 0  x1  0
 
 0 145 − 165 1  x 2  1
 0 − 16  = 
29
− 4  x3  0
 5 5 
0 1 −4 5  x 4  0

5 − 4 1 0  x1   0 
 
0 5 − 5
14 16
1  x 2   1 
0 0  = 
15
− 207  x 3   87 
 7 
 0 0 − 20 65    − 145 
 7 14   x 4   

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) 

Es evidente que intercambios de filas y columnas destruyen la simetría, a menos que se


tome siempre como pivote un elemento de la diagonal principal. Tales intercambios no
son necesarios si la matriz es definida positiva (xTAx > 0 para x arbitraria, no nula), ya
que en tal caso:

aii( k ) > 0 i ≥ 1, k ≤ n
2
a ij( k ) ≤ a ii( k ) a (jjk ) k ≤ i, j ≤ n (2.14)

aii( k +1) ≤ 2aii( k ) k <i≤n


Estas condiciones garantizan que no se presentan pivotes pequeños.

Para el caso de matrices simétricas definidas positivas puede también utilizarse el


método de Cholesky. Éste método efectúa la descomposición A = RTR, donde R es una
matriz triangular superior cuyos elementos pueden obtenerse (por filas) de:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 16


1

 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:

r11 = (a11 ) 2 = 2.2360


1

r12 = a12 r11 = -1.7888


r13 = a13 r11 = 0.44721

r14 = a14 r11 = 0

( )
1

r22 = a 22 − r122 2
= 1.6733
r23 = (a 23 − r12 r13 ) r22 = -1.9123

r24 = (a 24 − r12 r14 ) r22 = 0.5976

( )
1

r33 = a33 − r132 − r232 2


= 1.4639
r34 = (a 34 − r13 r14 − r23 r24 ) r33 = -1.9518

( )
1

r44 = a 44 − r142 − r242 − r342 2


= 0.9129
es decir:

 2.2360 − 1.7888 0.4472 0 


 
 0 1.6733 − 1.9123 0.5976 
R=
0 0 1.4639 − 1.9518 
 
 0 0.9129 
 0 0

El sistema Ax = b puede entonces rescribirse como RTRx = b o bien RTy = b; Rx = y

Resolviendo el primer sistema triangular:

 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 .

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 17


Matrices Banda.

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

y por lo tanto no conviene hallar A −1 en forma explícita.

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.

Otra posibilidad es:


1 2 4 
 
⋅ 3 5 7 13 
 ⋅ ⋅ 6 8 10 14 
 
A= ⋅ ⋅ 9 11 15 
 ⋅ ⋅ 12 16 18 

 ⋅ ⋅ ⋅ ⋅ 17 19 
 
 ⋅ ⋅ 20 

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 18


Esta forma de almacenamiento es más eficiente cuando el ancho de banda es variable
(como ocurre en la mayor parte de los problemas reales). Se guardan los coeficientes
por columnas, desde el “perfil” superior a la diagonal principal. Se requiere un arreglo de
apuntadores o índices que indican las posiciones ocupadas por los coeficientes de la
diagonal principal (que son los más referidos durante el proceso de solución). Nótese
que al aplicar el método de Gauss (o cualquier variante de ese procedimiento) no se
producen valores significativos por encima del perfil original y por lo tanto no se requiere
más memoria que aquella en la situación inicial.

Se necesitan nm posiciones de memoria (donde n es el orden de la matriz y m << n el


2
ancho de semibanda), mucho menos que las n posiciones para la matriz completa o las
1
2n (n + 1) para una matriz simétrica de alta densidad. Por otro lado, la reducción de la
matriz de coeficientes demanda sólo O (1
2 nm
2
) operaciones, ya que:
l ij = 0 excepto para j ≤i< j+m

u ij = 0 excepto para i ≤ j < i + m

Esto debe compararse con O ( 1


6n
3
) operaciones para reducir una matriz simétrica de
alta densidad. La reducción del segundo miembro y la sustitución inversa requieren
( )
O (2 nm ) , en lugar de O n 2 operaciones. En la práctica, rara vez se tiene un ancho de
banda constante, pero aún así estos estimadores son útiles, si se considera m como la
media cuadrática de los anchos de semibanda en las ecuaciones.

Un caso especial es aquel en que la matriz de coeficientes es “tridiagonal”:

 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 

Los únicos coeficientes significativos son aquellos de la diagonal principal y de dos


codiagonales, es decir, dos líneas paralelas a la referida diagonal.

Se observa que al descomponer la matriz de coeficientes, A, en sus factores triangulares


LU los factores mantienen la estructura banda:

 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 

La determinación de los q i y ri es muy simple:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 19


r1 = a1
q i = bi / a i i = 1,2 ,L n − 1 (2.17a)
ri +1 = ai +1 − q i bi
y, considerando L y = c:
y1 = c1
(2.17b)
y i +1 = ci +1 − qi y i i = 1,2 ,L n − 1
de donde se obtiene x resolviendo U x = y:
x n = y n / rn
xi = ( y i − bi xi +1 ) / ri i = n − 1,L 2 , 1

Para resolver un sistema de n ecuaciones lineales con matriz de coeficientes tridiagonal


se requieren sólo 5n − 4 operaciones. Como se indicó anteriormente, se cuenta como
una operación la combinación de una multiplicación o división con una suma, resta o
almacenamiento del resultado.

Grandes sistemas de ecuaciones lineales

(con matrices de coeficientes banda, simétricas y definidas positivas).

Cuando la memoria de la computadora es insuficiente para almacenar todos los


coeficientes del sistema de ecuaciones, se recurre al disco. El acceso a este medio es
(en términos relativos) muy lento y en lo posible debe tratar de minimizarse su uso.

Es frecuente subdividir la información de sistemas de ecuaciones excesivamente


grandes en “bloques” de una o más ecuaciones (o columnas).

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.

2.6. Errores en la Solución de


Sistemas de Ecuaciones Lineales
En la solución práctica de grandes sistemas de ecuaciones lineales se realizan millones
de operaciones y en cada una ocurren errores de redondeo, ¿Cómo afectan estos
errores a los resultados? ¿Cómo puede estimarse la magnitud del error en la solución?
Podría pensarse que, habiendo resuelto el sistema A x = b, la magnitud del residuo
r = b – A x sea una buena medida del error introducido en x. !Esto es falso!
Considérese por ejemplo:

 0.780 0.563  0.217


A =   b=  
 0.913 0.659  0.254

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 20


T
Y supóngase que se ha resuelto A x = b obteniendo x1 = (0.341 -0.087) ¿Qué tan
buena es esta solución?
r1 = b – A x1 = (10-6 0)T
T
Por otro lado si se afirma que la solución es x2 = (0.999 -1.001) se obtiene el residuo.
r2 = b – A x2 = (1.343x10-3 1.572x10-3)T
T
¿Es x1 mejor solución que x2? No. La solución exacta es x = (1 -1) .

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.

2.6.1 Normas de Vectores y Matrices

Con el propósito de discutir los errores al resolver sistemas de ecuaciones lineales, se


define como norma (o medida) de un vector:

x p
= ( x1p + x 2p + K )1 / p 1≤ p ≤ ∞ (2.18a)

Dos casos particulares son de interés:

x 2
= ( x12 + x 22 + K)1 / 2 (norma Euclidiana) (2.18b)

x ∞
= máx x i (máximo valor absoluto) (2.18c)

Es relativamente fácil probar que:

x ≥0 sólo hay igualdad si x = 0

ax = a x (2.19)

x+y ≤ x + y

Estas propiedades son familiares en relación a la norma Euclidiana o “longitud” de un


vector.

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)

Estas normas satisfacen condiciones similares a las normas de vectores. Además:

AB ≤ A B (2.21)

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 21


2.6.2 Condicionamiento de una matriz:

En esta ecuación se analizan los efectos de una pequeña perturbación δA en la matriz


A, o de una perturbación δb en b.
Si x es la solución exacta de A x = b, cuando se considera la matriz de coeficientes
A + δA la solución resulta x + δ x :
( A + δA ) (x + δ x) = b (2.22)

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)

Por otro lado: para una perturbación δb en b:


A (x + δ x) = b + δb (2.26)

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

Las ecuaciones (2.23) y (2.27) indican que, si K (A ) es grande, pequeños cambios en A


o en b pueden originar cambios importantes en la solución.

Si se tienen errores relativos de orden ∈ tanto en A como en b, (2.23) y (2.27) pueden


combinarse, para escribir:

δ x ≤ 2 ∈ K (A) x (2.28)

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 22


Los errores de redondeo introducidos en el proceso de solución pueden ser
considerados como equivalentes a perturbaciones en las matrices A y b iniciales. K (A )
es también un buen indicador de los efectos de los errores de redondeo en la solución.

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)

Para el ejemplo precedente: A ∞


= 0.913 + 0.659 = 1.572

 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

Alternativamente, trabajando con normas Euclidianas:

1.441969 1.0040807 
A T A =  
1.040807 0.751250 

cuyos valores característicos son λ máx = 2.1932, λ mín = 4.56 x 10


-13

de donde K 2 (A ) = λ máx / λ mín( )


1/ 2
= 2.2 x 106
Ambos resultados indican un mal condicionamiento de la matriz A.

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.

2.6.3 Errores de redondeo en la solución de sistemas de ecuaciones lineales


por el método de Gauss (y otros métodos de eliminación similares)

Las relaciones teóricas utilizadas en la reducción son:

l ki = a ki(i ) / aii(i )

a kj(i +1) = a kj(i ) − l ki aij(i ) (2.30)

bk(i +1) = bk(i ) − l ki bi(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 )

donde δ i ≤ ∈ , siendo ∈ el máximo error relativo de redondeo. Alternativamente puede


escribirse:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 23


(i ) (i )
l ki = ( a ki + e ki( i ) ) / a ii
( i +1) (i ) (i )
a kj = a kj − l ki a ij + ekj(i ) (2.32)

( i +1) (i ) (i )
bk = b k − l ki b i + e k(i )

y puede probarse que:


(i )
e ki(i ) ≤ ∈ a ki

 (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 
 

Por otro lado, considerando que . a kj = a kj , l kk = 1 , pueden utilizarse las expresiones


(1)

(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

Esto demuestra que las matrices calculadas:


(i )
L = (l ki ) U = ( a ij ) y = (bi(i ) )

No son factores exactos de A y b sino de A + ∆A y b + ∆b:

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.

Finalmente, debe mencionarse que en el proceso de sustitución inversa, para obtener x


resolviendo U x = y , los errores acumulados son despreciables en términos relativos a
los que resultan de la reducción.

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 24


Las ecuaciones precedentes permiten una estimación a-posteriori de la magnitud del
(1)
error. A-priori puede establecerse :

máx a ij( k )
gn =
i , j ,k
(2.35)
máx a ij(1)
i, j

teniendo que:

g n ≤ 2 n −1 para intercambio parcial (filas)


g n ≤ 1.8 n 0.25 Ln n para intercambio total.
Estos límites son teóricos. Nótese por ejemplo que para un sistema de orden 100 se
tendría g n ≤ 6.3x10 29 para intercambio parcial y g n ≤ 18 para intercambio completo, lo
que justificaría el trabajo adicional necesario para la segunda alternativa. Sin embargo,
en la práctica rara vez se observa un g n mayor que 10, aún con intercambio parcial.
Para matrices simétricas definidas positivas se tiene que g n ≤ 1 .

2.6.4 Algunas consideraciones relativas a unidades.


Equilibrio de las ecuaciones.

En un sistema de ecuaciones A x = b... los aij, bi, xj pueden expresarse en diversos


sistemas de unidades. Un cambio de unidades equivale a considerar b = D1 b’; x = D2 x’
y por lo tanto (D1 A D2) x’ == D1 b’. En estas expresiones las matrices D1 y D2 son
diagonales. Puede demostrarse que, si se utilizan los mismos pivotes y las D1 y D2 solo
contienen potencias enteras de la base del sistema de numeración utilizado, los
resultados son los mismos (habida cuenta de los cambios de unidades).

Sin embargo las unidades utilizadas pueden afectar la selección de pivotes,


especialmente si sólo se hace intercambio parcial.

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:

máx aij = 1 i=1,2,3,...n


1≤ j ≤ n

2.6.5 Método iterativo para mejorar la solución

Considérese el sistema de ecuaciones Ax = b para el que se tiene la solución


aproximada x ( 0) . Si x es la solución exacta, se tiene que:

x = x ( 0 ) + ∆x ( 0 )
y entonces:

A ∆x (0) = r (0)

donde: r ( 0 ) = b − Ax ( 0)

Al determinar . x ( 0) . se obtienen los factores triangulares aproximados L y U tales que


L U = A + ∆A , siendo ∆A pequeño. Esta descomposición requiere aproximadamente
( )
O 1 3 n 3 operaciones.
( )
A partir de x ( 0) puede determinarse r ( 0 ) en O n 2 operaciones y resolverse:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 25


L z=r
U ∆x = z

( )
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.

Los vectores ∆x (1) y x ( 2 ) permiten también estimar el número de condicionamiento:

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.

Considérese, por ejemplo, el sistema de ecuaciones:

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:

5 7 3   1.00   5.00 7.00 3.00 


    
7 11 2  =  1.40 1.00  1.20 − 2.20 
3 2 6   0.60 − 1.83 1.00   0.17 

De la reducción del segundo miembro, es decir la solución de L y = b se obtiene:

y = (0.00 − 1.00 − 1.83)


T

Finalmente por sustitución inversa, es decir resolviendo U x = y , se determina

x (1) = (35.3 − 20.6 − 10.8)


T

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 26


Para esta solución aproximada se tiene el residuo:

r (1) = b − A x (1) = (0.100 0.100 )


T
0.100

El cómputo de los bi − ∑a ij x j deben hacerse en doble precisión, almacenándose los


resultados ri en precisión simple.

Resolviendo los dos sistemas triangulares: L z = r (1) y U ∆x (1) = z se obtiene:

∆x (1) = (0.685 − 0.391 − 0.195)


T

Y entonces:

x ( 2) = x (1) + ∆x (1) = (36.0 − 21.0 − 11.0 )


T

(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.

Por otro lado, considérese nuevamente el sistema:

 0.780 0.563   x1  0.217 


  = 
 0.913 0.659   x2  0.254

para el cual se obtuvo anteriormente κ(A ) de orden 2 x 106. Supóngase que se opera
en base 10 con 6 cifras significativas:

 0.780 0.563  1.00 000   0.780 000 0.563 000 


  =   
 0.913 0.659   1.17 051 1.00 000   3 ⋅ 10 −6 

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:

x (1) = (0.518 803 − 0.333 333)


T

(
r (1) = 0.139 ⋅ 10 −6 0.692 ⋅ 10 −6 ) T

No obstante ser este residuo “pequeño”, se obtiene la corrección:

∆x (1) = (− 0.127 348 0.176 433)


T

x ( 2) = x (1) + ∆x (1) = (0.391 455 − 0.156 900)


T

y es obvio que este resultado difiere más de la solución exacta x = (1 − 1)


T
que la
(1)
aproximación x antes obtenida. ¡Para resolver este sistema de ecuaciones se
requiere trabajar con un mínimo de 8 cifras significativas!

2.7.Métodos Iterativos para la Solución


de Sistemas de Ecuaciones Lineales
En los acápites siguientes se tratan dos tipos distintos de métodos iterativos. Estos
procesos pueden ser muy eficientes cuando la matriz de coeficientes, A , es de baja
densidad, más aún si la evaluación de productos de la forma Av no requiere la previa
determinación y el almacenamiento de A en forma explícita.

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 27


2.7.1 Métodos de Relajación

Estos procedimientos son adecuados sólo cuando la diagonal principal de la matriz de


coeficientes es dominante. En general, se considera una aproximación inicial, tal como
x ( 0) = 0 , y ésta es sucesivamente mejorada hasta obtener una solución suficientemente
precisa.

Considérese el sistema de orden n : A x = b , con aii ≠ 0 para todo i . En el método de


(1) ( 2) ( 3)
Jacobi se calculan las aproximaciones x , x , x L mediante:

 

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 .

En el ejemplo siguiente se usan las dos alternativas:

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

x = (0.25 − 0.25 − 0.50 )


T
0.50

Con el método de Jacobi se obtienen las sucesivas aproximaciones:

k x1( k ) x2( k ) x3( k ) x4( k )

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

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 28


k x1( k ) x2( k ) x3( k ) x4( k )
13 0.249999 0.500001 -0.249999 -0.500001
14 0.250000 0.500000 -0.250000 -0.500000
15 0.250000 0.500000 -0.250000 -0.500000

La convergencia es mejor con el método de Gauss – Seidel:

k x1( k ) x2( k ) x3( k ) x4( k )

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

En algunos casos la convergencia puede acelerarse con sobrerelajación:

xi( k +1) = xi( k ) + β ri( k ) (2.40a)

 i −1 n 
∑ ∑a
1 b −
ri( k ) = aij x (jk +1) − x (jk )  (2.40b)
aii  i ij

 j =1 j =i 

El valor óptimo de β depende de A e incluso de la aproximación x ( k ) . Cuanto mayores


sean los valores absolutos de los términos de la diagonal principal, respecto a la suma
de los valores absolutos de los restantes coeficientes de la misma fila, más se aproxima
β a 1. Para el ejemplo precedente, utilizando β = 1.05 se obtienen:

k x1( k ) x2( k ) x3( k ) x4( k )

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”.

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 29


2.7.2 Convergencia

En esta sección se analiza la convergencia de los métodos de relajación. Un paso típico


en la solución de A x = b puede escribirse como:

x ( k +1) = G x ( k ) + f (2.41)

Esto puede verse más fácilmente si se considera la descomposición:


A = D (Ti + I + Ts ) (2.42)

donde D es una matriz diagonal, con elementos a ii ; Ti y Ts son matrices triangulares,


inferior y superior respectivamente, con ceros en la diagonal principal, cuyos coeficientes
son los aij aii . Por ejemplo:

2 − 1  2 0   0 0  1 0  0 − 12 
 =   + + 
 −1 2   0 2   − 12 0   0 1   0 0 

Con esta notación, para el método de Jacobi se tiene:

x ( k +1) = −(Ti + Ts ) x ( k ) + D −1b (2.43a)

es decir: G = −(Ti + Ts ) (2.43b)

mientras que para el método de Gauss-Seidel puede escribirse:

x ( k +1) = −Ti x ( k +1) − Ts x ( k ) + D −1b (2.44a)

y por lo tanto: G = −(I + Ti )


−1
Ts (2.44b)

De modo similar, para el método de sobre relajación se tiene:

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)

y restando (2.46) de (2.41):

(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)

Además, si φ1 , φ 2 , φ 3 L φ n son los vectores característicos de la matriz G , a los que


corresponden los valores característicos λ1 , λ 2 , λ 3 L λ n , puede escribirse:

(x ( 0)
)
− x = α1 φ1 + α 2 φ 2 + α 3 φ3 + L + α n φ n

ya que los vectores característicos constituyen una base completa. Es relativamente


fácil probar que:

(x (k )
) ( )
− x = G k x ( 0) − x = α1 λk1 φ1 + α 2 λk2 φ2 + α 3 λk3 φ3 + L + α n λkn φ n (2.47c)

Para tener convergencia:

(
Lim x (k ) − x = 0 ) (2.48a)
k →∞

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 30


y por tanto se requiere λ i < 1 para todo i , o lo que es lo mismo:

ρ(G ) = máx λ i ≤ 1 (2.48b)


i

ρ(G ) se denomina el radio espectral de la matriz G .


Para k suficientemente grande el error se multiplica por ρ(G ) en cada paso, es decir se
tiene aproximadamente − log10 [ρ(G )] cifras decimales exactas adicionales en cada
paso.

No es práctico determinar con gran precisión los valores característicos de G (esto


significaría más trabajo que resolver el sistema de ecuaciones), pero ciertos límites
pueden ser fácilmente establecidos.

Para el método de Jacobi: g ij = − a ij a ii si i ≠ j (2.49a)

g ii = 0

y utilizando el teorema de Gerschgorin (véase el capítulo relativo a la evaluación de


valores y vectores característicos):

ρ(G ) = máx λ i ≤ máx


i i
∑gj
ij o bien máx
j ∑g
i
ji (2.49b)

con lo que la condición de convergencia ρ(G ) ≤ 1 puede rescribirse:


n n
a jj > ∑
i =1
aij aii > ∑a j =1
ij (2.49c)

i≠ j j ≠i

Estas son condiciones suficientes pero no necesarias. La convergencia es más rápida


cuanto más fuertes son las desigualdades.

Para el método de Gauss – Seidel ρ(G ) = máx [ri (1 − si )] (2.50a)


i
donde:
n aij i −1 aij
ri > ∑
j =i +1
aii
si > ∑
j =1
aii
(2.50b)

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).

Un análisis similar del método de sobre relajación permite establecer la condición


adicional: 0 < β ≤ 2

2.7.3 Métodos de Máxima Gradiente y de Gradiente Conjugada

En la primera parte de esta sección se consideran métodos para la solución de sistemas


de ecuaciones A x = b con matriz A simétrica y definida positiva, es decir, v T A v > 0
para todo vector v no nulo.

Considérese la función:

f (x) = 12 xT A x − xT b (2.51)

Si x es la solución exacta de A x = b se tiene que:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 31


f ( x) − f ( x ) = ( 1
2
xT A x − xT b − ) ( 1
2
xT A x − x T b )
= 1
2
(x − x )T A (x − x )
Pero, siendo A definida positiva: 1
2
(x − x )T A (x − x ) ≥ 0
Y por lo tanto f ( x) − f ( x ) ≥ 0 , es decir, f ( x) ≥ f ( x ) (2.52)

La igualdad solo se da si x = x . La solución de A x = b es entonces equivalente a una


minimización de f ( x) .

Dada la aproximación inicial x (0 ) , a la que corresponden el residuo r ( 0 ) = b − A x ( 0 ) y el


valor f ( x) , debe determinarse una nueva aproximación, x (1) , tal que f ( x (1) ) < f ( x (0 ) ) .
Para reducir el valor de f ( x) lo más rápidamente posible, la corrección debe hacerse en
la dirección de máxima gradiente. Debe entonces determinarse esta dirección, z , tal
que:

d
f (x ( 0) + α z )
dα α=0

sea máxima (en valor absoluto). Siendo f (x) = 12 x A x − x b , puede escribirse:


T T

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

Esto significa que debe tomarse la dirección z = r ( 0 ) (2.53b)

Ahora puede determinarse α 0 de modo que f ( x ( 0 ) + α 0 r (0 ) ) sea un mínimo.


Rescribiendo (2.53a) con z = r ( 0 ) y derivando con respecto a α :
d T T
f ( x ( 0 ) + α r ( 0) ) = α r ( 0 ) A r ( 0 ) − r ( 0 ) r ( 0 ) = 0

de donde:
T
r ( 0) r ( 0)
α0 = T
r (0) A r ( 0)
( 0) T
(dado que A es definida positiva, nunca se presenta el caso r A r ( 0) = 0 )
Finalmente:

x (1) = x ( 0) + α 0 r ( 0)

El proceso puede repetirse en sucesivos ciclos:

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)

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 32


Este método es siempre convergente, pero no puede conocerse a priori en cuantos
ciclos se tendrá la precisión requerida.

En los párrafos siguientes se estudia una modificación de este proceso, el método de


Gradiente Conjugada, para el que – al menos en teoría - puede garantizarse la
convergencia en un número de pasos igual o inferior al orden del sistema de ecuaciones.
Considérese el sistema de ecuaciones de orden n , A x = b . Dada una solución
aproximada, x (0 ) , la solución exacta, x , puede escribirse como:

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

Alternativamente, puede utilizarse


T
r ( j) r ( j)
αj = T (2.58b)
s j As j

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 33


La expresión alternativa α j = (s j r
T ( 0)
) (s Tj A s j ) no es conveniente, por la acumulación
de errores de redondeo.

Dado que los s 0 , s 1 , s 2 L s n − 2 , s n −1 son n vectores linealmente independientes en un


espacio n -dimensional, el error siempre puede ser expresado como una combinación
lineal de estos vectores , es decir el proceso debería llegar a la solución exacta (salvo
errores de redondeo) en n pasos.

El vector s k +1 se obtiene eliminando de r ( k +1) la componente según A s k :

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

En el proceso de determinación de pueden tenerse errores de cancelación importantes si


son aproximadamente paralelos.

Es relativamente fácil probar que si s 0 , s 1 , s 2 L s k son A -ortogonales, entonces s k +1


calculado con (2.59) resulta también A -ortogonal a todos los vectores previamente
hallados. Para empezar, con 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

Por otro lado, de (2.57) se concluye que:


T
s Tk +1 A s j = r ( k ) A s j
y

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  

El método de gradiente conjugada puede resumirse en los pasos siguientes:

Dado x ( 0 ) , determinar r ( 0) = s 0 = b − A x ( 0)

Y luego para k = 0, 1, 2 L n − 1 :

qk = A sk (no se requiere A en forma explícita)


( k )T
r r (k )
αk =
s Tk q k
x ( k +1) = x ( k ) + α k s k (2.61)

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 )

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 34


s k +1 = r ( k +1) − β k s k

Como ejemplo, considérese la solución del sistema de ecuaciones Ax = b definido por:

 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

El método de gradiente conjugada puede ser generalizado para resolver cualquier


sistema de ecuaciones A x = b (con A no singular):

Con x ( 0 ) arbitrario, se obtiene r ( 0) = s 0 = b − A x ( 0)

Y luego para k = 0, 1, 2 L n − 1 :

q k = AT sk (no se requiere A en forma explícita)


( k )T
r r (k )
αk =
q Tk q k
x ( k +1) = x ( k ) + α k q k (2.62)

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 35


r ( k +1) = r ( k ) − α k A q k
T
r ( k +1) r ( k +1)
βk = − T
r (k ) r (k )
s k +1 = r ( k +1) − β k s k

2.8 Sistemas Sobre-Determinados de Ecuaciones Lineales


El problema de determinación de los parámetros de un modelo lineal para aproximar un
conjunto de datos es frecuente. A fin de reducir la influencia de errores de medición, es
habitual hacer más mediciones que las estrictamente necesarias, de donde resultan más
ecuaciones que incógnitas.

Dada una matriz A de orden m × n ( m > n ) y un vector b de orden m , se requiere


determinar x de modo tal que A x sea la mejor aproximación posible a b .

Un proceso simple (y muy adecuado si los errores en los bi son estadísticamente


independientes) es el método de mínimos cuadrados, que consiste en minimizar la
2
magnitud del residuo r = b − A x (o minimizar r = r r ) con respecto a las x . Dado
T

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)

Si A = ( a1 a2 a 3 L a n ) , la matriz simétrica C = A T A tiene elementos cij = aTi a j .


La matriz C es no singular sólo si todas las columnas a k de la matriz A son
linealmente independientes.

Para formar las ecuaciones normales se requieren 1


2 mn (n + 3) operaciones. Para
resolver el sistema O ( 1
6n
3
) operaciones. La mayor parte del trabajo está en formar las
ecuaciones normales.

Considérese por ejemplo

 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:

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 36


 3 −1 − 1   x1  − 1
    
−1 3 − 1  x2  =  1 
−1 −1 3   x3   6 

de donde:

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

y dado que Q Q = I se obtiene:


T

(
R T QT b − R x = 0 )
La matriz R no es singular y por tanto:

R x = QT b (2.66)

La matriz R es la misma que se obtendría al descomponer A T A en dos factores


triangulares por el método de Cholesky. Para el ejemplo precedente:

 1 0 0  0.5774 0.2041 0.3536 


   
 0 1 0  0 0.6124 0.3536 
 0   1.7321 − 0.5774 − 0.5774 
0 1 0 0 0.7071   
A=  = QR =   0 1.6330 − 0.8165 
−1 1 0  − 0.5774 0.4082 0 
    0 0 1.4142 
 0 −1 1  0 − 0.6124 0.3536  
 1   0.3536 
 0 1  − 0.5774 − 0.2041

de donde:

1.7321 − 0.5774 − 0.5774   x1  − 0.5774


    
Rx= 0 1.6330 − 0.8165   x 2  = Q b =  0.4082 
T

 0 0 1.4142   x3   4.2426 
  
y finalmente: x = ( 1.25 3)
T
1.75

H. Scaletti - Métodos Numéricos: Álgebra Lineal 2 - 37


3. Valores y Vectores Característicos

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)

Se dice entonces que φ es un vector característico (también llamado vector propio,


eigenvector o modo) de la matriz A. El correspondiente escalar λ es un valor
característico (también llamado valor propio, autovalor o eigenvalor). Nótese que si un
vector satisface las ecuaciones (3.1a) también un múltiplo arbitrario (un vector "paralelo")
es solución. Sin embargo, se trata esencialmente de la misma solución; los vectores
característicos sólo se califican como distintos si sus componentes no son
proporcionales.

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 − 11  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)

En muchas aplicaciones las matrices A y B son simétricas y definidas positivas. En


algunos casos se hacen hipótesis simplificadoras que resultan en B diagonal. El
problema clásico, definido en (3.1a), corresponde al caso particular B = I.

3.1.1 Conversión del Problema General a la Forma Clásica

Un problema de la forma general (3.1b) puede convertirse a otro equivalente de la forma


clásica (3.1a). Así por ejemplo, si B es no singular puede determinarse:

B-1 A φ = λ φ (3.2)

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-1


Sin embargo, si A y B son simétricas (como es, por ejemplo, el caso en problemas de
vibración, en los que esas matrices son respectivamente rigideces y masas) conviene
más hacer la descomposición (Cholesky):
B = RT R (3.3a)

y efectuar entonces el cambio de variables

φ = R-1 z (3.3b)

con lo que se obtiene:

(R ) A R z = λ z
-1 T -1
(3.3c)

Esto es particularmente fácil si B es diagonal.


B = B½ B½
φ = B-½ z (3.4)

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).

3.1.2 Polinomio Característico y Valores Propios

Las ecuaciones A φ = λ B φ pueden también rescribirse como:

(A - λ B ) φ = 0 (3.5a)

que tiene soluciones no triviales sólo si la matriz (A - λ B) es singular, es decir, si:

p(λ ) = det ( A − λB ) = 0 (3.5b)

p(λ ) se denomina polinomio característico. Siendo A y B matrices cuadradas de orden


n, p(λ ) es un polinomio de grado n, cuyas raíces son λ1, λ2, ٠٠٠ λn. En lo que sigue se
supone, sin perder generalidad, que: λ1 ≤ λ 2 ≤ λ 3 ≤ ⋅ ⋅ ⋅ ≤ λ n

3.1.3 Independencia Lineal de los Vectores Característicos

Asociado a cada uno de los n valores característicos λ i se tiene un vector φi. Si λ i es


una raíz de multiplicidad m, el correspondiente vector φi puede obtenerse resolviendo el
sistema de ecuaciones homogéneas: (A - λ i B) φi = 0 suponiendo m componentes
arbitrarias en φi.

Los vectores característicos correspondientes a valores característicos distintos son


linealmente independientes. Supóngase que éste no fuera el caso, pudiéndose obtener
uno de los vectores como combinación lineal de otros que sí son linealmente
independientes:
j
φs = ∑c φ
i =1
i i (3.6a)

Y entonces:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-2


j j
Αφ s = ∑
i =1
c i Αφ i = ∑ c λ Βφ
i =1
i ι i (3.6b)

Por otro lado, por la definición del problema, (3.1b):


j
Αφ s = λs Β φ s = ∑c λi =1
i s Βφ i (3.6c)

j
Restando (3.6b) de (3.6c) se obtiene: ∑ c (λ
i =1
i s − λ i ) Βφ i = 0

Si λs ≠ λ i debería entonces tenerse ci = 0 para todo i, lo que se opone a la hipótesis.

Excepcionalmente pueden presentarse valores característicos repetidos. Aún en este


caso es factible obtener vectores característicos linealmente independientes. Sin
embargo, el conjunto de vectores asociados a los valores característicos repetidos define
un subespacio, tal que cualquier vector del subespacio (es decir una combinación lineal
de aquellos tomados como base) es también un vector característico:
A φ i = λ i B φi
A φ i = λ i B φi (3.7)

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)

Por ejemplo, con los vectores característicos antes obtenidos:

1  3 1 1  1 
 = 2 − 2 
2  1 − 1

3.1.4 Ortogonalidad de los Vectores Característicos

Si las matrices A y B son Hermitianas (o simplemente simétricas) y definidas positivas,


los valores característicos de A φ = λ B φ son todos reales y positivos. Para probar
esto basta considerar:

φ s* Αφ r = λ r φ s* Bφ r (3.9a)

φ r* Αφ s = λ s φ r* Bφ s (3.9b)

El superíndice * denota aquí conjugada traspuesta. La conjugada transpuesta de la


segunda de estas expresiones es (recuérdese que λ s es un escalar):

φ *s Αφ r = λ*s φ *s Bφ r (3.9c)

y al ser A y B Hermitianas (es decir A* = A y B* = B), restando (3.9c) de (3.9a) se


obtiene:

(λ 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

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-3


además A es definida positiva, es decir φ r* Aφ r > 0 , se concluye que los valores
característicos son todos positivos.

Por otro lado, si λ r ≠ λ s se tiene que λ r − λ*s ≠ 0 y en consecuencia (3.9d) implica que:

φ *s B φ r = br δ rs (es decir, cero si r ≠ s ) (3.10a)

y además, observando las expresiones precedentes:

φ *s A φ r = a r δ rs (3.10b)

Las propiedades de ortogonalidad expresadas en (3.10) son la base para la


descomposición modal utilizada al resolver sistemas de ecuaciones diferenciales en
aplicaciones tales como el análisis sísmico lineal.

Refiriéndose nuevamente al ejemplo inicial:

 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

3.1.5 Normalización de los Vectores Característicos

Como se mencionó anteriormente los vectores característicos se definen por la


proporción de sus elementos, pudiéndose escalar o "normalizar" en forma arbitraria. Es
frecuente escalarlos de modo que:

φ *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)

3.1.6 Cociente de Rayleigh

Si se conoce un vector característico φi, el correspondiente valor λ i puede determinarse


con el cociente de Rayleigh:

φ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

3.1.7 Teorema de Gershgorin

Supóngase que λ i es un valor característico de la matriz A y que φ i es el


correspondiente vector, con componentes v1 v 2 v3 L :

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-4


A φi = λ i φi (3.13a)

La componente de mayor valor absoluto en φ i es v s . Dividiendo la ecuación s en (3.13a)


entre v s e intercambiando ambos miembros:

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.

Por ejemplo, considerando la matriz:

 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 .

3.1.8 Formas polinómicas

Supóngase que se conocen los valores y vectores característicos de una matriz, A:

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

A-1 φ = λ-1 φ (3.14c)

Por otro lado, combinando linealmente expresiones de la forma (3.14b) y teniendo en


cuenta que A = I (así como λ = 1):
0 0

(c0 I+ c1 A+ c2 A2 + c3 A3 +...) φ = (c0 + c1 λ+ c2 λ2 + c3 λ3 +...) φ (3.14d)

Por ejemplo, si:

 2 − 1
A =  
−1 2 

tiene valores característicos 1 y 3, la matriz:

 5 − 4
A 2 = AA =  
− 4 5 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-5


tiene valores característicos 1 y 9 (es decir, los cuadrados de 1 y 3). Los vectores
característicos son los mismos para ambas matrices.

3.2 Métodos de Iteración con Vectores

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.

3.2.1 Iteración Directa

En la iteración "directa" se considera un vector inicial x 0 y se obtiene una secuencia de


vectores corregidos, x k , mediante:

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..

Este proceso converge al vector característico φ n , asociado al valor característico de


mayor módulo, λ n . En efecto, la aproximación inicial x0 puede escribirse como:

x0 = α1 φ1 + α2 φ2 + α3 φ3 + … + αn-1 φn-1 + αn φn (3.16a)

Recuérdese que los n vectores característicos son linealmente independientes y


constituyen una base completa en el espacio de dimensión n. Entonces (suponiendo
que B no es singular):

A x0 = ∑ α Aφ = ∑ α λ B φ
i i i i i (3.16b)

x1 = B −1 Ax 0 = (α1 λ1) φ1 + (α2 λ2) φ2 + …+ (αn λn) φn (3.16c)

y por lo tanto:

∑ (α λ ) φ
1
x1 = i i i (3.16d)
r1 n

Se observa que, si las componentes de x0 eran αi, aquellas de x1 resultan proporcionales


a αi λi. Repitiendo pasos análogos a los indicados en (3.18), puede comprobarse que la
aproximación xk puede expresarse como combinación lineal de los vectores
característicos con coeficientes proporcionales a α i λ ki (en este caso k es un exponente).
En consecuencia, si λ n ≥ λ n −1 ≥ λ n − 2 ≥ L ≥ λ 1 , las componentes según φn crecen
más rápidamente que las otras y se tiene que:

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

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-6


λ n >> λ n−1 o si x0 es aproximadamente paralelo a φn (es decir, si la componente αn
es importante en relación a las demás). En cambio, si los últimos valores característicos
son similares la convergencia es en general muy lenta. Por otro lado, no se tienen
dificultades para el caso (más académico que práctico) en que λ n = λ n −1 : en tal caso el
proceso converge a un vector característico que resulta ser la proyección de x0 en el
subespacio definido por los vectores φn y φn-1.

Considérese por ejemplo el problema A φ = λ B φ con las matrices:

 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.

En este caso se obtienen:

k xk Ax k x k +1 r k+1 ρ (xk+1)

0 1.00000 5.00000 5.00000 5.00000


0.00000 -2.00000 -1.00000
0.00000 0.00000 0.00000 5.481481

1 1.00000 5.40000 5.40000 5.40000


-0.20000 -2.60000 -1.30000
0.00000 0.20000 0.06667 5.502594

2 1.00000 5.48148 5.48148 5.48148


-0.24074 -2.73457 -1.36728
0.01235 0.25309 0.08436 5.503559

3 1.00000 5.49887 5.49887 5.49887


-0.24944 -2.76370 -1.38185
0.01539 0.26483 0.08828 5.503603

4 1.00000 5.50259 5.50259 5.50259


-0.25130 -2.76994 -1.38497
0.01605 0.26735 0.08912 5.503605

5 1.00000 5.50339 5.50339 5.50339


-0.25169 -2.77128 -1.38564
0.01620 0.26789 0.08930 5.503605

6 1.00000 5.50356 5.50356 5.50356


-0.25178 -2.77156 -1.38578
0.01623 0.26801 0.08934 5.503605

 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.

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-7


El valor de r es aproximadamente λn, pero el cociente de Rayleigh, ρ(x)" proporciona
siempre una aproximación mejor.

3.2.2 Iteración Inversa

El proceso de iteración directa antes descrito converge al vector característico asociado


al valor característico de mayor módulo. Éste puede ser útil al considerar el
condicionamiento de las matrices de coeficientes en grandes sistemas de ecuaciones, o
al analizar la estabilidad numérica de ciertos métodos para integrar sistemas de
ecuaciones diferenciales, pero por lo general tiene poca importancia en la respuesta del
sistema estudiado. Para determinar la respuesta de un sistema se requieren más bien
los valores característicos de menor módulo y sus vectores asociados.

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

En este caso si:

x0 = α1 φ1 + α2 φ2 + α3 φ3 + … + αn-1 φn-1 + αn φn (3.19a)

la aproximación xk puede expresarse como combinación lineal de los vectores


característicos con coeficientes proporcionales a α i λki (nuevamente, k es aquí un
exponente):
α1 α2 α3 α n −1 αn
xk = φ1 + φ2 + φ3 + … + φn-1 + φn (3.19b)
λk1 λk2 λk3 λkn −1 λkn

En consecuencia, si λ 1 ≤ λ 2 ≤ λ 3 ≤ ⋅ ⋅ ⋅ ≤ λ n al emplear la iteración inversa se tiene


que:

Lim x k = φ1 (3.20a)
k →∞

1
Lim rk = (3.20b)
k →∞ λ1

Los comentarios anteriores relativos a la convergencia de la iteración directa son


también válidos. En este caso la velocidad de convergencia depende de la razón λ2 / λ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.

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-8


k xk Bx k x k +1 r k+1 ρ (xk+1)

0 0.00000 0.00000 2.66667 12.66667


1.00000 2.00000 6.66667
2.00000 6.00000 12.66667 0.154734

1 0.21053 0.21053 1.42105 6.44737


0.52632 1.05263 3.44737
1.00000 3.00000 6.44737 0.154625

2 0.22041 0.22041 1.42993 6.46463


0.53469 1.06939 3.46463
1.00000 3.00000 6.46463 0.154624

3 0.22119 0.22119 1.43102 6.46696


0.53594 1.07187 3.46696
1.00000 3.00000 6.46696 0.154624

4 0.22128 0.22128 1.43116 6.46727


0.53610 1.07221 3.46727
1.00000 3.00000 6.46727 0.154624

5 0.22129 0.22129 1.43118 6.46731


0.53613 1.07225 3.46731
1.00000 3.00000 6.46731 0.154624

6 0.22129 0.22129 1.43118 6.46731


0.53613 1.07226 3.46731
1.00000 3.00000 6.46731 0.154624

En muchas aplicaciones B es diagonal y A no lo es, por lo que la iteración directa es


más simple. Sin embargo, un paso típico de la iteración inversa requiere
aproximadamente el mismo número de operaciones que un paso de iteración directa.
Supóngase que se tienen matrices de orden n y que A es una matriz de alta densidad
(es decir, con pocos coeficientes no significativos). El número de operaciones
2
requeridas para efectuar el producto Ax es de orden n . Aquí se cuenta como una
"operación" la combinación de una multiplicación o división con una suma o resta.
2
También se ha supuesto que n es grande, por lo que n es mucho mayor que n. La
división de Ax entre los coeficientes (de la diagonal principal) de B requiere un número
de operaciones de orden n, que puede despreciarse. Es interesante observar que si
previamente se realizó (una sola vez) la factorización A = LU, la solución del sistema de
ecuaciones Ax = b requiere también un número de operaciones de orden n2, mientras
que el producto Bx demanda sólo n operaciones. Por otro lado, si la matriz A es de baja
densidad y tiene un ancho de semibanda promedio m, tanto un producto de la forma Ax
como la solución de las ecuaciones Ax = b requieren aproximadamente mn operaciones.

3.2.3 Traslación

La velocidad de convergencia de la iteración inversa depende de las razones 1 / λi. Si


λ 2 ≈ λ 1 la convergencia es lenta; siendo en cambio muy rápida si λ 1 << λ 2 . La
convergencia puede acelerarse mediante una "traslación" µ ≈ λ 1 :

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3-9


Aφ=λBφ (3.21a)

(A - µB) φ = (λ−µ) B φ (3.21b)

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.

Para el ejemplo anterior, efectuando una traslación µ = 0.154 se tiene:

 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 0.00000 0.00000 692.29 3129.01


1.00000 2.00000 1677.41
2.00000 6.00000 3129.01 0.000624

1 0.22125 0.22125 354.79 1603.26


0.53608 1.07216 859.55
1.00000 3.00000 1603.26 0.000624

2 0.22130 0.22130 354.80 1603.29


0.53613 1.07226 859.57
1.00000 3.00000 1603.29 0.000624

0.22129
 
Se obtienen: λ1 = 0.154 + 0.000624 = 0.154624 y φ1 = 0.53613 .
1.00000 

El siguiente algoritmo usa el cociente de Rayleigh para efectuar la traslación. Iniciando


el proceso con y 0 = B x 0 y µ0 = 0:
(A − µ k B ) x k +1 = y k

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 10


y k +1 = B x k +1

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

En relación con las expresiones precedentes:

Lim y k = B φ1 (3.23a)
k →∞

Lim µ k = λ1 (3.23b)
k →∞

La convergencia es cúbica.

3.2.4 Determinación de Otros Vectores Característicos

En los párrafos precedentes se ha visto cómo mediante iteración directa o inversa


pueden obtenerse φn o φ1 respectivamente. Podría determinarse un valor característico
intermedio y su vector asociado por iteración inversa con una traslación adecuada; sin
embargo, esto requeriría un procedimiento previo para definir la traslación.

En los que sigue se describe la determinación de sucesivos vectores característicos


aprovechando las condiciones de ortogonalidad para el caso en que las matrices A y B
son simétricas. La idea básica consiste en iterar con vectores ortogonales a los
previamente obtenidos. Desafortunadamente, el proceso acumula los errores de los
vectores previos y cada nuevo vector se determina siempre con menos precisión que el
anterior. En la práctica se observa que se pierde una cifra significativa por cada nuevo
vector; por tanto, no es factible determinar por este método más de unos 10 vectores
característicos. En algunas aplicaciones esto puede no ser suficiente.

A partir de un vector arbitrario:

v = α1 φ1 + α2 φ2 + α3 φ3 + ... + αn φn (3.24a)

puede obtenerse un vector ortogonal a los vectores característicos ya conocidos


haciendo uso de las relaciones de ortogonalidad:

φiT B v = α1 φiT B φ1 + α2 φiT B φ2 + ... + αn φiT B φn


φiT B v = αi φiT B φi (3.24b)

es decir:

αi = ( φiT B v ) / ( φiT B φi ) (3.24c)

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 
 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 11


0
y considerando v = 1  se obtiene α1 = 0.295889928, de donde:
0
 − 0.06548
 
x0 = v - α1 φ1 =  0.84136
− 0.29589
 
es un vector ortogonal a φ1. Si se hace una iteración inversa con x0 se obtiene
(suponiendo que se operara con una aritmética infinitamente precisa) el vector
característico φ2:

k xk Bx k x k +1 r k+1 ρ (xk+1)

0 -0.06548 -0.06548 0.24319 0.64072


0.84136 1.68272 0.64072
-0.29589 -0.88767 -0.24696 1.20534

1 0.37956 0.37956 0.40775 0.82960


1.00000 2.00000 0.82960
-0.38544 -1.15631 -0.32671 1.17649

2 0.49150 0.49150 0.43668 0.84594


1.00000 2.00000 0.84594
-0.39382 -1.18147 -0.33553 1.17517

3 0.51620 0.51620 0.44210 0.84715


1.00000 2.00000 0.84715
-0.39663 -1.18990 -0.34275 1.17504

4 0.52187 0.52187 0.43603 0.82913


1.00000 2.00000 0.82913
-0.40460 -1.21379 -0.38466 1.17113

Es importante hacer notar que, como consecuencia de los errores de redondeo se


introducen en las aproximaciones xj componentes según los vectores característicos
originalmente eliminados.. En los resultados precedentes se tienen las siguientes
componentes según φ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:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 12


j −1
xj = v - ∑α
i =1
i φi (3.25)

Para el caso del ejemplo:

 0.52588 0.221295029  0.53829


     
x 0 =  1.00000 − (− 0.056093) 0.536128843 =  1.03006
− 0.46393 1.000000000  − 0.40787
     
y luego de escalar este vector:

k xk Bx k x k+1 r k+1 ρ (xk+1)

5 0.52258 0.52258 0.44489 0.85094


1.00000 2.00000 0.85094
-0.39597 -1.18790 -0.33696 1.17511

6 0.52282 0.52282 0.44496 0.85098


1.00000 2.00000 0.85098
-0.39599 -1.18796 -0.33698 1.17511

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 φ = λ φ .

Considérese una matriz ortogonal, P , cuya última columna es igual al vector


característico φ1 previamente determinado:

P = ( p1 p 2 L p n −1 φ1 ) (3.26)

Al hacer el cambio de variable φ = P z se obtiene H P z = λ P z y premultiplicando por


PT : (P T
)
HP z = λz . Sin embargo, al ser la última columna de P igual a φ1 y
suponiendo que ese vector haya sido normalizado de modo que φ1T φ1 = 1 se tiene:
~
H 0 
T 
P HP = (3.27)
0 λ 1 

Esta matriz tiene los mismos valores característicos que la matriz original, H . Lo mismo
~
se puede decir de H , excepto por λ1 .

Hay múltiples posibilidades para formar P . En el proceso propuesto por Rutishauser se


hacen las operaciones equivalentes a trabajar con P = J1 J 2 L J n −1 , donde:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 13


1 
 
 O 
 ck sk  fila k
Jk =  
 − sk ck  fila k + 1 (3.28a)
 
 O 
 1 

columna k columna k + 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.

Los coeficientes ck y sk se determinan a partir de las componentes x1 x2 x3 L del


vector característico previamente hallado, φ1 . Definiendo:

qk2 = x12 + x22 + x32 + L xk2 (3.28b)

se tiene:
qk
sk =
q k +1
(3.28c)
x
c k = k +1
q k +1

Para el ejemplo considerado anteriormente, sería necesario primero convertir el


problema a la forma clásica. Al ser B diagonal:

 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

Con el propósito de observar que, efectivamente, la última columna de P es igual a φ1


se está evaluando aquí la referida matriz:

 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:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 14


 0.95994 0.25494 0.11625 
 
P =  − 0.28019 0.87342 0.39827 
 0 − 0.41489 0.90987 

de donde:

 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.

3.3 Métodos de Transformación

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)

para transformar A φ = λ B φ en:

(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.

3.3.1 Método de Jacobi

El método de Jacobi (1846) puede considerarse como prototipo de los métodos de


transformación. En este procedimiento se transforma el problema original a uno de la
forma:

 a1   z1   b1   z1 
 a2    b2  
  z2  = λ   z2  (3.30)
 O  M   O  M 
 a n   z n   bn   z n 
 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 15


que tiene como vectores característicos las columnas de la matriz identidad y como
valores característicos los λ i = a i bi . Los valores característicos del sistema original
son los mismos. P es en este caso una matriz ortogonal:
P-1 = PT (3.31)

cuyas columnas son la propia solución buscada. Ésta se determina mediante un


proceso iterativo que se describe a continuación.

En la forma que aquí se presenta, este método se aplica a problemas de la forma


clásica, A φ = λ φ, siendo A una matriz simétrica (real). Más adelante se consideran las
modificaciones requeridas para problemas de la forma general.

Empezando con A(0) = A y llamando φ


(0)
a los vectores característicos del problema
original, el paso k del proceso se define como:

φ(k) = Pk φ(k+1) (3.32a)

A(k) ( Pk φ(k+1) ) = λ ( Pk φ(k+1) )


y si P es una matriz ortogonal, premultiplicando por PT se obtiene:

( Pk A Pk ) φ =λφ
T (k) (k+1) (k+1)

Lo que equivale a considerar un problema similar al original:

A(k+1) φ(k+1) = λ φ(k+1) (3.32b)

Siendo:
A(k+1) = PkTA(k) Pk (3.32c)

Nótese que se mantiene la simetría de la matriz. Los valores característicos de esta


nueva matriz son los mismos de la matriz original; los correspondientes vectores se
relacionan por expresiones de la forma (3.32a).

En el método de Jacobi las matrices Pk corresponden a una rotación plana:


col i col j
1 
 
 O 
 cos θ k − sen θ k 
Pk =   fila i (3.33)
 sen θ k cos θ k  fila j
 
 O 
 1

El objetivo de un paso es hacer cero un coeficiente aij = aji. Puede verificarse
fácilmente que:
(
a ij(k +1 ) = a (kji +1 ) = a (k) )
jj − a ii cos θ k sen θ k + a ij
(k) (k )
(
cos 2 θ k − sen 2 θ k = 0) (3.34a)

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.

Además, como se mantiene la simetría de la matriz A sólo deben calcularse los

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 16


coeficientes de la submatriz triangular superior (o inferior) de A(k+1). Con la notación
c = cos θ k; s = sen θ k:

a ii(k +1 ) = a ii(k) c 2 + 2a ij(k) cs + a (k)


jj s
2

a (kjj +1 ) = a ii( k ) s 2 -2a ij( k ) cs + a (jjk ) c 2 (3.35a)

a ij(k +1 ) = a (kji +1 ) = a (k) ( )


jj − a ii cs + a ij
(k) (k )
c2 − s2 = 0 ( )
a ir(k +1 ) = a ri(k +1 ) = a ir(k) c + a (jrk ) s
(3.35b)
a (kjr +1 ) = a rj(k +1 ) = − a ir(k) s + a (jrk ) c

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 )

son de orden ε, éstos se reducen a orden ε en el siguiente ciclo.


2

El número de ciclos completos necesarios para que la matriz A sea suficientemente


aproximada a una matriz diagonal depende del orden de la matriz. Para matrices de
3
orden 50 ó 60 pueden ser necesarios 8 a 10 ciclos. Cada ciclo demanda O(2n )
operaciones.

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:

φ(k) = Pk φ(k+1) (3.37a)


y por lo tanto:

φ = φ(0) = P1 P2 P3 ... Pm (3.37b)

Para ilustrar el método de Jacobi considérese el problema A φ = λ φ con:

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

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 17


2 (− 3)
tg(2θ) = = 1.5 ⇒ cos θ = 0.881675 sen θ = 0.471858
2−6
 0.881675 -0.471858 0 0
 
 0.471858 0.881675 0 0
P1 = 
0 0 1 0
 
 1 
 0 0 0

 0.394449 0 -0.533899 0.471858 


 
 0 7.60555 -3.11688 0.881675 
A (1) = P1 A P1 = 
T (0)
-0.533899 -3.11688 6 -3 
 
 0.471858 
 0.881675 -3 4 
Luego se hacen cero los coeficientes a31:
(1)
a11 = 0.394449 a 33
(1)
= 6 a13
(1)
= a 31
(1)
= −0.533899
cos θ = 0.995574 sen θ = 0.093978

 0.995574 0 - 0.0939783 0
 
 0 1 0 0
P2 = 
0.0939783 0 0.995574 0
 
 1 
 0 0 0

 0.344051 -0.292919 0 0.187835 


 
 -0.292919 7.60555 -3.10309 0.881675 
A (2) = P2 A P2 = 
T (1)
0 -3.10309 6.0504 -3.03107 
 
 0.187835 
 0.881675 -3.03107 4 
Nótese que se tienen nuevamente valores significativos en las posiciones 12 y 21. Por
otro lado:

 0.877773 - 0.471858 - 0.0828582 0


 
 0.469770 0.881675 - 0.0443444 0
P1 P2 = 
0.0939783 0 0.995574 0
 
 1 
 0 0 0

Procediendo en forma similar:


( 2)
a 22 = 7.60555 a 33
( 2)
= 6.0504 a 23
(2)
= a 32
(2)
= −3.10309
cos θ = 0.788374 sen θ = 0.615196

 0.344051 - 0.23093 - 0.180203 0.187835 


 
 - 0.23093 10.027 0 2.55979 
A ( 3) = P3 A P3 = 
T (2)
- 0.180203 0 3.62895 - 1.84721 
 
 0.187835 
 2.55979 - 1.84721 4 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 18


 0.877773 - 0.321026 - 0.355609 0
 
 0.46977 0.72237 0.507443 0
P1 P2 P3 = 
0.0939783 - 0.612474 0.784885 0
 
 1 
 0 0 0
( 3)
a11 = 0.344051 a 44
( 3)
= 4 a14
( 3)
= a 41
( 3)
= 0.187835
cos θ = 0.99869 sen θ = 0.0511758

 0.334426 -0.361627 -0.0854342 0 


 
 -0.361627 10.027 0 2.54462 
A (4) = P4 A P4 = 
T (3)
-0.0854342 0 3.62895 -1.85401
 
 4.00963 
 0 2.54462 -1.85401

 0.876622 - 0.321026 - 0.355609 0.0449207 


 
 0.469154 0.722370 0.507443 0.0240408 
P1 P2 P3 P4 = 
0.0938551 - 0.612474 0.784885 0.00480941
 
 - 0.0511758 0.99869 
 0 0
( 4)
a 22 = 10.027 a 44
(4)
= 4.00963 a 24
(4)
= a 42
( 4)
= 2.54462
cos θ = 0.939025 sen θ = −0.343849

 0.334426 -0.339576 -0.0854342 0.124345 


 
 -0.339576 10.9588 -0.6375 0 
A ( 5) = P5 A P5 = 
T (4)
-0.0854342 -0.6375 3.62895 -1.74096 
 
 0.124345 3.07785 
 0 -1.74096

 0.876622 - 0.286006 - 0.355609 0.152566 


 
 0.469154 0.686590 0.507443 - 0.225811
P1 P2 P3 P4 P5 = 
0.0938551 - 0.573474 0.784885 0.215115 
 
 - 0.0511758 0.937795 
 0.343398 0
( 5)
a 33 = 3.62895 a 44
( 5)
= 3.07785 a 34
( 5)
= a 43
( 5)
= −1.74096
cos θ = 0.760371 sen θ = 0.649489

 0.334426 -0.339576 -0.145722 0.0390598 


 
 -0.339576 10.9588 -0.484737 -0.414049 
A (6) = P6 A P6 = 
T (5)

-0.145722 -0.484737 5.11603 0
 
 0.0390598 1.59076 
 -0.414049 0

 0.876622 - 0.286006 - 0.369485 - 0.114957 


 
 0.469154 0.686590 0.532507 0.157878 
Φ ≈ P1 P2 P3 P4 P5 P6 = 
0.0938551 - 0.573474 0.457089 0.673341 
 
 - 0.0511758 0.713072 
 0.343398 - 0.609087

con lo que termina un primer “ciclo”. Análogamente, al terminar el segundo ciclo:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 19


 0.317649 - 0.007656 - 0.0006033 - 0.0003418 
 
 - 0.007656 11.0268 0.0015155 0.0000149 
A (12 ) = 
- 0.0006033 0.0015155 5.08272 0
 
 - 0.0003418 1.57279 
 0.0000149 0

 0.856314 - 0.275908 - 0.421440 - 0.11397 


 
 0.505117 0.619208 0.566580 0.201062 
Φ ≈ P1 P2 L P12 = 
0.0771368 - 0.640155 0.399623 0.651578 
 
 - 0.0750522 0.722518 
 0.361467 - 0.584532

y al finalizar el tercer ciclo:

 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.

 0.856032 - 0.276628 - 0.421478 - 0.114202 


 
 0.505686 0.618991 0.566358 0.200923 
Φ ≈ P1 P2 L P18 =  
 0.076907 - 0.640107 0.399777 0.651558 
 - 0.074671 0.361373 - 0.584614 0.722537 
 

3.3.2 Caso de Matrices Hermitianas.

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)

 e sen φ cos φ  fila j
 
 O 
 1

Suponiendo que:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 20


hii( k ) = a hij( k ) = b − ic
(3.40a)
h (jik ) = b + ic h (jjk ) = d

Las partes real e imaginaria de los nuevos coeficientes (i , j ) resultan:

(d − a ) cos φ sen φ cos θ + b cos 2 φ − b sen 2 φ cos 2θ − c sen 2 φ sen 2θ = 0


(a − d ) cos φ sen φ sen θ + b cos 2 φ − c sen 2 φ sen 2θ − c sen 2 φ cos 2θ = 0
de donde:
c
tan θ =
b
2 (b cos θ + c sen θ)
(3.40b)
tan 2φ =
a−d

3.3.3 Método de Jacobi Generalizado.

Es posible modificar el método de Jacobi "clásico" antes descrito para resolver


directamente el problema general A φ = λ B φ.

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.

Un paso del proceso general se define por:


A(k+1) = PkTA(k) Pk (3.41)

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

bij(k +1 ) = b (kji +1 ) = α k bii(k) + (1 + α k γ k ) bij( k ) + γ k b (k)


jj = 0 (3.43)

Estas dos ecuaciones son independientes, excepto en el caso en que

a ii(k) a ij(k) a (k)


jj
= = (3.44a)
bii(k) bij(k) b (k)
jj

a ij(k)
en el que puede considerase, por ejemplo: αk = 0 γk = (3.44b)
a (k)
jj

Definiendo:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 21


c1 = a (jjk ) bij( k ) − b (jjk ) a ij( k )
c 2 = a ii( k ) bij( k ) − bii( k ) a ij( k ) (3.45a)

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 θ .

Los comentarios precedentes relativos a la convergencia son también aquí aplicables.


3
El número de operaciones en cada ciclo es de O(3n ).

El siguiente ejemplo ilustra los aspectos nuevos introducidos en esta sección. Se


pretende determinar los valores y vectores característicos del sistema: A φ = λ B φ,
donde:

 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

Este proceso se aplica al problema clásico A φ = λ φ, donde A no requiere ser


simétrica, pudiendo tener valores característicos cero (o incluso negativos). En el caso

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 22


más general, para una matriz A cualquiera, el método QR es poco eficiente, ya que
3 2
requiere O( 4 3 n ) operaciones por paso. Sin embargo, sólo se requieren O(4n )
operaciones por paso si A es de la forma Hessemberg:

 a11 a12 a13 a14 a15 K


 
 a 21 a 22 a 23 a 24 a 25 
 
0 a 32 a 33 a 34 a 35
A=  (3.46)
 0 0 a 43 a 44 a 45 
 
 0 0 0 a 54 a 55 
 
L O

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.

En todo caso es siempre posible efectuar la transformación a la forma Hessemberg


3
(tridiagonal si A y B son simétricas), requiriéndose un total de O( 5 3 n ) operaciones
(una sola vez).

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)

donde Q k es una matriz ortogonal (es decir, Q Tk Q k = I ) y R k es una matriz triangular


superior. Luego se efectúa el producto en orden cambiado:

A ( k +1) = R k Q k (3.48b)

Obsérvese que premultiplicando (3.48a) por Q Tk se obtiene:

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)

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 23


Nótese que si A ( k ) es simétrica A ( k +1) también resulta simétrica. La expresión (3.48d)
indica además que A ( k +1) es "similar" a A ( k ) : sus valores característicos son los
mismos, los correspondientes vectores se relacionan por una transformación lineal:

A (k ) φ (k ) = λ φ (k ) (3.49a)
al efectuar el cambio de variables:

φ ( k ) = Q k φ ( k +1) (3.49b)
se obtiene:

A ( k ) Q k φ ( k +1) = λ Q k φ ( k +1) (3.49c)

(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)

para mejorar la convergencia al segundo valor característico y análogamente se


procede para los otros valores requeridos. Por regla general se requieren sólo 2 pasos
por cada valor característico adicional. Al finalizar el proceso debe agregarse a los
valores λ obtenidos la suma de las traslaciones µ k efectuadas.

Los vectores característicos podrían obtenerse con el producto:

φ ( 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 λ .

La determinación de Q y R en un paso puede hacerse en diversas formas. El proceso


más eficiente consiste en transformar A en una matriz triangular superior utilizando
matrices de rotación plana (como en el método de Jacobi):

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 24


(PT T
n , n −1 L P31
T
P21)A=R (3.52a)

y por lo tanto:
Q = P21 P31 L Pn ,n −1 (3.52b)

La matriz P ji , que permite hacer cero el coeficiente ji:


col i col j
1 
 
 O 
 cos θ k − sen θ k 
Pk =   fila i (3.53a)
 sen θ k cos θ k  fila j
 
 O 
 1

se obtiene mediante:

a ii( k )
cos θ =
d
a (jik )
sen θ = (3.53b)
d

d= (a ) + (a )
(k ) 2
ji
(k ) 2
ii

Sólo se requiere un ciclo de estas transformaciones para obtener R. No es necesario


iterar.
 2 1 0
 
Para un ejemplo del proceso considérese la matriz: A (0)
= 1 4 1
 
 0 1 2
Esta es una matriz simétrica (lo cual no es un requisito para emplear el método QR) y,
siendo tridiagonal, tiene la “forma Hessemberg”.

Para transformar A en una matriz triangular superior R se hace primero cero el


coeficiente a21:
(0)
a11 =2 ( 0)
a 21 =1 d = 2.236068
cos θ = 0.894427 sen θ = 0.447214

 .894427 - .447214 0 
 
P21 =  .447214 .894427 0 
 
 0 0 1

 2.236068 2.683281 0.447214 


 
T
P21 A (0) = 0 3.130494 .894427 
 
 0 1 2 
Luego se hace cero a32, con lo que se obtiene una matriz triangular superior:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 25


(0)
a 22 = 3.130494 (0)
a 32 =1 d = 3.286335
cos θ = 0.952579 sen θ = 0.304290

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 

Y se completa el primer paso efectuando el producto:

 3.200000 1.469694 0 
 
A (1)
= R 1Q1 = R 1 P21 P32 =  1.469694 3.244444 .496904 
 
 0 .496904 1.555556 

Análogamente, en el segundo paso:

 .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 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 26


 4.655737 .453953 0 
 
A (3)
= R 3 Q 3 = R 3 P21 P32 =  .453953 2.020318 .196780 
 
 0 .196780 1.323944 

Suponiendo que el coeficiente a 33 = 1.323944 sea una buena aproximación al primer


( 3)

valor característico, se efectúa una traslación:

 3.331794 .453953 0 
 
A (3)
− 1.323944 I =  .453953 .696375 .196780 
 
 0 .196780 0 

obteniéndose en el cuarto paso:

 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

Y puede trabajarse con la submatriz de un orden menor:

 2.732050 .003973 
A (6) =  
 .003973 0 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 27


(6)
a11 = 2.732050 (6)
a 21 = 0.003973 d = 2.732051
cos θ = 1 sen θ = 0.000307

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

3.3.5. Transformación a la Forma Hessemberg

Si el método QR se aplicara a una matriz cualquiera sería en general poco eficiente,


( )
puesto que requiere O 4 3 n 3 operaciones por paso. Para reducir el número de
( )
operaciones a O 4n 2 por paso debe previamente transformarse la matriz a la forma
"Hessemberg" (es decir, una matriz que es casi triangular superior, teniendo además
coeficientes significativos en la primera codiagonal inferior):

 h11 h12 h13 h14 L h1n 


 
 h21 h22 h23 h24 L h2 n 
 
0 h32 h33 h34 L h3n 
H =  (3.54)
0 0 h43 h44 L h4 n 
 
 M M M M O 
 
 0 0 0 0 hn ,n −1 hnn 

Si la matriz original fuera simétrica, la transformación a la forma Hessemberg, que


puede hacerse conservando la simetría, produce una matriz tridiagonal. En tal caso el
QR requiere apenas 12 n operaciones por paso. Cabe anotar que la forma
Hessemberg (tridiagonal para el caso simétrico) no se pierde en los sucesivos pasos
del método QR.

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:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 28


1 0 0 0 L 0
 
0 1 0 0 L 0
 
0 b32 1 0 L 0
B= (3.55a)
0 b b43 1 L 0
 42

M 
 
 0 bn 2 b n 3 bn 4 L 1

con coeficientes arbitrarios en la primera columna (que por simplicidad se ha escrito


como la primera columna de la matriz identidad). Los coeficientes de las sucesivas
filas de H y columnas de B pueden entonces obtenerse con las expresiones:
n r
hir = a ir + ∑
k = r +1
a ik bkr − ∑b
k =1
ik hkr i = 1, 2, L r + 1 (3.55b)

 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 .

También puede hacerse la transformación a la forma Hessemberg por rotaciones


planas (método de Givens) o reflexiones (Householder). El método de Householder
utiliza matrices ortogonales y simétricas, de la forma:

P = I − 2 w wT (3.56)

donde w es un vector unitario: w T w = 1 . Es fácil probar que P = P T = P −1 .


La matriz P refleja al espacio en el "plano" que pasa por el orígen y es ortogonal a w .
Considérese un vector cualquiera v = α 0 w + α 1u donde u T w = 0 . Entonces,
(
P v = I − 2 w wT )( α
+ α 1u ) = − α 0 w + α 1u . Nótese que la componente según w
0w
ha cambiado de signo, es decir, el vector v ha sido reflejado en el plano ortogonal a
w.
La transformación de A en H mediante el método de Householder requiere n − 2
pasos ( n es aquí el orden del sistema) de la forma:

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:

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 29


 0 
 M 
 
 0 
  una matriz que contiene los coeficientes de la columna k de
v k =  a k( k+)1,k 
a ( k )  A (k ) que están por debajo de la diagonal principal, y
 k + 2, k 
 M 
 (k ) 
 a nk 

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)

Igualmente, al postmultiplicar A por P las filas se modifican en forma independiente.


Llamando ahora a i a la fila i de la matriz A = PA , la correspondiente fila de A = A P
resulta:

( )
ai = a i I − θ k w k w Tk = a i − θ k ( a i w k ) w Tk (3.58b)

Por ejemplo, considérese la matriz:

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 w 1T A (1) = (1.00000 1.38619 1.23786 0.93096)

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 30


 4.00000 3 2 1 
 
 - 3.74166 - 5.34522 - 5.34522 - 4.27618 
P1 A (1) = 
 0 0.22762 1.52428 1.13809 
 0 0.61381 1.76214 3.06904 

 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

θ 2 w T2 A ( 2 ) = (0 1.00000 - 0.61346 - 0.93647 )

 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 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 31


3.4 Métodos Mixtos

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.

3.4.1 Iteración con la Determinante de (A - µ B)

Los valores propios de A φ = λ B φ son los ceros del polinomio característico


p (λ ) = det (A − λ B ) = 0 . Por ejemplo, si:
4 2 0 0 1 0 0 0
   
2 8 2 0 0 2 0 0
A=  B= 
0 2 8 2 0 0 2 0
0 0 2 4  0 0 0 1 
 
Las raíces del polinomio:

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

son los valores característicos. La determinación de los coeficientes del polinomio


característico es factible (utilizando, por ejemplo, el método de Hessemberg). Una vez
obtenidos los coeficientes del polinomio característico, se requiere determinar los
valores de λ para los que p (λ ) = 0 . Sin embargo, éste es frecuentemente un
problema mal condicionado: pequeños errores en los coeficientes causan grandes
errores en las raíces. Por ello, los métodos en los que se hace una determinación
explícita del polinomio característico sólo son adecuados para pequeñas matrices.

Para matrices de orden elevado, pero con un ancho de banda comparativamente


pequeño, pueden determinarse los valores característicos por iteración, evaluando la
determinante de A − µ k B para una secuencia de valores µ k que se corrigen con
procesos tales como el método de la secante. Así, dadas las aproximaciones µ k −1 y
µ k a una raíz y habiéndose calculado p(µ k −1 ) = A − µ k −1 B y p(µ k ) = A − µ k B se
obtiene una mejor aproximación, µ k +1 , mediante:

 µ 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.

Si A − µ B se descompone en el producto de una matriz triangular inferior, L , con


unos en la diagonal principal, por una matriz triangular superior, U , se tiene que:
p (µ ) = det (A − µ B ) = det (LU ) = det (L ) det (U ) (3.60a)

donde:
det (L ) = l11 l 22 l 33 l 44 L = 1
det (U ) = u11 u 22 u 33 u 44 L
(3.60b)

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 32


y por lo tanto: p (µ ) = u11 u 22 u 33 u 44 L u nn

La descomposición de A − µ B en factores triangulares LU requiere pocas


operaciones si el ancho de banda es pequeño.

Particularmente importante es el caso en el que las matrices A y B son simétricas y


definidas positivas (todos los valores característicos son reales y positivos). En tal caso
puede aplicarse la propiedad de Sturm: el número de coeficientes negativos en la
diagonal principal de U al hacer la descomposición A − µ B = LU es igual al número
de valores característicos menores que µ k . Esta propiedad, combinada con la
iteración (3.59) u otra similar, permite obtener una primera aproximación a una raíz. Sin
embargo, el proceso debe combinarse con iteraciones inversas usando el cociente de
Rayleigh para refinar los valores obtenidos.

Para las matrices A y B antes indicadas, con µ = 1.5 :

 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

3.4.2 Iteración en Subespacio

El método tratado en la sección precedente es eficiente cuando las matrices tienen


ancho de banda relativamente pequeño. Cuando el ancho de banda es grande es más
adecuado un proceso de iteración en subespacio, como se describe en este acápite.
Este método tiene por objeto determinar en forma simultánea los p vectores
característicos asociados a los valores característicos de menor módulo. La idea
básica es que es mucho más fácil iterar para obtener un subespacio que contenga a
estos vectores que iterar para obtener cada uno de ellos por separado.

Se trabaja con una colección de q vectores linealmente independientes ( q > p ). Los


q vectores iniciales definen un subespacio que no necesariamente contiene a los p

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 33


vectores de interés. Si esos p vectores característicos si estuvieran contenidos en el
subespacio, sería suficiente proyectar Aφ = λBφ para obtener el sistema
A z = λ B z , de orden q << n , que sería fácil de resolver por métodos de
transformación. Los valores característicos del problema proyectado serían los mismos
del problema original, mientras que sus vectores característicos, z , corresponderían a
las proyecciones de los vectores φ en el subespacio. No siendo éste el caso, se hacen
iteraciones inversas para mejorar los q vectores con los que se trabaja, de modo que
el subespacio por ellos definido sea más y más “paralelo” a los p vectores propios de
interés.
En lo que sigue, se supone que A y B son matrices simétricas. Siendo X k los q
vectores de aproximación, en cada ciclo del proceso se realizan los pasos siguientes:

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.

b. Proyección de A y B en el subespacio definido por los vectores X k +1 :

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 .

c. Solución del problema de valores y vectores característicos proyectado:

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.

d. Determinación de nuevos vectores:

X k +1 = X k +1 Q k +1

Como consecuencia de los pasos c y d:

( )
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

es decir, los vectores X k +1 satisfacen las condiciones de ortogonalidad, lo que asegura


que la iteración inversa no produce q vectores todos iguales a φ1 .

Si en las X 0 hay componentes según todos los p vectores característicos de interés:

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

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 34


medida adecuada del error relativo y es útil para verificar la convergencia.
Adicionalmente, debe comprobarse que los valores y vectores obtenidos corresponden
a los p menores valores característicos. Para ello puede usarse la propiedad de
Sturm, factorizando A − µ B en LU con valores de µ ligeramente mayores a los λ
calculados.

Si A y B son simétricas, de orden n , ancho de semibanda m , y A es definida


positiva, el número de operaciones iniciales requeridas es de O 12 nm 2 , ( )
esencialmente para la factorización de A . En cada ciclo de la iteración, considerando
q << n , deben hacerse O ( nq ( 4 m + 2q + 3)) operaciones. Esto puede reducirse a
O ( nq ( 2 m + 2q + 3)) cuando B es diagonal. Para el procedimiento como se ha
descrito en los párrafos precedentes, se trabaja con q = min ( 2 p, p + 8 ) .
Habitualmente unos 10 ciclos de iteración son suficientes para obtener 6 cifras
significativas correctas en los p valores y vectores característicos. Las operaciones
finales requieren O ( 1
2
)
nm 2 p operaciones adicionales.

Aproximación Inicial

Para iniciar el proceso se requieren q vectores linealmente independientes, agrupados


en X 0 . Si A y B fueran diagonales, los vectores característicos serían las columnas
e k de la matriz identidad. Aún cuando A y B no sean diagonales, éste puede ser un
buen criterio para construir la aproximación inicial X 0 . En particular, deberían
escogerse las columnas cuyo índice k corresponde a los máximos bkk a kk . Con el
propósito de introducir componentes según todos los vectores característicos, se
acostumbra además considerar dos columnas con componentes arbitrarios (que
podrían ser todos iguales a 1, o iguales a los bkk a kk ).

En algunas aplicaciones es fácil obtener una buena aproximación al primer vector


característico, por ejemplo, como solución de un sistema de ecuaciones de la forma
A x 1 = b . Las sucesivas columnas x k para una excelente aproximación inicial pueden
entonces obtenerse como vectores de Ritz, mediante un proceso recursivo que
combina pasos de iteración inversa con ortogonalización:
A y k = B x k −1
k −1  y Tk B x j 
xk = y k − ∑ 
 T
j =1  x j B x j
x
 j

Determinación de Grupos de Vectores Característicos Haciendo Traslaciones

Si se requieren muchos vectores característicos, el procedimiento estándar de iteración


en subespacio puede hacerse más eficiente utilizando sucesivas traslaciones en
combinación con procedimientos de eliminación de las componentes según los
vectores ya conocidos.

En este caso se trabaja con subespacios de dimensión q , con el propósito de


( )
determinar grupos de p ≈ q 2 vectores. Habitualmente q = máx 4, m , siendo m el
ancho (promedio) de semibanda. Para cada grupo de vectores, se realizan cómputos
iniciales que incluyen:

a. Determinación de la traslación (el proceso se inicia con µ = 0 )

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 35


~
µ = 0.1 λ n + 0.9 λ n +1
λ n es el último valor característico para el que se ha logrado convergencia;
~
λ n +1 es la aproximación al siguiente valor característico.
b. Factorización: A − µB = L U

c. Determinación de q vectores de aproximación inicial, X 0 .

La iteración incluye los pasos siguientes:

a. Eliminación de las componentes de X k según los vectores característicos


previamente determinados (ver acápite 3.2.4).

b. Iteración inversa:
Yk +1 = B X k
L U Z k +1 = Yk +1

c. Proyección de A − µB y B en el subespacio definido por los vectores 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 .

d. Solución del problema de valores y vectores característicos proyectado:

(A ( k +1)
)
+ µ B ( k +1) Q k +1 = B ( k +1) Q k +1 Λ k +1

e. Determinación de nuevos vectores:

X k +1 = Z k +1 Q k +1

f. Verificación de la convergencia

Como en el procedimiento estándar, debe verificarse que se tienen los valores


característicos correctos utilizando la propiedad de Sturm.

Ejemplo simple

Supóngase que se requieren dos vectores característicos de A φ = λ B φ , siendo:

 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 :

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 36


 1 0 0 0  2 −1 0 0
  
 − 0 .5 1 0 0  0 1 .5 −1 0
A=   = LU
 0 − .6667 1 0  0 0 1.3333 − 1
 0 0 − 0.75 1   0 0 0 1.25 

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 

se resuelve el problema proyectado (método de Jacobi generalizado):


c1 = 1.28 d = −2.56
c 2 = 2.56 ⇒ α = -0.50
c 3 = -0.64 γ = 1.00

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 

 0.288 675 − 0.510 310 


Q =  
 0.288 675 1.020 621 

y finalmente se expresan los vectores en el sistema de referencia original:

 0.288 675 0.408 248 


 
 0.577 350 0.816 497 
X 1 = X1 Q =  = (φ1 φ2 )
0.577 350 0.204 124 
 
 0.577 350 − 0.408 248 

H. Scaletti - Métodos Numéricos: Valores y Vectores Característicos 3 - 37


4. Ecuaciones No Lineales

4.1 Introducción

En general no es posible obtener las raíces de una ecuación no lineal f ( x ) = 0 en forma


explícita, debiéndose utilizar métodos iterativos. Partiendo de una raíz aproximada, x 0 ,
se obtiene una secuencia x1 , x 2 , x 3 K que converge a la raíz deseada. Para algunos
métodos es suficiente conocer el intervalo [a, b] en que se halla la raíz; otros
procedimientos, de convergencia más rápida, requieren una aproximación inicial cercana
a la raíz. Puede ser conveniente empezar los cálculos con un método del primer tipo y
cambiar a un método de convergencia más rápida en la etapa final.

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.

La parte final da algunas ideas para la solución de sistemas de ecuaciones no lineales,


un problema que ciertamente puede demandar mucho esfuerzo de cómputo.

4.2 Aproximaciones Iniciales

Pueden obtenerse aproximaciones iniciales a las raíces de f (x ) = 0 graficando o


tabulando la función.

Si f ( a o ) ⋅ f (bo ) < 0 , hay por lo menos una raíz, x , en el intervalo (a o , bo ) . En el


método de Bisección se definen una serie de intervalos ( a 0 , b0 ) ⊃ ( a1 , b1 ) ⊃ ( a 2 , b 2 ) K .

El punto medio de un intervalo ( a i , bi ) es xi = ( a i + bi ) / 2 . Suponiendo que f (x ) ≠ 0


(si este no es el caso, se ha hallado la raíz) se define el sub-intervalo ( a i +1 , bi +1 )
mediante:

( x i , bi ) si f ( x i ) ⋅ f (bi ) < 0


(a i +1 , bi +1 ) = 
(a i , x i ) f (a i ) ⋅ f ( x i ) < 0

Introduciendo la notación ε n = x n − x , se tiene que ε n +1 = O ( 12 ε n ) . Como


−1 −3.3
10 ≈2 , se requieren 3 ó 4 pasos para mejorar un dígito decimal en la aproximación.
La convergencia es prácticamente independiente de f (x ) .
f(x)
Por ejemplo, para la función:
1
x2
f (x ) = − sen (x ) = 0
4 0.5
puede iniciarse la iteración con
0
a 0 = 1 .5 1 1.5 2 2.5
x

b0 = 2 -0.5

obteniéndose:
-1

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-1


i ai bi ci f (c i )

1 1.5 2. 1.75 <0


2 1.75 2. 1.875 <0
3 1.875 2. 1.9375 >0
4 1.875 1.9375 1.90625 <0
5 1.90625 1.9375 ...

Se han subrayado las cifras correctas. Puede observarse que la convergencia es lenta.

4.3 Método de Newton – Raphson

Si x 0 es suficientemente cercano a la raíz x :

f ( x ) = f ( x 0 ) + ( x − x 0 ) f ′( x 0 ) + 12 ( x − x 0 ) f ′′( x 0 ) + L = 0
2

Y despreciando términos de orden superior:


f ( x0 )
x ≈ x0 − .
f ′( x 0 )

Puede entonces pensarse en iterar con:


x i +1 = x i + hi
donde:
f (xi )
hi = −
f ′(x i )
expresión que define el método de Newton – Raphson (o simplemente de Newton). La
figura muestra una interpretación geométrica:

f(x)
0.5

0.25

0 x
1.75 x i +1 2 xi 2.25

-0.25

Por ejemplo, puede emplearse el método de Newton para extraer la raíz p de un


número c , lo que equivale a resolver:

f ( x) = x p − c = 0

f ' ( x) = p x p −1
Con el método de Newton:

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-2


f (xi )
xi +1 = xi −
f ′(x i )
y por lo tanto:
xip − c 1  c 
xi +1 = xi − = ( p − 1) xi + p −1 
p x ip −1 p  xi 

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 )

Los resultados obtenidos con dos distintas aproximaciones iniciales, x 0 = 0.5 y x 0 = 2 ,


son:

i xi para x 0 = 0.5 xi para x 0 = 2


0 0.5 2.0
1 0.5986 -0.18504
2 0.628703 -0.44878
3 0.6308034 -1.49817
4 0.630812760 -676.133
5 -1140.538
6 -1163.343 ¡Diverge!

Las condiciones para la convergencia del método de Newton se revisan a continuación.

De la expansión de f en series de Taylor:

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 )

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-3


1 f ′′( x ) 2
y cuando x n → x se tiene que ε n +1 → εn .
2 f ′( x )

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 

e iniciando los cómputos con x 0 = 1 + i :

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

4.4 Método de la Secante y Otros Procesos del Mismo Tipo

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 .

En la tabla siguiente se resuelve f ( x) = 1


4
x 2 − sen( x) para x ≈ 2 por el método de la
secante:

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-4


n xn f (x n ) ε n = xn − x
0 1. -0.59147 -0.93

1 2. 0.090703 0.066

2 1.86704 -0.084980 -0.067

3 1.93135 -0.003177 -0.0024

4 1.93384 -0.000114 +0.00009

5 1.93375 -0.000005 < 12 ⋅ 10 −5

(en la gráfica adjunta casi no se aprecia


f(x) la diferencia entre la función y la
secante).
0.25
La convergencia de método de la
secante es en general más lenta que la
del método de Newton. Sin embargo,
se justifica usar este método si la
0 x evaluación de f ′(x ) requiere más del
1.75 2 44% del trabajo que se emplea en
evaluar f ( x ) , ya que el mayor número
de iteraciones queda más que
compensado por el menor número de
-0.25 operaciones realizadas en cada caso.
A esta conclusión se llega comparando
la convergencia de ambos métodos.

Para el método de la secante:


 ε − ε n −1 
x n+1 − x n = ε n +1 − ε n = − f n  n 
 f n − f n −1 
y siendo:
f n = f ( x n ) = f ( x ) + ε n f ′( x ) + 12 ε n2 f ′′( x ) + K

se obtiene (despreciando términos de orden superior):

ε 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 )

Suponiendo entonces: ε n +1 = C ε nβ y por lo tanto ε n +1 = C ε nβ−1 =


β +1 2 1 f ′′
2 f′
( )
C ε nβ−1 ε n −1 , de

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.

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-5


En el método de Falsa Posición la secante se toma entre los puntos ( x n , f n ) y (x r , f r ) ,
donde r < n es el mayor índice para el cual f n f r < 0 . Si f ( x ) es continuo, este
método es siempre convergente. Sin embargo, la convergencia es de primer orden.
f (x n )
Otra alternativa es el método de Steffensen: x n +1 = x n −
g (x n )
f ( x n + f ( x n )) − f ( x n )
donde: g (x n ) =
f (x n )
1 f ′′( x )
cuya convergencia es de segundo orden: ε n +1 ≈ (1 + f ′(x )) ε n2
2 f ′( x )

4.5. Otros Métodos Iterativos

Una ecuación de la forma f ( x ) = 0 puede rescribirse como x = g (x) . Dada entonces


una aproximación x 0 a una raíz x de f ( x ) = 0 , la secuencia x1 , x 2 , x 3 , L definida por:
x n +1 = g ( x n ) converge a x siempre que g ′( x ) < 1 en la región de interés. El
procedimiento puede ser más simple que otros y en algunos casos puede incluso
converger más rápidamente.

Por ejemplo, la ecuación:

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.

En efecto, tomando x 0 = 0 e iterando con ctg x n +1 = 2 − x n se obtienen:

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

Una interpretación gráfica del proceso se muestra en la figura.

En lo que sigue se analiza cómo se reducen los errores en este caso.


Si se considera xn = x + ε n
x n +1 = x + ε n +1
se tiene que ctg ( x + ε n +1 ) = 2 − ( x + ε n )

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-6


Suponiendo que ε n +1 << x puede hacerse una expansión de la cotangente en series:

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

es decir ε n +1 < ε n y por lo tanto el proceso es convergente.

Si en cambio se considera la iteración x n +1 = 2 − ctg x n se tiene que ε n +1 ≈ 3 ε n y el


proceso no converge, aún cuando x 0 sea muy cercano a la raíz x :

n xn
0 0.6
1 0.538
2 0.325
3 0.965
4 2.69
5 4.01

4.6. Condicionamiento de las Raíces: Raíces Múltiples

Si x n es una aproximación a una raíz x de f ( x) = 0 , se tiene:

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.

El mismo argumento puede repetirse cuando se trata de una raíz de multiplicidad m ,


caso en el que::

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.

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-7


Considérese por ejemplo: f ( x ) = x 2 − 2 x + 1 = 0 , que tiene una raíz doble x = 1 .
Supóngase que se trabaja con aritmética de punto flotante y 8 decimales en la mantisa.
Entonces δ = 1
2 ⋅ 10 −8 , y siendo f ′′(x ) = 2 se obtiene:

( )
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

-0.5 Raíz mal


condicionada

-1

Siendo las raíces múltiples mal condicionadas, es de esperarse que la separación


relativa de las raíces afecte el condicionamiento. Particularmente crítico es el caso en
que las raíces están más o menos uniformemente espaciadas, por ejemplo en:

ρ(x ) = ( x − 1)( x − 2 )( x − 3)L ( x − 20 ) = x 20 − 210 x 19 + 20615 x 18 − L + 20! = 0


Si en lugar del coeficiente 210 se tuviera un coeficiente (210 + ε), se obtendrían las
raíces:
ε=0 ε = 10 −9

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.

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-8


Aparte de un mal condicionamiento, las raíces múltiples reducen el orden de la
convergencia. Así, por ejemplo, el método de Newton, cuya convergencia es cuadrática
cuando x n es aproximadamente una raíz simple:

 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 )

tiene todavía convergencia cuadrática, pero en general no es posible conocer m a priori.


Alternativamente, puede pensarse en procesos del tipo:
f (x n )
u (x n ) =
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 ) .

4.7. Métodos para Calcular Raíces de Polinomios

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.

4.7.1 Método de Bernoulli

Este es un proceso "clásico", que en general resulta poco apropiado, porque se obtiene
primero la raíz de mayor módulo.

Se toman n valores arbitrarios t1 , t 2 , t 3 L t n (con t n ≠ 0 ) y se calculan nuevos valores por


recursión:
n
tp = − ∑a t
i =1
i p −i

Esta es una ecuación de diferencias, cuya solución puede escribirse como:

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4-9


t p = c1 r1p + c 2 r2p + K + c n rnp

Las ri son raíces (distintas de cero) de:


n
rn = − ∑a r(
i =1
i
n −i )

es decir, las ri son las raíces del polinomio: ri = α i .

Por tanto:

t p = c1α 1p + c 2 α 2p + K + c n α np

y si α n > α n −1 ≥ K ≥ α 1 se tiene que:


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.

Supóngase, por ejemplo, que:

f ( x ) = x 4 − 2 x 3 + 1.25 x 2 − 0.25 x − 0.75 .

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

Nótese que la convergencia es lenta. Esto es frecuente. Después de pocos pasos es


mejor cambiar a otros métodos (v.g. Newton - Rapshon).

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 10


4.7.2. Método de Graeffe (método de los cuadrados de las raíces)

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

Es decir, p 2 ( x ) = 0 tiene raíces α12 L α i2 L α n2 , que son justamente los cuadrados de


las raíces de p1 (x ) = 0 . Del mismo modo pueden obtenerse p 4 (x ) p 8 (x )L p m ( x ) . Las
raíces de p m ( x ) = 0 , son las α im donde m = 2 r .
(r ) (r ) (r )
Si se tienen coeficientes a1 , a 2 , a 3 L tales que:
(r ) (r ) (r ) (r )
p m ( x ) = x n + a1 x n −1 + a 2 x n −2 + K + a n −1 x + a n =0

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 .

Por ejemplo, considérese el polinomio p( x ) = x 3 − 6 x 2 + 11x − 6 (cuyas raíces 1, 2, 3


están uniformemente espaciadas y por tanto están mal condicionadas):

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
....

de donde α 116 ≈ 4.3112 ⋅10 7

2.8212 ⋅ 1012
α 216 ≈ = 6.5438 ⋅ 10 4
4.3112 ⋅ 10 7

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 11


2.8211 ⋅ 1012
α 316 ≈ = 0.99998
2.8212 ⋅ 1012
es decir α 1 ≈ 3.0003 α 2 ≈ 1.9998 α 3 ≈ 1.0000

Las raíces de p 2 ( x ) p 4 ( x ) p 8 (x )L están mejor condicionadas en cada paso. Sin


embargo, se observa un crecimiento muy rápido de los coeficientes (posible "overflow")
por lo que no pueden realizarse muchos pasos.

4.7.3. Método de Laguerre

Un muy buen método para extraer raíces de polinomios es el de Laguerre. En este


método, las sucesivas aproximaciones a una raíz se calculan mediante:
n p( x k )
x k +1 = x k −
p ′( x k ) ± H ( x k )

donde n es el grado del polinomio y:

[
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.

El método de Laguerre requiere evaluar p ( x k ) , p ′( x k ) y p ′′( x k ) en cada paso, pero la


convergencia (para raíces simples) es cúbica. Si las raíces son reales, este método
converge siempre. Suponiendo que la aproximación inicial x 0 esté en el intervalo entre
α r y α r +1 , converge a una de esas dos raíces. Si en cambio x 0 < α 1 o x 0 > α n el
proceso converge a α 1 o α n , respectivamente.

Por ejemplo, considérese el polinomio:

p (x ) = (x − 1)(x − 2 )(x − 3)( x − 4 )( x − 5)(x − 6 )(x − 7 )(x − 8) =


= x 8 − 36 x 7 + 546 x 6 − 4536 x 5 + 22449 x 4 − 67284 x 3 + 118124 x 2 − 109584 x + 40320 = 0
Con la aproximación inicial x 0 = 0 se obtienen:

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

En forma similar, con la aproximación inicial x 0 = 2.5 :


xk p (x k ) p ′(x k ) p ′′( x k ) H (x k )

2.5 121.816 -132.750 -977.625 7.532588E+06


2.838696 42.391 -277.131 60.892 3.618725E+06
2.994301 1.374 -242.118 367.294 2.844179E+06
3.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,

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 12


pero los coeficientes del polinomio fueran todos reales, sería aconsejable extraer
factores cuadráticos con el procedimiento descrito en la sección 4.7.4

4.7.4. Método de Bairstow (factorización iterativa de polinomios).

Un polinomio p(x ) = x n + a1 x n −1 + a 2 x n − 2 + K + a n −1 x + a n puede expresarse como:

( )
ρ ( x ) = x 2 + rx + s ⋅ q(x , r , s ) + xF (r , s ) + G (r , s ) .

Se requiere determinar r , s para que x 2 + rx + s sea un factor exacto de p ( x ) , es decir,


para que se tenga F (r , s ) = G (r , s ) = 0 . Siendo éste el caso, dos de las raíces (o un par
de raíces complejas) pueden obtenerse de x 2 + rx + s = 0 ; el resto de las raíces son los
ceros de q (x ) . Dados valores aproximados de r , s tales como rn y s n , se obtienen
valores mejorados, rn +1 y s n +1 , considerando:

F (rn+1 , sn+1 ) ≈ F (rn , sn ) + ( rn+1 − rn ) + ( sn+1 − sn )


dF dF
≈0
dr rn , sn
ds rn ,sn

G (rn +1 , s n+1 ) ≈ G (rn , s n ) + (rn +1 − rn ) + (s n +1 − s n )


dG dG
≈0
dr rn , sn ds rn , sn

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

Dado que el polinomio original p ( x ) es independiente de r y s , al derivar el polinomio


( )
p( x ) = x 2 + rx + s ⋅ q + xF + G con relación a r y s se obtienen:
( )
xq + x 2 + rx + s ⋅ q r + ( xFr + G r ) = 0

( )
q + x 2 + rx + s ⋅ q s + ( xFs + G s ) = 0

es decir, los Fr y G r son los coeficientes del residuo al dividir − x q ( x ) entre


x 2 + rx + s mientras los Fs y G s se obtienen como coeficientes del residuo al dividir
− q (x ) también entre x 2 + rx + s .
La convergencia de este proceso depende de una buena aproximación inicial.

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

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 13


Y análogamente:

-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:

F =3 F,r = −14 F,r = −3


G =1 G,r = 12 G,r = −2

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

En el siguiente paso se obtienen:


F = 1.2547 G = −0.6350
Fr = −13.1003 G r = 14.7920

Fs = −3.0938 G s = −0.5803

de donde r2 = −4.0973 , s 2 = 4.9732 . El factor exacto es x 2 − 4 x + 5 .

El método antes descrito es adecuado solo si la aproximación inicial es cercana al factor


exacto (esto es análogo a lo que ocurre con el método de Newton). Pueden también
utilizarse las mismas ideas para separar factores de grado mayor que 2.

4.7.5. Método de Jenkins y Traub

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

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 14


y por recursión:

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 ) 

Cada paso de este método requiere O (2n) operaciones.

En lo que sigue se analiza cómo el proceso converge. El polinomio cuyas raíces se


buscan puede expresarse en la forma:

p(x ) = ( x − α 1 ) ( x − α 2 )m 2 ( x − α 3 )m 3 K = 0
m1

donde m1 , m 2 , m3 L son las multiplicidades de las raíces.

El método se inicia con h (0 ) ( x) = p ′( x) , que es un polinomio de grado n − 1 . Este


polinomio puede escribirse en la forma:

∑ 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

es decir, si h (k +1) ( x) es un polinomio de grado n − 1 , también lo es h (k ) ( x) .

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 15


ci(k −1) mi
Además: c i(k ) = =
(α i − s k ) (α i − s1 ) (α i − s 2 ) (α i − s 3 ) K (α i − s k )

y si se consideran translaciones s j tales que: α1 − s j < α 2 − s j < α 3 − s j K


se tiene que (considerando multiplicidades mi iguales): c1( k ) > c 2( k ) > c 3( k ) K y por lo tanto:
(k −1)
(α i − s k ) = Lim
k →∞
h
(k )
( x)
h ( x)

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)

La última expresión puede probarse considerando que:

1  (k −1) h (k −1) ( s k ) 
h (k ) ( s k ) =  h ( x ) − p ( x)
(x − s k )  p( s k )  x = sk

y utilizando la regla de L' Hospital.

Por otro lado, dado que p (α i ) = 0 , se tiene que w (k ) (α i ) = 0 y por lo tanto:

w (k ) ( s k )
s k +1 = s k −
w′ ( k ) ( s k )

Esta expresión es análoga a la utilizada en el método de Newton. Considerando


c k = α1 − s k puede escribirse:

w′′ (k ) (α 1 ) 2
ε k +1 ≈ 1
εk
w ′ ( k ) (α 1 )
2

pero en este caso la función w (k ) es variable en cada paso:

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:

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 16


g 1 (α 1 )
ε k +1 ≈ (k ) ε 2k
c1

c1( k −1) c ( k −1) c ( k − 2)


pero c1( k ) = = 1 = 1 K
(α1 − s k ) ε k (ε k ε k −1 )
y entonces:
ε k +1 = ( β ε k ε k −1 L ) ε k2

ε 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.

Considérese, por ejemplo, el polinomio: p( x) = x 2 − 2 x + 1 (cuyas raíces son iguales


α 1 = α 2 = 1). En este caso:

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

Para el siguiente ejemplo: p( x) = x 2 − 3 x + 2 = 0 (cuyas raíces son α 1 = 1, α 2 = 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.

3 1.5 p ( x) 1.5 -4.5 3.


4 (2)+(3) 1.5 -2.5 0.
(1)
5 ( 4) / x = h ( x ) 1.5 -2.5 -2.5 1.2 -0.70 -0.16

6 -4.375 p ( x) -4.375 13.125 -8.750


7 (5)+(6) -4.375 14.625 -11.250
8 (7) / ( x − 1.2) -4.375 9.375 4.125 1.0303 4.8674 -0.029385
9 165.645 p( x ) 165.645 -496.934 331.290
10 (8)+(9) 165.645 -501.309 340.664
11 (10) /( x − 1.00303) 165.645 -330.644 -159.979 .999878 -165.019 0.000122
12 1352450 p ( x) 1 352 450 -4 057 350 2 704 900
13 (11)+(12) 1 352 450 -4 057 184 2 704 569
14 (13) /( x − .999878) 1 352 450 -2 704 899 -1 352 614 1.000000 ← La primera raíz

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 17


4.7.6 Deflación

El polinomio p( x ) , de grado n ≥ 1 , puede escribirse como: p ( x ) = ( x − a ) q ( x ) + r , donde


q( x ) es un polinomio de grado n − 1 y r = p( a ) . Si a = α1 es una raíz exacta de
p( x ) = 0 , se tiene r = 0 . Las raíces restantes son las raíces de q( x ) = 0 . Para el
cómputo de estas otras raíces puede entonces trabajarse con el cociente q ( x ) en lugar
de p ( x ) = 0 . Esto es una "deflación". La deflación puede repetirse a medida que se
obtienen otras raíces. Es evidente que esto ahorra operaciones.

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:

p(x ) 1 -101. 100.

α2 100.1 100.1 -90.09


q(x ) 1 -0.9 9.91

Es decir, se obtiene q( x ) = ( x − 0.9) , y haciendo q( x ) = 0 resulta α1 ≈ 0.9 . Nótese que


un error de 0,1% en α 2 produce un error de 10% en α1 . Si en cambio se determina
primero la raíz menor, también con un error de 0,1%, α 1 ≈ 1.001:

p(x ) 1 -101. 100.

α1 1.001 1.001 -100.099

q(x ) 1 -99.999 0.099

y de q( x ) = (x − 99.999 ) = 0 : se obtiene α 2 ≈ 99.999 :, con sólo un 0,001% de error.

En conclusión, los errores introducidos por la deflación son menores si las raíces se
determinan en orden ascendente de valores absolutos.

4.8. SISTEMAS DE ECUACIONES NO LINEALES

En algunos problemas académicos la solución de sistemas de ecuaciones no lineales


puede ser hecha por simple eliminación. Por ejemplo, para determinar los puntos en los
que se intersectan el círculo x 2 + y 2 = 3 y la hipérbola x 2 − y 2 = 1 , basta restar y
sumar ambas expresiones (obteniéndose x = ± 2 , y = ±1 ).

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

Un proceso simple puede ser obtenido rescribiendo estas ecuaciones como:

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 18


xi = g i ( x1 , x 2 , x3 , K x n ) i = 1,2,3, K n
x = g ( x)
lo que permite iterar con

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.

También aquí puede establecerse un criterio de convergencia similar a g ′( x) < 1 .


Definiendo la matriz D, con coeficientes:
δ gi
d ij ( x) =
δ xj
se tiene que los valores característicos de la matriz D deben ser tales que: λi < 1 . Con
frecuencia se presentan sistemas no lineales de la forma: x = a + hg(x) donde las
δ g i δ x j son finitas. Entonces, para h suficientemente pequeño, el proceso iterativo
x ( k +1) = a + h g (x (k ) ) satisface las condiciones de convergencia.
Por ejemplo, sea el sistema de ecuaciones (no lineales):

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

También el método de Newton - Raphson puede ser generalizado para sistemas de


ecuaciones no lineales:

(
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

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 19


cuando las no linealidades no son muy fuertes y se combina el método de Newton -
Raphson con un proceso incremental.

Para el caso particular de dos ecuaciones no lineales:

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)

Con la aproximación inicial (0,0) se obtienen:

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

Método de Máxima Gradiente

El método de Newton tiene convergencia cuadrática, pero requiere una buena


aproximación inicial. Con tal fin, puede emplearse el método de máxima gradiente, cuya
convergencia es lenta pero está garantizada (siempre que D sea no singular).

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 20


La solución del sistema de ecuaciones no lineales f ( x) = 0 es aquella que hace mínima
la función:
n
F (x) = [f (x)] f (x) = ∑ f (x , x
T
i 1 2 ,L xn )
i =1

Partiendo de una aproximación x ( 0) se hacen correcciones de la forma:

x ( k +1) = x ( k ) − α k ∇F = x ( k ) − 2α k D T f

α k debe ser tal que F (x ( k +1) ) < F (x ( k ) ) .

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 .

Esto también ahorra muchas operaciones al resolver el sistema de ecuaciones lineales


(k+1)
para determinar las x , puesto que la matriz D solo debe reducirse cada m pasos.

También pueden utilizarse métodos análogos al método de la secante. Una


aproximación frecuente es:

δ 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.

Otra posibilidad consiste en derivar f ( x ) = 0 con respecto a un parámetro, α :


δf δx δf
⋅ + =0
δ x δα δα

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.

H. Scaletti - Métodos Numéricos: Ecuaciones No Lineales 4 - 21


5. Interpolación, Diferenciación e Integración Numérica

5.1. Diferencias Finitas


Dadas las abscisas x k , uniformemente espaciadas: x k +1 = x k + h , a las que
corresponden valores f k ≈ f ( x k ) , se definen las primeras diferencias finitas hacia
adelante como:
∆ f k = f k +1 − f k .

Análogamente pueden definirse las segundas diferencias:

∆2 f k = ∆ f k +1 − ∆ f k = f k + 2 − 2 f k +1 + f k

y en general las diferencias finitas hacia adelante de orden n :

∆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

Puede apreciarse como un pequeño error en las f k puede amplificarse en las


diferencias finitas altas, lo que puede ser útil para identificar posibles errores en una
tabla de f ( x ) .

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

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-1


En forma similar, pueden definirse diferencias finitas hacia atrás:
∇f k = f k − f k −1

∇ 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

Estas diferencias están relacionadas:


∆ f k = ∇f k +1 = δ f k + 1
2

Y en general:

∆n f k = ∇ n f k + n = δ n f k + n
2

Para puntos con espaciamiento no uniforme pueden calcularse diferencias divididas:


f ( x 0 ) − f ( x1 )
[ x 0 , x1 ] = = [ x1 , x 0 ]
x 0 − x1

[ 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

y en forma similar con diferencias finitas centrales o hacia atrás.

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.

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-2


5.2. Interpolación
Supóngase que se tiene una tabla de valores tales como:

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:

g ( x) = a 0 + a1 cos x + a 2 cos 2 x + L + b1 sen x + b2 sen 2 x + L


En lo que sigue se hace énfasis en interpolaciones polinómicas. Dados n + 1 puntos
x k , f ( x k ) , sólo un polinomio de grado n , p n (x ) , satisface las condiciones
p n ( x k ) = f ( x k ) para todo k . Sus coeficientes, ai , podrían obtenerse resolviendo:
1 x0 x 02 x0 K a 0   f ( x 0 ) 
    
1 x1 x12 x13 K  a1   f ( x1 ) 
    
1 x2 x 22 x 23 K  a 2  =  f ( x 2 ) 
1 x3 x32 x33 K  a 3   f ( x3 ) 
 
K   M   M 
pero esto no es práctico. Otros métodos más eficientes se revisan a continuación.

5.2.1 Fórmulas de Interpolación de Newton y Otras Expresiones Análogas.

Para puntos uniformemente espaciados:



α (α − 1) (α − 2) L (α − j + 1)
f ( x 0 + αh ) = f 0 + ∑j =1
j!
∆j f0

Esta expresión es fácil de obtener considerando un operador E tal que E f k = f k +1 , es


f ( x 0 + αh) = E α f 0 = (1 + ∆) α f 0 .
decir E = 1 + ∆ . Como E n f k = f k + n , puede escribirse:
Generalmente se consideran solo algunos términos de esta serie.

Por ejemplo, despreciando las diferencias de orden 3 o superior:

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

Considerando los valores numéricos:


k xk f ( xk )
2 0.2 0.980 067
3 0.3 0.955 336
4 0.4 0.921 061

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-3


(para los que h = 0.1 ), el valor de f (0.25) podría obtenerse con α = 0.5 :
(−0.5) (−1.5) (0.5) (−0.5)
f (x 2 + 0.5h ) = (0.980067) + (0.5) (1.5) (0.955336) + (0.921061)
2 2

de donde f (0.25) ≈ 0.968 895 (el valor exacto es 0.968 912 )

La expresión anterior es la fórmula de interpolación de Newton con diferencias finitas


hacia adelante. Similarmente puede escribirse la fórmula de Newton con diferencias
hacia atrás:

α (α + 1) (α + 2) L (α + j − 1)
f ( x n + αh) = f n + ∑
j =1
j!
∇ j fn

o la fórmula de Newton con diferencias divididas:

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.

Considérese por ejemplo la tabla de diferencias divididas:


i xi fi [xi , xi +1 ] [xi , L xi + 2 ] [xi , L xi +3 ] [xi , L xi + 4 ]
-1 0. 1.000 000 -0.099 667 -0.492 113 0.037 106 0.039 670
0 0.2 0.980 067 -0.247 301 -0.477 270 0.060 908 0.037 594
1 0.3 0.955 336 -0.342 755 -0.452 907 0.079 705
2 0.4 0.921 061 -0.478 627 -0.421 025
3 0.6 0.825 335 -0.604 934
4 0.7 0.764 842

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

(Este es el resultado con 5 términos, con 3 términos se obtiene 0.968 895)

Otra alternativa es interpolar con diferencias centrales:

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 

5.2.2. Fórmula de Interpolación de Lagrange

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

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-4


m
(x − x ) .
Los polinomios g i (x) se obtienen multiplicando n binomios: g i ( x ) = ∏ (x
j

j =0 i −x ) j
j ≠i

Nótese que g i ( x j ) = δ ij .

El siguiente ejemplo es ilustrativo:


k xk fk
0 0. -5.
1 1. 1.
2 3. 25.
( x − 1) ( x − 3) 1 2
g 0 ( x) = = ( x − 4 x + 3)
(0 − 1) (0 − 3) 3

( 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

5.2.3. Interpolación de Hermite.

En algunos casos es conveniente trabajar con los valores de la función, f (x ) y un cierto


número de sus derivadas f ′( x), f ′′( x), f ′′′( x),K f (m ) ( x) . Dados los valores
en n puntos de abscisas x k , es posible determinar un polinomio p(x )
(m )
f k , f k′ , f k′′, K f k
de grado (m + 1) n − 1 que satisfaga:

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 .

El siguiente ejemplo es ilustrativo. Se trata de determinar un polinomio p( x ) de grado 3,


tal que:
p(0) = v A
p (L ) = v B
p ′(0) = θ A
p ′(L ) = θ B

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-5


k xk fk [x k , x k +1 ] [x k , x k +1 , x k + 2 ] [xk , xk +1 , x k + 2 , x k +3 ]
vB − vA θ A 2 (v B − v A ) θA +θB
0 0 vA θA − +
L2 L L 3
L2
vB − v A θ B vB − v A
1 0 vA −
L L L2
2 L vB θB
3 L vB

Se han tomado datos de esta tabla siguiendo una trayectoria horizontal.

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
.

5.2.4. Interpolación Inversa.

En la solución de f ( x) = 0 pueden obtenerse aproximaciones a una raíz, x , por


interpolación de una función inversa con ordenadas xk para abscisas de espaciamiento
no uniforme, f ( x k ) . Considérese, por ejemplo:
xk f (xk )

1. 1.76
2. 0.41
3. -0.16
4. -0.32

Usando la fórmula de Lagrange con 4 puntos:


(0 − 0.41) (0 + 0.16) (0 + 0.32) (1) (0 − 1.76) (0 + 0.16) (0 + 0.32) (2)
x≈ + +
(1.76 − 0.41) (1.76 + 0.16) (1.76 + 0.32) (0.41 − 1.76) (0.41 + 0.16) (0.41 + 0.32)
(0 − 1.76) (0 − 0.41) (0 + 0.32) (3) (0 − 1.76) (0 − 0.41) (0 + 0.16) (4)
+ +
(−0.16 − 1.76) (−0.16 − 0.41) (−0.16 + 0.32) (−0.32 − 1.76) (−0.32 − 0.41) (−0.32 + 0.16)

x ≈ 2.37

5.2.5. Generalización a Varias Dimensiones.

Las expresiones anteriores pueden fácilmente generalizarse para "mallas" de más


dimensiones. Así, si se tienen puntos con coordenadas xi , y j , z k
( i = 0 L n; j = 0 L m; k = 0 L l ) las fórmulas de Lagrange resultan:
n m l
p ( x, y , z ) = ∑∑∑ g
i =0 j =0 k = 0
xi ( x) ⋅ g y j ( y ) ⋅ g z k ( z ) ⋅ f ijk

n
(x − x r )
donde g xi ( x) = ∏ (x
r =0 i − xr )
y expresiones similares en las direcciones y, z .
r ≠i

Frecuentemente los puntos están uniformemente espaciados: xi +1 = xi + ∆x


y i +1 = y i + ∆y
z i +1 = z i + ∆z

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-6


La figura muestra una zona de una malla bidimensional con espaciamiento uniforme.
Las coordenadas de un punto en la proximidad de A pueden definirse por dos
parámetros α , β (coordenadas relativas medidas en unidades ∆x, ∆y ).

D C B
P
β ∆y
E O A

α ∆x
∆y
F G H

∆x

Usando la fórmula de Stirling, e incluyendo diferencias centrales hasta de 2° orden


inclusive, se obtiene:
+1 +1
f (x 0 + α∆x, y 0 + β∆y ) = ∑∑ a b i j f ij
i = −1 j = −1

donde:
a1 = 12 α (α − 1) b1 = 12 β (β − 1)

a2 = 1 − α 2 b2 = 1 − β 2
a 3 = 12 α (α + 1) b3 = 12 β (β + 1)

y es igualmente fácil desarrollar expresiones análogas considerando un número mayor o


menor de puntos en cada dirección. La presencia de bordes curvos introduce algunas
dificultades (no es posible seguir teniendo un espaciamiento uniforme).

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.

El valor de una función, f , en un punto en el interior de un elemento se obtiene


interpolando los valores de la función en los nudos del elemento:
N
f ( x, y , z ) = ∑ N ( x, y , z ) ⋅ f
i =1
i i

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-7


Las funciones de interpolación deben satisfacer:
N i ( x j , y j , z j ) = δ ij ( x j , y j , z j son las coordenadas del nudo j )
N

∑ N ( x, y , z ) = 1
i =0
i

Esto último es evidente si se supone f i = c para todo j y entonces f ( x, y, z ) = c .

Adicionalmente, las N i deben ser tales que se mantenga la continuidad de f (y en


algunos casos la continuidad de una o más derivadas) en los bordes entre elementos.

Es relativamente fácil construir estas funciones para elementos bidimensionales


rectangulares.

Por ejemplo, para un elemento con 4 nudos (con referencia al centroide):

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

Y para un elemento con 8 nudos (con referencia al centroide):

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 

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-8


1   x  
2

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  

Estos son los dos elementos más simples de la familia de Serendip.

Las funciones de interpolación para los correspondientes elementos tridimensionales son


similares.

En subregiones triangulares las funciones de interpolación resultan más simples si se


escriben en coordenadas de área, L1, L2, L3.. Un punto en el interior de un triángulo
permite definir tres triángulos parciales, cuyas áreas divididas entre el área total del
triángulo son justamente las Li:
Ai
Li =
A
En consecuencia:

L1 + L2 + L3 = 1 .

Las coordenadas x, y se relacionan con las


coordenadas de área mediante:
3 3

∑i =1
Li x i = x ∑L y
i =1
j j =y

Por otro lado si el origen de coordenadas x, y está en el centroide del triángulo:

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5-9


1 bi c
Li = + x+ i y
3 2A 2A
donde:
bi = y j − y k
ci = x k − x j i, j , k son permutaciones cíclicas de 1,2,3 .

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

Para elementos más complejos, la construcción de funciones de interpolación puede


simplificarse si se efectúa previamente un "mapeo" adecuado.

Por ejemplo, para el hexaedro de Serendip con 20 nudos:

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 10


20
f ( ξ ,η , ς ) = ∑ N ( ξ ,η , ς ) ⋅ f
i =1
i i

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

en tal caso se dice que el elemento es isoparamétrico. También puede hablarse de


elementos sub-paramétricos o hiper-paramétricos, según las funciones utilizadas en el
mapeo sean de grado menor o mayor que aquellas con que se interpola la función, f .

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.

En lo que sigue se considera el caso de abscisas x1 , x 2, K x n con espaciamiento


uniforme, h . Para h suficientemente pequeño:

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

de donde, con la notación f i ( m ) = f (m)


( xi ) :
f i +1 − f i ∆f
f i′ = + O( h ) = i + O( h )
h h

y en forma similar se tienen:


f i − f i −1
f i′ = + O ( h)
h

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 11


f i+ 1 − f i− 1
f i′ = 2 2
+ O(h 2 )
h

Incluyendo puntos más alejados pueden obtenerse expresiones del tipo:


− 13 f i −1 − 12 f i + f i +1 − 16 f i + 2
f i′ = + O( h 3 )
h

Pero las expresiones más simples son las más frecuentemente utilizadas.

Considérese por ejemplo los valores ( cos x ):


∆f k f k +1 − f k −1
xk f ( xk ) f ′( x k )
h 2h
0. 1.000 000 0. 0.049 958
0.1 0.995 004 0.099 833 0.149 376 0.099 667
0.2 0.980 067 0.198 669 0.247 301 0.198 338
0.3 0.955 336 0.295 520 0.342 755 0.295 028
0.4 0.921 061 0.389 418 0.434 784 0.388 770
0.5 0.877 582 0.479 426

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

El valor exacto es sen (0.2) = −0.980067

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

Cuando se tienen 2 o más variables independientes, x, y, t L y mallas ortogonales de


puntos uniformemente espaciados, las derivadas parciales pueden aproximarse por
diferencias finitas trabajando separadamente con cada variable. Así por ejemplo, para
∆x = ∆y = h , el Laplaciano:

∂ 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.

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 12


Al utilizar elementos finitos, las derivadas se obtienen operando exactamente con las
n
∂f n
∂ Ni
funciones de interpolación. Así, si: f =
i =1

N i ( x, y, z ) f i se tiene: =
∂ x i =1 ∂ x
fi . ∑
Algunos comentarios adicionales relativos al uso de elementos isoparamétricos son aquí
necesarios. Para elementos isoparamétricos las funciones de interpolación N i están
expresadas como función de ξ , η , ς L :
n
f = ∑ N ( ξ ,η , ς ) f
i =1
i i

y las coordenadas ξ , η , ς L están relacionadas con las x, y, z L mediante las mismas


funciones de interpolación, v.g.:
n
x= ∑ N (ξ ,η , ς ) x
i =1
i i

Excepto para casos particulares de geometría muy simple, es prácticamente imposible


obtener expresiones explícitas para las ξ , η , ς L en función de las x, y, z L y lo mismo
puede decirse de las funciones de interpolación, N i ( ξ , η , ς ) . Como consecuencia, en
general es fácil obtener derivadas con relación a las ξ , η , ς L , pero comparativamente
∂f ∂f ∂f
difícil obtener expresiones explícitas para las , , , L . Su evaluación numérica
∂x ∂ y ∂z
es, sin embargo, muy simple. Teniendo en cuenta que:

 ∂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

Por otro lado, al obtenerse la matriz J puede hacerse el cambio de variables:

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 .

5.4. Ecuaciones de Diferencias


Una fórmula de recursión del tipo: y n + k = f ( y n , y n +1 , y n + 2 , K , y n + k −1 , n ) se denomina
ecuación de diferencias de orden k . La solución de ecuaciones de diferencias tiene
cierta analogía con la solución de ecuaciones diferenciales ordinarias.

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 13


La ecuación

y n + k + a1 y n + k −1 + K + a j y n + k − j + K + a k y n = 0

es una ecuación de diferencias lineal, homogénea, de orden k , con coeficientes


constantes. Esta ecuación queda satisfecha por y j = cr . Los posibles valores de r
j

corresponden a las raíces de la ecuación característica:

p(r ) = r k + a1 r k −1 + a 2 r k − 2 + K + a k −1 r + a k = 0 .

Si la ecuación característica tiene k raíces distintas r1 , r2 , K rk la solución general de la


ecuación de diferencias (lineal, homogénea, con coeficientes constantes) puede
escribirse:

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.

Considérese por ejemplo: y n + 2 − 5 y n +1 + 6 y n = 0 , con condiciones iniciales y 0 = 0 ,


y1 = 1 . Por recursión con y n + 2 = 5 y n +1 − 6 y n se obtienen:
y 2 = (5)(1) − (6)(0) = 5
y 3 = (5)(5) − (6)(1) = 19
y 4 = (5)(19) − (6)(5) = 65
y 5 = (5)(65) − (6)(19) = 211

Por otro lado, la ecuación característica es en este caso r 2 − 5r + 6 = 0 , cuyas raíces


son r1 = 2 , r2 = 3 . La solución general es: y n = c1 ⋅ 2 n + c 2 ⋅ 3 n y dadas las condiciones
iniciales:
n=0 c1 + c 2 = 0
n =1 2c1 + 3c 2 = 1
se obtienen: c1 = −1 y c 2 = 1 , es decir y n = 3 n − 2 n .

Por ejemplo, y 4 = (3) 4 − ( 2) 4 = 81 − 16 = 65 .

En cambio, y n +3 − 3 y n + 2 + 4 y n = 0 tiene la ecuación característica r 3 − 3r 2 + 4 = 0


cuyas raíces son r1 = −1 , r2 = r3 = 2 , y su solución general es entonces:
y n = c1 (−1) n + (c 2 + c3 n)(2) n .
La fórmula de recursión para los polinomios de Tchebicheff:
Tn +1 ( x ) − 2 xT n ( x ) + T n −1 ( x ) = 0
es también una ecuación de diferencias lineal, homogénea, de orden 2, con coeficientes
constantes (porque 1, -2x, 1 no son función de n). Su ecuación característica es:
r 2 − 2 x r + 1 = 0 , con raíces r = x ± i 1 − x 2 . Haciendo el cambio de variable x = cos θ
se tiene: r = cos θ ± i sen θ = e ± iθ . La solución general de la ecuación de diferencias es

( )
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 .

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 14


La solución de una ecuación de diferencias lineal no homogénea puede obtenerse
sumando a la solución de la correspondiente ecuación homogénea una solución
particular. Los ejemplos siguientes son ilustrativos:

Considérese: y n +1 − 2 y n = a n , con la condición inicial y 0 = 1 . La correspondiente


ecuación homogénea, y n +1 − 2 y n = 0 , tiene la ecuación característica r − 2 = 0 y su
solución es entonces y n = c( 2) n . Para la solución particular puede tantearse una
solución de la forma y n = αa n , de donde αa n +1 − 2αa n = a n y por lo tanto α = (a − 2 )
−1

(esto es, suponiendo que a ≠ 2 ). La solución general es: y n = a n (a − 2 ) + c( 2) n . Con


la condición inicial se halla c = 1 − (a − 2 ) y finalmente y n = 2 n + a n − 2 n (a − 2 )
−1
( )
(para a ≠ 2 ). Para a = 2 la regla de L' Hospital da: y n = 2 n + n 2 n −1 .

Para la ecuación de diferencias y n + 2 − 5 y n +1 + 6 y n = 2n + 3( −1) n puede considerarse la


solución particular: y = an + b + c(−1) . Sustituyendo esta expresión en la ecuación e
n

identificando coeficientes se obtienen: a = 1 , b = 3 2 , c = 1 4 . Por otro lado, la ecuación


característica es: r 2 − 5r + 6 = 0 con raíces r1 = 2 , r2 = 3 . La solución general resulta
entonces y n = n + 3
2 + 1
4 ( −1)
n
+ c1 ( 2) n + c 2 (3) n .

5.5. Integración Numérica (Cuadratura)


La evaluación de una integral definida:
b

∫ a
f ( x) dx

en forma explícita es a veces muy difícil o prácticamente imposible. En tales casos


puede hacerse una aproximación numérica tal como las que se mencionan en esta
sección.

5.5.1 Regla de los Trapecios, Regla de Simpson y otras fórmulas interpolatorias.

Una posible forma de resolver el problema es aproximando, localmente, la función, f (x ) ,


por otra, g ( x ) , más simple de integrar.

En la Regla de los Trapecios se aproxima f (x ) con segmentos de recta y entonces:

(x1 − x0 ) [ f ( x0 ) + f ( x1 )]
x1

∫ x0
f ( x) dx ≈ 1
2

Esta expresión puede generalizarse para un intervalo [x 0 , x n ] . Considerando abscisas


con espaciamiento uniforme x i = x i −1 + h , para los que se tiene valores de la función
f i = f ( x i ) puede hacerse interpolaciones lineales en cada subintervalo [xi , xi +1 ] para
obtener:
f ( x) dx ≈ T (h ) = ( f 0 + 2 f1 + 2 f 2 + K + 2 f n−1 + f n )
xn h
∫ x0 2

El error de truncación puede estimarse más fácilmente considerando primero el sub-


intervalo [− h 2 , + h 2] para el cual (siendo h pequeño):

f ( x ) = f (0) + xf ′(0) + 12 x 2 f ′′(0) + 16 x 3 f ′′′(0) + 1


24
x4 f IV
(0 ) + K
e integrando:
+h2 h3 h5
∫ f ( x) dx = h ⋅ f (0) + f ′′(0) + (0 ) + L
IV
f
−h2 24 1920

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 15


Por otro lado:
h2 h3 h4
f (± h 2 ) = f 0 ±
h
f ′(0) + f ′′(0) ± f ′′′(0) + f IV
(0 ) ± L
2 8 48 384
+h2 h  h  h  h
3
h5
∴ ∫ f ( x) dx =   +  −  − ′′ − IV
 f f  f ( 0 ) f (0 ) K
− h2 2  2  2  12 480

Si h es pequeño el error local de truncación es de O h 3 . Sin embargo, para integrar ( )


entre límites a y b se requieren (b − a ) h subintervalos (este número es inversamente
proporcional a h ) y el error global es entonces de O h 2 . ( )
En la Regla de Simpson la aproximación local se hace interpolando con parábolas de 2°
grado. Considerando puntos con abscisas uniformemente espaciadas:
5
h
( f 0 + 4 f1 + f 2 ) − h f
x2

∫ f ( x) dx = ( x1 ) + K
IV
x0 3 90

y en general, considerando un número par de subintervalos:


h
( )
( f 0 + 4 f1 + 2 f 2 + 4 f 3 + 2 f 4 + K + 2 f n −2 + 4 f n−1 + f n ) + O h 4
xn

∫ x0
f ( x) dx =
3

Esta fórmula es exacta cuando f ( x) es un polinomio de hasta tercer grado.


5 dx 1
Considérese por ejemplo: ∫1 x
= Ln 5 = 1.609 437 912 Para la función f ( x) =
x
se

obtienen los valores siguientes:


x f ( x) x f ( x)

1.00 1. 3.25 0.3076 9231


1.25 0.8 3.50 0.2857 1429
1.50 0.6666 6667 3.75 0.2666 6667
1.75 0.5714 2857 4.00 0.25
2.00 0.5 4.25 0.2352 9412
2.25 0.4444 4444 4.50 0.2222 2222
2.50 0.4 4.75 0.2105 2632
2.75 0.3636 3636 5.00 0.2
3.00 0.3333 3333
5 dx
y utilizando la regla trapezoidal se obtienen aproximaciones a ∫1 x
.

Por ejemplo con h = 1 :


dx
(1) [1. + 2(0.5 + 0.333K + 0.25) + 0.2] = 1.6833K
5

∫1 x
≈ 1
2

y en forma similar
h T (h )

1.0 1.683 333


0.5 1.628 968
0.25 1.614 406
....

Con la regla de Simpson se obtienen:

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 16


h S (h )

0.5 1.610846
0.25 1.609552
0.125 1.609446

Las fórmulas de los trapecios y de Simpson corresponden al grupo de fórmulas de


Newton - Cotes de intervalo cerrado. Algunas otras fórmulas de este grupo son la regla
de Simpson de los 3
8 :

( 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

5.5.2. Extrapolación de Richardson y el Método de Romberg

Si T (h ) es la aproximación de
b

∫a
f ( x) dx obtenida de la aplicación de la regla de los

trapecios con intervalo h , puede escribirse:


b
T ( h) = ∫ a
f ( x) dx + a1 h 2 + a 2 h 4 + a 3 h 6 + K

f ( x) dx + a1 (2h ) + a 2 (2h ) + a 3 (2h ) + K


b
T ( 2h ) = ∫
2 4 6
a

y entonces:
4T (h) − T (2h) b

3
= ∫ a
f ( x) dx + a 2 h 4 + a 3 h 6 + K

(4 T (h) − T (2h)) es una aproximación a


b
es decir 1
3 ∫ a
f ( x) dx con un error de truncación de

( )
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:

(2)4 S (h) − S (2h) = b f ( x) dx + a h 6 + a h 8 + K


(2)4 − 1 ∫a 3 4

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 17


es una aproximación mejor a la integral, con un error global de O h 6 . Estos son dos ( )
ejemplos de la extrapolación de Richardson.
5 dx
Para la integral ∫1 x
considerada anteriormente:

T (1,0 ) = 1.683 333


T (0,5) = 1.628 968 1
3
(4 T (0.5) − T (1.0)) = 1.610 846 = S (0.5)
T (0,25 ) = 1.614 406 1
3
(4 T (.25) − T (0.5)) = 1.609 552 = S (0.25)

Obsérvese que estos resultados coinciden con los obtenidos de la regla de Simpson.

El método de Romberg considera inicialmente los resultados T1. j , de aplicar la regla de


los trapecios con distintos grados de subdivisión, h j = (b − a ) 2 j . Estas aproximaciones
( )
tienen errores de truncación de O h 2j . No es necesario rehacer todos los cálculos para
cada nueva subdivisión, pudiéndose emplear la expresión:
2 j −1
T1, j = T1, j −1 + h j
1
2 ∑ f (a + h i )
i =1
j

∆i = 2

Usando la extrapolación de Richardson se obtienen nuevas aproximaciones con errores


(
2i + 2
de O h j : )
(2)2i Ti, j +1 − Ti, j
Ti +1, j =
(2)2i − 1
5 dx
Considérese nuevamente la integral: ∫
1 x
. Con la regla de los trapecios se obtienen:

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

Y de las sucesivas extrapolaciones:

j T2, j T3, j T4, j T5, j T6, j


0
1 1.688 889
2 1.622 222 1.617 777
3 1.610 847 1.610 088 1.609 966
4 1.609 552 1.609 466 1.609 456 1.609 454
5 1.609 446 1.609 439 1.609 438 1.609 438 1.609 438

Las cifras subrayadas coinciden con las de la solución exacta.

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 18


5.5.3. Integración con puntos no equidistantes

Las fórmulas de integración con puntos equidistantes consideradas en la sección 5.5.1:

∫ 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

con m puntos de integración y m parámetros c1 , c 2 L c m permiten integrar exactamente


polinomios de grado m − 1 (y excepcionalmente de grado m , como en la regla de
Simpson). Si en cambio se toman puntos no equidistantes, para m puntos de
integración se tienen 2m parámetros: w1 , w2 L wm y x1 , x 2 L x m lo que permite integrar
exactamente polinomios hasta de grado 2m − 1 . Esta forma de integración numérica se
denomina de Gauss.

Con propósitos ilustrativos, considérese la fórmula de integración de Gauss con 3


puntos:

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

es exacta. Lo mismo puede decirse de las integrales de los polinomios x g ( x ) y x 2 g ( x)


(que son de grado 4 y 5, respectivamente):
b

∫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

Con el cambio de variable x = 1


2
(b − a ) z + 12 (b + a ) se tiene que:
+1
f (x ) dx = F (z ) dz = w1 F ( z1 ) + w2 F ( z 2 ) + w3 F (z 3 )
b

∫a ∫ −1

y en tal caso las abscisas z i son los ceros del polinomio que satisface las condiciones:

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 19


+1

∫−1
P3 ( z ) dz = 0
+1

∫−1
z P3 ( z ) dz = 0
+1

∫−1
z 2 P3 ( z ) dz = 0

P3 ( z ) es el polinomio de Legendre de grado 3. En general, cuando se consideran m


puntos de integración las z i son los ceros del polinomio de Legendre de grado m ,
Pm (z ) . En la tabla siguiente se indican algunos de estos polinomios y sus ceros:
m Pm (z ) zi

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

para estos polinomios: (n + 1) Pn +1 ( z ) − (2n + 1) zPn ( z ) + n Pn −1 ( z ) = 0 .

Para determinar los "pesos" correspondientes w1 , w2 L wm puede considerarse que:


+1

∫ F ( z)dz = w F ( z ) + w F ( z ) + K + w
−1
1 1 2 2 m F (zm ) = 0

debe ser exacta para F ( z ) = 1 , F ( z ) = z ,... F ( z ) = z m −1 . En general:


2
wi = .
(1 − z ) Pm′ ( z i )
2
i

Las raíces, z i , de Pm (z ) y los correspondientes pesos, wi , pueden hallarse en tablas de


1
Abramovitz y Según u otras similares. Por ejemplo, para m=5:

zi wi
0. 0.56888 88888 88889
±0.53846 93101 05683K 0.47862 86704 99366
±0.90617 98459 38664 K 0.23692 68850 56189

Siendo conocidas estas abscisas y pesos:

[ ]
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)

Estas son las fórmulas de integración de Gauss - Legendre.


2 dx
Considérese por ejemplo ∫1 x
= Ln 2 = 0.6931 4718 . En este caso a = 1, b = 2 ,

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

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 20


i zi xi f ( xi ) wi
1 0. 1.5 0.666667 0.568889
2 -0.538469 1.230766 0.812502 0.478629
3 0.538469 1.769235 0.565216 0.478629
4 -0.906180 1.046910 0.955192 0.236927
5 0.906180 1.953090 0.512009 0.236927
5

∑ w f ( x ) = 0.6931474 .
2
y finalmente ∫1
1
x
dx ≈ 12 (2 − 1)
i =1
i i

Algunas de las múltiples variantes de integración Gaussiana se mencionan a


continuación (las correspondientes abscisas, xi , y pesos, wi , también pueden hallarse
en tablas):

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

′ 1 ( x) y los pesos wi = 2[n(n − 1)] [Pn −1 ( xi )] .


La abscisa x i es el (i − 1) cero de Pn−
0 −1 −2

Integración de Gauss - Laguerre:


∞ n

∫ 0
e − x f ( x)dx ≈ ∑ w f (x )
i =1
i i

Las abscisas son los ceros de los polinomios de Laguerre, Ln (x)


Los pesos resultan: wi = (n!) x i [(n + 1) Ln +1 ( xi )] .
2 −2

Integración de Gauss - Tchebicheff:


+1 π n

∑ f (x )
f ( x)
∫ −1
1− x2
dx ≈
n i =1
i

En este caso se tienen abscisas x i = cos (i − 1


2
)π .
n

5.5.4. Generalización a dos o más dimensiones.

Hasta el momento solo se ha considerado la integración en una dimensión. El proceso


para evaluar numéricamente integrales múltiples es análogo al proceso analítico, es
decir, se integra en una variable a la vez y en cada una de estas etapas las otras
variables se consideran como constantes. Por ejemplo:
n n m

∫∫ 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 )

H. Scaletti - Métodos Numéricos: Interpolación, Diferenciación e Integración 5 - 21


6. Métodos de Diferencias Finitas para la
Solución de Ecuaciones Diferenciales Ordinarias

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)

con condiciones iniciales:


y (t 0 ) = c (6.1b)

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

Aunque la primera parte de este capítulo se refiere directamente al caso de las


ecuaciones diferenciales ordinarias de primer orden, la sección 6.3 trata de
procedimientos específicos para el importante caso de sistemas de ecuaciones
diferenciales de segundo orden. La sección 6.5 se refiere a problemas de valor frontera,
un tema que – con otros métodos – se trata también en capítulos siguientes.

6.2. Ecuaciones Diferenciales de Primer Orden

6.2.1 Método de Euler

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:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-1


y i +1 = y i + h f ( x i , y i ) (6.2)

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.

Supóngase que: y ′ = y con condición inicial y (0) = 1 . La solución exacta es en este


caso conocida: y = e x . Empleando el método de Euler: y i +1 = y i + h y i = (1 + h ) y i .
Con dos distintos intervalos h = 0.2 y h = 0.1 se obtienen:

Solución exacta Solución con h = 0.2 Solución con h = 0.1

i xi y (xi ) = e xi yi h fi Error yi h fi Error

0 0 1.000 1.000 0.200 0 1.000 0.100 0


1 0.1 1.105 1.100 0.110 -0.005
2 0.2 1.221 1.200 0.240 -0.021 1.210 0.121 -0.011
3 0.3 1.350 1.331 0.133 -0.019
4 0.4 1.492 1.440 0.244 -0.052 1.464 0.146 -0.023
5 0.5 1.649 1.610 0.161 -0.039
6 0.6 1.822 1.728 -0.094 1.771 -0.051

Se observa que el error es aproximadamente proporcional a h y que en este caso crece


con x .

El error de truncación local, es decir el error introducido en cada paso, es de O h 2 . Sin ( )


embargo, como el número de pasos que se realizan para integrar la EDO en un intervalo
dado es inversamente proporcional a h , el error global o total es de O ( h ) . También
aquí podría emplearse la extrapolación de Richardson:

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:

xi y (xi ) = e xi y ( x,0.2) y ( x,0.1) 2 y ( x,0.1) − y ( x,0.2) Error

0.2 1.221 1.200 1.210 1.220 -0.001


0.4 1.492 1.440 1.464 1.488 -0.004
0.6 1.822 1.728 1.771 1.814 -0.008

La solución de la ecuación y ′ = f ( x, y ) depende de la condición inicial y ( a) = c . Se


tiene así como solución una familia de curvas o trayectorias y ( x, c ) , que en el intervalo
de interés pueden ser convergentes o divergentes. Esta es una característica de la
ecuación diferencial, no del procedimiento numérico empleado en su solución. Los

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-2


errores de redondeo o de truncación producen un cambio de trayectoria (y pueden
entonces verse como equivalentes a resolver un problema con condiciones iniciales algo
distintas). Las figuras bosquejan soluciones numéricas obtenidas para el caso en que
las trayectorias divergen, en el que los errores tienden a acumularse; lo contrario ocurre
cuando las trayectorias son convergentes.

Para x = x n el error acumulado en la solución numérica está dado por: ε n = y n − y ( x n )


∴ ε n +1 − ε n = ( y n +1 − y n ) − ( y ( x n +1 ) − y ( x n ))

Para el método de Euler: y n +1 − y n = h f ( x n , y n )

Por otro lado, de la expansión en series de Taylor:

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 )

Y por el teorema del valor medio:


∂f ∂f
f ( x n , y n ) − f ( x n , y ( x n )) = ( y n − y ( x n )) = εn
∂y x = xn ∂y x = xn
y =α y =α

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 =α

Si en cambio si ∂f ∂y > 0 el error crece y el proceso sólo podría funcionar si el intervalo


fuera suficientemente pequeño. Tal es el caso del ejemplo precedente, pero no el del
ejemplo siguiente. Considérese la ecuación y ′ = 1000 ( x 2 − y ) + 2 x con y (0) = 0 . Es
fácil verificar que la solución exacta es y = x 2 , pero con el método de Euler se obtienen:

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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-3


Los resultados muestran oscilaciones típicas de una inestabilidad numérica. Reduciendo
h no se elimina la inestabilidad; se requiere más bien cambiar de método.
Algunas alternativas, no siempre mejores, se presentan en las secciones siguientes.

6.2.2 Métodos de Runge Kutta

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.

Considérese el caso en que f ( x, y ) se calcula en dos puntos en el intervalo [x n , x n +1 ] :

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

Pero yˆ − y n = α h f ( x n , y n ) , por lo que se obtiene:


 
y n +1 = y n + (β + γ ) h f ( x n , y n ) + α γ h 
∂f
 ∂x
2
x = xn
+ f ( xn , yn )
∂f
∂y x = xn 
( )
 + O h3
 y = yn y = yn 

Por otro lado, expandiendo y ( x n + h) en series de Taylor:


y ( x n + h) = y ( x n ) + h y ′( x n ) + 12 h 2 y ′′( x n ) + O h 3 ( )
Pero: y ( x n + h) ≈ y n +1
y( x n ) ≈ y n
y ′( x n ) ≈ f ( x n , y ( x n )) ≈ f ( x n , y n )
∂ y′ ∂ f ∂ y ∂ f ∂f ∂f
y ′′ = = + ⇒ y ′′( x n ) ≈ + f ( xn , y n )
∂x ∂x ∂x ∂y ∂x x = xn ∂y x = xn
y = yn y = yn

Sustituyendo estas expresiones e identificando coeficientes se obtienen:


β + γ =1
α γ = 12
( )
Con un error de truncación local de O h 3 y global de O h 2 . ( )
De las infinitas alternativas de selección para α β γ tres son las más comunes:

La fórmula del punto medio:


h
yˆ = y n + f ( xn , y n )
2
y n+1 = y n + h f ( x n + 12 h, yˆ )

El método de Heun, también conocido como Euler modificado:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-4


yˆ = y n + h f ( x n , y n )

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

por el método de los trapecios.

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 )

Análogamente, pueden obtenerse fórmulas con un error de truncación local de O h 4 y ( )


( )
global de O h 3 :
k1 = f (x n , y n )
k 2 = f (x n + 12 h, y n + 12 k1 h )
k 3 = f ( x n + h, y n − k 1 h + 2 k 2 h )
y n +1 = y n + 16 h (k1 + 4k 2 + k 3 )
o bien:
k1 = f ( x n , y n )
k 2 = f (x n + 13 h, y n + 13 k1 h )
k 3 = f (x n + 23 h, y n + 23 k 2 h )
y n +1 = y n + 14 h (k1 + 3 k 3 )

Si f fuera independiente de y las expresiones precedentes equivalen al método de


Simpson.

El método comúnmente denominado de Runge – Kutta es un proceso con error global de


( )
O h4 :
k1 = f ( x n , y n )
k 2 = f (x n + 12 h, y n + 12 k1 h )
k 3 = f (x n + 12 h, y n + 12 k 2 h )
k 4 = f ( x n + h, y n + k 3 h )
y n +1 = y n + 16 h (k1 + 2k 2 + 2k 3 + k 4 )

Que también coincide con la regla de Simpson en el caso en que f no es función de y :

[ 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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-5


con condición inicial y (0.4) = 0.41 . Trabajando con h = 0.4 , las operaciones en un paso
serían:
k1 = f ( x n , y n ) = ( x n + y n ) 2 = (0.4 + 0.41) 2 = 0.9
1 1

k 2 = f (x n + 12 h, y n + 12 k1 h ) = ((0.4 + 0.2) + (0.41 + 0.18)) 2 = 1.09087


1

k 3 = f (x n + 12 h, y n + 12 k 2 h ) = ((0.4 + 0.2) + (0.41 + 0.218174)) 2 = 1.10823


1

k 4 = f ( x n + h, y n + k 3 h ) = ((0.4 + 0.4) + (0.41 + 0.443 292)) 2 = 1.285805


1

y n +1 = y n + 16 h (k1 + 2k 2 + 2k 3 + k 4 ) = 0.41 + 0.438 934 = 0.848 934

Otro método de Runge – Kutta de cuarto orden (global) es el método de Gill:


k1 = f ( x n , y n )
k 2 = f (x n + 12 h, y n + 12 k1 h )
(
k 3 = f x n + 12 h, y n + 12 ( 2 − 1) k1 h + 12 (2 − 2 ) k 2 h )
k4 = f (x n + h, y n − 1
2
2 k 2 h + (2 + 2 ) k 3 h
1
2
)
(
y n +1 = y n + 16 h k1 + (2 − 2 ) k 2 + (2 + 2 ) k 3 + k 4 )
Y muchas otras alternativas son posibles.

6.2.3 Estimación del Error y Control del Paso

Al utilizar los procedimientos de paso simple descritos en las secciones precedentes, el


intervalo h puede ajustarse en forma automática. Esto puede ser necesario al integrar
ecuaciones cuya solución varía lentamente en algunas regiones y muy rápidamente en
otras. Lo primero es poder estimar el error al integrar las ecuaciones con un cierto
intervalo.

Supóngase que se resuelve una ecuación diferencial con un procedimiento de Runge –


Kutta de cuarto orden (global) empleando un intervalo 2 h . La solución, que en lo que
sigue se denomina y 2 h , tendría un error de orden (2h) 4 . Si paralelamente se obtuviera
la solución con intervalo h , en lo que sigue y h , ésta tendría un error de orden ( h) 4 .
Podría entonces eliminarse el término dominante del error haciendo una extrapolación
(pasiva). Para cada abscisa:
16 y h − y 2 h y − y 2h
y corregido = = yh + h
15 15
5
Los resultados así obtenidos tendrían un error de orden (h) . Nótese que si se hiciera
una extrapolación activa habría que considerar el orden del error local.

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 de quinto orden (global):

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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-6


Que solamente requieren seis evaluaciones de la función:
k1 = f ( x n , y n )
k 2 = f (x n + 15 h, y n + 15 k1 h )
k 3 = f (x n + 103 h, y n + 3
40
k1 h + 9
40
k 2 h)
k 4 = f (x n + 53 h, y n + 103 k1 h − 109 k 2 h + 65 k 3 h )
k 5 = f (x n + h, y n − 11 k h + 52 k 2 h −
54 1
70
27
k3 h + 35
27
k 4 h)
k 6 = f (x n + h, y n +
7
8
1631
55296
k1 h + 175
512
k2h + 575
13824
k 3 h + 110592
44275
k4h + 253
4096
k5 h)

6.2.4 Métodos de Paso Múltiple

Los métodos tratados anteriormente permiten determinar y n +1 conociendo únicamente el


valor de la función en el punto inmediatamente precedente. Como alternativa a estos
métodos de paso simple pueden plantearse métodos de paso múltiple en los que el
cálculo de y n +1 requiere utilizar y n y n −1 y n − 2 L .

Un método de este tipo resulta al aproximar y ′ en la ecuación y ′ = f ( x, y ) por una


diferencia central, con lo que se tiene:
y n +1 = y n −1 + 2h f ( x n , y n )

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:

• Para el mismo número de evaluaciones de la función f ( x, y ) se tiene un mayor


orden en el error de truncación. Así por ejemplo, el método explícito del punto medio
( )
tiene un error local de O h 3 , contra O h 2 ( ) en el método de Euler, aún cuando
ambos requieren una sola nueva evaluación de la función f ( x, y ) en cada paso.

• Se presentan dificultades para arrancar el proceso, no siendo suficiente conocer y 0


sino además uno o más valores adicionales y1 y 2 L . Estos valores deben
obtenerse con un procedimiento distinto, de orden igual o mayor que el método de
paso múltiple a emplearse.

• Es en general difícil (aunque no imposible) cambiar el intervalo de integración, h (lo


cual, en cambio, no es ningún problema en los métodos de paso simple). Esto
podría reducir la relativa eficiencia de los métodos de pasos múltiples.

• La inestabilidad numérica es un problema más frecuente en los métodos de paso


múltiple que en los métodos de paso simple. Éste y otros temas relacionados se
revisan en la sección 6.2.5.

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 los correspondientes métodos implícitos de Adams – Moulton:


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 )

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-7


En estas expresiones f n denota f ( x n , y n ) . Los coeficientes β pueden obtenerse
considerando que:
xn + h ∂y xn + h
y ( x n +1 ) − y ( x n ) = ∫xn ∂x
dx = ∫
xn
f ( x, y ( x)) dx

Y aproximando f ( x, y ) por un polinomio de interpolación escrito en términos de


diferencias finitas hacia atrás:

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 )

Métodos de Adams – Moulton (implícitos):

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

1 y n+1 = y n + 12 h ( f n +1 + f n ) Crank Nicholson


(regla trapezoidal)
3 y n +1 = y n + 1
24
h ( 9 f n +1 + 19 f n − 5 f n−1 + f n −2 )

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-8


6.2.5 Procedimientos Predictor – Corrector

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 )

El superíndice se refiere en este caso a la iteración. Pueden, por supuesto, plantearse


métodos Predictor – Corrector en los que las expresiones empleadas no sean las de
Adams – Bashfort – Moulton. Tal es el caso del método de Milne (un procedimiento
débilmente estable, que no se recomienda):
Error local

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

Corrector: y n(i++11) = y n −1 + 13 h ( f n(+i )1 + 4 f n + f n −1 ) O (− h y (ξ) )


1
90
5 v

Supóngase, por ejemplo, la ecuación: y ′ = − xy 2 con condición inicial y (0) = y 0 = 2 . Se


ha obtenido (con algún otro método) y (0.1) ≈ y1 = 1.980 198 .

Con el predictor y n( 0+)1 = y n + 1


2
h ( 3 f n − f n −1 ) se tiene:

[
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

El proceso es en este caso convergente. La solución exacta es en este caso


y = 2 (1 + x ) , de donde y (0.2) = 1.923 077
2

Si el intervalo de integración, h , es demasiado grande, se observan importantes


(0)
diferencias entre la aproximación inicial obtenida con el predictor, y n +1 , y el valor
(k )
corregido, y n +1 . En tal caso la convergencia es lenta, e incluso podría no producirse.
Por otro lado, diferencias insignificantes implican que h es innecesariamente pequeño.

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6-9


6.2.6 Consistencia, Estabilidad y Convergencia

Al emplear una ecuación de diferencias en lugar de la ecuación diferencial, se introducen


errores de truncación en cada paso.

Por ejemplo, en el método de Euler, la expresión:

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 )

teniéndose un error de orden h 2 . A esto deben agregarse los errores debidos a la


aritmética imperfecta del ordenador.

Evidentemente no es posible determinar estos errores, pero si pueden hacerse algunas


estimaciones.

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.

Consistencia significa que en el límite h → 0 la ecuación de diferencias que define el


método numérico resulta formalmente la ecuación diferencial. Refiriéndose nuevamente
al método de Euler, que puede escribirse:
y n +1 − y n
f ( xn , yn ) =
h
se observa que:
y ( x n + h) − y ( x n )
Lim = y ′( x n )
h →0 h
Si en cambio se escribiera, por ejemplo, y n +1 = 2 y n + h f ( x n , y n ) no habría
consistencia.

Para que el procedimiento numérico sea convergente no es suficiente que sea


consistente. Se requiere además que sea estable. Un método es estable cuando los
errores de truncación y de redondeo, al propagarse durante el proceso, son siempre
pequeños en comparación con la solución exacta.
CONSISTENCIA + ESTABILIDAD ⇔ CONVERGENCIA

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.

Un ejemplo de inestabilidad numérica

Para una observación inicial sobre el tema de estabilidad, considérese la ecuación


diferencial y ′ = − y , con condición inicial y (0) = 1 , cuya solución exacta es y = e − x . El
método de Euler podría ser apropiado en este caso. Sin embargo, supóngase que se
emplea la “regla explícita del punto medio”:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 10


y n +1 = y n −1 + 2 h f ( x n , y n )

con intervalo h = 0.1 , es decir:


y n +1 = y n −1 − 0.2 y n

Para iniciar el proceso no es suficiente conocer y 0 = y (0) = 1 . Se requiere además y1 .


Supóngase que se calcula y1 = e − h = e −0.1 = 0.904 837 418 035 96 , con 13 cifras
significativas correctas. Trabajando con aritmética de doble precisión se obtienen:

i xi y (xi ) yi ei = y i − y (x i )

0 0.0 1.000000 1.000000 0.000000


1 0.1 0.904837 0.904837 0.000000
2 0.2 0.818731 0.819033 0.000302
3 0.3 0.740818 0.741031 0.000213
...
97 9.7 0.000061 -1.199394 -1.199455
98 9.8 0.000055 1.325440 1.325385
99 9.9 0.000050 -1.464482 -1.464532
100 10 0.000045 1.618337 1.618291

La solución exacta es exponencialmente decreciente, como se indica en línea gruesa en


la figura siguiente. Sin embargo, el procedimiento produce los resultados que se
presentan en línea más delgada. Después de aproximadamente x = 5 se obtienen
valores con signos alternados, con amplitud cada vez mayor (que podría llegar a rebasar
el número máximo que puede almacenarse). Esto es una inestabilidad numérica.

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

Si se reduce h o se aumenta el número de cifras en los cómputos el problema puede


posponerse, pero no evitarse. ¿A qué se debe esta inestabilidad?

Considérese la ecuación diferencial:


y′ = λ y
para la cual el método explícito del punto medio resulta:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 11


y n +1 = y n −1 + 2 λ h y n
Esta es una ecuación de diferencias lineal de orden 2. Definiendo α = λ h , la ecuación
característica es:

r 2 = 1+ 2α r

con las raíces:

( ) ( )
1
r1 = α + 1 + α 2 2 = 1 + α + 12 α 2 + O α 4

1
r2 = −
r1

Al comparar la primera de estas expresiones con la expansión en series:

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

r2n = (− 1) r1− n ≈ (− 1) e −λxn


n n

y en consecuencia:

y n = C1 r1n + C 2 r2n ≈ C1e λxn + (− 1) C 2 e − λxn


n

La solución de la ecuación de diferencias tiene dos “modos componentes”, el primero de


los cuales corresponde a la solución correcta, mientras que el segundo no debería
λx
existir. En teoría se debería tener C1 = 1 y C 2 = 0 , de modo que y n ≈ e n , pero no es
así, ni siquiera al iniciarse el proceso. Efectivamente, para el caso α = λ h = −0.1 , los
valores iniciales hacen que:
y 0 = C1 + C 2 = 1
y1 = C1 r1 + C 2 r2 = e −0.1

de donde, trabajando en doble precisión:

(
C 2 = e −0.1 − r1 ) (r 2 − r1 ) ≈ 7.469 947 ⋅ 10 −5

y suponiendo que las operaciones siguientes se efectuaran con una aritmética


infinitamente precisa:

C 2 r2100 ≈ 7.469 947 ⋅ 10 −5 e100 (0.1) = 1.645 365


Nótese que este resultado es similar al error observado para x = 10 . Por otro lado, aún
cuando inicialmente se tuviera C 2 = 0 , los errores numéricos introducirían la
componente extraña. El factor (− 1) explica la alternancia de signos del error.
n

El procedimiento no funciona para λ negativo, porque en ese caso el modo extraño


(− 1)n C 2 e − λx
tiende a crecer, mientras que la solución C1e λx es decreciente. Sin
embargo, si sirve para el caso (poco práctico) en que λ es positivo y la solución es
exponencialmente creciente.

Región de estabilidad absoluta

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 12


Puede obtenerse valiosa información con relación al comportamiento de un método
numérico de solución de EDO al observarse cómo funciona con una ecuación de la
forma y ′ = λ y , donde λ es una variable compleja, con condición inicial y (0) = 1 . Con
referencia a esta ecuación, se define la región de estabilidad absoluta de un método
numérico como el lugar geométrico de los λ h para los que la solución es finita cuando
n→∞. Esto es equivalente a decir que las raíces de la ecuación característica
satisfacen ri ≤ 1 .

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.

Considérese, por ejemplo, el método de Euler:


y n +1 = y n + h f ( x n , y n )

que aplicado a la ecuación y ′ = λ y resulta:


y n +1 = y n + λ h y n = (1 + λ h ) y n

La solución de esta ecuación de diferencias es de la forma y n = r n . Al sustituir esta


solución en la ecuación de diferencias se obtiene la ecuación característica:
r =1+ λ h

La región de estabilidad absoluta queda definida por: 1 + λ h ≤ 1 . Esta es el área


dentro de una circunferencia de radio 1 y con centro en (-1,0):

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).

Análogamente para el método de Euler inverso:


y n +1 = y n + h f ( x n +1 , y n +1 ) = y n + λ h y n +1
se obtiene:
1
r=
1− λ h

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 13


La región de estabilidad absoluta, en la que r ≤ 1 , es en este caso la región externa al
círculo de radio 1 y con centro en (1,0).
Im λh
2

Re λh
0
-2 -1 0 1 2 3

-1

-2

Región de estabilidad absoluta


Euler Inverso

El método de Euler inverso sería apropiado para el caso en que la solución es


oscilatoria, amortiguada o no. No debería emplearse para integrar ecuaciones cuya
solución es exponencialmente creciente, ya que por consideraciones de estabilidad
requeriría un paso grande, lo que estaría en conflicto con los objetivos de precisión.

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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 14


Otros métodos de Runge Kutta de segundo orden, como el método del punto medio o el
método de Ralston, tienen exactamente la misma ecuación característica y por lo tanto la
misma región de estabilidad absoluta.

Para el “clásico” método de Runge Kutta:


k1 = h f ( x n , y n )
k 2 = h f (x n + 12 h, y n + 12 k1 )
k 3 = h f (x n + 12 h, y n + 12 k 2 )
k 4 = h f ( x n + h, y n + k 3 )
y n +1 = y n + 1
6
(k1 + 2k 2 + 2k 3 + k 4 )
se obtienen en este caso:

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

= (1 + λh + (λh ) + (λh ) + (λh ) ) y


1 2 1 3 1 4
y n +1 2 6 24 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

se obtienen las raíces de la ecuación característica:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 15


( )
1
r = λ h ± 1 + (λ h )
2 2

y para tener ri ≤ 1 se requiere que λ h sea imaginaria pura, en el rango entre − i y


+ i . Debe observarse que este método es débilmente estable, porque para h → 0 se
tiene r1 = r2 = 1 .

Un mejor método de pasos múltiples es la regla trapezoidal o método de Crank –


Nicholson:

y n +1 = y n + 12 h [ f ( x n , y n ) + f ( x n +1 , y n +1 )]

que para el caso y ′ = λ y resulta:

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

6.3. Métodos para EDO de Segundo Orden


Las ecuaciones diferenciales de segundo orden siempre pueden rescribirse como un
sistema de ecuaciones de primer orden. Sin embargo, es más eficiente emplear
métodos más específicos, como los que se describen a continuación.

6.3.1 Runge Kutta

Para resolver EDO de la forma y ′′ = f ( x, y , y ′) , con condiciones iniciales y ( a ) = y 0 e


y ′( a ) = y 0′ se encuentran en la literatura modificaciones de los métodos de Runge Kutta
como, por ejemplo, el proceso de cuarto orden (global):
k1 = h f ( x n , y n , y n′ )
k 2 = h f (x n + 12 h, y n + 12 h y n′ + 18 h k1 , y ′ + 12 k1 )
k 3 = h f (x n + 12 h, y n + 12 h y n′ + 18 h k1 , y ′ + 12 k 2 )
k 4 = h f (x n + h, y n + h y n′ + 12 h k 3 , y ′ + k 3 )
y n′ +1 = y n′ + (k1 + 2k 2 + 2k 3 + k 4 )
1
6

y n +1 = y n + h [y n′ + 16 (k1 + k 2 + k 3 )]

6.3.2 Método de Diferencia Central

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

Este método puede también escribirse en la forma sumada:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 16


mu&&n = f (t n ) − ku n

u& n + 1 = u& n − 1 + u&&n ∆t


2 2

u n +1 = u n + u& n + 1 ∆t
2

cuya interpretación física es simple.


Cuando la ecuación es de la forma: mu&& + cu& + ku = f (t ) conviene aproximar la primera
derivada mediante:
u − u n −1
u& n = n +1
2 ∆t
Y no con una diferencia hacia atrás, que a primera vista podría parecer una mejor
elección. Esta consideración se relaciona con el tema de estabilidad, que se trata más
adelante. Con la aproximación antes mencionada se obtiene:

 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


     

6.3.3 Método de Newmark

La familia de métodos de Newmark se basa en aproximaciones de la forma:


u& n +1 = u& n + ∆t [δ u&&n + (1 − δ ) 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 )

y los coeficientes a 0 L a 7 son:


1 δ 1
a0 = a1 = a2 =
α (∆t ) 2 α ∆t α ∆t

1 δ ∆t  δ 
a3 = −1 a4 = −1 a5 =  − 2
2α α 2 α 
a 6 = ∆t (1 − δ ) a 7 = δ ∆t

Finalmente se pueden determinar los nuevos valores de u& y u


&& mediante:
u&& n +1 = a 0 (u n +1 − u n ) − a 2 u& n − a 3 u&&n
u& n +1 = u& n + a 6 u&& n + a 7 u&& n +1

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 17


6.3.4 Estabilidad y Precisión

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

En esta expresión ρ ( A) es el radio espectral y los λi son los valores característicos de


A . Para el caso en que β = 0 y se utiliza el método de diferencia central, la condición
ρ ( A) ≤ 1 se cumple cuando:
2 T
∆t ≤ =
ω π
Se dice entonces que el método de diferencia central es condicionalmente estable. Si
∆t excede el límite antes indicado se produce una inestabilidad numérica. El límite
corresponde a algo más que tres puntos por período, lo que sin embargo resulta
insuficiente para tener buena precisión. Con ∆t = T / 10 se introducen errores del orden
de 3% en cada paso, mientras que con ∆t = T / 20 los errores son del orden de 1%.

Para la familia de métodos de Newmark pueden también obtenerse las condiciones de


estabilidad:
δ ≥ 0.50
α ≥ 0.25 (0.5 + δ ) 2

Con una apropiada selección de los parámetros (lo habitual es δ = 12 y α = 1


6 ) se tiene
un procedimiento incondicionalmente estable, es decir estable para cualquier selección
de ∆t . Nuevamente, el intervalo de integración está limitado por la precisión.

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.

6.4. Sistemas de Ecuaciones Diferenciales Ordinarias

6.4.1 Integración Directa

Cuando las EDO son no lineales, y en consecuencia no es factible la descomposición


modal a la que se hace referencia en la sección siguiente, cabe la posibilidad de integrar
directamente las ecuaciones en su forma original. Las expresiones son prácticamente

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 18


las mismas usadas para el caso de una sola ecuación diferencial, excepto que todas las
operaciones son realizadas con matrices. Así, por ejemplo, para resolver el sistema de
EDO de primer orden:
y ′ = f ( x, y )

Podría emplearse el método de Runge Kutta de cuarto orden:


k 1 = f (x n , y n )
k 2 = f (x n + 12 h, y n + 12 k 1 h )
k 3 = f (x n + 12 h, y n + 12 k 2 h )
k 4 = f ( x n + h, y n + k 3 h )
y n +1 = y n + 16 h (k 1 + 2k 2 + 2k 3 + k 4 )
(como es habitual, las minúsculas en letras negritas denotan matrices columna).
Análogamente, para resolver el sistema de ecuaciones diferenciales de segundo orden:
&& + K u = f (t )
Mu

podría emplearse el método de diferencia central:


&& n = f (t n ) − K u n
Mu
u& n + 1 = u& n − 1 + u
&& n ∆t
2 2

u n +1 = u n + u& n + 1 ∆t
2

El método de diferencia central es particularmente eficiente para el caso de EDO no


lineales si la matriz M es diagonal (una aproximación frecuente en ingeniería). Puede
anotarse que en el caso de ecuaciones no lineales no requiere obtenerse K
explícitamente, sino más bien el producto K u (lo que puede ser notoriamente más fácil).
&& n +1 + C u& n +1 + K u n +1 = f n +1 sería
Otra posibilidad para resolver ecuaciones de la forma M u
el método de Newmark, en el que u n+1 se obtiene de:
ˆu ˆ
K n +1 = f n +1

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

Los coeficientes a 0 L a 7 son los mismos de la sección 6.3.3.

Al resolver EDO no lineales el método de Newmark, en la forma antes descrita, requeriría


una nueva factorización K ˆ = L U en cada paso. El proceso podría mejorarse
descomponiendo K ˆ en dos partes y pasando los términos no lineales al segundo
miembro, como parte de fˆ n +1 .

6.4.2 Descomposición Modal

Cuando el sistema de ecuaciones diferenciales es lineal, y particularmente si las


matrices que definen el sistema de ecuaciones diferenciales son simétricas, el
procedimiento más eficiente se basa en la descomposición modal. Para mostrar en que

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 19


consiste la descomposición modal, supóngase que se tiene el sistema de ecuaciones
diferenciales:
Bx& + Ax = f (t )

Las matrices A y B son simétricas (y muy frecuentemente definidas positivas). La


descomposición modal emplea los vectores característicos φ ι obtenidos de:
A φi = λ i B φi

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

Nótese que, siendo las matrices A y B constantes, los vectores característicos φ ι no


son función de tiempo. Sin embargo, las componentes no pueden en general ser
constantes, puesto que la solución no los es. Por lo tanto:

x& (t ) = ∑ a& j (t ) φ j

Al sustituir las expresiones anteriores en el sistema de ecuaciones diferenciales se tiene:

∑ a& j Bφj + ∑a j A φ j = f (t )

Conviene ahora recordar las condiciones de ortogonalidad:

φ *s B φ r = δ rs
φ *s A φ r = λ r δ rs

Para simplificar la presentación, se ha supuesto que los vectores característicos están


normalizados respecto a la matriz B .

Al pre multiplicar las ecuaciones por φ Τι :

∑ 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 )

Por otro lado, si las condiciones iniciales son x(0) = x 0 , entonces:

x 0 = x ( 0) = ∑ a (0) φj j

y por lo tanto, al premultiplicar por φ Τι B :

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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 20


poco importantes, y pueden despreciarse. Por ello, se justifica plenamente el trabajo de
determinar previamente los valores característicos.

Las ecuaciones desacopladas puede resolverse con algunos de los procedimientos


numéricos tratados en la sección 6.2. Por ejemplo, si los valores característicos fueran
negativos podría emplearse el método de Euler. En el caso en que las funciones f (t )
son simples podría también pensarse en una solución analítica. Obtenidas cada una de
las componentes como función de tiempo, puede regresarse a la expresión:

x (t ) = ∑a j φj

para hallar la solución x(t ) .

Un caso frecuente es aquel en el que f (t ) = f 0 g (t ) y la función g (t ) está definida por


una colección de valores numéricos correspondientes a valores t uniformemente
espaciados. En un intervalo cualquiera puede hacerse la aproximación: g (t ) = a t + b ,
de donde, para cada una de las ecuaciones desacopladas se tiene:

a& i + λi a i = φ Τι f 0 (a t + b)

Cuya solución puede obtenerse fácilmente (sumando la solución homogénea C e − λ t y la


particular, de la forma A t + B ):

Conociendo a i al inicio del intervalo, puede obtenerse la constante C y calcularse


entonces el valor de a i al finalizar el intervalo. El proceso se repite análogamente para
los sucesivos intervalos.

Cabe anotar que este procedimiento es incondicionalmente estable. En realidad, sería


exacto si la función fuera efectivamente lineal por intervalos. La aproximación está en
haber descrito la función g (t ) con un número finito de valores numéricos, a partir de los
cuales se está interpolando linealmente.

Las mismas ideas pueden aplicarse a sistemas lineales de ecuaciones diferenciales de


&& + C u& + K u = f . En este caso podrían primero determinarse los
segundo orden: M u
valores y vectores característicos del problema: K φ = ω 2 M φ . Aquí se ha supuesto que
K y M son no sólo simétricas, sino también definidas positivas, por lo que los λ = ω 2
son positivos.

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

Los vectores característicos satisfacen las condiciones de ortogonalidad:

φ *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 :

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 21


a&&i + 2 β ω i a& i + ω i2 a i = φ Τι f (t )

Estas ecuaciones pueden también ser resueltas numéricamente, por procedimientos


tales como el método de diferencia central o el método de Newmark de aceleración
constante.

En el caso frecuente en el que f (t ) = f 0 g (t ) , estando g (t ) definida por una colección de


valores numéricos a intervalos constantes, puede seguirse un procedimiento similar al
descrito antes para ecuaciones diferenciales de primer orden.

6.4.3 Consideraciones Adicionales

En el acápite 6.3.4 se mencionó que al resolver una ecuación diferencial de segundo


orden el intervalo está controlado por precisión y no por estabilidad. La situación es
diferente cuando se resuelven grandes sistemas de EDO. Los comentarios siguientes
parecieran referirse a sistemas de EDO lineales, pero realmente son también aplicables
a ecuaciones no lineales, que pueden ser linearizadas localmente.

Al integrar directamente un sistema de EDO se están haciendo operaciones equivalentes


a integrar las ecuaciones desacopladas; simplemente el sistema de referencia es
distinto. El procedimiento será estable cuando el intervalo de integración cumpla las
condiciones de estabilidad con todos y cada uno de los modos componentes. Por lo
tanto, para un método como el de la diferencia central:

2 Tmín
∆t ≤ =
ω máx π

Cuando se tiene un comportamiento no lineal los períodos T tienden a crecer (y los ω


tienden a reducirse), por lo que la estimación del ∆t sobre la base de las condiciones
iniciales es en general suficiente.

Por otro lado:

ω1 ≤ ω 2 ≤ L << ω máx
T1 ≥ T2 ≥ L >> Tmín

y habitualmente al cumplir la condición de estabilidad se tendrán cientos y tal vez miles


de puntos por período para los modos asociados a las menores frecuencias, que son los
importantes en la respuesta. En resumen, al resolver grandes sistemas de EDO con un
procedimiento condicionalmente estable, satisfacer la condición de estabilidad implica
que se tiene también precisión.

En cambio, al emplear un método incondicionalmente estable es la precisión la que


siempre controla el intervalo de integración. Éste debe escogerse de modo que se
integren con suficiente precisión todos aquellos modos cuya participación en la
respuesta es significativa.

&& + Au = 0 en la que la matriz A es:


Considere el sistema de ecuaciones diferenciales u

 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:

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 22


 1.01  0
u ( 0) =   u& (0) =  
− 0.99 0
En este caso es fácil obtener la solución exacta:

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.

Supóngase ahora que se usa el proceso de diferencia central:


&& n = − Au n
u
u& n + 12 = u& n − 12 + ∆t u
&& n
u n +1 = u n + ∆t u& n + 12

 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

H. Scaletti - Métodos Numéricos: Ecuaciones Diferenciales Ordinarias 6 - 23


8. Transformadas de Fourier Discretas

8.1 Introducción

En numerosos problemas de ingeniería, como por ejemplo al estudiar vibraciones


mecánicas, se tienen funciones periódicas. Una función f (t ) es periódica, con período
T , si f (t + T ) = f (t ) para todo t . En tal caso f (t ) puede ser expresada en series de
1
Fourier :
∞ ∞

∑ (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 = −∞

donde Ω j = j (2π / T ) y T es el período. Puede demostrarse que:

c0 = a0 , c k = 12 (a k − ibk ), c − k = 12 (a k + ibk ) (8.2)

siendo i = − 1 .

Por ejemplo, para la onda rectangular con período 2π :


− 1 − π < t < 0
f (t ) = 
1 0<t <π
Se obtiene:
4 sen 3 x sen 5 x 
f (t ) =  sen x + + + L
π 3 5 
En la figura se muestra la aproximación obtenida considerando 10 términos de la serie:

1.5

0.5

0
-6 -4 -2 0 2 4 6
-0.5

-1

-1.5

Si f y su primera derivada son continuas, la serie es convergente para todo t . Cuanto


más regular sea la función, mayor es la velocidad de convergencia. Si f y f ′ tienen un
número finito de discontinuidades finitas en cada período, la serie produce el valor medio
en cada uno de tales puntos.

En los procedimientos numéricos las funciones se expresan por colecciones de valores


f n = f (t n ) que habitualmente corresponden a abscisas uniformemente espaciadas:
t n = n ∆t . Si la función es periódica podría definirse por una colección de N valores

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.

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-1


numéricos f 0 , f 1 , f 2 , K f N −1 siendo el período T = N ∆t . En lo que sigue, se denomina
a esto el caso discreto. Análogamente a la (8.1):

∑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

En la sección siguiente se revisan expresiones que permiten determinar los coeficientes


de tales series. Para simplificar la presentación se ha escrito c j en lugar de ĉ j .

8.2 Ortogonalidad de las Funciones Armónicas

Caso continuo

Supóngase que se tienen dos funciones periódicas f (t ) = f (t + T ) y g (t ) = g (t + T ) .


En lo que sigue se hace referencia al producto interno de tales funciones periódicas:
T
( f , g) = ∫ 0
f (t ) g (t ) dt (8.5)

donde g (t ) indica la conjugada de g (t ) .


i Ω jt
Considérense ahora las funciones periódicas: ϕ j (t ) = e para j = 0, ± 1, ± 2, K ,
 2π  −i Ω t
siendo Ω j = j   e i = − 1 . Nótese que ϕ (t + T ) = ϕ (t ) . Además: ϕ j (t ) = e j
 T 
Puede observarse que:

 T si j = k (8.6)
(ϕ j , ϕ k ) = 
 0 si j ≠ k

como se demuestra a continuación. Para j = k :


T iΩ jt −i Ω j t T
(ϕ j , ϕ j ) = ∫ 0
e e dt = ∫ 0
dt = T

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

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-2


2πi
i ω jt i Ω j tn jn
Considerando nuevamente las funciones ϕ j (t ) = e se tiene: ϕ j (t n ) = e =e N y
entonces:
N −1 2πi
jn −
2πi
kn N −1 2πi  j − k  n
(ϕ j , ϕ k ) = ∑
n=0
e N e N = ∑e
n =0
 N 

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

Por otro lado, si j − k no es un múltiplo de N puede escribirse:


N −1
(ϕ j , ϕ k ) = ∑q
n =0
n

 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

8.3 Coeficientes de Fourier


Si f (t ) es periódica:

∞  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 )

Los coeficientes c j se denominan coeficientes de Fourier. Estos pueden determinarse


con el producto interno:

( f ,ϕk ) = ∑c
j
j (ϕ j , ϕ k )

Siendo (ϕ j , ϕ k ) = 0 para j ≠ k se obtiene ( f , ϕ k ) = c k (ϕ k , ϕ k ) y por lo tanto (después


de cambiar k por j ):
 2πi 
1 T −  jt
cj =
T ∫ 0
f (t ) e  T 
dt en el caso continuo (8.8)

N −1  2πi 
1 −  jn
cj =
N

n =0
fn e  N 
en el caso discreto (8.9)

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-3


Cuando la función f (t ) es real, los coeficientes a j , b j de la expresión (8.1) son también
reales. Los c j son en general números complejos, pero si f (t ) es real tienen simetría
conjugada, es decir: c − k = c k , lo que puede observarse fácilmente en (8.2).

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)
 

8.3 Transformadas de Fourier

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)

La función F (Ω) es la transformada de Fourier de f (t ) . Análogamente, el límite de


(8.9) para T → ∞ resulta:

1 ∞
f (t ) =
2π ∫−∞
F (Ω ) e i Ω t d Ω (8.13)

que se denomina transformada inversa. El factor 1 /(2π ) podría indistintamente tenerse


en (8.12) o en (8.13).

La tabla siguiente indica algunas propiedades de simetría de las transformadas de


Fourier:
Función Transformada de Fourier

f (t ) real F ( −Ω ) = F ( Ω)
f (t ) imaginaria F ( − Ω) = − F (Ω )
f (t ) simétrica F ( − Ω ) = F (Ω )
f (t ) antisimétrica F ( −Ω ) = − F ( Ω)

Si f (t ) es simultáneamente real y simétrica F (Ω) es también real y simétrica; si f (t )


es imaginaria y antisimétrica F (Ω) es también antisimétrica pero real.

Puede también demostrarse que:


∞ ∞
∫ ∫
2 2
f (t ) dt = F ( Ω) dΩ
−∞ −∞

Esto se conoce como el teorema de Parseval, que es de utilidad en diversas


aplicaciones.

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-4


Si F (Ω) es la transformada de Fourier de f (t ) , entonces la transformada de Fourier de
f& (t ) resulta i Ω F (Ω) . Esto se verifica fácilmente haciendo una integración por partes.
En consecuencia, se concluye que la transformada de la derivada m-ésima es
(i Ω) m F (Ω) .
Si se tiene la ecuación diferencial lineal:

m u&& + c u& + ku = f (t ) ⇒ u&& + 2 βω u& + ω 2 u = f (t ) / m


en la que m, c, k son constantes, se puede multiplicar por e − i Ωt e integrar entre − ∞ y
+ ∞ , para obtener:
∞ ∞ ∞ ∞
m ∫ −∞
u&&(t ) e − i Ωt dt + c ∫ −∞
u& (t ) e − i Ωt dt + k ∫
−∞
u (t ) e − i Ωt dt = ∫
−∞
f (t ) e − i Ωt dt


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 Ω

Las mismas ideas pueden aplicarse a la solución de sistemas de ecuaciones


diferenciales lineales. Por ejemplo:

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 Ω

8.4 Algoritmo de Cooley y Tukey2

Las operaciones requeridas para obtener los coeficientes de Fourier:


N −1  2πi 
1 −  jn
cj =
N
∑f
n =0
n e  N 
(8.14)

son similares a las del proceso inverso:


N −1  2πi 
  jn
fn = ∑c j =0
j e  N 
(8.15)

2
Cooley, J.W. y Tukey, J.W. An algorithm for machine calculation of complex Fourier series. Math.Comp.,
19:297-201, 1965.

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-5


Al realizar las operaciones como se indican en (8.14) y (8.15) se requerirían en cada
caso N 2 multiplicaciones y sumas de números complejos. Con el algoritmo de
Transformada de Fourier Rápida (FFT por sus iniciales en inglés) se requieren sólo
N log 2 N multiplicaciones y sumas. Esto es suponiendo que N es una potencia de 2 y
que el algoritmo se escribe en su forma más simple. Si, por ejemplo, N = 216 = 65 536 ,
el algoritmo FFT resulta aproximadamente 4000 veces más rápido que el procedimiento
“convencional” antes indicado.

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

Por otro lado, expresando j como α N / 2 + q , donde α = 0, 1 y 0 < q < (N / 2 − 1) , se


tiene que:
N
αp
(u 2 ) jp = (u 2 ) 2 (u 2 ) pq = (u N ) α p (u 2 ) pq = (u 2 ) pq
N N
+q
u2 = u 2 u q = e ±πi u q = − u q

Dividiendo los c j en dos grupos (para α = 0, 1 ) se obtienen:

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.

Las φ q y ϕ q se pueden a su vez obtener dividiendo cada sumatoria en dos partes. Si


N = 2 m , el mismo procedimiento puede sucesivamente repetirse hasta tener sumatorias
con un solo punto.

En la tabla siguiente se muestran los sucesivos reagrupamientos de los valores f n que


se harían para el caso particular N = 16 :

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-6


1 FFT 2 FFT 4 FFT 8 FFT 16 FFT
N = 16 N =8 N =4 N =2 N =1

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

Se indica además, a la izquierda, el número de orden original en un sistema de base 2.


A la derecha se observa que, al reagrupar los valores de la función, cada uno de estos
intercambia posición con aquel que corresponde a los bits en orden inverso.

La sucesiva subdivisión de los grupos en dos de la mitad de tamaño termina cuando


N = 1 y se tiene e ±2πi = 1 ; entonces los valores φ q y ϕ q resultan iguales a los de las
correspondientes f n . Luego se usan expresiones como la (8.17) para obtener N / 2
FFT con dos puntos:

u = e ±2πi / 2 = 1 ⇒ c0 = φ0 + ϕ 0
c1 = φ 0 − ϕ 0

Y luego N / 4 FFT con cuatro puntos:

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.

8.5 Algunas consideraciones prácticas

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.

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-7


En la figura se ilustra esta idea:

200 f (t)

100

0 t
0 20 40 60 80 100 120 140 160
-100

-200

Un aspecto importante es definir a que frecuencia Ω j corresponde cada uno de los


coeficientes c j . Siendo el período T = N ∆t se tiene Ω1 = ∆Ω = 2π / T y por lo tanto
Ω j = 2π j /( N ∆t ) .
La máxima frecuencia que se representa correctamente (denominada de Nyquist)
depende del intervalo ∆t al que se registra la función f y resulta Ω máx = (2π / ∆t ) / 2 .
Las componentes a frecuencias más altas se interpretan como si correspondieran a
frecuencias incorrectas (alias).

4.0E-05 |F( Ω )|

3.0E-05

2.0E-05

1.0E-05

0.0E+00 Ω
0 20 40 60 80

H. Scaletti - Métodos Numéricos: Transformadas de Fourier Discretas 8-8

También podría gustarte