Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matrices PDF
Matrices PDF
Las operaciones con matrices aparecen en distintos problemas de la física. Aunque el ejemplo
más conocido es el estudio de pequeñas oscilaciones en sistemas de muchos cuerpos, también se
utilizan en resolución de circuitos eléctricos y son fundamentales en mecánica cuántica.
Supongamos que queremos estudiar el espcro de vibraciones de una molécula con n grados de
libertad. La primer aproximación consiste en investigar las oscilaciones armónicas del sistema, ex-
pandiendo la energía potencial hasta el segundo orden en las coordenadas generalizadas alrededor
de las posiciones de equilibrio:
1X
U (q1 , q2 , . . . , qn ) ≈ Ajk qj qk
2 j,k
donde qi son las coordenadas generalizadas y Ajk son parámetros del potencial que usualmente
pueden obtenerse a partir de un cálculo de química cuántica. La energía cinética puede escribirse
en términos de las velocidades generalizadas q̇
1X
T (q̇1 , q̇2 , . . . , q̇n ) ≈ Mjk q̇j q̇k .
2 j,k
j=1
Este es un ejemplo sencillo en el cual es necesario calcular el determinante de una matriz, y poder
resolver un sistema de ecuaciones lineales.
En general, podemos dividir los métodos numéricos para matrices en dos grandes áreas:
1
• Diagonalización de matrices.
donde Rij es la matriz de orden (n−1)×(n−1) que se obtiene removiendo la fila i y la columna j
de la matriz A. Este es un ejemplo de algoritmo recursivo, en el cual, para calcular el determinante
de orden n es necesario conocer el determinante de orden n − 1. Este es un ejercicio interesante
de programación, aunque, como veremos, no es la mejor forma de calcular el determinante.
En el cálculo numérico con matrices, es de fundamental importancia reconocer el costo com-
putacional de cada operación a realizar. Usualmente, dada una matriz de tamaño n × n, el costo de
estas operaciones se mide en términos de la dimensión n de la matriz. La mayoría de los métodos
que veremos son de orden n3 . Entonces, por ejemplo, la diferencia en el número de operaciones
entre utilizar una matriz de 10 × 10 y una de 12 × 12 es de: 123 − 103 = 1728 − 1000 = 728
operaciones. Es decir que un aumento pequeño en el tamaño de la matriz implica un incremento
de alrededor del 70% en el número típico de operaciones!!!!
Ax = b.
Por ejemplo,
1 2 3 x1 3
x2
−3 1 5
=
.
−2
2 4 −1 x3 1
Antes de continuar, es conveniente definir las matrices triangulares superiores U tales que U ij = 0
para i > j y las matrices triangulares inferiores L con Lij = 0 para i < j.
2
A. El método de Gauss
Sabemos que existen diversas operaciones elementales que se pueden realizar en estos sistemas
de ecuaciones:
• Se puede reemplazar una ecuación por una combinación lineal de esta ecuación y otra.
Estas operaciones no alteran la solución. Cada una de estas operaciones implica realizar determi-
nados cambios en la matriz Ay en b. Por otra parte, es claro que la resolución de un sistema de
ecuaciones en los cuales A es una matriz triangular superior o inferior es muy sencilla. En efecto,
si tenemos
1 2 3 x1 3
0 7 14 x = 7
2
0 0 −7 x3 −7
entonces x3 = 1, y sustituyendo
1
x2 = (7 − 14 × 1) = −1
7
y
x3 = 3 − 2 × (−1) − 3 × 1 = 2,
3
Primero, multiplicamos la primer fila y el término independiente b1 por −Ai1 /A11
A11 A12 A13 A21 A12 A21 /A11 A13 A21 /A11
A21 /A11 ×
A
21 A22 A23
→ A
21 A22 A23
A31 A32 A33 A31 A32 A33
es decir que
1 2 3 3
A(1) b(1)
=
0 7 14 7 .
0 0 −7 −7
Pivoting
El ejemplo anterior es bastante sencillo. Sin embargo, podría ocurrir que en algun paso, el
elemento diagonal que se utiliza como denominador Aii sea cero (a este elemento se lo llama
pivote). Más aún, podría ocurrir que el pivote no sea cero, y así y todo el método de Gauss sea
inestable frente a errores de redondeo. En todos los casos en los cuales el pivote es un número
pequeño, puede haber problemas.
4
Ejemplo: Un ejemplo claro son las matrices de Hilbert, definidas como
1
Hij =
i+j −1
Estas matrices contienen números fraccionarios que no pueden representarse exactamente en la
aritmética binaria. Por ejemplo, para la matriz de Hilbert de 6 × 6, el sistema
H6×6 x = b
y sin embargo, una rutina numérica obtiene un error de 1×10 −4 para dicha solución. Es importante
observar que estos sistemas contienen una combinación letal desde el punto de vista numérico:
numeros fraccionarios no representables en binario, y números extremadamente grandes.
En estos casos, es conveniente elegir el pivote como el máximo valor entre los elementos de
una columna. En el ejemplo, elegiríamos−3 como el pivote. Esto significa intercambiar la primer
y segunda filas (esto es, las ecuaciones) de la matriz A.
B. Descomposición LU
Vimos antes que el método de Gauss se basaba en una serie de operaciones elementales. Cada
una de estas operaciones puede pensarse como el producto de ciertas matrices R y la matriz A.
Por ejemplo, la matriz
0 0 1
R13 =
0 1 0
1 0 0
intercambia las filas 1 y 3 de A. En efecto
0 0 1 1 2 3 2 4 −1
R13 A =
0 1 0 −3 1 5
= −3 1 5 .
1 0 0 2 4 −1 1 2 3
Entonces, la matriz triangular superior A(np ) que se obtiene al final de este procedimiento, puede
verse como
UA(np ) = R(1) R(2) R(3) . . . R(np ) A = RA
5
es decir que A = R−1 U. Es posible probar que R es una matriz triangula inferior y que la inversa
de una matriz triangular inferior es otra matriz triangular inferior.
Por otra parte, puede darse el caso en que uno tenga que resolver una serie de sistemas de
ecuaciones, en los cuales sólo cambia el vector b; como por ejemplo cuando uno calcula la inversa
de una matriz. Entonces es útil tener una descomposición de la matriz A que nos permita resolver
el problema eficientemente. Esta es la denominada descomposición LU en la cual la matriz Ase
escribe como un producto de una matriz triangular inferior y una superior. Si tenemos
Ax = b
y A = LU entonces
Ax = LUx = b.
Llamando
Ux = y
2. Para cada j,
i−1
X
Uij = Aij − Lik Ukj
k=1
j−1
1 X
Lij = Aij − Lik Ukj
Ujj k=1
Por ejemplo, si
4 2 3
A=
−3 1 4
2 4 5
entonces L11 = 1, L22 = 1, L33 = 1 y para j = 1
U11 = 4
1 3
L21 = (−3) = −
4 4
1 1
L31 = (2) =
4 2
6
para j = 2
U12 = 2
3 5
U22 = 1 − L21 U12 = 1 − (− ) × 2 =
4 2
2 2 1 6
L32 = (4 − L31 U12 ) = 4− ×2 =
5 5 2 5
etc. Tenemos que
1 0 0 4 2 3
A= 3 5 25
−4 1 0 0 2 4
1 6
2 5
1 0 0 −4
Observemos también que
det[A] = det[L] det[U]
y el algoritmo siempre deja det[L] = 1,con lo cual el determinante de Aes simplemente el pro-
ducto de los elementos de la diagonal de U.
Puede ser posible todavía que algún elemento de la diagonal de U sea nulo, con lo cual es
necesario hacer pivoting.
Ejemplo: Calcular la descomposición LU de la matriz
1 2 6
B=
4 8 −1
−2 3 5
y
yn
x1 =
Unn
n
1 X
xi = yi − Uij xj .
Uii j=i+1
7
Cualquiera de ambos métodos es de orden n3 , aunque el método de la descomposición LU es un
factor 3 más rápido.
f (x) = 0
donde ∆x = x − x0 y
∂fi
Aij (x) =
∂xj
de tal manera que obtenemos el método de Newton para búsqueda de ceros en el caso multidimen-
sional
x0 ≈ x − A−1 (x)f (x)
Ax = λx,
8
Uno de los casos más importantes en física corresponde al problema de autovalores de una
matriz hermítica. La matriz A es hermítica si
A = A†
3. Una matriz hermítica puede transformarse en una matriz diagonal a través de transforma-
ciones de similaridad con matrices unitarias.
Más aún, el problema de autovalores de una matriz de n × n hermítica compleja puede trans-
formarse en un problema de autovalores para una matriz simétrica real de 2n × 2n. En efecto,
si
A = B + iC
entonces B es una matriz real simétrica y C es una matriz real antisimétrica. El problema de
autovalores es:
(B + iC) (y + iz) = λ (y + iz)
A. Matrices Tridiagonales
9
Estas matrices tienen propiedades que hacen que el cálculo de autovalores y autovectores sea más
sencillo. En primer lugar, el determinante de la matriz tridiagonal det[A−λ1] es equivalente a la
ecuación polinomial pn (λ) = 0, que puede obtenerse mediante la recursión
p0 (λ) = 1
p1 (λ) = a1 − λ
pi (λ) = (ai − λ)pi−1 (λ) − b2i−1 pi−2 (λ)
En principio, se podría usar una rutina de búsqueda de ceros para obtener las raíces de p n (λ). Sin
embargo, este polinomio tiene las siguientes propiedades
1. Todas las raíces de pn (λ) = 0 se encuentran en el intervalo [− kAk , kAk] donde kAk está
definido como
Xn
kAk = max |Aij | .
j=1
2. El número de raices de pn (λ) = 0 con λ > λ0 esta dado por el número de acuerdos de los
signos de pj (λ0 ) y pj−1 (λ0 ) para j = 1, 2, . . . , n. Si por ejemplo, pj (λ0 ) = 0, se le asigna el
signo del polinomio precedente pj−1 (λ0 ).
Es evidente que utilizando estas dos propiedades, es posible diseñar un algoritmo numérico que
encuentre los autovalores utilizando el método de bisección. Una vez obtenidos los autovalores,
el problema de obtener los autovectores se reduce a resolver un sistema de ecuaciones para cada
autovalor obtenido.
B. El método QR
A = QR.
Si construimos la matriz
A0 = RQ,
A0 = Q† AQ,
10
es decir, A0 es una transformación unitaria de A. Esta transformación preserva los autovalores. Se
puede probar que luego de una serie de estas transformaciones, la matriz original A se transforma
en una matriz triangular superior cuya contiene los autovalores de A. Entonces, comenzando con
A(0) = A, y definiendo
A(k) = Qk Rk
tendremos
A(k+1) = Q†k A(k) Qk .
En el caso general, estas transformaciones dan un algoritmo de orden n 3 . Sin embargo, en el caso
de matrices tridiagonales, el algoritmo es de orden n. Más aún, es posible construir la transforma-
ción a partir de matrices de rotación P(p, q):
1
..
.
c ... s
.. ..
. 1 .
P(p, q) =
−s . . . s
..
.
1
tales que c2 + s2 = 1, Ppp (p, q) = Ppp (p, q) = c y Ppq (p, q) = −s, Pqp (p, q) = s. En efecto, se
pueden elegir c y s de modo tal que al aplicar la transformación
A0 = PT (p, q)AP(p, q)
c2 − s 2 aqq − app
cot 2φ = = .
2sc 2apq
Se puede probar que la rotación en angulos menores que π/4 es la más estable.
Volviendo a la transformación Q, se la puede construir como una serie de rotaciones que elim-
inen los elementos de las sub y supra diagonales:
11
C. Transformación a una matriz tridiagonal
Hemos visto que resulta más o menos sencillo obtener los autovalores y autovectores de una
matriz tridiagonal. En esta sección describiremos el método de Householder para transformar una
matriz real y simétrica a la forma tridiagonal. Para ello definimos la matriz de Householder como
P = 1 − 2wwT
Entonces
uuT
!
Px = 1−2 2 x
|u|
u (x + |x| e1 )T x
= x−2
|x + |x| e1 |2
u |x|2 + |x| x1
= x−2
2 |x|2 + 2 |x| x1
= x − u = − |x| e1
Esto nos muestra que la aplicación de P así definido transforma la columna x en una columna con
ceros en todos los elementos excepto el primero. Entonces, si elegimos como primer vector x a
los últimos n − 1 elementos de la primer columna de la matriz A, x = (A21 , A31 , . . . , An1 ) :
1 0 0 0 A11 A12 . . . A1n A11 A12 . . . A1n
. ..
A21 . .
0
k
.
P1 A =
.
= .
P1n−1 .. ..
0
0 A11 0
12
donde k = − |(A21 , A31 , . . . , An1 )| . La transformación ortogonal completa será
A11 k . . . 0
..
k
.
A(2)
= P1 AP1 = .
.
..
0
En el siguiente paso, construimos:
1 0 0 0
0 1 0 0
P2 =
P2n−1
0 0
0 0
donde x ahora contiene los n − 2 elementos de la segunda columna de A (2) . El procedimiento
entonces garantiza que al final de n − 2 transformaciones, la matriz A (n−2) será tridiagonal.
Una forma más sencilla de aplicar este procedimiento es definir
Au
p=2
|u|2
entonces
uuT
!
AP = A 1 − 2 2 = A − puT
|u|
y
A0 = PAP = A − quT − uqT
donde
uT p
q=p− u.
|u|2
a. Ejemplo La transformación de Householder para
4 2 2 1
2 −3 1 1
A=
2 1 3 1
1 1 1 2
es
4 −3 0 0
−3 2 3.162277 0
A0 =
0 3.162277 −1.4 0.2
0 0 0.2 1.4
13
b. Ejemplo Dada
2 −1 −1
A= −1
2 −1
−1 −1 2
mostrar que p3 (λ) = −(−4 + λ)(−1 + λ)2 . Probar calculando el determinante de A − λ1 y con
la recursión anterior.
14