You are on page 1of 7

Depa

rt
amen
to
deFí
sic
a

Regla de Cramer y Factorización QR,


definición y aplicaciones
Andrés F. Guerrero G.1 , Diego A. Forero B.1 Johann H. Roa M.1 , J. David Díaz O.1
1 UniversidadNacional de Colombia, Sede Bogotá − Dpto. de Física, Facultad de Ciencias,
Grupo de trabajo. Álgebra lineal.

Regla de Cramer

La regla de Cramer recibe su nombre en honor del matemático suizo Gabriel Cramer quien la publicó en 1750, aunque
existe evidencia en donde se sugiere que Colin Maclaurin conocía la regla desde 1729. La regla de Cramer durante casi
200 años fue fundamental en la enseñanza de álgebra y la teoría de ecuaciones, pero debido al gran número de cálculos
requeridos se usa poco en la actualidad [1].
Este es un método que utiliza el determinante de la matriz A y los determinantes de las matrices intercambiando la
columna de términos independientes con la columna de la variable que se desea resolver, es decir, la variable es el
cociente entre el determinante de la matriz resultante al cambiar la columna de la variable por la columna de términos
independientes y el determinante de A, siempre que det (A) no sea 0.

Teorema

Sea A una matriz cuadrada n × n en donde det (A) 6= 0. La única solución al sistema A~x = ~b esta dada por:
det (A1 ) det (A2 ) det (An )
x1 = , x2 = , · · · , xn =
det (A) det (A) det (A)
donde,
     
b1 a12 · · · a1n a11 b1 · · · a1n a11 a12 · · · b1
 b2 a22 · · · a2n   a21 b2 · · · a2n   a21 a22 · · · b2 
A1 =  , A2 =  , ··· , An = 
     
.. .. .. .. .. .. . . .. .. .. .. .. 
 . . . .   . . . .   . . . . 
bn an2 · · · ann an1 bn · · · ann an1 an2 · · · bn

¿Por qué funciona?

Supongamos un sistema de ecuaciones lineales 2 × 2,

ax+by = e
cx+dy = f

lo escribimos de forma matricial,

1
    
a b x e
=
c d y f

ahora resolvemos el sistema de ecuaciones lineales 2 × 2 por regla de Cramer,


   
e b a e
det det
f d ed − f b c f a f − ce
x=  = ,y=  =
a b ad − cb a b ad − cb
det det
c d c d

luego, si resolvemos el mismo sistema por el método de gauss-jordan, se tiene que,


b e
1 ba ae
     
a b e 1 a a
c d f F 7→ 1 F +F c d f F 7→−cF +F 0 d − cb a f − ec
a F 7→ a
1 21 2 2 1 2 2 da−cb F2

!
ed− f b
1 ba e
 
a 1 0 ad−cb
a f −ce a f −ce
0 1 ad−cb F1 7→− ba F2 +F1
0 1 ad−cb

ed − f b a f − ce
en donde podemos ver claramente que x = ey= , que es el mismo resultado que obtenemos con la
ad − cb ad − cb
regla de Cramer. Del mismo modo funciona con matrices cuadradas más grandes.

Aplicaciones

La regla de Cramer como ya hemos visto antes se usa para resolver sistemas de ecuaciones lineales siempre que su
matriz asociada sea cuadrada y su determinante sea diferente de cero. Este método es muy eficiente para matrices 2 × 2
e incluso 3 × 3, pero comienza a complicarse con matrices más grandes por la cantidad de operaciones que hay que
llevar a cabo.
Para sistemas grandes no se usa en computación, sin embargo, si son matrices pequeñas es usual usarse en una ins-
trucción, múltiples datos o SIMD, que es una organización en donde una única unidad de control común despacha las
instrucciones a diferentes unidades de procesamiento. Todas estas reciben la misma instrucción, pero operan sobre di-
ferentes conjuntos de datos, es decir, la misma instrucción es ejecutada de manera sincronizada por todas las unidades
de procesamiento.

Ejemplo

Resolver el siguiente sistema de ecuaciones lineales por medio de la regla de Cramer.



 −x + 2y − 2z = 1
−3x + 5y − z = 2
−x + y + 9z = −1

Solución
     
−1 2 −2 1 2 −2 −1 1 −2
Con base en el problema planteado, decimos que A =  −3 5 −1 , A1 =  2 5 −1 , A2 =  −3 2 −1 
−1 1 9 −1 1 9 −1 −1 9
 
−1 2 1
y A3 =  −3 5 2 .
−1 1 −1
Así, buscamos el determinante de A, A1 , A2 y A3 .

2
 
−1 2 −2      
5 −1 −3 −1 −3 5
detA = det  −3 5 −1  = (−1) det − (2) det + (−2) det =
1 9 −1 9 −1 1
−1 1 9
−1 (45 + 1) − 2 (−27 − 1) − 2 (−3 + 5) = −44 + 52 − 4 = 6 6= 0

Luego, det (A) = 6


 
1 2 −2      
5 −1 2 −1 2 5
detA1 = det  2 5 −1  = (1) det − (2) det + (−2) det =
1 9 −1 9 −1 1
−1 1 9
1 (45 + 1) − 2 (18 − 1) − 2 (2 + 5) = 46 − 34 − 14 = −2

Luego, det (A1 ) = −2


 
−1 1 −2      
2 −1 −3 −1 −3 2
detA2 = det  −3 2 −1  = (−1) det − (1) det + (−2) det =
−1 9 −1 9 −1 −1
−1 −1 9
−1 (18 − 1) − 1 (−27 − 1) − 2 (3 + 2) = −17 + 28 − 10 = 1

Luego, det (A2 ) = 1


 
−1 2 1      
5 2 −3 2 −3 5
detA3 = det  −3 5 2  = (−1) det − (2) det + (1) det =
1 −1 −1 −1 −1 1
−1 1 −1
−1 (−5 − 2) − 2 (3 + 2) + 1 (−3 + 5) = 7 − 10 + 2 = −1

Luego, det (A3 ) = −1


Con estos datos procedemos a hallar las soluciones pertinentes.

det (A1 ) −2 1 det (A2 ) 1 det (A3 ) −1


x= = =− y= = z= =
det (A) 6 3 det (A) 6 det (A) 6

Ahora comprobamos si los resultados son correctos:


     
1 1 1 1 1 1
−x + 2y − 2z = − − +2 −2 − = + + =1
3 6 6 3 3 3
     
1 1 1 5 1
−3x + 5y − z = −3 − +5 − − = 1+ + = 2
3 6 6 6 6
     
1 1 1 1 1 3
−x + y + 9z = − − + +9 − = + − = −1
3 6 6 3 6 2

1 1 1
Con esto damos por terminado el problema, que fue resuelto por la regla de Cramer, en donde x = , y = y z = − .
3 6 6

Factorización QR

En muchas de las aplicaciones en diferentes ciencias, se presentan con frecuencia cálculos matriciales complejos. La
idea es encontrar procedimientos que los simplifiquen aun cuando estos sean realizados por métodos informáticos. Uno
de tales procedimientos está basado en la aplicación del proceso de Gram-Schmidt y es conocido como Factorización
QR [2].

3
Este procedimiento permite expresar cualquier matriz A, de tamaño m × n cuyas columnas sean linealmente indepen-
dientes, como el producto de una matriz Q de tamaño m × n que posee columnas ortonormales y de una matriz triangular
superior R de tamaño n × n invertible. Si A es de tamaño n × n, la matriz Q será ortogonal. Lo anterior ya indica de ante-
mano que este tipo de factorización no puede realizarse sobre cualquier matriz, solo aplica sobre matrices con columnas
linealmente independientes, de modo que para una matriz A de tamaño m× p sus vectores columna pertenecen al espacio
Rm , por lo tanto una condición para que dichos vectores sean linealmente independientes es que p ≤ m.

Demostración

Sea A = [a1 a2 a3 . . . an ] una matriz de tamaño m × n, donde ai es un vector que pertenece al espacio Rm y a1 , a2 , a3 . . . an
son vectores linealmente independientes que constituyen una base del espacio columna de A, de acuerdo al método de
ortogonalización de Gram-Schmidt, a partir del conjunto de vectores a1 , a2 , a3 . . . an puede obtenerse una base ortogonal
u1 , u2 , u3 . . . un y una base ortonormal w1 , w2 , w3 . . . wn , tal que,
ai · u1 ai · u2 ai · ui−1
ui = ai − u1 − u2 − · · · − ui−1
u1 · u1 u2 · u2 ui−1 · ui−1
y,

ui
wi = (1)
kui k
luego, de acuerdo al método,

u1 = a1 (2)

u2 + k1 u1 = a2 (3)

donde,
a2 · u1
k1 =
u1 · u1

del mismo modo hasta,

un + kn−1 · un−1 + · · · + k2 · u2 + k1 · u1 = an (4)

donde,
an · ui
ki = .
ui · ui

De (1) puede encontrarse que

kui k wi = ui (5)

Dado que kui k 6= 0 por definición de base ortogonal.


Entonces, al reemplazar (5) respectivamente en las ecuaciones (2),(3) y (4), se tiene que,

ku1 k w1 = a1

ku2 k w2 + k1 ku1 k w1 = a2

4
y del mismo modo hasta,

kun k wn + kn−1 kun−1 k wn−1 + · · · + k2 ku2 k w2 + +k1 ku1 k w1 = an

donde kn−1 kun−1 k es un escalar, y wi un vector ortonormal.


Luego,
 
ku1 k k1 ku1 k · · · ··· k1 ku1 k

 0 ku2 k · · · ··· k2 ku2 k 

 .. .. .. .. 
[a1 a2 a3 . . . an ] = [w1 w2 w3 . . . wn ] · 
 . 0 . . . 

 .. 
 0 0 ··· . kn−1 kun−1 k 
0 0 ··· ··· kun k
 
ku1 k k1 ku1 k · · · ··· k1 ku1 k

 0 ku2 k · · · ··· k2 ku2 k


 .. .. .. .. 
Si A = [a1 a2 a3 . . . an ] , Q = [w1 w2 w3 . . . wn ] y R = 
 . 0 . . . ,

 .. 
0 0  ··· . kn−1 kun−1 k 
0 0 ··· ··· kun k
entonces, A = QR, donde Q es de tamaño m × n y R es de tamaño n × n.

Descripción del método

1) Verificar que los vectores columna de la matriz A son linealmente independientes. 2) Aplicar el método de ortogona-
lización de Gram-Schmidt para obtener una base ortogonal del conjunto de vectores columna de A. 3) Obtener la base
ortonormal del conjunto de vectores columna de A a partir de la base ortogonal del paso 2. 4) Expresar cada uno de los
vectores columna de A como una combinación lineal de los vectores de la base ortogonal. 5) Reemplazar cada uno de
los vectores de la base ortogonal con el respectivo vector de la base ortonormal. 6) En este punto, se tiene cada uno de
los vectores columna de A en términos de la base ortonormal, por lo tanto puede expresarse cada vector columna de A
como el producto de una fila de la matriz Q y una columna de la matriz R. 7) Reuniendo cada una de las filas y columnas
del paso anterior, se puede formar la matriz Q y la matriz R [3].

Ejemplo
 
1 2 −1
 1 −1 2   1
A2 A3 .

 1 −1 2  = A
Encuentre la descomposición QR para la matriz A =  

−1 1 1

Solución

Aplicando el proceso de ortogonalización de Gram-Schmidt se obtiene,

5
 
1
 1 
v1 =A1 = 
 1 

−1
    

2 2 1 9
A · v 1 −1 1
+  1
 1  −3 
v2 =A2 −
  
v1 =  =  
hv1 · v1 i  −1  4  1  4  −3 
1 −1 3
       

3
2 2 1 9 0
A · v1 A · v2 −1  1 1  2 −3   1
v3 =A3 −
   
v1 − v2 = 
 −1
− 
 2  1 + 3 
  = .
hv1 · v1 i hv2 · v2 i −3   1 
1 −1 3 2
De aquí se obtiene que,

A1 =v1
1
A2 = − v1 + v2
4
3 1 2
A = v1 − v2 + v3
2 3
Siguiendo ahora los delineamientos de la demostración del teorema anterios, obtenemos,

1 − 14 1
 
2
A = A1 A2 3
= [v1 v2 v3 ]  0 1 − 32 
 
A
0 0 1
 
1 9 0  1 1

 1 −3 1  1 − 4 2
2 
= 1 −3 1  0 1 − 3

0 0 1
−1 3 2
=Q0 R0 : Descomposición no normalizada.
 √ √ 
En este caso, la matriz D está dada por D = diag 2, 23 3, 6 . Entonces se puede escribir,

A = A1 A2 A3 =Q0 D−1 DR0


 
 1 3 √

2 2 3
0
−√12
 
 1
− 2√1 3 √1  2 1

2 6 3 3
=  0 −√ 3 
 
1
 2 − 2√1 3 √1
6
 2
1 1 0 0 6
√ √2
2 2 3 6
=QR : Descomposición normalizada.

Aplicaciones

Relación con el determinante

Es posible utilizar la descomposición QR para encontrar el valor absoluto del determinante de una matriz. Suponiendo
que una matriz se descompone según A = QR,

6
det (A) = det (Q) · det (R)

Puesto que Q es unitaria, |det (Q)| = 1. Por lo tanto,




|det (A) | = |det (Q) | = ∏rii

i

donde rii son los valores de la diagonal de R.

Cálculo de vectores y valores propios de una matriz

La descomposición QR es la base del algoritmo QR utilizado para el cálculo de los vectores y valores propios de una
matriz.
Esto es, usa la oportunidad de representar cualquier matriz regular H en forma de producto de H = QR de una matriz
ortogonal Q por una matriz triangular superior R. La idea básica es usar dicha descomposición para reescribir la matriz
como el producto de una matriz ortogonal y una matriz triangular superior. Si se multiplica a la inversa, la matriz
resultante sigue teniendo los mismos valores propios e iterando se puede llegar a una matriz que los contenga en la
diagonal.
Formalmente, sea A una matriz real de la que queremos calcular los valores propios, se asigna A0 := A. En adelante se
calculan las siguientes iteraciones de forma:

Ak = Qk Rk , donde Qk es una matriz ortogonal y Rk es una matriz triangular superior.

Ak+1 = Rk Qk = QTk Qk Rk Qk = QTk Ak Qk = Q−1


k Ak Qk .

Luego, todas las Ak son matrices semejantes y por tanto tienen los mismos valores propios.

Referencias
[1] S. Grossman, Algebra Lineal, 5th Edition, 2005.

[2] Kolman, David Hill, Capitulo 7: Aplicaciones de Espacios Vectoriales, in: Algebra Lineal, 8th Edition, pp. 375–377.

[3] G. Strang, Capitulo 3: Proyecciones ortogonales y minimos cuadrados, in: Algebra Lineal, pp. 141–147.