Uploaded by matiasgangui

ALC-apunte

advertisement
Notas de Álgebra Lineal Computacional
Gabriel Acosta y Santiago Laplagne
Índice general
Preliminares
Capítulo 1.
7
Nociones básicas de álgebra lineal
9
1.
Vectores y matrices
2.
Sistemas lineales de ecuaciones
3.
Espacios vectoriales
18
4.
Operaciones con matrices
29
5.
Cambio de base
39
6.
Transformaciones lineales
42
7.
Espacios anes
45
Capítulo 2.
9
12
Números de Máquina y Número de Condición
49
1.
Cuestiones previas
49
2.
Bases generales*
50
3.
Números de Máquina
51
4.
Condición y Estabilidad
55
Capítulo 3.
Normas y Producto Interno
59
Kn
1.
Normas en
2.
Producto Interno
62
3.
Normas de matrices
66
4.
Condicion de Matrices
70
5.
Proyecciones y Proyectores
73
Capítulo 4.
59
Métodos Directos Para Sistemas Lineales
1.
Sistemas y Factorización de Matrices
2.
Descomposición
3.
Descomposición
4.
Descomposición
5.
Ortogonalidad en Métodos Directos
Capítulo 5.
LU = A
LU = P A (pivoteo
LDL∗ : Cholesky
79
79
79
parcial)
84
87
89
Diagonalización
91
1.
Motivación: Google Page Rank
91
2.
Autovalores y autovectores
92
3.
Diagonalización
4.
Descomposición de Schur
5.
Autovalores y autovectores de matrices especiales
101
6.
El método de la potencia
104
7.
Norma-2 de matrices
109
8.
El algoritmo QR
113
94
100
3
4
Índice general
9.
Teorema de los círculos de Gershgorin
115
10.
Procesos de Markov
116
11.
Matrices de Markov
117
Capítulo 6.
Métodos Iterativos
123
1.
Un ejemplo: distribución de temperatura
123
2.
Métodos Iterativos
126
3.
Algunos Métodos Clásicos
128
4.
Método de gradiente (o del descenso mas rápido)
133
5.
Gradiente Conjugado
135
6.
GC y aproximación polinomial
137
Capítulo 7.
Descomposición en valores singulares
141
1.
Motivación: número de condición y autovalores
2.
Introducción
141
3.
Construcción
143
4.
Valores singulares y norma-2
145
5.
Distancia a matrices de menor rango
146
6.
Aplicaciones
147
Capítulo 8.
1.
Cuadrados Mínimos
Interpolación Polinomial
Bibliografía
141
153
154
163
Preliminares
En estas notas se presentan los temas de la materia Álgebra Lineal Computacional en la
Facultad de Ciencias Exactas y Naturales de la UBA.
bla bla bla
Acerca de la notación: (esto es para amalgamar con lo demás)
Usaremos letra en
negrita para representar magnitudes vectoriales o matriciales, y letra
común para variables escalares. Para distinguir vectores de matrices, reservamos las letras
mayúsculas
Los vectores
sentido
Con
|v|
Av ,
minúsculas
para las segundas y
v ∈ Rn , Cn
para los primeros.
se identicarán con matrices
para toda matriz
A ∈ Rm×n , Cm×n
columna
de
representamos el vector con las mismas componentes de
Análogamente denimos
n × 1.
v
Por ende tendrá
con valor absoluto.
|A|.
v1 ≤ v2 (A1 ≤ A2 ) debe
<, >, ≥).
vector (matriz) v (A) y una constante c, la notación v ≤ c (A ≤ c), indica
componentes de v (A) son menores o iguales a c (lo mismo para <, >, ≥).
Dados dos vectores (matrices)
v1 , v2 (A1 , A2 )
la notación
interpretarse componente a componente (lo mismo para
Dados un
que todas
Utilizamos la notación de los dos puntos :, compatible con numerosos lenguajes de
programación, para identicar rangos de índices en vectores y matrices: por ejemplo
v(2 : 5)
indica los elementos
2
al
5
incluidos del vector
v
1
. La misma interpretación vale
para matrices, por ejemplo, resulta válido para nosotros escribir
1
Estamos manejando índices al estilo Matlab, es decir que comienzan en
el primer índice del arreglo es
0.
1,
A(2 : 10, 7 : 25).
en otros lenguajes como Python
Preferimos usar en el texto la primera porque es mas natural con la notación
matemática usual.
7
Capítulo 1
Nociones básicas de álgebra lineal
1. Vectores y matrices
1.1. Vectores.
n ∈ N, denimos un vector de n coordenadas como una sucesión de
v = (v1 , . . . , vn ). Denotamos Rn al conjunto de todos los vectores
n
reales de n coordenadas y C al conjunto de todos los vectores complejos de n coordenadas. Ya
que la mayoría de los resultados que veremos valen tanto en R como en C, los enunciamos usando
la letra K. En los casos en que debamos restringirnos a R o C lo señalaremos explícitamente.
n
Para
números reales o complejos
Solo haremos uso de deniciones y propiedades elementales de los complejos, antes de continuar
recordamos algunas de ellas que aparecerán más adelante
1.
2.
3.
4.
i2 = −1.
Si z = a + ib el conjugado se dene como z = a − ib.
∀z, w ∈ C, zw = z w.
√
El módulo de z , se dene como |z| =
a2 + b2 y representa
la distancia del complejo
z
al origen.
5.
6.
7.
8.
∀z, w ∈ C, |zw| = |z||w|
|z|2 = zz , en particular se
observa que si
z ̸= 0, z |z|z 2 = 1.
Llamamos
z −1 =
z
.
|z|2
eiθ = cos(θ) + i sen(θ), en particular |eiθ | = 1. Por otro lado, usando
iθ
trigonometría elemental, se ve que si |w| = 1, existe θ ∈ R tal que w = e .
z
Ya que si z ̸= 0 se tiene que
|z| = 1, del ítem previo se observa que si z ̸= 0, puede
∀θ ∈ R,
se dene
escribirse
z = |z|eiθ
con
θ ∈ R.
9. Todo polinomio a coecientes en
con su multiplicidad- en
C
C
de grado
n≥1
tiene exactamente
n
raíces -contadas
(resultado que suele llamarse Teorema Fundamental del Ál-
gebra).
Ejemplo 1.1.
R2
R3
es el plano coordenado.
es el espacio de 3 dimensiones.
Ejemplo 1.2.
v = (1, 2) ∈ R2 .
u = (2, −1, π, 3/2) ∈ R4 .
w = (1 − 2i, 3e3i ) ∈ C2 .
En
Python
denimos vectores con el comando
import numpy as np
9
array
(arreglo) del paquete
numpy.
10
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
v1 = np.array([10, 5, -7, 1])
print(v1)
v2 = np.array([5, 0, 3/2, 2])
print(v2)
%% v1 =
%% v2 =
[10
[5.
5 -7 1]
0. 1.5 2. ]
1.2. Matrices.
m
las y
en
m
n
Denotamos
Km×n
las de
n

1 2 3
∈ R2×3
4 5 6
2.

1
7
  ∈ R4×1
0.6
−1
Es común considerar a los vectores
  en
(1, 2, 3)
En
lo pensamos como matriz
Python
m×n
coordenadas agrupadas
coordenadas.
Ejemplo 1.3.
1.
al espacio de matrices de números reales o complejos de
columnas, que podemos considerar como un vector de
1
2
3
Kn

3.

1
5+i
7 − 2i
0  ∈ C3×2
i
3
como matrices columna. Es decir, al vector
cuando trabajamos con matrices.
denimos matrices usando el mismo comando
tores, pero ingresando cada la como un vector, es decir para
array
Python
que utilizamos para vecuna matriz es un arreglo
de dos dimensiones, que se guarda como un arreglo de arreglos de dimensión 1.
A = np.array([[1,2],[3,4]]) # Matriz de 2 x 2
print("A = \n", A)
B = np.array([[1,2,3,4],[7,1,2,-1]]) # Matriz de 4 x 2
print("B = \n", B)
C = np.array([[1], [7], [1/3]]) # Matriz columna de 1 x 3
print("C = \n", C)
%% A =
%% [[1 2]
%% [3 4]]
%% B =
%% [[ 1 2 3 4]
%% [ 7 1 2 -1]]
%% C =
%% [[1.
]
%% [7.
]
v =
1. VECTORES Y MATRICES
%%
11
[0.33333333]]
Podemos acceder a las casillas de un vector o matriz usando los índices de las casillas, teniendo
en cuenta que en
Python
los índices se numeran siempre empezando en 0.
v1 = np.array([1,2,5,10])
print("v1[2] = ", v1[2])
A = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print("A[2,3] = ", A[2,3])
%% v1[2] = 5
%% A[2,3] = 12
1.3. Suma y producto por escalar.
Tanto en vectores como en matrices podemos rea-
lizar las siguientes operaciones, que como veremos más adelante corresponden a operaciones de
espacio vectorial:
Suma de vectores o matrices del mismo tamaño coordenada a coordenada. Si
(v1 , v2 , . . . , vn )
y
v =
u = (u1 , u2 , . . . , un ),
v + u = (v1 + u1 , v2 + u2 , . . . , vn + un ).
Producto de vectores o matrices por un escalar. Si
a∈R
o
C
y
v = (v1 , v2 , . . . , vn ),
av = (av1 , av2 , . . . , avn ).
En
Python
realizamos estas operaciones con los símbolos usuales
import numpy as np
v1 = np.array([10, 5, -7, 1])
v2 = np.array([5, 0, 7, 2])
print("v1 + v2 = ", v1 + v2)
## [15 5 0 3]
A1 = np.array([[1,2],[3,4]])
print("A1 = \n", A1)
A2 = np.array([[2,7],[1,0]])
print("A2 = \n", A2)
A3 = np.array([[2,7,1,0]])
print("A3 = \n", A3)
print("A1 + A2 = \n", A1 + A2) # Matriz de 2 x 2
# No podemos sumar matrices de distinto tamaño
+
y
∗.
12
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
#print("A1 + A3 = \n", A1 + A3)
##
##
##
##
##
##
##
##
##
##
##
##
A1 =
[[1 2]
[3 4]]
A2 =
[[2 7]
[1 0]]
A3 =
[2 7 1 0]
A1 + A2 =
[[3 9]
[4 4]]
[15 5 0 3]
2. Sistemas lineales de ecuaciones
2.1. Resolución de sistemas de ecuaciones por triangulación (eliminación gaussiana). La eliminación gaussiana es un método muy eciente para resolver sistemas de ecuaciones
lineales en forma directa (es decir, sin utilizar métodos iterativos que aproximan la solución).
A modo de ejemplo, resolvemos el siguiente sistema de ecuaciones.


 x + 5y + 5z = 2
2x + 2y − 3z = −1

−x − 9y + 2z = 9.
A partir del sistema, construimos la
matriz ampliada de coecientes y términos indepen-
dientes:

2
1
5
5
 2
2 −3 −1  .
−1 −9
2
9

Triangulamos la matriz realizando operaciones de las. Las operaciones permitidas (que no
afectan las soluciones del sistema) son:
sumarle o restarle a una la un múltiplo de otra la,
intercambiar dos las entre si.
multiplicar una la por un escalar distinto de 0.
El algoritmo de eliminación gaussiana consiste en triangular o escalonar la matriz obteniendo
0's abajo de los elementos de la diagonal, o más generalmente, produciendo que en cada la la
cantidad de 0's iniciales sea mayor que en la la anterior.
Realizamos las siguientes operaciones:
2. SISTEMAS LINEALES DE ECUACIONES



1
5
5
2
1
f2 −2f1 →f2
 2
2 −3 −1  −−−−−−−→  0
−1 −9
2
9
−1



1
5
5
2
f3 − 12 f2 →f3
f3 +f1 →f3
−−−−−−→  0 −8 −13 −5  −−−−−−−→ 
0 −4
7 11
x, y, z
x = 2. La
Ahora podemos obtener los valores de
mos
z = 1,
luego
y = −1
y nalmente
13

5
5
2
−8 −13 −5  →
−9
2
9

1
5
5
2
0 −8 −13 −5 
27
27
0
0
2
2
por "sustitución hacia atrás". Primero calculasegunda ecuación queda
−8y − 13 · (1) = −5
entonces,
y = −1.
Ejemplo 1.4. Resolvemos escalonando el sistema


 x1 + 2x2 − x3 = −1
2x1 + 4x2 + 3x3 = 4


3x3 = 6.
1. Construimos la matriz ampliada


1 2 −1 −1
4 .
à =  2 4 3
0 0 3
6
2. Para conseguir 0's abajo de la casilla
Obtenemos
(1, 1),
realizamos la operación
f2 − 2f1 → f2 .


1 2 −1 −1
6 .
Ã1 =  0 0 3
6
0 0 3
3. Como deseamos tener en cada la más ceros que en la anterior, debemos ahora obtener
un 0 abajo de la casilla
la matriz
(2, 3). Para eso realizamos la operación f3 − f2 → f3 . Obtenemos


1 2 −1 −1
6 ,
Ã2 =  0 0 3
0 0 0
0
que es una matriz escalonada, por lo que nalizamos el proceso.
Observar que si bien la matriz
Ã1
tiene 0's abajo de la diagonal, no es un matriz escalonada
porque las las 2 y 3 tienen la misma cantidad de 0's iniciales.
Ahora podemos resolver el sistema despejando las ecuaciones que obtuvimos:
de donde despejamos
x3 = 2
y
x1 + 2x2 − x3 = −1
3x3 = 6,
x1 = −1 − 2x2 + x3 = 1 − 2x2 .
sistema es
S = {(1 − 2x2 , x2 , 2) : x2 ∈ R}.
El conjunto de soluciones del
14
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
En los paquetes comunes de
Python
no existe un comando para realizar eliminación gaus-
siana (aunque sí existen comandos para resolver sistemas lineales ecientemente). Más adelante, cuando avancemos con las técnicas de programación y desarrollo de algoritmos, podremos programar nuestro propio programa de eliminación gaussiana. Por el momento, utilizaremos el siguiente programa, extraido de la página
https://math.stackexchange.com/
questions/3073083/how-to-reduce-matrix-into-row-echelon-form-in-python/
3073117.
El nombre de la función es
row_echelon,
que es el nombre en inglés para una matriz
escalonada por las. Para utilizar esta función, pueden copiar y pegar el código en una celda y
ejecutarlo, o grabarlo en un archivo
row_echelon.py y cargarlo mediante el comando import
row_echelon.
def row_echelon(M):
""" Return Row Echelon Form of matrix A """
A = M.astype(float)
# if matrix A has no columns or rows,
# it is already in REF, so we return itself
r, c = A.shape
if r == 0 or c == 0:
return A
# we search for non-zero element in the first column
for i in range(len(A)):
if A[i,0] != 0:
break
else:
# if all elements in the first column are zero,
# we perform REF on matrix from second column
B = row_echelon(A[:,1:])
# and then add the first zero-column back
return np.hstack([A[:,:1], B])
# if non-zero element happens not in the first row,
# we switch rows
if i > 0:
ith_row = A[i].copy()
A[i] = A[0]
A[0] = ith_row
# we
A[0]
# we
#(it
divide first row by first element in it
= A[0] / A[0,0]
subtract all subsequent rows with first row
has 1 now as first element)
2. SISTEMAS LINEALES DE ECUACIONES
15
# multiplied by the corresponding element in the first column
A[1:] -= A[0] * A[1:,0:1]
# we perform REF on matrix from second row, from second column
B = row_echelon(A[1:,1:])
# we add first row and first (zero) column, and return
return np.vstack([A[:1], np.hstack([A[1:,:1], B]) ])
Probamos el programa en el siguiente ejemplo.
A = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(row_echelon(A))
[[1. 2. 3. 4.]
[0. 1. 2. 3.]
[0. 0. 0. 0.]]
Si queremos armar la matriz ampliada correspondiente a un sistema de ecuaciones y tenemos
A de coecientes y el vector b de términos independientes,
numpy para pegar a A el vector b como última columna.
la matriz
c_
de
Ejemplo 1.5. Resolvemos en
podemos usar el comando
Python el sistema


 x1 + 5x2 + 5x3 = −2
2x1 + 2x2 − 3x3 = −1

−x − 9x + 2x = 9.
1
2
3
A = np.array([[1,5,5],[2,2,-3],[-1,-9,2]])
b = np.array([2, -1, 9])
Ab = np.c_[A, b] # Las matrices o vectores van entre corchetes.
print("Ab = \n", Ab)
print("Matriz escalonada: \n", row_echelon(Ab))
%% Ab =
%% [[ 1 5 5 2]
%% [ 2 2 -3 -1]
%% [-1 -9 2 9]]
%% Matriz escalonada:
%% [[1.
5.
5.
2.
]
%% [0.
1.
1.625 0.625]
%% [0.
0.
1.
1.
]]
16
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
Despejando de abajo hacia arriba, obtenemos
x3 = 1
x2 = 0.625 − 1.625x3 = −1
x1 = 2 − 5x2 − 5x3 = 2.
2.2. Clasicación de sistemas de ecuaciones.
Estudiamos ahora cuántas soluciones
puede tener un sistema de ecuaciones a partir de la forma escalonada de la matriz ampliada.
Ejemplo 1.6. Resolvemos el siguiente sistema de ecuaciones:


 5x1 + 3x2 = 11
15x1 + 9x2 = 33

20x + 12x = 44
1
2
Construimos la matriz ampliada


5 3 11
 15 9 33 
20 12 44
y escalonamos usando
Python.
A = np.array([[5,3,11],[15,9,33],[20,12,44]])
print(row_echelon(A))
%% [[1.
%% [0.
%% [0.
0.6 2.2]
0. 0. ]
0. 0. ]]
Vemos que se eliminaron las últimas dos ecuaciones, y nos queda solo una ecuación:
x1 + 0.6x2 = 2.2
de donde podemos despejar
x1 = 2.2 − 0.6x2 .
El sistema tiene innitas soluciones,
S = {(2.2 − 0.6x2 , x2 ) : x2 ∈ R}.
Ejemplo 1.7. Consideremos ahora el mismo sistema inicial, modicando un valor en


 5x1 + 3x2 = 11
15x1 + 9x2 = 33

20x + 12x = 55
1
2
Escalonamos la matriz ampliada:
A = np.array([[5,3,11],[15,9,33],[20,12,55]])
print(row_echelon(A))
b:
2. SISTEMAS LINEALES DE ECUACIONES
%% [[1.
%% [0.
%% [0.
17
0.6 2.2]
0. 1. ]
0. 0. ]]
En la segunda ecuación, obtuvimos
0x1 + 0x2 = 1.
½Absurdo! El sistema no tiene solución.
Si al escalonar la matriz ampliada, llegamos a una ecuación
0x1 + · · · + 0xn = a ̸= 0
el sistema no tiene solución. Por el contrario, si en todas las las que se anulas los coecientes
de las variables, obtenemos también
0
en el término independiente, el sistema admite solución
(podemos ir resolviendo hacia atrás).
Obtenemos los siguientes casos para un sistema de
m
ecuaciones y
n
incógnitas.
Sistema incompatible. El sistema no tiene solución. Al escalonar obtuvimos una ecuación
0x1 + · · · + 0xn = a ̸= 0.
Ejemplo:


5 3
2 11
 0 9 −1 10 
0 0
0 4
Sistema compatible determinado.
El sistema tiene solución única. Al escalonar la
matriz ampliada, obtenemos exactamente
n
ecuaciones no nulas, y podemos obtener la
solución despejando las variables.






5
0
0
0
0

3
2 11
9 −1 10 

0
1 2 

0
0 0 
0
0 0
Sistema compatible indeterminado. El sistema tiene innitas soluciones. Al escalonar la matriz ampliada obtenemos menos de
n las no nulas en las primeras n columnas,
y el resto de las las son nulas en todas las columnas. Ejemplo:

5
 0

 0
0

3
2 11
9 −1 10 

0
0 0 
0
0 0
Ejercicio 1.1. Escalonar las siguientes matrices y clasicar el sistema en (a) incompatible, (b)
compatible determinado, (c) compatible indeterminado.
1.


 3y − 2z + 3w = 9
2x + y + w = 5

x − y + z − w = −2
2.


x − 2y = 2
2x + y = 1

x + 3y = −1
3.


2x + y − z = 3
x−y+z =2

5x + y − z = −5
18
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
3. Espacios vectoriales
vectores, que pueden ser sumados
escalares ). Llamamos V al conjunto
Un espacio vectorial es un conjunto de elementos, llamados
entre sí y multiplicados (
de vectores y
K
El conjunto
escalados )
por números (llamados
al conjunto de números.
K debe ser un cuerpo. Esto es, K posee una suma + y un producto · que satisfacen
un conjunto de axiomas que podemos resumir en la siguiente tabla.
suma
asociatividad
conmutatividad
propiedad distributiva
elemento identidad
elemento inverso
En esta materia trabajaremos con
1
producto
a + (b + c) = (a + b) + c (a · b) · c = a · (b · c)
a+b=b+a
a·b=b·a
a · (b + c) = a · b + a · c
0+a=a=a+0
1·a=a=a·1
a + (−a) = 0
a · (a−1 ) = 1
K = R,
el cuerpo de los números reales o
K=C
el cuerpo
de los números complejos .
Ejemplo 1.8. El conjunto
Z
de los números enteros no es un cuerpo, porque excepto
1
y
−1,
los demás números enteros no poseen un inverso entero para la multiplicación. Por ejemplo, el
inverso de
2
es
1/2
que no es un número entero.
Formalmente, un espacio vectorial sobre un cuerpo
es un conjunto
V
K (también llamado K - espacio vectorial)
y dos operaciones, que satisfacen ciertos axiomas.
Las operaciones denidas en
Suma de vectores.
V
son:
+ : V ×V → V,
a cualquier par
v, w
de vectores le asigna un vector
v+w ∈V.
Producto por escalar.
vector
av ∈ V
· : K×V → V,
a un escalar
a
y un vector
v ∈V
le asigna un
(no confundir con el producto escalar que dados dos vectores devuelve un
escalar que veremos más adelante).
Los axiomas de espacio vectorial son
1.
2.
3.
Asociatividad de la suma. u + (v + w) = (u + v) + w
Conmutatividad de la suma. u + v = v + u
Elemento neutro de la suma. Existe un elemento 0 ∈ V
tal que
v+0 = v
para todo
v ∈V.
4.
Inverso para la suma. Para todo v ∈ V , existe un elemento −v ∈ V , llamado inverso
aditivo de
5.
6.
1
tal que
v + (−v) = 0.
Compatibilidad de la multiplicación por escalar con la la multiplicación del
cuerpo. a(bv) = (ab)v.
Elemento neutro de la multiplicación por escalar. 1v = v, donde 1 es el neutro
de
7.
v,
R.
Propiedad distributiva de la multiplicación por escalar respecto de la suma
de vectores. a(u + v) = au + av.
Existen otros ejemplos de cuerpos como los racionales
Q
o los enteros módulo un primo
p, Zp .
3. ESPACIOS VECTORIALES
8.
19
Propiedad distributiva de la multiplicación por escalar respecto de la suma
de escalares. (a + b)(v) = av + bv.
Ejemplo 1.9. Los siguientes conjuntos son espacios vectoriales deniendo la suma y el producto
por escalar de modo "tradicional".
1.
2.
3.
4.
5.
6.
Kn , es un K espacio vectorial.
Km×n , el conjunto de matrices, es un K espacio vectorial.
K[x] el conjunto de todos los polinomios en una variable a coecientes reales o complejos.
R[x]d , el conjunto de polinomios en una variable de grado menor o igual que d.
(a1 , a2 , a3 , . . . ), el conjunto de sucesiones innitas de números reales o complejos.
K es un K espacio vectorial. Pero note que C también es un R espacio vectorial.
Los siguientes conjuntos
no
son espacios vectoriales.
1. El conjunto de matrices de cualquier tamaño.
2. Los polinomios de grado exactamente
d.
Aplicación 1.1. Veamos un ejercicio sencillo de aplicación de espacios vectoriales. Se quiere
predecir el consumo en tarjeta de crédito que tendrán los clientes de un banco mediante un
modelo lineal. Para eso, se consideran las siguientes
variables explicativas
de los clientes:
1. Sueldo mensual
2. Impuesto a las ganancias pagado el año anterior.
3. Cantidad de integrantes del grupo familiar
4. Puntaje otorgado a la serie "La Casa de Papel"(1 a 5 estrellas)
5. Es fumador (sí / no)
6. Marca de Celular (Samsung / Huawei / Iphone / Otro)
Se quiere denir un espacio vectorial
V.
V
donde la información de cada cliente sea un vector de
¾Qué espacio vectorial utilizaría para este modelo? (Se busca que dos personas con vectores
similares tengan comportamiento similar.)
Observamos que los cuatro primeros datos son datos numéricos y podemos representar cada
valor con un número real. En las preguntas 3 y 4, nos gustaría utilizar números enteros para
representar los valores, pero ya vimos que el conjunto de números enteros no es un cuerpo y por
lo tanto no podemos denir un espacio vectorial sobre los enteros.
La quinta pregunta podemos representarla con valores 0 y 1. En este caso al conjunto
{0, 1}
podemos asignarle estructura de cuerpo, pero dado que queremos un único espacio vectorial para
representar todas las variables, debemos representar estos valores también como números reales.
Finalmente, para el último dado, podríamos asignarle un valor numérico a cada respuesta: 1
= Samsung, 2 = Huawei, 3 = Iphone, 4 = Otro, sin embargo esto no cumpliría lo que buscamos
en nuestro modelo que vectores similares tengan comportamiento similar. Es decir, si usamos
esta representación estaríamos indicando que la respuesta Otro es muy similar a Iphone y no tan
similar a Samsung, y en principio no hay razón para esa suposición. Por lo tanto es común en
este caso usar las llamadas variables indicadoras, que toman valores 0-1. Utilizamos 4 variables
0-1 que valen 1 en caso de que la respuesta corresponda a esa marca.
¾Qué vector
v∈V
asignaría al cliente con las siguientes características?
1. Sueldo mensual: $80.000
20
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
2. Impuesto a las ganancias pagado el año anterior: $100.000
3. Cantidad de integrantes del grupo familiar: 4
4. Puntaje otorgado a la serie "La Casa de Papel"(1 a 5 estrellas): 4 estrellas
5. Es fumador (sí / no): sí
6. Marca de Celular (Samsung / Huawei / Iphone / Otro): Huawei
En base a lo que vimos, asignamos a estas respuestas el vector
v = (80000, 100000, 4, 4, 1, 0, 1, 0, 0).
Esta asignación que hicimos es muy común cuando construimos modelos lineales. Vemos que la
estructura de espacio vectorial es la que nos dice cómo construir el modelo.
3.1. Subespacios vectoriales.
V
se llama subespacio de
1.
2.
3.
Dado
V
un
K
espacio vectorial, un subconjunto
U ⊂V
si verica
0∈U
∀u, v ∈ U u + v ∈ U
∀u ∈ U , ∀α ∈ K αu ∈ U .
Notar que
U
es a la vez un espacio vectorial.
Ejemplo 1.10. Algunos ejemplos de subespacios vectoriales son
1. El subconjunto de vectores de
5
vectorial de R .
R5
tales que la primera coordenada es
0
es un subespacio
3 × 3 es un subespacio vectorial de R3×3 .
n×n .
El conjunto de matrices simétricas de n × n es un subespacio vectorial de R
5
El subconjunto de vectores R tales que la primera coordenada es 1 no es un subespacio
5
vectorial de R .
El conjunto de todos los polinomios en R[X] que se anulan en 1.
2. El conjunto de matrices diagonales de
3.
4.
5.
3.2. Conjuntos de generadores y bases.
3.2.1. Vectores linealmente independientes. Dado un conjunto {v1 , . . . , vm } de vectores en
n
R , decimos que es un conjunto de vectores linealmente independientes si la única elección de
coecientes para los cuales
m
X
ai vi = 0
i=1
es
ai = 0
para todo
1 ≤ i ≤ m.
Ejemplo 1.11.
v1 = (1, 0, 0), v2 = (0, 1, 0) y v3 = (0, 0, 1) son linealmente independientes.
v1 = (1, 0, 1), v2 = (0, 1, 2) y v3 = (1, 2, 5) son linealmente dependientes,
v3 = v1 + 2v2 . O equivalentemente, v1 + 2v2 − v3 = 0.
Los vectores
Los vectores
porque
3.2.2. Espacio vectorial generado por vectores.
de un espacio vectorial
V,
Dado un conjunto de vectores
el conjunto de todas las combinaciones lineales de estos vectores
⟨v1 , . . . , vm ⟩ = {a1 v1 + · · · + am vm : ai ∈ R, i = 1, . . . , m}
es un subespacio
U
de
V
{v1 , . . . , vm }
llamado el espacio generado por
{v1 , . . . , vm }.
3. ESPACIOS VECTORIALES
{v1 , . . . , vm }
Proposición 1.1. Si los vectores
U = ⟨v1 , . . . , vm ⟩
{vi : i = 1, . . . , m}.
mento de
21
son linealmente independientes, cualquier ele-
se escribe de forma única como combinación lineal de los vectores
v
Demostración. Supongamos por el absurdo que
v = a1 v1 + · · · + am vm = b1 v1 + · · · + bm vm ,
puede escribirse de dos formas distintas
entonces restando obtenemos
0 = (a1 − b1 )v1 + · · · + (am − bm )vm ,
(a1 , . . . , am ) ̸= (b1 , . . . , bm )),
{v1 , . . . , vm }.
donde los coecientes no son todos 0 (porque
independencia lineal de los vectores
B = {v1 , . . . , vm } ⊂ V es
U = ⟨v1 , . . . , vm ⟩ ⊂ U .
Definición 1.1. Si
que
B
es una
base
y esto contradice la
□
un conjunto linealmente independiente, decimos
de
V
A continuación veremos que si un espacio vectorial
de elementos, cualquier otra base de
V
tienen una base con una cantidad nita
tiene la misma cantidad de elementos.
Comenzamos con el siguiente lema.
Proposición 1.2 (Lema de intercambio). Si
1≤i≤m
base de V .
entonces existe
siendo una
B = {v1 , . . . , vm } es un base de V y w ∈ V ,
B a vi por w, el conjunto resultante sigue
tal que reemplazando en
Demostración. Como
w∈V
y
B
es una base, existen
a1 , . . . , am
en
K
tales que
w = a1 v1 + · · · + am vm ,
y existe algún
1≤k≤m
tal que
ak ̸= 0.
Por lo tanto,

vk =
y el conjunto
{v1 , . . . , w, . . . , vm }

1 
w−
ak
X
ai vi  ,
i̸=k
es un sistema de generadores de
V.
Para ver que forman una base, veamos que son linealmente independientes. Si existe una
combinación no nula
b1 v1 + · · · + bk w + · · · + bm vm = 0,
analizamos dos casos:
Si
bk = 0, encontramos una relación de dependencia lineal en B , lo cual es absurdo porque
B
era una base.
Si
bk ̸= 0,
entonces despejando
w
obtenemos una escritura de
w
en la base
B
distinta a
la anterior, lo cual también es absurdo.
Concluimos que
{v1 , . . . , w, . . . , vm }
V.
es un conjunto linealmente independiente y genera
por lo tanto es una base de
V,
□
Ahora podemos probar el siguiente resultado.
Proposición 1.3. Dado un espacio vectorial
elementos, y sea
B̃
otra base de
V.
Luego
B̃
B = {v1 , . . . , vs } una
exactamente s elementos.
V,
tiene
sea
base de
V
de
s
22
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
Demostración. Queremos usar el Lema de Intercambio e ir reemplazando uno a uno los
B
vectores de
B̃ .
por los vectores de
El único cuidado que tenemos que tener es que vayamos
reemplazando en cada paso un vector distinto de
gamos que ya reemplazamos
primeros
k
vectores de
B
k
B . Para ver que esto siempre es posible, supon-
vectores y, por simplicidad, supongamos que reemplazamos los
por los primeros
k
vectores de
B̃ ..
Es decir, tenemos que
{w1 , . . . , wk , vk+1 , . . . , vs }
es una base de
V.
Ahora queremos reemplazar a
wk+1
del Lema de Intercambio, escribimos a
por algún vector
wk+1
vi , i ≥ k + 1. Siguiendo la demostración
como combinación no nula de los elementos de la
base:
wk+1 = c1 w1 + · · · + ck wk + ck+1 vk+1 + · · · + cs vs .
ck+1 , . . . , cs iguales a 0, porque entonces B̃ no sería base
cj ̸= 0, y siguiendo la demostración del Lema de
reemplazando a vj por wk obtenemos una nueva base de V .
No pueden ser todos los coecientes
de
V.
Luego podemos elegir
Intercambio, obtenemos que
j > k
tal que
{w1 , . . . , ws } ⊂ B̃ que
{w1 , . . . , ws }, y tiene s elementos.
□
Aplicando este razonamiento inductivamente, concluimos que existen
forman una base de
Cuando
V
V.
Por lo tanto
B̃
es exactamente igual a
tiene una base nita, llamamos dimensión de
base, y decimos que
V
V
a la cantidad de elementos de la
es un espacio de dimensión nita.
Ejemplo 1.12.
1.
Rn
es un espacio vectorial de dimensión
el vector que tiene
1
en la entrada
i
y
0
n.
Una base de
Rn
es
{ei : i = 1, . . . , n},
con
ei
en todas las demás. Llamamos base canónica a
esta base.
2.
3.
R[x]d es un espacio vectorial de dimensión d+1. La base canónica de R[x]d es {1, x, x2 , . . . , xd }.
R[x] es un espacio vectorial de dimensión innita.
En esta materia vamos a trabajar sobre espacios de dimensión nita.
Proposición 1.4. Todo
R-espacio vectorial de dimensión nita n es isomorfo a Rn
como espacio
vectorial (es decir, si solo consideramos las operaciones de espacio vectorial).
Ejemplo 1.13.
1. Las matrices de
m×n
podemos pensarlas como vectores de longitud
2. Los polinomios de grado
d
d + 1. Por ejemplo, en R[x]3
(1, 0, −3, 2).
longitud
En general, si
B = {b1 , . . . , bn }
representamos al polinomio
Por ejemplo,
v
en la base
x3 − 3x + 2 por el vector
V y v ∈ V , vimos que v
B , v = a1 b1 + · · · + an bn .
es una base de un espacio vectorial
admite una escritura única como combinación lineal de elementos de
Podemos representar a
m × n.
podemos representarlos por sus vectores de coecientes, de
B
como
v = (a1 , . . . , an )B .
p(x) = x3 − 3x + 2 = (1, 0, −3, 2)B ,
con
B = {x3 , x2 , x, 1}.
3. ESPACIOS VECTORIALES
3.3. Base a partir de sistema de generadores.
V
de dimensión nita
n,
V
cualquier base de
23
Como vimos, para un espacio vectorial
tiene la misma cantidad de elementos
n.
Esto
implica los siguientes resultados directos, cuya demostración dejamos como ejercicio.
Un conjunto
Si
S⊂V
S⊂V
con menos de
n
elementos no puede generar todo
es un conjunto linealmente independiente de
Un conjunto
S⊂V
n
con más de
n
elementos,
S
V.
es una base de
V.
elementos no puede ser linealmente independiente.
Más aún, tenemos el siguiente resultado.
V es un espacio de dimensión n y S ⊂ V es un conjunto de generadores
m > n, podemos extraer de S un subconjunto B de n elementos que forma
Proposición 1.5. Si
de
m
elementos, con
una base de
V.
m > n, podemos eliminar algún vector de S y seguir teS no puede ser un conjunto linealmente independiente,
Demostración. Veamos que si
niendo un sistema de generadores. Como
existe una combinación lineal no nula
0 = a1 w1 + · · · + as ws ,
y suponemos por simplicidad
as ̸= 0. Luego ws pertenece al espacio generado por {w1 , . . . , ws−1 },
y por lo tanto podemos eliminarlo.
Podemos repetir este proceso inductivamente siempre que la cantidad de vectores resultantes
sea mayor que
n,
hasta llegar a tener un subconjunto de
tanto es una base de
n
elementos que generan
V
y por lo
V.
□
Notamos también que dado un conjunto de vectores
base del espacio vectorial generado por
S
S = {v1 , . . . , vs },
podemos obtener una
triangulando el sistema, es decir
1. Colocamos los vectores como las de una matriz.
2. Triangulamos la matriz utilizando eliminación gaussiana.
3. Tomamos los vectores correspondientes a las las no nulas de la matriz.
Ejemplo 1.14. Dado el subespacio
R4 ,
para obtener una base de
S
S = ⟨(1, 4, 3, −1), (1, 0, 1, 0), (3, 3, 2, 7), (2, 6, 0, 14), (2, 3, 1, 7)⟩ ⊂
construimos la matriz

1
1

A=
3
2
2
4
0
3
6
3

3 −1
1 0

2 7

0 14 
1 7
y triangulamos.
A = np.array([[1, 4, 3, -1,], [1, 0, 1, 0], [3, 3, 2, 7], [2, 6, 0,
14], [2, 3, 1, 7]])
print(row_echelon(A))
%% [[ 1.
%% [ 0.
%% [ 0.
4.
1.
0.
3.
0.5
1.
-1. ]
-0.25]
-3.1 ]
24
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
%%
%%
[ 0.
[ 0.
0.
0.
0.
0.
0.
0.
Obtenemos la matriz
]
]]

1
0

A′ = 
0
0
0
Por lo tanto una base de
S
es

4 3
−1
1 1/2 −1/4 

0 1 −31/10
.
0 0
0 
0 0
0
B = {(1, 4, 3, −1), (0, 1, 1/2, −1/4), (0, 0, 1, −31/10)}.
A partir de la Proposición 1.5, podemos deducir el siguiente resultado de extensión de una
base.
Proposición 1.6 (Extensión de una base). Dado un espacio vectorial
base
B = {v1 , . . . , vs }
de un subespacio
S,
V
n y una
{w1 , . . . , wn−s } tales
de dimensión
es posible encontrar vectores
que
{v1 , . . . , vs w1 , . . . , wn−s }
forman una base de
V.
□
Demostración. Ejercicio.
3.4. Espacios dados por ecuaciones homogéneas.
Ax = 0,
A ∈ Rm×n
Rn .
con
vectorial de
y
b ∈ Rn ,
es fácil ver que el conjunto
Por lo tanto, podemos encontrar una base de
S
Dado un sistema de ecuaciones
S
de soluciones es un subespacio
como subespacio de
Rn .
Una forma de
encontrar una base es triangular el sistema. Cada la no nula en la matriz escalonada impone
una restricción en el espacio y reduce en uno la dimensión. Es decir, que la dimensión de
n−k
donde
k
S
es
es la cantidad de las no nulas en la triangulación.
Ejemplo 1.15. El sistema
x1 + 2x2 − x3 + x4 = 0
3x2 − 2x3 − x4 = 0,
ya está escalonado. Por lo tanto el espacio de soluciones tiene dimensión
4 − 2 = 2.
Para encontrar un sistema de generadores, despejamos la primera variable de cada ecuación
en el sistema triangulado en función de las demas variables. Llamamos
variables dependientes
a
las variables que aparecer como primer variable de alguna la, y variables libres o independientes
a las demás. En este ejemplo,
{x1 , x2 }
son las variables dependientes y
{x3 , x4 }
las variables
libres (estos conjuntos dependen del método que utilizamos para resolver el sistema, podemos
obtener otros conjuntos de variables dependientes y libres, aunque la cantidad de variables en
cada uno será siempre la misma).
Ahora despejamos las variables dependientes en función de las variables libres, de abajo para
arriba:

2x3 + x4
2
1


= x3 + x4
x2 =
3
3
3 2
1
1
5


x3 + x4 + x3 − x4 = − x3 − x4 ,
x1 = −2x2 + x3 − x4 = −2
3
3
3
3
3. ESPACIOS VECTORIALES
25
y podemos escribir el conjunto de soluciones en la forma
1
5
2
1
S=
− x3 − x4 , x3 + x4 , x3 , x4 : x3 , x4 ∈ R .
3
3
3
3
A partir de esta escritura, es fácil obtener los generadores del subespacio vectorial:
y
1
2
5
1
S=
− x3 , x3 , x3 , 0 + − x4 , x4 , 0, x4 : x3 , x4 ∈ R}. : x3 , x4 ∈ R
3
3
3
3
1 2
5 1
=
− , , 1, 0 x3 + − , , 0, 1 x4 : x3 , x4 ∈ R}. : x3 , x4 ∈ R ,
3 3
3 3
1 2
5 1
concluimos S = ⟨ − , , 1, 0 , − , , 0, 1 ⟩.
3 3
3 3
3.5. Ecuaciones a partir de generadores.
En la sección anterior, vimos cómo obtener
los generadores de un subespacio vectorial dado por ecuaciones homogéneas. En ocasiones es útil
realizar el proceso inverso, obtener ecuaciones homogéneas que denen un espacio vectorial dado
por generadores.
Veamos cómo hacerlo en un ejemplo.
Ejemplo 1.16. Hallar las ecuaciones que denen el espacio generado por los vectores
{(1, 0, 2, −1), (3, 1, 0, 2)}.
Un vector genérico de
S
es
(x1 , x2 , x3 , x4 ) = a1 (1, 0, 2, −1) + a2 (3, 1, 0, 2).
Podemos platear esta ecuación en forma matricial:


 
3 x1


1
a
 1 = x2  .


0
a2
x3 
2
x4
1
0

2
−1
xi . Para

1 3
 0 1

 2 0
−1 2
Ahora buscamos relaciones entre los
eso triangulamos la matriz ampliada

x1
x2 
.
x3 
x4
Al realizar la triangulación, obtenemos la matriz

1
 0

 0
0

x1
3

1
x2
,
0 x3 − 2x1 + 3x2 
0 x4 + x1 + 5x2
de donde obtenemos las relaciones:
x3 − 2x1 + 3x2 = 0
x4 + x1 + 5x2 = 0
y estas son las ecuaciones que denen nuestro espacio vectorial, es decir,
S = {(x1 , x2 , x3 , x4 ) : −2x1 + 3x2 + x3 = 0, x1 + 5x2 + x4 = 0}.
S =
26
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
En general, dados generadores de un espacio vectorial
S = ⟨v1 , . . . , vs ⟩ ⊂ Rn ,
realizamos los
S.
siguientes pasos para obtener ecuaciones que denen a
1. Construir la matriz ampliada correspondiente al sistema de ecuaciones
(x1 , . . . , xn ) = a1 v1 + · · · + as vs .
2. Escalonar la matriz.
3. El espacio
S
queda denido por las ecuaiones correspondientes a los términos de la última
columna de las las en las que todos los coecientes en las primeras
3.6. Suma e intersección de subespacios.
s columnas son nulos.
Como aplicación de las últimas dos secciones
veamos cómo calcular sumas e intersecciones de subespacios vectoriales.
S, T de un K espacio vectorial W , denimos
= {s + t : s ∈ S, t ∈ T }, el conjunto de todas las sumas posibles
entre un elemento de S y un elemento de T .
Intersección. S ∩ T = {v ∈ W : v ∈ S y v ∈ T }.
Definición 1.2. Dados subespacios
Suma. S + T
Queda como ejercicio vericar que estos dos conjuntos son subespacios vectoriales de
Concentremos un poco nuestra atención en el caso en que
y
T
W = Kn .
W.
Dependiendo si
S
vienen dados por generadores o ecuaciones puede ser más fácil o más difícil calcular estos
subespacios. Podemos resumir los métodos de la siguiente forma (dejamos como ejercicio vericar
la correctitud de los métodos).
Si
S
y
T
S+T
están dados por generadores,
está generado por la unión de todos los
generadores.
Si
S
y
T
están dados por ecuaciones,
S∩T
está generado por la unión de todas las
ecuaciones.
Si
S
y/o
T
están dados por ecuaciones, calculamos generadores de ambos y tomamos la
T
están dados por generadores, calculamos ecuaciones de ambos y tomamos la
unión.
Si
S
y/o
unión de las ecuaciones.
Con métodos similares podemos realizar otras operaciones entre subespacios. Por ejemplo,
S ⊂ T ? Ahora el caso más simple es si S está dado por generadores
T por ecuaciones. En este caso, alcanza vericar si todos los generadores de S son elementos
de T vericando si cumplen las ecuaciones que denen a T .
¾cómo podemos determinar si
y
R4 , S = ⟨(1, 0, −3, 1), (2, 0, 3, −2)⟩ y T = {(x1 , x2 , x3 , x4 ) :
generadores de S + T y S ∩ T . Determinar si S ⊂ T .
Ejercicio 1.2. Dados los subespacios de
x1 + x2 − x4 = 0, x2 + x3 = 0},
hallar
Es simple determinar la relación entre las dimensiones de los espacios
S ,U ,
su suma y su
intersección. De eso trata el siguiente resultado.
Proposición 1.7. Sean
U
y
V
dos subespacios de un
K
espacio vectorial de dimensión nita.
Entonces
dim(U + V ) = dim(U ) + dim(V ) − dim(U ∩ V ).
3. ESPACIOS VECTORIALES
27
U ∩V = {0}. En ese caso, dim(U ∩V ) = 0,
dim(U + V ) = dim(U ) + dim(V ).
Demostración. Probemos primero el caso en que
por lo cual basta ver que
B = {u1 , · · · , uk } y B ′ = {v1 , · · · , vn } bases de U y V respectivamente y notemos que si tomamos un w ∈ U + V deben existir u ∈ U y v ∈ V de modo tal que
w = u + v . En particular, como B y B ′ son bases de U y V , deben existir escalares {αi }1≤i≤k y
{βj }1≤j≤n de modo tal que
Para ello consideramos
k
X
u=
αi ui
v=
i1
n
X
βj vj ,
j=1
de donde concluímos que el conjunto
B̃ = B ∪ B ′ = {u1 , · · · , uk , v1 , · · · , vn }
U + V . Decimos que B̃ es L.I. con lo cual
dim(U + V ) = #B + #B ′ = dim(U ) + dim(V ) como queríamos
es un sistema de generadores de
resultaría una base y
por ende
probar. Para ver que
B̃
es L.I. suponemos que para cierta combinación lineal, se tiene
k
X
αi u i +
i1
n
X
βj vj = 0,
j=1
y notamos que en ese caso
U∋
k
X
αi ui =
i1
n
X
(−βj )vj ∈ V,
j=1
lo que dice que ambos miembros (que son iguales) pertenecen tanto a
U ∩ V = {0}.
como a
V
y por ende a
Luego
k
X
αi ui = 0 =
i1
y resulta
U
n
X
(−βj )vj ,
j=1
α1 = · · · = αk = β1 = · · · = βn = 0,
indicando que
B̃
es L.I.
U ∩ V ̸= {0}. En este caso tomamos una base B ′′ = {z1 , · · · , zr }
′′
de U ∩ V y como U ∩ V ⊂ U gracias a la Proposición 1.6, podemos extender B a una ba′′
′
se B de U , B = {z1 , · · · , zr , ur+1 , · · · , uk }. Análogamente, B se extiende a una base B de
′
V , B = {z1 , · · · , zr , vr+1 , · · · , vn }. Notemos, antes de proseguir, que las dimensiones de los
espacios involucrados son r ,k y n para U ∩ V , U y V respectivamente. Decimos que B̃ =
{z1 , · · · , zr , ur+1 , · · · , uk , vr+1 , · · · , vn } es base de U + V . En efecto, es trivial ver que geneResta probar el caso en que
ra y para ver que es L.I. escribimos
r
X
n
X
γi zi +
i=1
k
X
αj uj +
j=r+1
βl vl = 0,
l=r+1
y entonces, por un lado se tiene
(1.1)
U∋
r
X
i=1
γi zi +
k
X
j=r+1
αj uj =
n
X
(−βl )vl ∈ V,
l=r+1
28
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
de donde en particular
· · · = βn = 0.
Pn
l=r+1 (−βl )vl
r
X
i=1
y entonces
∈ U ∩ V = ⟨z1 , · · · , zr ⟩,
es decir, que
βr+1 = βr+2 =
Volviendo a (1.1), vemos que
γi zi +
k
X
αj uj = 0,
j=r+1
γ1 = γ2 = · · · = γr = αr+1 = · · · = αk = 0
porque
B
es base y por lo tanto L.I.
Hemos probado que
B̃ = {z1 , · · · , zr , ur+1 , · · · , uk , vr+1 , · · · , vn }
es una base de
U +V,
por lo tanto
dim(U + V ) = r + (k − r) + (n − r) = k + n − r = dim(U ) + dim(V ) − dim(U ∩ V ),
como queríamos probar.
□
4. OPERACIONES CON MATRICES
29
4. Operaciones con matrices
4.1. Multiplicación de matrices.

a11 a12 · · ·
 a21 a22 · · ·

A =  ..
.
..
.
 .
.
.
am1 am2 · · ·
el producto
C = AB
es la matriz de
m
Dadas matrices

a1n
a2n 

. ,
. 
.
amn
las y
p

A ∈ Km×n
y

b11 b12 · · ·
 b21 b22 · · ·

B =  ..
.
..
.
 .
.
.
bn1 bn2 · · ·
B ∈ Kn×p

b1p
b2p 

. 
. 
.
bnp
columnas
c11 c12 · · ·
 c21 c22 · · ·

C =  ..
.
..
.
 .
.
.
cm1 cm2 · · ·

c1p
c2p 

m×p
,
.  ∈ K
. 
.
cmp
con
cij = ai1 b1j + ai2 b2j + · · · + ain bnj =
n
X
aik bkj
k=1
(en la casilla
(i, j)
de
C
ponemos el producto de la la
Si multiplicamos dos matrices o vectores en
i
Python
de
A
con
∗
con la columna
j
de
B)
.
...
A1 = np.array([[1,2],[3,4]])
A2 = np.array([[1,0],[0,1]])
print(A1)
print(A2)
print(A1 * A2)
%% A1 =
%% [[1 2]
%% [3 4]]
%% A2 =
%% [[1 0]
%% [0 1]]
%% A1 * A2 =
%% [[1 0]
%% [0 4]]
La operación
∗
en
Python
calcula el producto coordenada a coordenada. Esta operación se
llama producto de Hadamard, y es útil en muchos casos, pero no es el producto usual de matrices.
Para el producto usual de matrices usamos en Python el símbolo @.
print("A1 @ A2 = \n", A1 @ A2)
%% A1 @ A2 =
# Producto usual de matrices
30
%%
%%
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
[[1 2]
[3 4]]
½Revisar siempre que estemos usando el producto correcto en
Python!
Ejercicio 1.3. Realizar (a mano) los siguientes productos de matrices:
1.
2.
3.
4.
3 5
1 −1
·
2 −9
0 2
4
3 5 ·
−3
4
· 3 5
−3
3 5
x
·
2 −9
y
Observaciones:
El producto de matrices es asociativo. Es decir
A(BC) = (AB)C ,
para matrices con
los tamaños apropiados para realizar los productos.
El producto de matrices no es conmutativo. En general, no vale
en el caso de matrices cuadradas. Lo vericamos en
A = np.array([[1, 2],
B = np.array([[2, 5],
print("A @ B = \n", A
print("B @ A = \n", B
AB = BA,
ni siquiera
Python.
[2, 3]])
[1, 4]])
@ B)
@ A)
A @ B =
[[ 4 13]
[ 7 22]]
B @ A =
[[12 19]
[ 9 14]]
Si bien vimos que el conjunto de matrices
Km×n
es un espacio vectorial, el producto de
matrices no es una operación de espacio vectorial.
4.2. Matrices transpuesta y conjugada.
es la matriz que se obtienen a partir de
A
intercambiando las por
(aji ) ∈ Rn×m .
Ejemplo 1.17.
Si
Si
A = (aij ) ∈ Rm×n
T =
columnas, es decir A
La matriz transpuesta de


a11 a21
a11 a12 a13
T
A=
, A = a12 a22 .
a21 a22 a23
a
a
13 23
5 7
5 3
T
A=
, A =
.
3 −1
7 −1
4. OPERACIONES CON MATRICES
31
Proposición 1.8.
(AT )T = A.
(AB)T = B T AT .
En
Python calculamos la transpuesta de una matriz con el comando transpose de numpy.
A = np.array([[5,7],[3,-1]])
print(np.transpose(A))
## [[ 5 3]
## [ 7 -1]]
En lo que sigue resulta de utilidad denir lo siguiente: consideremos
v∈
Kn (resp.
que
v
(resp.
A∈
A)
v ∈ Kn , A ∈ Kn×n ,
con
Kn×n ), denotamos el vector (resp. matrix) que tiene los mismos elementos
pero conjugados. Obviamente si
K = R, v = v , A = A .
La siguiente denición generaliza a la traspuesta en las matrices y a la conjugación en los
escalares.
Dada
A ∈ Kn×m ,
Notar que si
la
matriz conjugada
a ∈ K1×1
de
A,
( o sea, es un escalar,
denotada con
a ∈ K)
A∗
entonces
se dene como
a∗ = a.
A∗ = AT .
La conjugación hereda
las propiedades de la traspuesta:
(A∗ )∗ = A
∗
T
Si K = R, A = A .
(AB)∗ = B ∗ A∗
(aA + bB)∗ = aA∗ + bB ∗ .
4.3. Sistemas lineales y ecuaciones matriciales.
Observando el producto del punto 4
del Ejercicio 1.3, vemos que podemos plantear el sistema de ecuaciones lineales
3x + 5y = 4
2x − 9y = 15.
en forma matricial
3 5
x
4
·
=
,
2 −9
y
15
m×n es la matriz de coecientes, x
o en general, Ax = b, donde A ∈ R
n
columna de incógnitas y b ∈ R es el vector de términos constantes.
es un vector o matriz
Pregunta: ¾cuántas incógnitas y cuántas ecuaciones tiene el sistema Ax = b con los tamaños
dados?
Para resolver sistemas de ecuaciones en
volver a esto más adelante).
A = np.array([[3,2],[5,-4]])
b = np.array([22, -11])
print(np.linalg.solve(A, b))
Python
podemos usar el comando
solve
(vamos a
32
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
## [3.
6.5]
4.4. Rango de una matriz.
Para saber si un sistema de ecuaciones puede tener solución
única, innitas soluciones o ninguna solución, calculamos el
rango
de la matriz
A.
Pensando
las las de una matriz como ecuaciones, el rango de la matriz nos indica cuantas ecuaciones
ïndependientes"tenemos.
El rango de una matriz es la máxima cantidad de las o columnas linealmente independientes
que posee la matriz.
Proposición 1.9. La máxima cantidad de las linealmente independientes de una matriz coin-
cide con la máxima cantidad de columnas linealmente independientes.
Por lo tanto, no es necesario distinguir rango-la de rango-columna, y hablamos simplemente
de
rango.
Ejemplo 1.18.
1.
2.
1
0

1
rango 0
1
rango
4
2
0
1
2
7
=2
6

1
2  = 1
5
4.4.1. ¾Cómo calcular el rango?
Para calcular el rango de una matriz, triangulamos la
matriz y contamos cuántas las no nulas quedan.
Proposición 1.10. El espacio vectorial generado por las las de una matriz antes o después de
triangular es el mismo.
En
Python, calculamos el rango de una matriz con el comando matrix_rank de numpy.linalg.
A = np.array([[1,0,1],[0,1,2],[1,2,5]])
print("Rango de A = ", np.linalg.matrix_rank(A))
B = np.array([[1,2,3],[4,5,6],[7,8,9]])
print("Rango de B = ", np.linalg.matrix_rank(B))
## Rango de A =
## Rango de B =
2
2
4.4.2. Sistemas de ecuaciones y rango de matrices.
las, el sistema
Si la matriz
Si rango(A) es igual a la cantidad de
Ax = b siempre tiene solución. Todas las ecuaciones son independientes entre sí.
A
es cuadrada y
rango(A) es igual a la cantidad de las, decimos
Ax = b tiene solución única para todo b.
que
rango máximo. En este caso, el sistema
4.4.3. Rango de un producto de matrices.
1.
Dadas matrices
rango(A) = rango(AT ) = rango(AT A) = rango(AAT )
A ∈ Rm×n
y
B ∈ Rn×p ,
A
tiene
4. OPERACIONES CON MATRICES
2.
33
rango(AB) ≤ mı́n{rango(A), rango(B)}.
rango(B) = n, entonces rango(AB) = rango(A).
n×n , y B tiene rango máximo, entonces rango(AB) = rango(A).
Si B ∈ R
3. Si
4.
Idea de las demostración: las las de
de
AB
AB
son combinaciones de las las de
son combinaciones de las columnas de
B
y las columnas
A.
4.5. Matrices especiales.
4.5.1. Matriz diagonal.
Una matriz
A ∈ Rn×n
se dice diagonal si
aij = 0
es decir:

a11 0 · · ·
 0 a22 · · ·

A =  ..
.
..
.
 .
.
.
0
0 ···

0
0 

. 
. 
.
ann
Ejercicio 1.4. Calcular a mano pero sin hacer muchas cuentas:

1.
2.
3.
1
0
0

1
0
0

1
2
3
0
2
0
0
2
0
1
2
3
3
0
0 ,
3
 
0
1


0 · 2
3
3
 
1
1


2 · 0
3
0
1
2
3
0
2
0

1
2 ,
3

0
0.
3
# Usamos el comando diag para definir matrices diagonales
D = np.diag(np.array([1,2,3]))
print("D = \n", D)
print("D^2 = \n", D @ D)
%% D =
%% [[1 0 0]
%% [0 2 0]
%% [0 0 3]]
%% D^2 =
%% [[1 0 0]
%% [0 4 0]
%% [0 0 9]]
para todo
i ̸= j ,
34
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
4.5.2. Matriz identidad.
aii = 1
para todo
1≤i≤n
y
n ∈ N, la matriz In ∈ Rn×n
aij = 0 para i ̸= j , es decir:
Para cada


0
0

.
.
.
1
1 0 ···
0 1 · · ·

In =  .. .. . .
. .
.
0 0 ···
Proposición 1.11. Para toda
Podemos usar el comando
es la matriz diagonal con
B ∈ Rn×n , In · B = B · In = B .
eye
de
numpy
para denir una matriz identidad.
id = np.eye(3)
# Creamos una matriz de 3 x 3 con números aleatorios entre 0 y 1
A = np.random.rand(3,3)
print("A = \n", A)
print("id * A = \n", id @ A)
%% A =
%% [[0.91836939 0.31101594 0.48474114]
%% [0.00093026 0.37622722 0.91214465]
%% [0.6293026 0.20801675 0.6855896 ]]
%% id * A =
%% [[0.91836939 0.31101594 0.48474114]
%% [0.00093026 0.37622722 0.91214465]
%% [0.6293026 0.20801675 0.6855896 ]]
4.5.3. Mas Matrices especiales.
Triangular superior:
para todo
i>j
Una matriz
U ∈ Rn×n
Triangular inferior: Una matriz L ∈ Rn×n
todo
i>j
Matriz
Matriz
Matriz
Matriz
se llama triangular superior si
aij = 0
(es decir, todas las entradas abajo de la diagonal son 0).
se llama triangular inferior si
aij = 0
para
(es decir, para todas las entradas arriba de la diagonal son 0).
simétrica: A ∈ Rn×n es simétrica si AT = A.
Hermitiana: A ∈ Cn×n es Hermitiana si A∗ = A.
ortogonal: A es ortogonal si AAT = AT A = In .
unitaria: A ∈ Cn×n es unitaria si AA∗ = A∗ A = In .
4.5.4. Inversa de una matriz.
Dada una matriz
A ∈ Rn×n ,
si existe una matriz
B ∈ Rn×n
tal que
AB = In = BA,
A es inversible y B es la inversa de A. Si A es inversible,
A−1 . Si A no es inversible, decimos que A es singular.
decimos que
notamos
la inversa es única y la
4. OPERACIONES CON MATRICES
35
Para calcular la inversa de una matriz podemos aplicar eliminación gaussiana, observando que
encontrar una matriz
B
tal que
AB = In
es equivalente a resolver los

n
sistemas de ecuaciones

b1j
 b2j 
 
A  ..  = ej ,
 . 
bnj
donde
ej
es el
j -ésimo
vector canónico, que coinicide con la
j -ésima
columna de la matriz
In .
Ejemplo 1.19. Calculamos la inversa de la matriz


2 0 −2
A = 1 −1 1  .
0 2
1
Podemos resolver los sistemas
ampliada con los 3 vectores
Abj = ej , 1 ≤ j ≤ 3,
ej
simultáneamente considerando una matriz
a la derecha:

2 0 −2 1 0 0
 1 −1 1 0 1 0  .
0 2
1 0 0 1

A = np.array([[1, 4, 3, -1,], [1, 0, 1, 0], [3, 3, 2, 7], [2, 6, 0,
14], [2, 3, 1, 7]])
print(row_echelon(A))
%% [[ 2. 0. -2. 1. 0. 0.]
%% [ 1. -1. 1. 0. 1. 0.]
%% [ 0. 2. 1. 0. 0. 1.]]
%% Matriz escalonada:
%% [[ 1.
0. -1.
0.5 0.
0. ]
%% [ 0.
1. -2.
0.5 -1. -0. ]
%% [ 0.
0.
1. -0.2 0.4 0.2]]
La función
row_echelon
que estamos utilizando coloca 1's como primer elemento no nulo
de cada la, dividiendo cada la por el escalar apropiado.
A partir de la matriz escalonada podemos ahora encontrar fácilmente las casillas
Por ejemplo, la última la será
[−0.20.40.2].
bij
de
B.
Para las las anteriores, podemos realizar ahora la
triangulación hacia arriba:




f2 +2f3 →f2
1. 0. −1. 0.5
0.
0.
1. 0. 0. 0.5 0.4 0.2
f1 +f3 →f1
 0. 1. −2. 0.5 −1. 0.  −−
−−−−−→  0. 1. 0. 0.5 0.2 0.4.  .
0. 0. 1. −0.2 0.4 0.2
0. 0. 1. −0.2 0.4 0.2
Ahora la matriz que estamos buscando es exactamente la matriz formada por las últimas 3
columnas de la matriz ampliada.


0.3 0.4 0.2
B =  0.1 0.2 0.4. .
−0.2 0.4 0.2
36
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
Lo vericamos en
Python.
B = np.array([[0.3, 0.4, 0.2], [0.1, -0.2, 0.4], [-0.2, 0.4, 0.2]])
print(A @ B)
%% [[ 1.00000000e+00
%% [-2.77555756e-17
%% [ 0.00000000e+00
Aplicación 1.2. Si
0.00000000e+00
1.00000000e+00
0.00000000e+00
A ∈ Rn×n
0.00000000e+00]
0.00000000e+00]
1.00000000e+00]]
es inversible, la solución del sistema
Ax = b
es
x = A−1 b.
Para calcular la inversa en
(o podemos usar el comando
Python usamos el comando inv del paquete numpy.linalg
solve del mismo paquete para resolver la ecuación matricial
AX = In ).
# Probando...
A = np.array([[1,7],[2,3]])
print("A = \n", A)
A_inv = np.linalg.inv(A)
print("A^(-1) = \n", A_inv)
print("A * A^(-1) = \n", A @ A_inv)
print("La solución de AX = Id_2 es")
print(np.linalg.solve(A, np.eye(2)))
##
##
##
##
##
##
##
##
##
##
##
##
A =
[[1 7]
[2 3]]
A^(-1) =
[[-0.27272727 0.63636364]
[ 0.18181818 -0.09090909]]
A * A^(-1) =
[[1. 0.]
[0. 1.]]
La solución de AX = Id_2 es
[[-0.27272727 0.63636364]
[ 0.18181818 -0.09090909]]
Nota: En la práctica, es mejor resolver un sistema por eliminación gaussiana que invirtiendo la
matriz.
4. OPERACIONES CON MATRICES
4.5.5. Traza de una matriz.
La traza de una matriz
37
cuadrada
es la suma de los elementos
de la diagonal.
Si
A = (aij ) ∈ Rn×n , tr(A) = a11 + a22 + · · · + ann =
Proposición 1.12. Si
A, B ∈
Pn
i=1 aii .
Rn×n :
tr(AT ) = tr(A)
tr(A + B) = tr(A) + tr(B).
Calculamos la traza en
Python
con el comando
trace
de
numpy.
A = np.array([[1,5,1],[-6,7,8],[0,9,-2]])
print("A = \n", A)
print("Traza de A = ", tr(A)
%% A =
%% [[ 1 5 1]
%% [-6 7 8]
%% [ 0 9 -2]]
%% Traza de A =
6
4.6. Determinante de una matriz.
El determinante de una matriz
cuadrada
se puede
denir recursivamente por la siguiente fórmula
(
a11
det(A) = Pn
si
i+j a
ij
j=1 (−1)
donde
de
Mij
es la matrix de
(n − 1) × (n − 1)
det(Mij )
si
n=1
n > 1,
que se obtiene al eliminar la la
i
y la columna
j
A.
Ejemplo 1.20.
1.
2.
a b
det
= ad − bc
c d


1 2 3
0 7
2 3


3
0
7
det
= det
− 3 det
= 7 − 3 · 11 = −26
−1 4
−1 4
0 −1 4
Proposición 1.13. Si
A ∈ Rn×n
y
fi , 1 ≤ i ≤ n,
en la matriz modican el determinante:
transponer la matriz:
det(AT ) = det(A)
son las las de
A,
las siguientes operaciones
38
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL

multiplicar una la por un escalar:
f1
.

.
.


 fi−1

det  αfi

 fi+1

.

.
.






 = α det(A)




fn

f1
sumar un múltiplo de una la a otra la:
.

.
.


fi−1


det  fi + βfj

fi+1


.

.
.
fn
f1
.


.
.





 fj


.
 = − det 
.
.





 fi


.


.
.

intercambiar dos las:
f1
.

.
.


 fi

.
.
det 
.

 f

j

.

.
.
fn








 = det(A)
















fn n
multiplicar toda la matriz por un escalar: det(kA) = k det(A), para
n
multiplicar toda la matriz por (−1): det(−A) = (−1) det(A).
k ∈ R.
En base a esta propiedad podemos demostrar fácilmente las siguientes propiedades.
Corolario 1.1.
A tiene dos las iguales, det(A) = 0.
A tiene una la de ceros, det(A) = 0.
det(A) = 0 si y solo si A es singular.
Si
Si
Proposición 1.14. Si
A, B ∈ Rn×n ,
det(AB) = det(A) det(B).
Calculamos determinantes en
Python
con el comando
det
de
A = np.array([[1,5,0],[-1,-3,8],[0,1,-2]])
B = np.array([[0,4,2],[2,6,1],[1,5,-1]])
print("det(A) = ", np.linalg.det(A));
print("det(B) = ", np.linalg.det(B));
print("det(AB) = ", np.linalg.det(A @ B));
# No hay relación con los determinantes de A y B
numpy.linalg.
5. CAMBIO DE BASE
39
print("det(A + B) = ", np.linalg.det(A + B));
M = np.array([[1,2,3],[4,5,6],[7,8,9]])
print("det(M) = ", np.linalg.det(M));
%%
%%
%%
%%
%%
det(A) = -12.0
det(B) = 19.999999999999996
det(AB) = -240.0000000000002
det(A + B) = 51.0
det(M) = -9.51619735392994e-16


3 2 −1
0
7  , probar
Ejercicio 1.5. Para A = 3
0 −1 4
3
para todo b ∈ R
que el sistema
Ax = b
4.6.1. Determinante de una matriz triangular superior o inferior.
Si
tiene solución única
A ∈ Rn×n es triangular
inferior o superior su determinante es igual al producto de los elementos de la diagonal.

a11 a12 · · ·
 0 a22 · · ·

det  ..
.
..
.
 .
.
.
0
0 ···


a1n
a11 0 · · ·
 a21 a22 · · ·
a2n 


.  = det  .
.
..
. 
.
 ..
.
.
.
ann
an1 an2 · · ·

0
n
0 
 Y
=
aii

.
. 
.
i=1
ann
5. Cambio de base
Dado un espacio vectorial
{e1 , . . . , en }
del vector
V
de dimensión
(
de vectores canónicos,
ei (j) =
1
0
n
llamamos base canónica de
si
si
i=j
,
i ̸= j
donde
ei (j)
es la
V
al conjunto
j -ésima
E=
coordenada
ei .
Dada otra base
B
de
V,
queremos saber cómo escribir en la base
conocemos sus coordenadas en la base
E.
vector del cual conocemos sus coordenadas en la base
5.0.1. Cambio de base de B a E .
B
a un vector
v
del cual
Y viceversa, cómo escribir en la base canónica a un
B.
Analizamos un ejemplo. Consideramos la base de
R3
B = {(1, 2, 5), (0, 1, 7), (0, 0, −1)}
y el vector
v = (3, −2, 1)B .
Para averiguar las coordenadas de
v
en la base canónica, hacemos la cuenta
v = 3(1, 2, 5) + (−2)(0, 1, 7) + 1(0, 0, −1) = (3, 4, 0)
(en general omitimos el subíndice
canónica).
E
cuando escribimos un vector en las coordenadas de la base
40
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
Podemos escribirlo matricialmente:
Observamos que
que nos permite
CBE

   
1 0 0
3
3
v = 2 1 0  −2 = 4 .
5 7 −1
−1
0


1 0 0

2 1 0  posee los vectores de B como columnas y es la matriz
la matriz
5 7 −1
pasar un vector en coordenadas de una base B a la base canónica. Llamamos
a esta matriz. Obtenemos
vE = CBE vB .
Ejercicio 1.6.
B = {(1, 3, 7), (4, 0, 1), (5, −7, 0)} de R3 y el vector v de R3 de coordenadas
(1, 2, −5) en la base B , hallar las coordenadas de v en la base canónica.
2
Dada la base B = {1, (x − 1), (x − 1) } de R[x]2 y el polinomio p(x) de coordenadas
(7, −2, 1) en la base B , hallar las coordenadas de p en la base canónica de R[x]2 . Observar
que esto equivale a escribir como suma de potencias de x a un polinomio que viene dado
como suma de potencias de (x − 1).
1. Dada la base
2.
5.0.2. Cambio de base de B a E .
Ahora queremos escribir a
v = (3, 7, −1)E
en la base
B.
Para esto, necesitamos resolver el sistema de ecuaciones
(3, 7, −1) =
3
X
ai bi = a1 (1, 2, 5) + a2 (0, 1, 7) + a3 (0, 0, −1)
i=1
Esto nos da un sistema de 3 ecuaciones y 3 incógnitas, que podemos plantear en forma matricial:

Observamos que la matriz
nas, es decir, es la matriz
   
0 0
a1
3
1 0  a2  =  7  .
7 −1
a3
−1

0
0  de coecientes posee los vectores de B como colum−1
Como B es una base, la matriz CBE es inversible (¾por qué?).
1
2
5

1 0
2 1
5 7
CBE .
Por lo tanto,
  
−1  
 
a1
1 0 0
3
3
a2  = 2 1 0   7  = (CBE )−1  7  .
a3
5 7 −1
−1
−1
Obtenemos que la matriz de cambio de base de la base canónica
E
a una base
B es CEB = CBE .
En resumen: Tenemos una base B = {b1 , . . . , bn } de un espacio vectorial V
n.

1.
2.

|
|
|
bn .
Construimos la matriz CBE = b1 b2 · · ·
|
|
|
Para pasar un vector en base B a base canónica, usamos vE = CBE vB .
de dimensión
5. CAMBIO DE BASE
3. Para pasar un vector en base base canónica a la base
usamos
vB = CEB vE .
41
B,
denimos
CEB = (CBE )−1
y
42
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
6. Transformaciones lineales
6.1. Matrices y transformaciones lineales.
TA :
Rn
→
Una matriz
Rm dada por
A ∈ Rm×n
dene una función
TA (v) = Av.
(tomando a
v
como matriz columna).
Ejemplo 1.21. Si
1 3
0
A=
∈ R2×3
2 −1 −4
y
v = (1, 0, −2),
entonces
 
1
1 3
0  
1
0
TA (v) =
=
2 −1 −4
10
−2
Si multiplicamos la matriz
A
por un vector genérico
v = (x1 , x2 , x3 ) ∈ R3 ,
obtenemos
 
x1
1 3
0  
1x1 + 3x2 + 0x3
x2 =
TA (v) =
.
2 −1 −4
2x1 − x2 − 4x3
x3
Entonces podemos escribir
TA (x1 , x2 , x3 ) = (x1 + 3x2 , 2x1 − x2 − 4x3 ).
Ejercicio. Escribir a la función f (x1 , x2 ) = (3x1 , x2 − x1 , x2 + 2x1 ) de R2
R3
en forma
f : V → W
se llama
en
matricial.
transformaciones lineales.
Estas funciones reciben el nombre de
Definición 1.3. Dados dos espacios vectoriales
transformación lineal si cumple:
1.
2.
V
W,
y
una función
f (v + v ′ ) = f (v) + f (v ′ ) para todos v, v ′ ∈ V .
f (a · v) = a · f (v) para todos a ∈ R y v ∈ V .
El producto de matrices verica
A(v + w) = Av + Aw
y
A(av) = a(Av),
por lo tanto se
cumplen los axiomas de transformación lineal.
Ejemplo 1.22. La función
2
lineal de R en
f (x1 , x2 ) = (3x1 + 1, x2 − x1 , x2 + 3x1 ) no es una transformación
f (2 · (1, 1)) = f (2, 2) = (7, 0, 8) y 2f (1, 1) = 2(4, 0, 4) = (8, 0, 8).
R3 . Por ejemplo,
Observación. Las columnas de A son las imágenes de los vectores canónicos ei , 1 ≤ i ≤ n.
Proposición 1.15. Si
B = {v1 , . . . , vn }
es una base de
V,
podemos denir una transformación
lineal deniendo la imagen de cada elemento de la base.
Para un elemento
si
v = a1 v1 + · · · + an vn ,
entonces
2
es una base de R . Si
B = {(1, 2), (2, −1)}
f (1, 2) = (0, 1) y f (2, −1) = (1, 3),
Ejemplo 1.23.
lineal,
v ∈V,
f (v) = a1 f (v1 ) + · · · + an f (vn ).
f : R2 → R2
es una transformación
entonces
f (3, 1) = f ((1, 2) + (2, −1)) = f (1, 2) + f (2, −1) = (0, 1) + (1, 3) = (1, 4).
6. TRANSFORMACIONES LINEALES
43
6.2. Imagen y núcleo de matrices y transformaciones lineales.
En base a esto,
hacemos las siguientes deniciones
Definición 1.4. El subespacio de
Km
im(A) = {b ∈ Km : b = Ax
para algún
x ∈ Kn }
A (o rango de A, pero trae confusión con el rango que
A está generada por las columnas de A (¾por qué?).
es la imagen de
de una matriz
El subespacio de
ya denimos). La imagen
Kn
ker(A) = {x ∈ Kn : Ax = 0}
A. Podemos calcular el núcleo de A resolviendo
es el núcleo o kernel de
el sistema homogéneo
Ax = 0.
Propiedad. rango(A) = dim(im(A)).
Teorema 1.1 (Teorema de la dimensión.). Dada una matriz
A ∈ Km×n ,
n = dim(ker(A)) + dim(im(A))
Demostración. Utilizamos la Proposición 1.6 de extensión de bases. Suponemos que el
núcleo de
A
tiene dimensión
t
y consideramos una base
n
Extendemos dicha base a una base de R :
{u1 , . . . , ut } ⊂ Kn
del núcleo de
A.
B = {u1 , . . . , ut , w1 , . . . , wn−t }.
Veamos que
{Aw1 , . . . , Awn−t }
forman una base de
im(A).
Dado un vector
v ∈ Rn ,
podemos escribirlo como combinación de elementos de la base:
v = a1 u1 + · · · + at ut + b1 w1 + · · · + bn−t wn−t .
Como
Aui = 0
para
1 ≤ i ≤ t,
obtenemos que
Av = +b1 Aw1 + · · · + bn−t Awn−t ,
y por lo tanto
{Aw1 , . . . , Awn−t }
es un conjunto de generadores de
im(A).
Solo falta ver que es
un conjunto linealmente independiente.
Supongamos
c1 Aw1 + · · · + cn−t Awn−t = 0.
Luego
A(c1 w1 + · · · + cn−t wn−t ) = 0,
es decir
c1 w1 + · · · + cn−t wn−t ∈ ker(A).
Por lo tanto, existen
di , 1 ≤ i ≤ t
tales que
c1 w1 + · · · + cn−t wn−t = d1 u1 + · · · + dt ut .
B forman una base de Rn , por lo tanto debe ser ci = 0 para todo 1 ≤ i ≤ n−t,
y concluimos que los vectores Aw1 , . . . , Awn−t son linealmente independientes.
□


1 0 −2 1

0 2 −1 −2,
Ejemplo 1.24. Dada la matriz A =
2 1 1
1
Pero los vectores de
44
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
1. los conjuntos
im(A)
ker(A), ¾son subespacios de qué
im(A) y calcular dim(im(A)).
ker(A) y calcular dim(ker(A)).
y
2. hallar generadores de
3. hallar generadores de
espacios vectoriales?
4. vericar si se cumple el teorema de la dimensión.
Respuestas
1.
2.
im(A) ⊂ R3 y ker(A) ⊂ R4 .
im(A) = ⟨(1, 0, 2), (0, 2, 1), (−2, −1, 1), (1, −2, 1)⟩.
Para calcular la dimensión, triangula-
mos.
A = np.array([[1, 0, -2, 1], [0, 2, -1, -2], [2, 1, 1, 1]])
At = np.transpose(A)
print(At)
At_echelon = row_echelon(At)
print("Matriz A transpuesta escalonada:\n", At_echelon)
%% [[ 1 0 2]
%% [ 0 2 1]
%% [-2 -1 1]
%% [ 1 -2 1]]
%% Matriz A transpuesta escalonada:
%% [[1. 0. 2. ]
%% [0. 1. 0.5]
%% [0. 0. 1. ]
%% [0. 0. 0. ]]
dim(im(A)) = 3, porque quedan
sistema Ax = 0, triangulamos A:
Obtenemos que
3. Para resolver el
3 las no nulas.
A = np.array([[1, 0, -2, 1], [0, 2, -1, -2], [2, 1, 1, 1]])
A_echelon = row_echelon(A)
print("Matriz A escalonada:\n", A_echelon)
Matriz A escalonada:
[[ 1.
0. -2.
1. ]
[ 0.
1. -0.5 -1. ]
[ 0.
0.
1.
0. ]]
Obtenemos
x1 , x2
y
x3
x3 = 0, x2 − x4 = 0
x4 :
y
x1 + x4 = 0.
en función de
x1 = −x4
x2 = x4
x3 = 0
Podemos despejar todas las variables
7. ESPACIOS AFINES
Luego, las soluciones del sistema son
x4 ∈ R}.
45
{(−x4 , x4 , 0, x4 ) : x4 ∈ R} = {x4 (−1, 1, 0, 1) :
Obtenemos
ker(A) = ⟨(−1, 1, 0, 1)⟩
dim(ker(A)) = 1.
En Python podemos calcular una base del núcleo de una matriz con el comando
null_space del paquete scipy.linalg. Para calcular una solución particular usamos
y
eliminación gaussiana.
4. Tenemos
dim(ker(A)) + dim(im(A)) = 1 + 3 = 4,
se cumple el teorema.
7. Espacios anes
Dada
A ∈ Km×n ,
ya vimos que las soluciones de un sistema homogéneo de ecuaciones
Ax = 0
forman un subespacio de
Kn .
Veamos qué pasa para un sistema no-homogéneo
Ax = b,
con
b ∈ Kn .
Ejemplo 1.25. Resolvemos el siguiente sistema de ecuaciones:


 5x1 + 3x2 = 11
15x1 + 9x2 = 33

20x + 12x = 44
1
2
Construimos la matriz ampliada

5 3 11
 15 9 33 
20 12 44

y escalonamos usando
Python.
A = np.array([[5,3,11],[15,9,33],[20,12,44]])
print(row_echelon(A))
%% [[1.
%% [0.
%% [0.
0.6 2.2]
0. 0. ]
0. 0. ]]
Vemos que se eliminaron las últimas dos ecuaciones, y nos queda solo una ecuación:
x1 + 0.6x2 = 2.2
de donde podemos despejar
x1 = 2.2 − 0.6x2 .
46
1. NOCIONES BÁSICAS DE ÁLGEBRA LINEAL
Podemos entonces escribir el conjunto de soluciones en función de
x2 :
S = {(2.2 − 0.6x2 , x2 ) : x2 ∈ R}
= {(2.2, 0) + (−0.6x2 , x2 ) : x2 ∈ R}
= {(2.2, 0) + (−0.6, 1)x2 : x2 ∈ R}
Esto no es un subespacio de
R2
(por ejemplo,
(0, 0) ̸∈ S ),
pero es un subespacio corrido: el
conjunto
{(−0.6, 1)x2 : x2 ∈ R} = ⟨(−0.6, 1)⟩,
es un subespacio de
punto de
⟨(−0.6, 1)⟩,
R2
y los puntos de
S
se obtienen sumandole el vector
(2.2, 0) a cualquier
es decir,
S = (2.2, 0) + ⟨(−0.6, 1)⟩
Estos conjuntos se llaman
espacios lineales anes, se obtienen trasladando un subespacio
vectorial en la dirección de un vector del espacio. El espacio vectorial podría estar generado por
varios vectores, es decir, puede tener cualquier dimensión.
Observamos:
(2.2, 0)
es una solución del sistema no-homogéneo
El subespacio
⟨(−0.6, 1)⟩
Ax = b.
es el conjunto de soluciones del sistema homogéneo
Ax = 0.
y esto vale en general:
Proposición 1.16. Dado el sistema
Ax = b,
si
x̃
es una solución particular del sistema, el
conjunto de todas las soluciones del sistema es
S = {x̃ + v : v
una solución cualquiera del sistema homogéneo
Ax = 0}.
Idea de la demostración: si x, y son soluciones del sistema no homogéneo, entonces
Ax − Ay = b − b = 0,
Por lo tanto
z =x−y
es solución del sistema homogéneo y
x = y + z.
Ejemplo 1.26. Resolver el sistema de ecuaciones
3x + 2y + 6z = 12
x − 3y + z = 10.
En
Python podemos calcular una base del núcleo de una matriz con el comando null_space
scipy.linalg. Para calcular una solución particular usamos eliminación gaussia-
del paquete
na.
import scipy.linalg
A = np.array([[3, 2, 6],[1, -2, 1]])
print("Núcleo de A: \n", scipy.linalg.null_space(A))
7. ESPACIOS AFINES
47
Núcleo de A:
[[-0.85359507]
[-0.18291323]
[ 0.48776861]]
b = np.array([12, 10])
Ab = np.c_[A,b]
print("Matriz ampliada escalonada: \n", row_echelon(Ab))
%% Matriz ampliada escalonada:
%% [[ 1.
0.66666667 2.
%% [ 0.
1.
0.375
Obtenemos las ecuaciones
y tomando
z=1
obtenemos la
4.
-2.25
]
]]
x + 2/3y + 2z = 4
y + 0.375z = −2.25,
solución (x, y, z) = (3.75, −2.625, 1).
Concluimos que el conjunto de soluciones es
S = (3.75, −2.625, 1) + ⟨(−0.8535951, −0.1829132, 0.4877686)⟩.
Capítulo 2
Números de Máquina y Número de Condición
1. Cuestiones previas
En el
álgebra lineal computacional (o en el análisis numérico en general) interesan no solo los
conabilidad y su costo computacional. La primera cuestión aparece porque
algoritmos sino su
en la práctica no es posible en general trabajar con precisión innita (lo que hace imprescindible
el estudio de los errores numéricos y su propagación). La segunda cuestión tiene que ver con
el número de operaciones involucradas en el algoritmo (
1
complejidad del algoritmo )
cuestión que
impacta en el tiempo de ejecución .
Comenzamos entonces deniendo de manera informal los números de máquina.
Los números de máquina, son los que la máquina puede representar de forma exacta.
Notemos que -por su propia denición- podemos sospechar que los números de máquina son
nitos y en consecuencia la
mayoría
de los números reales no podrán almacenarse sin cometer
errores. Vamos a tratar de precisar este punto en lo que sigue. Vamos a asumir que trabajaremos
con número reales o complejos, sin embargo como para almacenar un número complejo basta
almacenar su parte real e imaginaria podemos enfocarnos en el caso real.
Consideremos un número cualquiera, por ejemplo
en base 10 lo que signica que estamos pensando a
x
x = 125.4.
Estamos habituados a trabajar
en la forma
x = 1 102 + 2 101 + 5 100 + 4 10−1 .
Para número real (positivo) diferente, la escritura
b̃k b̃k−1 ...b̃0 .b̃−1 b̃−2 ...
con
0 ≤ b̃i ≤ 9
y
b̃k ̸= 0,
la asociamos con
x=
k
X
b̃i 10i .
−∞
La escritura hecha de este modo es única, salvo desarrollos periódicos del número
9
como ocurre
en el caso
0.999... = 1,
en el que el mismo número, en este caso
contexto, el número
10
x = 1,
puede escribirse de dos modos distintos. En este
se denomina la base y los
1
b̃i
los dígitos del desarrollo.
Otras consideraciones son posibles: por ejemplo si puede o no paralelizarse.
49
50
2. NÚMEROS DE MÁQUINA Y NÚMERO DE CONDICIÓN
2. Bases generales*
En general todo número
2
x ∈ R x ̸= 0,
puede representarse en una base
b ∈ N, b ≥ 2,
de la
forma
(x)b = sg(x)b̃k b̃k−1 ...b̃0 .b̃−1 b̃−2 ...
(2.1)
donde los dígitos verican
0 ≤ b̃i ≤ b−1, sg(x) el signo de x y donde por convención numeramos
b̃0 y b̃−1 .
los índices para que el punto -o coma- se ubique entre
Asumamos que
de la escritura de
x
x
es positivo para no lidiar con el signo. La representación (2.1) se obtiene
como
x = b̃k bk + b̃k−1 bk−1 + ... + b̃0 b0 + b̃−1 b−1 + b̃−2 b−2 + ...
que es única si descartamos los desarrollos innitos de la forma
l∈Z
b̃j = b − 1
para todo
j≤l
con
jo.
Para aclarar este punto recordemos la expresión cerrada de la geométrica
m
X
βj =
j=0
válida para
β ̸= 1.
β m+1 − 1
,
β−1
Notemos que en caso de tener un
l
X
x=
x
con un desarrollo de la forma
(b − 1)bi ,
i=−∞
podemos reescribirlo como
l
x = (b − 1)b
0
X
!
i
b
= (b − 1)bl
i=−∞
b
= bl+1 ,
b−1
lo que indica dos representaciones alternativas para el mismo
x.
Como ejemplo si
l=0
tenemos
10 = (x)b = (b − 1).(b − 1)(b − 1)(b − 1) · · ·
su
Continuemos asumiendo que x > 0. El uso del punto jo en (2.1) determina la división entre
parte entera 3 [x] ∈ Z y la diferencia 0 ≤ x − [x] < 1. En efecto, por un lado, para todo m ∈ N
m
X
b̃i bi ∈ Z
0
y
0≤
−1
X
b̃i bi <
−∞
−1
X
b̃i (b − 1) = (b − 1)
−∞
1
= 1.
b−1
Por otro lado, esta representación tradicional no da una idea rápida del orden de magnitud de un
número. Por esta razón se suele trabajar con una versión
justo a la izquierda de
b̃k
(i.e. el primer dígito no nulo de
normalizada
x).
Así, un
eligiendo ubicar el punto
0 ̸= x ∈ R,
(renombramos los dígitos eliminando el tilde y los índices)
2
(x)b
3
se lee
x
en la base
La parte entera de
x,
b.
denotada
[x]
se dene como el mayor entero menor o igual a
x.
puede escribirse
3. NÚMEROS DE MÁQUINA
(x)b = sg(x) 0.b0 b1 b2 ... be
(2.2)
donde, como antes,
que
51
b0 ̸= 0,
0 ≤ bi ≤ b−1 y e ∈ Z. Una vez más, esta representación es única si asumimos
bi = b − 1 para i ≤ l, bi+1 < b − 1 convenimos en tomar
y que en el caso
(x)b = sg(x) 0.b0 b1 ...(bi−1 + 1) be+1 .
0.b0 b1 b2 ...
be < x ≤ be+1 .
Suele llamarse notación cientíca normalizada a la escritura (2.2). La expresión
llama
mantisa
y
e exponente.
Con esta normalización se ve a simple vista que
se
Observemos que el exponente es un entero que admite asimismo una representación en la
misma base
b
donde una vez mas
cl ̸= 0
y
e = sg(e) cl cl−1 ...c0
P
e = sg(e) l0 ci bi .
3. Números de Máquina
En una máquina, la memoria dedicada para el almacenamiento de los números es limitada
dedicando cierta cantidad de dígitos, digamos
E ≥ 1,
m ≥ 1, para la mantisa y cierta cantidad, digamos
para el exponente. Los números que pueden representarse de forma exacta con esas
limitaciones se denominan
números de máquina.
La cantidad de números de máquina es obviamente nita. De hecho podemos calcular fácil-
b0 ̸= 0 tenemos b − 1 posibilidades para la elección del b0 , y
b posibilidades para cada uno de los restantes bi , 1 ≤ i ≤ m−1. La cantidad diferente de mantisas
m−1 (para el número cero se utiliza un símbolo especial). Análogamente hay
es entonces (b − 1)b
bE distintos exponentes. Considerando los respectivos signos de la mantisa y el exponente, habrá
4(b − 1)bm+E−1 diferentes números de máquina.
mente su cantidad: considerando que
El mayor exponente para una máquina dada es el número
Emax =
E−1
X
(b − 1)bj =
j=0
bE − 1
(b − 1) = bE − 1
b−1
y la mayor mantisa
Mmax =
m
X
−j
(b − 1)b
j=1
m−1
(b − 1) X −j
(b − 1) (b−m − 1)b
b =
= 1 − b−m ,
=
b
b
1−b
j=0
lo que da
E
Emax
Mmax
= 1 − b−m bb −1 ,
como mayor número de máquina (análogamente se obtiene el menor como
Cualquier número mayor a
Emax
Mmax
producirá un desborde
−Emax −1 . Todo número
de máquina es obviamente b
debajo
underow.
Emax ).
−Mmax
overow. El menor
x, 0 < x <
número
positivo
b−Emax −1 genera un desborde por
52
2. NÚMEROS DE MÁQUINA Y NÚMERO DE CONDICIÓN
Figura 1. Algunos números positivos de máquina con
b = 2 y m = 4. Notar que
2, y que
los números son equiespaciados únicamente entre potencias sucesivas de
la cantidad de números de máquina en esos rangos se mantiene constante.
Escalas de los números de máquina: En las máquinas que utilizamos habitualmente
b = 2 y m = 52 y E = 10. Esto es, se trabaja en base 2 y se utilizan 64 bits para almacenar
doble precisión a).
un número (esta formato se denomina
binario (admite solo dos caracteres:
El término
bit
signica dígito
0 y 1). De los 64 bits disponibles, dos se reservan para
los signos de la mantisa y el exponente.
En este caso, considerando que
210 = 1024 ∼ 103 :
10 −1
Emax
= (1 − 2−52 )22
Mmax
∼ 21000 ∼ (210 )100 ∼ 10300 .
10300 sin overow.
−Emax −1 ) con
para b
Esta máquina puede trabajar con números del orden de
En la escala
pequeña puede trabajar (haciendo una cuenta similar
números del
orden
10−300 .
Estas cantidades son razonables para describir las mayoría de las magnitu-
des que aparecen en las disciplinas cientícas. Notemos que la mayor y menor escala se
deciden básicamente en términos del tamaño del exponente y
no del tamaño de la mantisa.
Aumentar los bits de la mantisa no mejora las escalas (i.e. no aumenta el rango de valores
extremales de nuestra máquina).
aEn precisión simple
Si un número
x∈R
para representarlo (
real
x
se usan 32 bits, con
E=7
y
m = 23.
no es de máquina, se puede elegir el número de máquina mas cercano
redondeo ) o, por ejemplo, el inmediato inferior (truncado ). Dado un número
denominamos
f l(x)
al número de máquina elegido para representarlo. Se utiliza
indicar que estamos trabajando en
punto otante.
fl
para
El hecho de mover el punto de acuerdo a
(2.2) acarrea una consecuencia muy importante a la hora de truncar o redondear el número y es
la de mantener uniforme el
error relativo
a la hora de almacenar
x
a lo largo de todas la escalas.
Esta idea es central y no podría lograrse eligiendo números de máquina equiespaciados.
Errores Relativos y Absolutos En una magnitud escalar xv , el error absoluto se dene
como
donde
xa
es el valor aproximado de
eabs = |xa − xv |,
xv . En general (y
en el error relativo
erel =
para
xv ̸= 0)
estaremos interesados
|xa − xv |
,
|xv |
es decir en el tamaño del error absoluto respecto del tamaño del valor exacto
magnitudes vectoriales o matriciales reemplazamos el módulo por una norma.
xv .
Para
3. NÚMEROS DE MÁQUINA
Distribución de los números de máquina:
53
Los números de máquina no se distri-
buyen de manera uniforme. Describamos dos números de máquina consecutivos
asumiendo, para simplicar, que
0 < x1
x1 < x2
y que se escribe:
(x1 )b = 0.b0 b1 b2 ...bm−1 be .
Un momento de reexión nos dice que el próximo número de máquina (salvo que haya
overow) será
(x2 )b = 0.b0 b1 b2 ...(bm−1 + 1) be
salvo que
bm−1 = b − 1
en cuyo caso
(x2 )b = 0.b0 b1 b2 ...(bm−2 + 1)0 be
salvo que también
bm−2 = b − 1 en cuyo caso habrá que repetir
bi = b − 1 para todo 0 ≤ i ≤ m − 1
el argumento y eventual-
mente -en caso de que
(x2 )b = 0.1be+1 .
En cualquier caso observamos que
x2 − x1 = b−m be
no es constante
al variar el exponente
e,
pero sí lo es para cada exponente jo dado.
La consecuencia mas notable de la distribución de los números de máquina es que si
y existen
x1 < x 2
números de máquina tales que
x1 ≤ x ≤ x2
(i.e.
x
x ∈ R,
esta dentro de las escalas
manejadas por la máquina) entonces
1
|x − f lredond (x)| ≤ be−m
2
|x − f ltrunc (x)| ≤ be−m
para los casos de redondeo y truncado respectivamente.
Error relativo y precisión de la máquina: Nos concentraremos en el caso de redondeo,
por lo que asumiremos de aquí en mas que
al almacenar un número
x ̸= 0.
f l = f lredond . Queremos acotar el error relativo
Observando que
be−1 = |0.1 be | ≤ |x|,
resulta
|
x − f l(x)
1
| ≤ b1−m .
x
2
Notar que el error relativo depende
m = 52
del tamaño de la mantisa. En el caso de base b = 2 y
mencionado antes resulta:
|
x − f l(x)
| ≤ 2−52 ∼ 10−16 .
x
este número, propio de cada máquina, se denomina: precisión de la máquina o épsilon de
la máquina y se denota con
ε.
En el caso del ejemplo, en terminos simples, dice que nuestra máquina almacena 16 dígitos
exactos (en base 10). Naturalemente sería ideal conservar esta precisión a lo largo de las
operaciones que debamos realizar a partir de
es posible en general.
f l(x). Eso, como veremos a continuación, no
54
2. NÚMEROS DE MÁQUINA Y NÚMERO DE CONDICIÓN
Como acabamos de ver, en general ocurre que
x ̸= f l(x)4. . Sin embargo podemos garantizar
que la diferencia verica
x − f l(x) = µx x,
con
|x − f l(x)|
= |µx | ≤ ε.
|x|
Veamos entonces que ocurre con estos errores al efectuar alguna operación sencilla como por
ejemplo sumar. Vamos a distinguir la operación realizada por la máquina con el símbolo
Pretendemos calcular
x + y,
⊕.
de modo simplicado la máquina realiza las siguientes operacio-
nes: primero
x → f l(x)
luego suma
f l(x) + f l(y)
y → f l(y)
y nalmente almacena el resultado
f l(x) + f l(y) → f l(f l(x) + f l(y)).
Cómo se comportará el error resultante?. Por una lado tenemos:
f l(x) = x(1 + µx ),
f l(y) = y(1 + µy y),
por lo que
f l(f l(x) + f l(y)) = (f l(x) + f l(y))(1 + µz )
y en denitiva
x ⊕ y = f l(f l(x) + f l(y)) = (x(1 + µx ) + y(1 + µy y))(1 + µz ).
Vemos entonces que
si 0 < x, y
es posible acotar
|x ⊕ y − (x + y)| ≤ (x + y)2µ + O(ε2 )
con
|µ| ≤ ε. Es decir que hemos de algún modo preservado el tamaño del error relativo5 Como es
bien sabido, eso no es posible si
restamos números similares6. Un ejemplo elemental es el siguiente:
b = 10, m = 4, la precisión es ε = 21 10−3 = 0.0005. Si x = 125, 49 e y = 125, 31 tenemos
respectivamente x − y = 0.18 x ⊖ y = 0.2 por lo que el error relativo es
x−y−x⊖y
0.02
|
|=
∼ 0.11,
x−y
0.18
tomemos
es decir que a pesar de que
ε ∼ 10−3
el error en la cuenta anterior es del
11 %.
El ejemplo
anterior muestra que en una simple operación podemos perder dígitos signicativos (de hecho
nuestra máquina no ha acertado ningún dígito de la solución). Como regla general deben evitarse
restas de números similares
7
para evitar la denominada
Es fácil construir ejemplos de números de máquina
sino que, por ejemplo,
x ⊕ y = y.
cancelación catastróca.
0 < x < y en los cuales no solo x+y ̸= x⊕y
En particular es fácil ver que
(2.3)
1 ⊕ ε > 1,
y
1 ⊕ ε/2 = 1
4
1
Notemos que incluso números muy sencillos como 10 no son de máquina y la introducción de un error de
redondeo es inevitable. Evalúe en Python la expresión 0.1 + 0.1 + 0.1! = 0.3, qué obtiene?.
5
Cuando los errores se acumulan de forma aditiva, como en este caso, estamos en un buen escenario porque
harían falta una enorme cantidad de operaciones para deteriorar el error inicial.
6
Verique que la cuenta anterior no puede repetirse si los signos de
7
Ver la guía de ejercicios para mas ejemplos
x
e
y
dieren.
4. CONDICIÓN Y ESTABILIDAD
lo que da una posible denición alternativa del
ϵ
55
como el menor número de máquina con la
propiedad (2.3). Otras cuestión que aparece entonces en la aritmética de la máquina es la pérdida
de la propiedad asociativa, ya que usando los comentarios previos vemos que por ejemplo
(1 ⊕ ε/2) ⊕ ε/2 = 1 ̸= 1 ⊕ (ε/2 + ε/2).
Hay diversas fuentes de errores computacionales que pueden estropear completamente el
resultado de los algoritmos. En este sentido hay dos conceptos que nombraremos tangencialmente
ya que no son objeto central de este curso: la
condición
y la
estabilidad.
4. Condición y Estabilidad
De manera muy general, un
problema bien condicionado
es aquél que reacciona benignamen-
te con los errores en los datos. Es decir, que sus soluciones no varían demasiado al no variar
demasiado los datos. Por el contrario, si un problema está muy mal condicionado, no lograremos
resolverlo con mucha precisión aunque limitemos los errores en los datos (salvo que trabajemos
con precisión innita). La noción de condición es algo
intrínseco del problema
y está mas allá
de nuestro algoritmo de resolución. Por otra parte, cuando los problemas están bien condicionados tenemos esperanza de resolverlos con precisión siempre que nuestro algoritmo no incremente
desproporcionadamente los errores inherentes a los datos. En este caso hablaramos de
estables
algoritmos inestables
entonces es algo intrínseco del algoritmo.
y por el contrario, de
algoritmos
si no cumplen con este criterio. La estabilidad
Es posible dar una expresión precisa para la noción de condición, a través del llamado
número de condición. Consideremos el problema de evaluar una función en el valor x0 ̸= 0.
Si por alguna razón (error de medición o redondeo) modicamos el dato a evaluar
una cierta magnitud pequeña
h
x0
en un
entonces el error relativo que cometeremos es (asumiendo
que la función es de continuamente diferenciable)
para cierto
η
intermedio
hf ′ (η)
f (x0 + h) − f (x0 )
=
,
f (x0 )
f (x0 )
entre x0 y x0 + h. Esto indica que
hf ′ (η)
x0 f ′ (x0 ) h
∼
f (x0 )
f (x0 ) x0
el error relativo en los datos
llamado el
vemos que
para
h∼0
h
x0 se magnica en nuestro problema en un factor
|x0 ||f ′ (x0 )|
,
|f (x0 )|
número de condición de evaluar f en x0 . Siguiendo un razonamiento similar
n
m puede denirse el número de condición de este
para la versión f : R → R
a
problema de la forma
aUn
ejemplo concreto y elemental de mal condicionamiento es, como hemos visto, la resta de números
f : R2 → R, f (x, y) = x − y , se tiene Df (x0 , y0 ) = (1, −1), ∥(1, −1)∥∞ = 2,
∥∥Df (x0 )∥
1
∥(x0 , y0 )∥∞ = max{|x0 |, |y0 |}, luego ∥x0∥f
∼ ∥x0 −y
.
(x0 )∥
0∥
similares: si escribimos
56
2. NÚMEROS DE MÁQUINA Y NÚMERO DE CONDICIÓN
Como ejemplo de lo anterior si queremos evaluar
el número de condición
tg(x)
en un
x0 < π/2, x0 ∼ π/2
vemos que
x0
,
sen(x0 )cos(x0 )
cumple que
lı́m
x0 →π/2−
En particular si elegimos
x0
tal que
signicativo en nuestro cálculo de
x0
= +∞.
sen(x0 )cos(x0 )
x0
sen(x0 )cos(x0 )
∼ 1016
no esperamos tener ningún dígito
tg(x0 ).
En los años 50, Wilkinson experimentaba con las primeras computadoras y rápidamente
8
comenzó a observar fenomenos de inestabilidades y mal condicionamiento . Una cosa que notó,
al probar un algoritmo de aproximación de raices, es que si al polinomio
p(x) =
20
Y
(x − i)
i=1
210 ) en 2−23 las raíces mayores
a 7 sufren considerables modicaciones. En particular las raices 10, 11, . . . 19 se transforman en
5 pares complejos conjugados. Las 18 y 19 en complejos de la forma 19.5 · · · ± 19.5 . . . i, es decir
−23 genera variaciones de orden 1. 9 Mostrando que el problema
que una perturbación de orden 2
19 (cuyo valor es
se le perturba el coeciente que acompaña a x
de calcular raices está muy mal condicionado.
Ejemplos de algoritmos inestables abundan. La inestabilidad es muy frecuente y se hace notar muy rápidamente porque los resultados obtenidos dieren notoriamente de lo esperado. Los
casos mas extremos aparecen en procesos que deben iterarse en los cuales el error se acumula exponencialmente en vez de aditivamente. Sin embargo hay casos muy simples que pueden
ejemplicarse.
Mas arriba vimos que restar números similares es un problema mal condicionado y por eso
debe evitarse o tratarse con cautela.
Supongamos que queremos evaluar
e−12 . Usando lo explicado mas arriba, podemos ver que se
trata de un problema bien condicionado. Si utilizamos un algoritmo basado en la serie convergente
e−x = 1 − x +
para una evaluación directa en
x = −12
1 2
1
x − x3 · · ·
2!
3!
obtenemos, sumando los primeros 50 términos de la
serie:
e−12 ∼ 6.144189436702122 · 10−6 .
12 sumando los primeros 50 terminos
Si por otro lado modicamos el algoritmo calculado primero e
de la serie
ex = 1 + x +
y luego invirtiendo
1/e12
1 2
1
x + x3 · · ·
2!
3!
obtenemos
e−12 ∼ 6.144212353328213 · 10−6 .
8
En sus propias palabras: The cosy relationship that mathematics enjoyed with polynomials suered a severe
setback in the early ties where electronic computers came into general use. Speaking for myself I regard it as
7
the most traumatic experience in my carrer as a numerical analyst [ ]
9
A pesar de esto, se puede probar que las raíces dependen de forma continua respecto de los coecientes.
4. CONDICIÓN Y ESTABILIDAD
Figura 2. Grácos de
57
p(x)
La pregunta es a priori, cuál de las dos respuestas es mas conable. Sin duda el segundo método
es mas estable. La razón es que en el cómputo de la serie alternada, muchos terminos grandes
deben cancelarse mágicamente para producir el resultado pequeño
e−12 .
Los errores relativos
pequeños son proporcionalmente grandes en términos del resultado nal. De hecho
e−12 ∼ 6.1442123533282097586823081788055323112239893148882529755... · 10−6
es decir que solo obtuvimos
4
dígitos correctos con nuestro primero algoritmo pero
14
con el
segundo. El segundo método es mucho mas estable que el primero. Puede probar los calculos
previos con el algoritmo:
import numpy as np
import math
v=np.arange(0,50)
resulI=0.0
resulE=0.0
for i in v:
resulI=resulI+1/math.factorial(i)*(-12.0)**i
resulE=resulE+1/math.factorial(i)*(12.0)**i
resulE=1/resulE
print(resulInes)
print(resulEs)
Los problemas que emergen debido a la precisión limitada de las máquinas dan lugar a muchos
comportamientos inesperados. El ejemplo que damos a continuación, debido a Cleve Moler,
es particularmente sencillo y sigue las consideraciones del ejemplo previo. Queremos evaluar
p(x) = (x − 1)7 para posteriormente gracarlo. En
7
cerrada (x − 1) y en el segundo método la expresión
el primer algoritmo usamos la expresión
equivalente
p(x) = x7 − 7x6 + 21x5 − 35x4 + 35x3 − 21x2 + 7x − 1.
En la Figura 2 a la izquierda vemos ambos grácos perfectamente superpuestos (azul para el
primer método tapado por el rojo del segundo método). Sin embargo en la misma gura a la
derecha se muestra un zoom cerca de la raíz del polinomio.
58
2. NÚMEROS DE MÁQUINA Y NÚMERO DE CONDICIÓN
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,2,200)
plt.plot(x,x**7-7*x**6+21*x**5-35*x**4+35*x**3-21*x**2+7*x-1,’b’, x,(
x-1)**7,’r’)
plt.show()
# Sin embargo a la derecha vemos el resultado de samplear en una
#escala mas fina alrededor de la raíz
x=np.linspace(0.988,1.012,10000)
plt.plot(x,x**7-7*x**6+21*x**5-35*x**4+35*x**3-21*x**2+7*x-1,’b’, x,(
x-1)**7,’r’)
plt.show()
Las nociones de condición y estabilidad que hemos comentado de modo supercial son temas
transversales a toda el área del análisis numérico. Como nos restringiremos a cuestiones de álgebra
lineal solo hemos pretendido dar una idea somera de sus implicaciones generales. En el capítulo
siguiente retomaremos la cuestión de la condición en el ámbito matricial.
Capítulo 3
Normas y Producto Interno
1. Normas en
La distancia del punto
(x, y) ∈ R2
Kn
al origen puede calcularse por el teorema de Pitágoras
z=
p
x2 + y 2 .
Generalizando esa fórmula a espacios de cualquier dimensión, denimos una norma vectorial:
∥v∥2 =
q
v12 + · · · + vn2 ,
Esta norma suele llamarse norma-2 o norma euclídea. Esta norma, a su vez, puede escribirse
equivalentemente como
∥v∥2 =
p
|v1 |2 + · · · + |vn |2 ,
lo cual nos da una expresión aplicable a los complejos.
Definición 3.1. Una norma de un
K -espacio
vectorial es una función
∥ · ∥ : V → R≥0
que cumple las siguientes propiedades:
1.
2.
3.
∥av∥ = |a|∥v∥, para a ∈ K y v ∈ V .
Si ∥v∥ = 0, entonces v = 0.
∥u + v∥ ≤ ∥u∥ + ∥v∥, para todo u, v ∈ V
(desigualdad triangular)
Es fácil ver que la norma-2 cumple las primeras dos propiedades. La tercera propiedad puede
probarse usando la siguiente desigualdad clásica.
Proposición 3.1 (Desigualdad de Cauchy-Schwarz). Dados
n
X
u, v ∈ Kn ,
ui vi ≤ ∥u∥2 ∥v∥2 .
i=1
Demostración. Asumamos primero que
grado 2 en la variable
K = R.
Consideremos el siguiente polinomio de
x
2
2
p(x) = (u1 x + v1 ) + · · · + (un x + vn ) =
n
X
!
u2i
2
x +2
i=1
Como
p
n
X
i=1
ui vi
x+
n
X
vi2 .
i=1
p(x) ≥ 0 para todo x ∈ R tiene o bien un raiz real doble
p(x) = ax2 + bx + c vemos que debe ser entonces b2 − 4ac ≤ 0.
es una suma de cuadrados,
o raíces complejas. Escribiendo
Es decir,
!2
4
!
X
i
ui vi
!
−4
X
i
59
u2i
!
X
i
vi2
≤ 0,
60
3. NORMAS Y PRODUCTO INTERNO
y eliminando el factor 4 y despejando, obtenemos la desigualdad buscada.
Si
K=C
1
notamos, por la desigualdad triangular en los complejos
X
ui vi ≤
i
X
X
|ui ||vi | =
i
|ui ||vi |,
i
y la desigualdad sale ahora usando el caso real con los vectores
(|u1 |, · · · , |un |),(|v1 |, · · · , |vn |). □
Observación 3.1. Notar que la desigualdad de Cauchy-Schwarz vale también tomando a la
izquierda
P
i ui vi , puesto que
P
i ui vi
=
P
i ui vi y el módulo de un complejo es igual al de su
conjugado.
Corolario 3.1. Para todo
u, v ∈ Kn
Demostración. La hacemos en
∥u +
v∥22
=
∥u + v∥2 ≤ ∥u∥2 + ∥v∥2 .
vale,
C
n
X
y en
R
sale como caso particular.
2
|ui + vi | =
i=1
=
n
X
ui ui +
i=1
n
X
(ui + vi )(ui + vi )
i=1
n
n
n
X
X
X
(ui vi + vi ui ) +
vi vi = ∥u∥22 +
(ui vi + vi ui ) + ∥v∥22 ,
i=1
i=1
i=1
los términos entre paréntesis son reales (un número complejo -eventualmente complejo- mas su
conjugado), luego
n
n
n
n
X
X
X
X
(ui vi + vi ui ) ≤
(ui vi + vi ui ) ≤
ui vi +
vi ui ≤ 2∥u∥2 ∥v∥2 ,
i=1
i=1
i=1
i=1
donde hemos usado Cauchy-Schwarz en la última desigualdad. Luego, se tiene
∥u + v∥22 ≤ ∥u∥2 + ∥v∥2 + 2∥u∥2 ∥v∥2 = (∥u∥2 + ∥v∥2 )2 ,
□
lo que termina la demostración tomando raíz cuadrada
Como generalización de la norma−2, están las normas−p, denidas también en
Kn :
Norma−1:
∥v∥1 = |v1 | + · · · + |vn |
∥v∥∞ = máx{|v1 |, . . . , |vn |}
p
p 1/p
Norma−p: ∥v∥p = (|v1 | + · · · + |vn | )
Norma-innito:
En el siguiente gráco podemos ver la diferencia entre las 3 normas más usuales en
R2 .
En
cada gráco están representados todos los puntos con norma igual a 1 bajo la norma respectiva.
1
Si escribimos
z1 = a1 + ib1 , z2 = a2 + ib2 ∈ C,
|z1 + z2 | ≤ |z1 | + |z2 | sí
q
2
q
2
2
2
2
2
2
(a1 + a2 ) + (b1 + b2 ) ≤
a1 + b1 + a2 + b2 ,
resulta
desarrollar el cuadrado y ver que eso ocurre sí y solo sí
0 ≤ (a1 b2 − a2 b1 )2
y solo sí
que obviamente siempre es válido.
1. NORMAS EN
Kn
61
Figura 1. Círculos de radio 1 en diferentes normas. Es decir
v ∈ R2
tales que
∥v∥ = 1.
Figura 2. Curvas de nivel de diferentes normas−p.
2
En la siguiente gura observamos distintas curvas de nivel
para distintas normas.
Ejercicio 3.1. Examinando los grácos de las curvas de nivel de las normas−p se puede intuir
que
lı́mp→+∞ ∥v∥p = ∥v∥∞ .
De una demostración de este hecho.
Para nosotros va a ser relevante medir
que dados
u, v ∈ Rn ∥u − v∥2
errores
en espacios vectoriales, para ello recordemos
da la distancia entre ellos. En ocasiones, sin embargo, vamos
a notar que es mas sencillo trabajar con una norma diferente a la norma-2, por lo que resulta
natural ver que relación hay entre las diferentes normas-p. Puede probarse muy fácilmente lo
siguiente.
Ejercicio 3.2. Vericar que para todo
1.
2.
3.
2
x ∈ Kn
√
∥x∥2 ≤ ∥x∥1 ≤ √n∥x∥2
∥x∥∞ ≤ ∥x∥2 ≤ n∥x∥∞
∥x∥∞ ≤ ∥x∥1 ≤ n∥x∥∞
Las curvas en las cuales la norma respectiva permanece constante.
62
3. NORMAS Y PRODUCTO INTERNO
Ese resultado es un caso particular de uno mucho mas general. Primero denamos
de normas.
Definición 3.2. Sean
∥·∥
y
∥ · ∥∗
dos normas en un
son equivalentes si existen dos constantes
0 < c, C
K-espacio
equivalencia
V . Decimos
x∈V
vectorial
tales que para todo
que
c∥x∥∗ ≤ ∥x∥ ≤ C∥x∥∗
Vale lo siguiente,
Proposición 3.2. En un
3
K-espacio
vectorial de dimensión nita todas la normas son equiva-
lentes .
Este resultado nos es útil en muchos contextos. Veamos primero la siguiente denición.
Definición 3.3. Decimos que una sucesión de vectores
∥·∥
a un vector
v
{vn }n∈N
converge bajo una norma
si
∥vn − v∥ → 0
cuando
n → ∞.
Como consecuencia de la Proposición 3.2, la convergencia en una norma cualquiera implica
la convergencia en todas las normas.
2. Producto Interno
Definición 3.4. Dados dos vectores
b
por la fórmula
u, v ∈ Kn
denimos
a el producto interno (canónico)
⟨u, v⟩ = u∗ v ∈ K,
es decir
⟨u, v⟩ = u1 v1 + u2 v2 + · · · + un vn =
n
X
ui vi .
i=1
aRecordemos que asociamos los vectores con las matrices columna.
bEn muchos casos se suele conjugar los coecientes del v en la sumatoria en vez de los de u en la denición
de
⟨u, v⟩. Para nuestros intereses no cambia en absoluto la denición utilizada que por lo demas coinciden
R.
sobre
Tenemos las siguientes propiedades inmediatas.
3
Las constantes que relacionan las normas dependen de la dimensión
n,
típicamente se deterioran si
n→∞
2. PRODUCTO INTERNO
Observación 3.2. Notar que para
1.
2.
3.
4.
5.
6.
aPuesto
x, y, z ∈ Kn , w ∈ Km a, b ∈ K, A ∈ Kn×m ,
63
resulta
⟨x, y⟩ = ⟨y, x⟩,
⟨x, ay + bz⟩ = a⟨x, y⟩ + b⟨x, z⟩, y ⟨ay + bz, x⟩ = a⟨y, x⟩ + b⟨z, x⟩.
⟨Aw, x⟩ = ⟨w, A∗ x⟩a
⟨ax, ay⟩ = aa⟨x, y⟩ = |a|2 ⟨x, y⟩.
Utilizando el producto interno, la norma-2 de un vector se puede denir
p
fórmula ∥v∥ =
⟨v, v⟩.
La desigualdad de Cauchy-Schwarz se escribe |⟨v, w⟩| ≤ ∥v∥2 ∥w∥2 ,
que
por la
⟨Aw, x⟩ = (Aw)∗ x = w∗ A∗ x = ⟨w, A∗ x⟩.
⟨x + y, x + y⟩ = ⟨x, x + y⟩ + ⟨y, x + y⟩ = ⟨x, x⟩ + ⟨x, y⟩ + ⟨y, x⟩ + ⟨y, y⟩ =
∥x∥2 + 2⟨x, y⟩ + ∥y∥2
Ejemplo 3.1.
x
x, y ∈ R2 , x ̸= 0 ̸= y , x = (a1 , a2 ), y = (b1 , b2 ). Podemos escribir x = ∥x∥ ∥x∥
x
y como
∥x∥ está en el círculo de radio 1 vemos que existe un único α, 0 ≤ α < 2π tal que
x
∥x∥ = (cos(α), sen(α)). Es decir, x = ∥x∥2 (cos(α), sen(α)). Análogamente, podemos escribir
y = ∥y∥2 (cos(β), sin(β)) y en particular4
Sean
⟨x, y⟩ = ∥x∥2 ∥y∥2 (cos(α) cos(β) + sen(α) sen(β)) = ∥v∥2 ∥w∥2 cos(α − β),
lo que dice que puede escribirse
cos(θ) =
(3.1)
con
θ
En
Rn
5
el ángulo
ángulo
entre
x
y
y.
ocurre lo mismo. Ya que
θ
entre
x
e
y
⟨x, y⟩
,
∥v∥2 ∥w∥2
−1 ≤
⟨x,y⟩
∥x∥∥y∥
≤ 1,
(ver (6) de la Observación 3.2) se dene el
a través de (3.1).
Las normas nos han permitido incorporar al
álgebra
(el espacio vectorial) el concepto de
distancia, que nos permitirá introducir la noción de convergencia y una forma de medir
errores. El producto escalar, por su parte, nos permite trabajar con ángulos. En particular
con la idea de perpendicularidad u ortogonalidad que resulta fundamental en el desarrollo
de algoritmos estables.
4
Recordar:
5
cos(α + β) = cos(α)cos(β) − sen(α)sen(β), sen(α + β) = sen(α)cos(β) + cos(α)sen(β).
cos(µ) = cos(2π − µ) siempre puede elegirse 0 ≤ θ < π .
Considerando que
64
3. NORMAS Y PRODUCTO INTERNO
De (3.1) vemos que
θ = π/2
si y solo si
v ∗ w = 0,
de ahí la siguiente denición que la
extendemos a los complejos.
v, w ∈ Kn ,
Definición 3.5. Dados
v∗w
= ⟨v, w⟩ = 0.
no nulos. Decimos que son ortogonales sí y solo sí
En este caso también usaremos la notación
v ⊥ w.
{vi }1≤i≤k ⊂ Kn se dice ortogonal si ⟨vi , vj ⟩ =
1 ≤ i ≤ k decimos que el conjunto es ortonormal.
Definición 3.6. Una colección de vectores
δij . Si además
∥vi ∥2 = 1
para todo
Los conjuntos ortogonales tienen muchas propiedades que pueden explotarse, tanto teóricamente como en la práctica.
Veamos una de ellas de importancia fundamental. Sea
n
mal de K . Dado
w∈
{αi }1≤i≤n ⊂ K
a hallar los
B = {v}1≤i≤n ⊂ Kn una base ortonorw en la base B . Esto se reduce
Kn queremos conocer las coordenadas de
tales que
w=
(3.2)
n
X
αi vi ,
i=1
n × n.
que como sabemos implica resolver un sistema de
vemos que para cada
1≤j≤n
Sin embargo en este caso particular,
el producto escalar
vj∗ w =
(3.3)
n
X
αi vj∗ vi = αj ,
i=1
αi por el módico costo de un
Q ∈ Kn×n , que tiene por columnas
permite despejar
producto escalar
matricial, sea
los
vi .
6
Desde el punto de vista
Resulta que el problema anterior se
puede escribir de modo matricial

α1
.
.
.

w = Q


,
αn
y de la expresión de mas arriba vemos que


Q∗ w = 
α1
.
.
.


.
αn
Esto no expresa mas que el hecho de que invertir
Q
se reduce a conjugar (trasponer si
lo que a su vez es inmediato considerando que sus columnas son ortonomales
∗
[Q Q]ij =
vi∗ vj
=
7
K = R)
y así
δij .
Estas matrices tienen un nombre particular.
Q ∈ Kn×n se dice unitaria
K = R).
Definición 3.7. Una matriz
∗
si Q Q
=I
T
(Q Q
Observación 3.3.
6
Esto es
7
2n − 1
=I
Q
si
(suele llamarse
es unitaria (resp. ortogonal) si y solo si
operaciones,
n
n − 1 sumas.
n(2n − 1) ∼ O(2n2 )
Q∗
productos y
El costo total de resolver el sistema es
operaciones.
ortogonal cuando K = R)
es unitaria (resp. ortogonal).
2. PRODUCTO INTERNO
Figura 3. Proyección de
w
65
sobre la recta generada por
v.
ortogonal de un vector w sobre la
v ̸= 0 (ver Figura 3). Es decir, que buscamos un vector βv tal
w∗ v
∗
, es decir
equivale a (βv − w) v = 0, lo que indica que β =
∥v∥2
Estudiemos ahora el problema de calcular la proyección
recta generada por otro vector
que
(βv − w) ⊥ v ,
esto
2
β=
Si
∥v∥ = 1
v∗w
∥v∥22
la expresión coincide con la de los
.
α calculados en (3.3), lo que nos
Pv (w) a la proyección ortogonal
pretación alternativa de (3.2). Esto es, llamando
subespacio generado por
v,
da una interde
w
sobre el
vemos que
Pv (w) =
(3.4)
v∗w
v,
∥v∥22
y en particular (3.2) toma la forma
X
w=
Pvi (w).
1≤i≤n
De los argumentos previos vemos que
de un vector
w
en una base ortonormal, las proyecciones ortogonales
sobre los elementos de la base nos dan sus coordenadas en esa base. Eso
es justamente a lo que estamos acostumbrados en la base canónica.
Otro hecho de gran importancia es la generalización del teorema de Pitágoras en cualquier
dimensión si tenemos una base ortonormal. Esto es, de la expresión (3.2), tenemos que el cuadrado
de la longitud de
w
(el cuadrado de la hipotenusa) es, por un lado
∥w∥22 = w∗ w
y por el otro
n
n
n
n
n
n
n
X
X
X
X
X
X
X
∗
∗
∗
αi vi )(
αi vi ) =
αj αi vj vi =
αi αi =
|αi |2 ,
(
αi vi ) (
αi vi ) = (
i=1
i=1
i=1
i=1
i,j=1
i=1
i=1
es decir el cuadrado de la suma de las longitudes de las coordenadas (los catetos). Para resaltar
este hecho que usaremos en lo sucesivo, lo recuadramos,
66
3. NORMAS Y PRODUCTO INTERNO
Observación 3.4. En toda base ortonormal
w=
B = {v1 , · · · , vn },
n
X
si
αi vi ,
i=1
entonces
∥w∥2 =
n
X
|αi |2 .
i=1
Mas adelante volveremos sobre el tema de las proyecciones.
Para nalizar la sección de producto interno denimos
Definición 3.8. Una matriz
A∈
Si
Rn×n ,
A
A ∈ Kn×n
se dice
A ∈ Cn×n
simétrica.
se dice
Hermitiana
es Hermitiana, entonces, para todo
si
A = A∗ .
v ∈ Kn , v ∗ Av ∈ R.
En el caso de que
En efecto, por un lado,
debido a las dimensiones de los elementos que aparecen en el producto, se tiene
z = v ∗ Av ∈ K,
por otro lado puesto que
v ∗ Av = (v ∗ Av)∗ = v ∗ A∗ (v ∗ )∗ = v ∗ Av,
resulta de la primera y ultima expresión de la cadena de igualdades que
Definición 3.9. Una matriz
z = z,
es decir
z ∈ R.
A ∈ Cn×n (A ∈ Rn×n ) se dice denida positiva si es Hermi> 0 para todo v ̸= 0. Si por otro lado v ∗ Av ≥ 0 para
∗
tiana (simétrica) y además v Av
todo
v,
la matriz se dice
semi denida
positiva.
3. Normas de matrices
Dada una matriz
A ∈ Kn×m ,
se la puede pensar pensar como un vector de
Knm
y en
consecuencia se aplicaría a las matrices todo lo que hemos desarrollado para normas vectoriales.
8
Sin embargo, salvo casos excepcionales , esta normas no son de gran utilidad en el contexto de las
matrices. Esto es debido a que nos interesa estudiarlas desde la perspectiva de las trasformaciones
lineales asociadas. Por esta razón se introducen las normas subordinadas.
Dada una matriz
A ∈ Kn×m ,
y un par de normas vectoriales
∥ · ∥n , ∥ · ∥ m
en
Kn
y
Km
respectivamente, denimos
∥A∥n,m = máx m
0̸=x∈K
∥Ax∥n
=
máx
∥Ax∥n .
∥x∥m
x∈Km ,∥x∥m =1
Un caso usual en este curso es que la matriz sea cuadrada
sola norma vectorial
8
∥·∥
Como la norma de Frobenius que veremos mas adelante.
A ∈ Kn×m
y en ese caso usamos una
3. NORMAS DE MATRICES
∥A∥ = máx m
(3.5)
0̸=x∈K
Estas normas matriciales se dicen
zando en el espacio
Kn
67
∥Ax∥
=
máx
∥Ax∥.
∥x∥
x∈Km ,∥x∥=1
subordinadas
a la norma vectorial
∥·∥
que estamos utili-
. De su denición vemos que la norma (subordinada) de una matriz mide
x
en qué proporción puede aumentar como máximo la norma de un vector
al multiplicarlo por
A.
Ejercicio 3.3. Sea
A ∈ Kn×n
y
∥·∥
una norma en
Kn ,
entonces (3.5) dene una norma.
I ∈ Kn×n la identidad, entonces ∥I∥ = 1 para toda norma subordinada
n
(siempre que pensemos K con la misma norma vectorial como espacio de partida y llegada de
n
n
la transformación I : K → K ).
Ejercicio 3.4. Sea
También resulta inmediato de la denición que para todo
x
∥Ax∥ ≤ ∥A∥∥x∥.
(3.6)
De aquí se obtiene la siguiente propiedad. Para todo par de matrices
norma subordinada
9
A, B ∈ Kn×n ,
y toda
∥AB∥ ≤ ∥A∥∥B∥.
(3.7)
En efecto, dos aplicaciones sucesivas de (3.6) da
∥AB∥ = máx ∥ABx∥ ≤ máx ∥A∥∥Bx∥ ≤ máx ∥A∥∥B∥∥x∥ = ∥A∥∥B∥,
∥x∥=1
∥x∥=1
∥x∥=1
que prueba (3.7). Aplicando sucesivamente (3.7), vemos que para toda matriz cuadrada y para
k ∈ N,
todo
vale
10
∥Ak ∥ ≤ ∥A∥k .
(3.8)
En algunos pocos casos es posible calcular explícitamente la expresión de
n
Ejemplo 3.2. Consideremos en K la norma
∥ · ∥∞ .
∥A∥∞ = máx {
1≤i≤n
Para
n
X
A∈
∥A∥.
Kn×n se tiene11
|aij |}.
j=1
9
Como se desprende de la cuenta, también vale para matrices rectangulares, siempre que pueda hacerse el
producto
10
AB .
k < 0?. Por ejemplo, cuando A es invertible sabemos darle sentido a A−1 como
−1
−1
la inversa de A. Por lo tanto I = AA
de donde 1 ≤ ∥A∥∥A
∥ (hemos usado aquí el Ejercicio 3.4) y de ahí
−1
−1
∥A∥
≤ ∥A ∥. Es decir al revés que en (3.8). Piense que ocurre en general. Dena primero Ak con k < 0.
3
−3
−3
Como ayuda pregúntese que será por ejemplo A
?. Vea que puede pensarlo como A
:= A−1 , es decir
A−3 = A−1 A−1 A−1 . Pero otro lado A3 A−1 A−1 A−1 = I , lo que dice que la primera denición coincide con
(A3 )−1 . Use estas consideraciones para responder la pregunta.
Que ocurre si
11
k∈Z
con
También vale la demostración en el caso de matrices rectangulares.
68
3. NORMAS Y PRODUCTO INTERNO
K = R.
Demostración. Lo vemos para
∥A∥∞ =
Llamemos
k
Debemos calcular
máx
x∈Rn ,∥x∥∞ =1
∥Ax∥∞ .
a la la donde ser realiza el máximo, es decir
máx {
1≤i≤n
n
X
|aij |} =
j=1
n
X
|akj |,
j=1
Pn
j=1 |akj | > 0 de otro modo
z al vector de los signos de los elementos de esa la z =
= 0 tomamos sg(ak,1 ) = 0. Como la la no es nula, z ̸= 0.
(si hay más de una tomamos cualquiera). Podemos suponer que
el resultado es inmediato. Llamemos
(sg(ak,1 ), · · · , sg(ak,n ). Si algún ak,i
Luego ∥z∥∞ = máx1≤i≤n {|zi |} = 1, y
∥A∥∞ =
máx
x∈Rn ,∥x∥∞ =1
haciendo
∥Ax∥∞ ≥ ∥Az∥∞ ≥
n
X
ai,j sg(ai,j ) =
j=1
1 ≤ j ≤ n |xj | ≤ ∥x∥∞ = 1
|[Ax]i | = |
n
X
ai,j xj | ≤
n
X
y
z=
x ∈ Rn
tal que
1≤i≤n
j=1
|z|eiθ , se tiene que
i
n
X
|aij |},
j=1
∥x∥∞ = 1, luego
Ax
del vector
n
X
|ai,j | ≤ máx {
|aij |},
lo que da la otra desigualdad y demuestra el caso
z∈C
1≤i≤n
y entonces, para cualquier elemento
j=1
recordando que si
|ai,j | = máx {
j=1
lo que prueba una desigualdad. Para a otra desigualdad, sea
para todo
n
X
j=1
K = R. El caso K = C
ze−iθ = |z| y |eiθ | = 1.
sale del mismo modo
□
Análogamente para la norma−1 se tiene
Ejemplo 3.3. Consideremos en
Kn
la norma
∥ · ∥1 .
∥A∥1 = máx {
1≤j≤n
Para
n
X
A ∈ Kn×n
12
se tiene
|aij |}.
i=1
Un caso de mucha importancia para nosotros es la norma matricial subordinada a la norma−2.
Comencemos calculando un caso elemental: la norma−2 de una matriz unitaria/ortogonal (Denición 3.7). Supongamos que
Q ∈ Kn×n
y
Q∗ Q = I ,
luego, para todox
∈ Kn
∥Qx∥22 = (Qx)∗ Qx = x∗ x = ∥x∥22 ,
es decir que
∥Qx∥2 = ∥x∥2 , ∀x ∈ Kn .
(3.9)
Vemos que las matrices unitarias son
isometrías,
es decir, no cambian las longitudes. Tampoco
cambian los ángulos ya que preservan el producto interno, propiedad que resaltamos a continuación
(3.10)
12
⟨Qv, Qw⟩ = (Qv)∗ Qw = v ∗ w = ⟨v, w⟩.
También vale en el caso de matrices rectangulares.
3. NORMAS DE MATRICES
Estas propiedades denen a los
69
movimientos rígidos. De (3.9), tenemos
∥Qx∥2
= 1,
x̸=0 ∥x∥2
∥Q∥2 = sup
lo que les da su nombre a las matrices unitarias.
Ejercicio 3.5. Vericar que la matriz


1
0
0
A = 0 cos α − sin α
0 sin α cos α
es una matriz ortogonal para cualquier valor de
α. Interpretar geométricamente la transformación
Ax.
lineal
Como ya hemos señalado, las normas subordinadas son las mas útiles. Sin embargo la norma
euclídea aplicada a matrices -que es no subordinada- tiene importantes aplicaciones y un nombre
propio.
Definición 3.10. Dada
A ∈ Kn×m
denimos la norma de Frobenius
∥A∥F =
s X
X
|ai,j |2
1≤i≤n i≤j≤m
Notar que
∥A∥F =
donde
tr
q
tr(AT A),
indica el operador traza (la suma de los elementos de la diagonal). Las normas no
subordinadas de matrices no suelen cumplir con la desigualdad (3.7). La norma de Frobenius es
13
una excepción, gracias a la desigualdad de Cauchy-Schwarz. En efecto, dados
consideremos el elemento
i, j
A, B ∈ Kn×n ,
de la matriz producto
|[AB]i,j |2 ≤ |(
n
X
n
n
X
X
2
Ai,l Bl,j )|2 ≤ (
A2i,l )(
Bl,j
),
l=1
1=1
1=1
donde hemos usado la Proposición 3.1 en la última desigualdad. Sumando en
i
y en
j
se tiene el
resultado deseado
∥AB∥2F =
X
1≤i,j≤n
|[AB]i,j |2 ≤
X
n
n
X X
X
2
(
A2i,l )(
Bl,j
) = ∥A∥2F ∥B∥2F ,
1≤i≤n 1≤j≤n 1=1
1=1
esto es
∥AB∥F ≤ ∥A∥F ∥B∥F .
Cerramos esta sección con propiedades de las normas de matrices unitarias (algunas las hemos
ya probado pero las ponemos en recuadro para recordarlas). De todas la matrices, las unitarias
poseen propiedades especiales que las hacen muy favorables para su uso en los algoritmos.
13
El siguiente argumento vale también para matrices rectangulares.
70
3. NORMAS Y PRODUCTO INTERNO
A ∈ Kn×m , Q ∈ Kn×n , Q
∀v ∈ Kn ∥Qv∥2 = ∥v∥2
∥Q∥2 = 1
∥QA∥2 = ∥A∥2
∥QA∥F = ∥A∥F
Proposición 3.3. Sea
1.
2.
3.
4.
Demostración. Las propiedades
Para
(3),
(1)
notemos que por
(1)
y
(2)
unitaria/ortogonal, resulta
ya las hemos probado.
se tiene
∥QA∥2 = supv,∥v∥2 =1 ∥QAv∥2 = supv,∥v∥=1 ∥Av∥2 = ∥A∥2 .
Finalmente, para
(4)
escribimos
∥QA∥2F = tr((QA)∗ (QA)) = tr(A∗ A) = ∥A∥2F .
□
4. Condicion de Matrices
Sea
A ∈ Rn×m , queremos estudiar en más detalle la condición de evaluar Av
(pensado como
transformación lineal). Notemos que podemos hacerlo con bastante en general aprovechando la
linealidad. En efecto, para una perturbación arbitraria
evaluar en
v
(asumiendo que
v∈
/ N u(A))
h
de
v
tenemos que el error relativo de
puede escribirse
∥A(v + h) − Av∥
∥Ah∥
=
,
∥Av∥
∥Av∥
y este valor, respecto del error relativo en
∥Ah∥
∥Av∥
∥v∥
∥h∥
=
v
resulta
∥Ah∥ ∥v∥
∥v∥
≤ ∥A∥
.
∥h∥ ∥Av∥
∥Av∥
El número que está a la derecha es independiente de
la condición de evaluar
A
en
v
condición en el caso general (i.e.
y podemos usarlo como representante de
∥x0 ∥∥Df (x0 )∥
). Si quisieramos una expresión independiente de
∥f (x0 )∥
n=m
y
∥v∥
∥Av∥ puede acotarse idependiente de
v
que podríamos hacer?. En el caso en que
el cociente
h
y de hecho vemos que coincide con la expresión sugerida para la
A
sea invertible, podemos llamar
w = Av
v
y
∥v∥
∥A−1 w∥
=
≤ ∥A−1 ∥.
∥Av∥
∥w∥
En denitiva hallamos un número que mayora a la condición de evaluar en
v
para todo
v
y este
es
∥A∥
Notemos que argumentando con
A−1 ,
∥v∥
≤ ∥A∥∥A−1 ∥.
∥Av∥
vemos que el mismo número mayora a la condición de
−1 w . Esto motiva la siguiente denición.
evaluar A
4. CONDICION DE MATRICES
71
A ∈ Kn×n
∥ · ∥, como
Definición 3.11. (Condición de una matriz) Dada
de
A, κ(A),
asociada a una norma subordinada
invertible denimos la condición
κ(A) = ∥A∥∥A−1 ∥.
Si
A
no es invertible denimos
Que ocurre si
A ∈ Kn×m ?
adelante cuando denamos la
κ(A) = +∞.
podremos denir algo similar?. Volveremos sobre este caso mas
pseudoinversa.
Observación 3.1. Observemos que
1. La condición de una matriz depende de la norma matricial elegida. Sin embargo, como
en dimensión nita todas las normas son equivalentes las condiciones son equivalentes.
2. Para todo
3.
κ(I) = 1
0 ̸= α ∈ K, κ(αA) = κ(A).
para toda norma.
4. Como consecuencia del ítem previo, para toda norma,
Q unitaria/ortogonal κ(Q) = 1.
κ(A) = κ(A−1 )
5. Para toda
6.
1 ≤ κ(A).
(ver item (2) en Proposición 3.3)
Consideremos por un segundo los problemas que pueden aparecer cuando resolvemos un
sistema
Ax = b
con
b ̸= 0 y A invertible. Por un lado tenemos que considerar que tanto A como b se almacenaran
con errores. En general entonces estaremos resolviendo otro problema
(A + ∆A)(x + ∆x) = b + ∆b.
Asumiendo que procedemos a resolver el problema con aritmética exacta (no hay otras fuentes
de error) nos interesa ver el impacto en el error
Tenemos, usando que
∆x
debido a los errores
∆A, ∆b.
Ax = b
∆Ax + A∆x + ∆A∆x = ∆b.
Procediendo
informalmente, despreciamos el término de segundo orden ∆A∆x y resulta
∆Ax + A∆x ∼ ∆b.
de donde
∆x ∼ A−1 ∆b − A−1 ∆Ax,
y usando que
∥A∥ =
̸ 0,
∥∆x∥ ≲ ∥A−1 ∥∥∆b∥ + ∥A−1 ∥∆A∥∥x∥ = ∥A−1 ∥
usando que
∥b∥ ≤ ∥A∥∥x∥
∥∆A∥
∥∆b∥
∥b∥ + ∥A−1 ∥
∥A∥∥x∥,
∥b∥
∥A∥
∥x∥ =
̸ 0 tenemos
∥∆b∥ ∥∆A∥
∥∆x∥
≲ κ(A)
+
.
∥x∥
∥b∥
∥A∥
y diviendo por
Lo que dice que el error relativo generado en la solución se acota en terminos de los errores
relativos en los datos por la condición de la matriz.
72
3. NORMAS Y PRODUCTO INTERNO
∆A = 0
Observar que en caso de ser
≤
(no hay error en la matriz) podemos reemplazar
≲
con
y queda
∥∆x∥
∥∆b∥
≤ κ(A)
.
∥x∥
∥b∥
De hecho, escribiendo
A−1 b = x,
y
A−1 (b + ∆b) = x + ∆x
se puede argumentar con
A−1
y por
(6) de la Observación 3.1, se ve que
∥∆x∥
∥∆b∥
≤ κ(A)
.
∥b∥
∥x∥
Resumiendo
∥∆x∥
∥∆b∥
1 ∥∆b∥
≤
≤ κ(A)
.
κ(A) ∥b∥
∥x∥
∥b∥
Ejercicio 3.6. Verique con ejemplos que las desigualdades previas se alcanzan (Sug.: use
matrices diagonales adecuadas).
Teniendo en cuenta el ejercicio previo, vemos que la cota superior puede alcanzarse en la
p¯actica. En particular nos dice de un modo simplicado que podemos perder
14
signicativos al resolver el sistema
.
El siguiente resultado da una idea cualitativa de
relativa de
A
κ(A)
como el recíproco de la distancia
a las matrices singulares.
Teorema 3.1.
A ∈ Rn×n ,
se tiene,
∥A − B∥
1
=
ı́nf
,
κ(A) B singular ∥A∥
(3.11)
y en donde asumimos
1
κ(A)
Demostración. Si
A
log10 (κ(A)) dígitos
A
=0
en caso de que
A
no sea invertible.
es no invertible el resultado es evidente. Supongamos entonces que
es invertible. Probaremos únicamente que vale el
B ∈ Rn×n una
0 ̸= w = Av . Se tiene
Sea
≤
en (3.11).
matriz singular cualquiera. Tomemos
0 ̸= v ∈ Ker(B),
y denamos
0 ̸= ∥w∥ = ∥(A − B)v∥ ≤ ∥A − B∥∥A−1 w∥ ≤ ∥A − B∥∥A−1 ∥∥w∥,
dividiendo por
∥A∥∥A−1 ∥∥w∥ =
̸ 0
se obtiene
1
∥A − B∥
≤
,
κ(A)
∥A∥
y por ser
B
arbitrario
1
∥A − B∥
≤
ı́nf
,
κ(A) B singular ∥A∥
□
14
Por ejemplo, si
κ(A) ∼ 1016
no tenemos la garantía de tener ni un dígito correcto en nuestro resultado.
5. PROYECCIONES Y PROYECTORES
73
El resultado anterior dice que un número condición grande signica cercanía -relativa- a las
matrices singulares. Es importante remarcar que el determinante no es la herramienta adecuada
para medir esa cercanía, pues el ítem (2) de la Observación 3.1 dice que el número de condición
no cambia por múltiplos de una matriz sin embargo
det(αA) = αn det(A)
que tiende a cero si
α → 0.
5. Proyecciones y Proyectores
Observemos otra forma equivalente de escribir la proyección ortogonal de
pacio generado por
v
w
sobre el subes-
(ver (3.4)):
Pv (w) =
(3.12)
v v∗
w,
∥v∥2 ∥v∥2
que puede verse como una aplicación lineal de matriz
Notar que la matriz
vv ∗
∥v∥2 ∥v∥2 .
vv ∗
∥v∥2 ∥v∥2 , asociada a la proyección
columnas son todas múltiplos de
Un caso notable es cuando
v
Pv ,
tiene rango
1,
de hecho las
v.
es de norma uno. En ese caso
Pv (w) = vv ∗ w,
(3.13)
teniendo esto en mente volvamos un segundo a la ecuación (3.2). Si en vez de una base completa
solo contamos con un conjunto de vectores ortonormales
llamamos
S = ⟨v1 , · · · , vk ⟩
C = {v1 , · · · , vk } ⊂ Kn , k < n,
y
al subespacio generado por esos vectores, vemos que la expresión
PS (w) =
(3.14)
X
Pvi (w).
1≤i≤k
verica
(w − PS (w)) ⊥ vj ,
∀1 ≤ j ≤ k,
pues
vj∗ (w − PS (w)) = vj∗ w −
X
vj∗ Pvi (w) = vj∗ w − vj∗ w = 0.
1≤i≤k
Luego, por ser ortogonal a todos los generadores de
otras palabras, teniendo una base ortonormal de
de un elemento
w
sobre
S
S
lo será a todos lo elementos de
|

|

v
|
v2
PS = 
 1

|
|
|
|
| ···
|
|
|
|
|
|
|
S.
En
es muy fácil construir la proyección ortogonal
usando la expresión (3.14). Como además cada
representación matricial, lo mismo ocurre con

S
PS ,

Pvi

v1∗


− − − − − − −
∗

v2





−
−
−
−
−
−
−
vk 

.


.

.

.


− − − − − − −
vk∗
admite una
74
3. NORMAS Y PRODUCTO INTERNO
Figura 4. Proyección ortogonal de
En efecto, tomando
w ∈ Kn
w
sobre el subespacio
S.
M a la matriz anterior que


v1∗ w
 ∗ 
X
X
 v2 w
∗
vk 
v
v
w
=
Pvi (w).
.  =
i
i

.
  .  1≤i≤k
1≤i≤k
vk∗ w
tenemos, llamando

|

|

v
|
v2
Mw = 
 1

|
|
|
|
| ···
|
|
|
|
|
|
|
es decir que coincide con (3.14).
Por lo tanto, si queremos obtener la proyección ortogonal de un vector sobre un subespacio
S
podemos hacerlo a través de una base ortonormal de
generadores de
S.
Sabemos que obtener una familia de
S , l.i. es relativamente sencillo. Sería ideal tener un método para obtener, a partir
de esa familia, un sistema de generadores ortonormales. Veamos como hacerlo.
Dada una familia de vectores
{v1 , v2 , ..., vn }
linealmente independientes. La ortonormali-
zación de Gram-Schmidt es un algoritmo que produce una sucesión de vectores ortonormales
{q1 , q2 , ..., qn } del siguiente modo El proceso consiste en restarle a cada vector vi
sus componen-
tes en los vectores anteriores.
Podemos construir primero una familia ortogonal y luego normalizarla (o normalizarla durante la construcción). Llamemos
ui
a los ortogonalizados, el método es el siguiente
u1
u1 = v1 , u1 = ∥u
1∥
u2
u2 = v2 − Pu1 (v2 ) u2 = ∥u
2∥
u3
u3 = v3 − Pu1 (v3 ) − Pu2 (v3 ), u3 = ∥u
3∥
...
P
uk
uk = vk − k−1
i=1 Pui (vk ), uk = ∥uk ∥ .
Notemos que el algoritmo solo puede detenerse (es decir alcanzar una operación inválida) si y
solo si algún
uj = 0
para algún
j.
Pero si esto ocurre, signica que
vj
es combinación lineal de
5. PROYECCIONES Y PROYECTORES
{v1 , v2 · · · , vj−1 }15
75
{v1 , v2 , ..., vn }
lo cual contradice el presupuesto de ser
linealmente indepen-
dientes.
Escribimos debajo el algoritmo de forma compacta llamando
obtenidos
16
qi
a los vectores ortonormales
.
Gramm-Schmidt
for j=1 to n
vj = aj
for i=1 to j-1
ri,j = qi∗ aj
vj = vj − ri.j qi
rj,j = ∥vj ∥2
qj = vj /rj,j
Esta familia de vectores verica,
{q1 , q2 , ..., qk } es ortonormal.
⟨q1 , q2 , ..., qk ⟩ = ⟨v1 , v2 , ..., vk ⟩
para todo
1 ≤ k ≤ n.
Ya hemos hemos notado que las proyecciones ortogonales de vectores sobre subespacios resultaban aplicaciones lineales. Vamos a describir las matrices asociadas a esas aplicaciones.
Definición 3.12. Una matriz
0 ̸= P ∈ Kn×n
se dice un proyector si
P2 = P.
S1 , S2 tales que S1 ⊕ S2 = Kn , siempre es posible construir
un proyector P tal que Im(P ) = S1 y N u(P ) = S2 . En efecto, como los subespacios están en
n
suma directa, para todo v ∈ C existen únicos vi ∈ Si tales que v = v1 +v2 . Deniendo P v = v1
Notar que dados dos subespacios
obtenemos el proyector buscado.
Si
P
es un projector y
complementario.
Un proyector
P
P ̸= I
entonces
I −P
también es un proyector denominado
deja invariante su rango, ya que si
v ∈ Rg(P ) entonces ∃w
tal que
proyector
P w = v,
por lo que
decimos que
P
P v = P P w = P w = v,
Rg(P ).
proyecta sobre su rango
Notemos que
Rg(I − P ) = Ker(P ),
ya que si w ∈ Rg(I − P ), es w = v − P v de donde P w = 0, i.e. w ∈ Ker(P ). Por otro
si w ∈ Ker(P ), Rg(I − P ) ∋ (I − P )w = w . El argumento anterior también implica
lado,
Rg(P ) = Ker(I − P ).
Por otro lado, se observa trivalmente que
Ker(I − P ) ∩ Ker(P ) = {0}
y entonces
Rg(P ) ∩ Ker(P ) = {0}.
15
En efecto, observar que mientras no se detenga el algoritmo
⟨u1 , u2 , ..., uj ⟩ = ⟨v1 , v2 , ..., vj ⟩
1 ≤ j.
16
Notación compatible con
Q
para las matrices otrogonales/unitarias.
para todo
76
3. NORMAS Y PRODUCTO INTERNO
Esto dice que
Kn = Ker(P ) ⊕ Rg(P ).
Definición 3.13. Un proyector
se dice
oblícuo.
Proposición 3.4. Un proyector
Demostración. Si
P
ortogonal
Ker(P ) ⊥ Rg(P ).
P
se dice
P
es ortogonal sí y solo sí
es ortogonal,
si
En otro caso,
P = P ∗.
∀, v, w
0 = ((I − P )v)∗ P w = v ∗ (I − P )∗ P w,
lo que indica que
0 = (I − P )∗ P = P − P ∗ P ,
es decir
P = P ∗P
y en particular resulta
Recíprocamente, si
P = P ∗.
P = P ∗,
((I − P )v)∗ P w = v ∗ (I − P )∗ P w = v ∗ (P − P 2 )w = 0,
∀, v, w,
lo que dice que
P
es ortogonal.
Teorema 3.2. Sea
P
un proyector. Son equivalentes:
1.
2.
3.
□
P es ortogonal
∥v∥2 = ∥(I − P )v∥2 + ∥P v∥2
∥P ∥2 = 1
Demostración.
(1) → (2):
para todo
para todo
v
v
escribimos
v = (I − P )v + P v,
y como por ser proyector
Im(I − P ) = N u(P ) ⊥ Im(P ),
se tiene inmediatamente
∥v∥2 = ∥(I − P )v∥2 + ∥P v∥2 .
(2) → (3): la identidad de (2) dice que ∥P v∥2 ≤ ∥v∥2 , de donde ∥P ∥2 ≤ 1. Como P es proyector,
P ̸= 0 y existe 0 ̸= w tal que v = P w ̸= 0, para ese v , P v = v ̸= 0 y luego ∥P ∥2 ≥ 1, lo dice
∥P ∥2 = 1.
(3) → (1): asumamos que existen v ∈ Im(P ) y w ∈ N u(P ) tales que v ∗ w ̸= 0 y ∥v∥ = 1 = ∥w∥.
∗
Denamos u = v − (w v)w , se tiene ∥P u∥ = ∥P v∥ = ∥v∥ = 1 como ∥P ∥ = 1 resulta
1 = ∥P u∥ ≤ ∥u∥2 = ∥v∥2 − (w∗ v)(v ∗ w) − (w∗ v)w∗ v + |w∗ v|2 ∥w∥2 =
1 − (vw∗ )(v ∗ w) − (w∗ v)w∗ v + |w∗ v|2 = 1 − (w∗ v)2 < 1,
absurdos. Luego
Im(P ) ⊥ N u(P )
y
P
es ortogonal.
□
5. PROYECCIONES Y PROYECTORES
Observación 3.5. Dada una matriz
P =
AA∗
∈
A ∈ Cn×k
con columnas
Cn×n es un proyector ortogonal, ya que al ser
∗
2
∗
77
ortonormales,
A∗ A
=I∈
se tiene que
Ck×k , resulta
∗
P = A(A A)A = AA = P ,
P ∗ = P (por Proposición 3.4).
n
columna i de A, resulta para cada v ∈ C , la
X
P v = AA∗ v =
(qi∗ v)qi
i.e. un proyector, además ortogonal por ser
Llamando
qi , 1 ≤ i ≤ k ,
a la
expresión
1≤i≤k
que clarica el efecto de multiplicar por
P.
Vamos a construir una herramienta de mucha utilidad. Notemos que para todo
uno (de no ser de norma uno dedemos dividir por
de rango uno
que proyecta sobre el subespacio
v∗v
v
de norma
), podemos denir el proyector ortogonal
Pv = vv ∗ ,
generado por v , y con
este su complementario
Pv⊥ = I − Pv ,
de rango
n−1
que proyecta sobre el ortogonal a
v.
Como aplicación de estos proyectores podemos reformular Gramm-Schmidt (recordemos que
las columnas de
A
se donotan con
ai ).
Gram-Schmidt Modicado
for j=1 to n
vj = aj
for j=1 to n
rj,j = ∥vj ∥
qj = vj /rj,j
for i=j+1 to n
rj,i = qj∗ vi
vj = vj − rj,i qj
esta versión modicada, más estable que la original como veremos con un ejemplo, puede ponerse
en términos de proyectores de rango
{q1 , · · · , qj−1 },
el vector
n − 1.
En efecto, habiendo calculado
{v1 , · · · , vj−1 }
y
vj
vj = Pq⊥ Pq⊥ · · · Pq⊥ aj .
j−1
j−2
1
se obtiene de la aplicación sucesiva de proyectores de este tipo.
Observación 3.6. Gram-Schmidt es ampliamente utilizado en la forma descripta, su costo es
∼ 2n3 .
Capítulo 4
Métodos Directos Para Sistemas Lineales
1. Sistemas y Factorización de Matrices
Comenzaremos asumiendo que trabajaremos con matrices cuadradas, i.e.
A ∈ Rn×n
(o mas
n×n ya que la mayoría de las consideranciones se aplican a los complejos).
en general K
Recordemos que los vectores
donde tiene sentido
v ∈ Kn
los identicamos con matrices columna de
n×1
de
Av .
Factorizar siginica descomponer una expresión en factores de algún modo mas simples o
que nos otorguen algún benecio teórico o práctico. La factorización LU consiste en escribir una
matriz invertible
superior
U,
A
como producto de dos factores: uno triangular inferior
L
y otro triangular
es decir

∗ 0 ···
∗ ∗ · · ·

L =  .. .. . .
. .
.
∗ ∗ ···


0
∗ ∗ ···
0 ∗ · · ·
0


. , U = .
.
.
 .. .. . . .
.
∗
0 0 ···

∗
∗

.
.
.
∗
y
A = LU .
Un benecio inmediato de esta factorización es que para resolver un sistema
Ax = b,
basta resolver
Ly = b,
U x = y,
y cada sistema triangular puede resolverse por sustitución (regresiva o progresiva) en
∼ n2
1
operaciones .
Ejercicio 4.1. Escriba un algoritmo para resolver sistemas triangulares con orden
2. Descomposición LU
La factorización
LU
n2 .
=A
es un subproducto del método de eliminación de Gauss. Dada la matriz

a1,1 a1,2 · · ·
 a2,1 a2,2 · · ·

A =  ..
.
..
.
 .
.
.
an,1 an,2 · · ·
1
De todos modos el costo de la factorización es de orden
79

a1,n
a2,n 

. 
. 
.
an,n
∼ 32 n3
como veremos mas adelante.
80
4. MÉTODOS DIRECTOS PARA SISTEMAS LINEALES
a1,1 ,
pivot,
A para
A por
ai,1
− a1,1 (lo cual es posible ya que hemos asumido a1,1 ̸= 0) y sumando ese resultado a la la i. En
términos matriciales, eso equivale a multiplicar a izquierda la matriz A por el multiplicador M1


1
0 ··· 0
a2,1
− a
1 · · · 0
 1,1

M1 =  ..
.
.
..
.
.
 .
.
.
.
an,1
− a1,1 0 · · · 1
y suponiendo que
denominado
generar ceros debajo del elemento
a1,1 .
es no nulo es posible operar sobre las las de
Esto se hace la a la multiplicando la la 1 de
El efecto neto del producto resulta

a1,1 a1,2 a1,3
 0 a(1) a(1)

2,2
2,3

(1)
(1)

0
a
a
M1 A = 
3,2
3,3
.
 ..
..
.
.
 .
.
(1)
(1)
0 an,2 an,3
donde se destaca con un superíndice
(1)
que en caso de tener el pivot
(1)
a2,2 ̸= 0
···
.
.
.
···
una nueva matriz

(1)
(1)
a
···
 2,2
.
.
.
=
.
 ..
(1)
an,2 · · ·
A(1)
···
···
a2,n
..
.
(1)

a1,n
(1)
a2,n 

(1) 
a3,n 



(1)
an,n
A(1) ∈ R(n−1)×(n−1)




an,n
admite un nuevo paso en la iteración tomando

1
0
0
1

(1)

a3,2
0 − (1)

a2,2
M2 = 
 ..
.
.
.
.

(1)

an,2
0 − (1)
a2,2
···
···
0
0
1
···
.
.
.
.
.
.
0
···

0
0


0






1
de donde

a1,1 a1,2 a1,3
 0 a(1) a(1)

2,2
2,3

(2)
0
0 a3,3
M2 M1 A = 

.
 ..
..
.
.
 .
.
(2)
0
0 an,3
con
A(2) ∈ R(n−2)×(n−2) .
(k)
ak+1,k+1 ̸= 0,
···
.
.
.
···
 

a1,n
a1,1 a1,2 a1,3 · · · a1,n
(1) 
a2,n   0 a(1) a(1) · · · a(1) 

2,2
2,3
2,n 
(2) 

a3,n  = 
0
0

,
 

.
  ..
.


.
.
A(2)
(2)
0
0
an,n
Este procedimiento, dado que cada
triangulación por matrices triangulares.
pivot
···
···
para todo
Mi
es triangular, se denomina
Si algoritmo no se detiene, es decir que cada elemento
1 ≤ k ≤ n − 1,
se obtiene una matriz triangular superior
U
2. DESCOMPOSICIÓN
81
LU = A
invertible

a1,1 a1,2 a1,3 a1,4 · · ·
 0 a(1) a(1) a(1) · · ·

2,2
2,3
2,4

(2)
(2)
0
0 a3,3 a3,4 · · ·
Mn−1 Mn−2 · · · M1 A = U = 

.
.
.
.
 ..
.
.
.
.
 .
.
.
.
.
0
0
0
0
0

a1,n
(1)
a2,n 

(2) 
a3,n 

.

.

.
(n−1)
an,n
Observemos que la productoria
Mn−1 · · · M2 M1 = M ,
es una matriz triangular inferior, dado que es producto de matrices triangulares inferiores. La
inversa de
M,
es por lo tanto triangular inferior. La llamaremos
L = M −1
y por ende
A = LU .
El problema que aparece inmediatamente es que no hemos obtenido
sentido de que aún falta invertir
Observemos que cada
Mi
M ).
L
constructivamente (en el
Sin embargo, un hecho notable facilita ese trabajo.
tiene la forma
Mi = I − zi eTi ,
(4.1)
donde
ei
representa el
i−ésimo
canónico y
zi
es de la forma
0


 .. 
 . 


 0 

zi =  (i) 
,
zi+1 
 .. 
 . 
(i)
zn
con
(i)
zj =
(i−1)
aj,i
(i−1) ,
ai,i
i + 1 ≤ j ≤ n.
Lema 4.1. Sea
u, v ∈ Rn ,
tales que
v T u ̸= 1
entonces
(I − uv T )−1 = I +
I − uv T
uv T
1 − vT u
es invertible y además
.
Demostración.
(I − uv T )(I +
uv T
1
uv T uv T
T
)
=
I
+
uv
(
−
1)
−
= I.
1 − vT u
1 − vT u
1 − vT u
□
Considerando el lema anterior y observando que en (4.1) se tiene
eTi zi = 0,
resulta
2
Mi−1 = I + zi eTi ,
2
Es decir que el costo de invertir
Mi
es casi nulo (apenas un cambio de signos debajo de la diagonal).
82
4. MÉTODOS DIRECTOS PARA SISTEMAS LINEALES
de donde
−1
L = M1−1 M2−1 · · · M(n−1)
= (I + z1 eT1 )(I + z2 eT2 ) · · · (I + zn−1 eTn−1 ).
Mi−1 hay otro hecho afortunado que permite expresar
= 0 no solo para k = i sino para todo i ≤ k ≤ n, se puede
Ademas de la sencillez en el cómputo de
L
T
sin cálculos adicionales. Como ei zk
desarrollar la expresión para
L
y obtener
L=I+
n−1
X
zi eTi ,
i=1
o dicho de otra forma,

1
 a2,1
 a1,1
a
 3,1

L =  a1,1
 .
 ..

 an,1
0
1
···
···
0
0
a3,2 ..
(1)
.
.
.
..
.
.
.
..
(1) .
a2,2
.
a1,1
(1)
a2,2
1
(n−1)
(1)
an,2
.
···
an,n−1
(n−1)
an−1,n−1

0
0

.
.
.
,
.
.
.

1
i.e., basta con almacenar los multiplicadores en sus respectivos lugares cambiando los signos.
Un supuesto básico para que la descomposición LU pueda llevarse a cabo es que todos los
pivots sean no nulos. Eso no puede garantizarse bajo la única hipótesis de que
det(A) ̸= 0
como
se ve en tomando por ejemplo
0 1
A=
1 0
Sin embargo puede garantizarse si se requiere que todos lo menores de la matriz
A,
sean
invertibles.
A ∈ Kn×n , entonces existe factorización LU de A con L, U invertodo 1 ≤ k ≤ n, det(A(1 : k, 1 : k)) ̸= 0.
Proposición 4.1. Sea
tibles
sí y solo sí para
Demostración. Veamos primero la implicación
Como
⇐:
a11 = A(1, 1) resulta a11 ̸= 0 y el primer pivot es no nulo. LLevado adelante el proceso
de eliminación, vemos que se puede escribir
A = M1−1 U1
donde

M1−1 U1 =
1
a
 a2,1
 1,1
 a3,1
a
 1,1


.
.
.
an,1
a1,1
···
···
0
0
0..
.
.
.
..
.
.
.
..
0
···
0
1
.
.
.
1
0


0 a
· · · a1,n
1,1 a1,2 a1,3
0 
(1)
(1)
(1)

0 a2,2 a2,3 · · · a2,n 

. 

. 
0
0
.




.
.   ..
.

.
.
.
A(2)
.
0
0
1
2. DESCOMPOSICIÓN
83
LU = A
Por lo tanto
A(1 : 2, 1 : 2) =
y como por hipótesis
1
a2,1
a1,1
0 ̸= det(A(1 : 2, 1 : 2))
!
a1,1 a1,2
0
(1)
1
0 a2,2
tenemos
(1)
det(A(1 : 2, 1 : 2)) = a1,1 a2,2 ̸= 0,
por lo
tanto el segundo pivot no se anula. La demostración se sigue por inducción.
Para la implicación ⇒ : Notamos que si A = LU con L y U invertibles, deben ser lkk ̸=
0 ̸= ukk para todo 1 ≤ k ≤ n ya que son triangulares. En particular det(L(1 : k, 1 : k) ̸=
0 ̸= det(U (1 : k, 1 : k)) y por ser una de ellas triangular inferior y la otra superior, resulta
A(1 : k, 1 : k) = L(1 : k, 1 : k)U (1 : k, 1 : k) de donde det(A(1 : k, 1 : k)) ̸= 0.
□
Para ver otro criterio necesitamos una denición.
se dice diagonal dominante (estrictamente
diagonal dominante ) y se denota DD (EDD) si y solo si para todo i, 1 ≤ i ≤ n
Definición 4.1. Una matriz
A ∈ Rn×n , Cn×n
X
|ai,j | ≤ (<)|ai,i |.
1≤j≤n,j̸=i
Y la siguiente proposición (que puede renarse en algunos casos como veremos mas adelante).
Proposición 4.2. Sea
A ∈ Rn×n , Cn×n
EDD entonces
Demostración. Supongamos que no. Existe entonces
1≤i≤n
tal que
0 ̸= |vi | = ∥v∥∞ ,
A
es invertible.
0 ̸= v ∈ Cn
tal que
Av = 0.
Sea
i,
entonces
n
X
ai,j vj = 0,
j=1
de donde
|ai,i | ≤
n
X
j=1,j̸=i
n
X
|vj |
≤
|ai,j |
|ai,j |,
|vi |
j=1,j̸=i
□
lo que contradice la EDD.
Proposición 4.3. Si
A
es EDD entonces, trabajando con aritmética exacta, el proceso
de eliminación de Gauss no produce pivots nulos.
Demostración. Ejercicio.
Observación 4.1. Las matrices DD no son una articio teórico, aparecen frecuentemente
en la práctica como por ejemplo en la discretización de ecuaciones diferenciales.
□
84
4. MÉTODOS DIRECTOS PARA SISTEMAS LINEALES
Aún en el caso en que no aparezcan pivots nulos, el algoritmo de eliminación no delvoverá
en general los verdaderos factores
L
y
U,
sino una aproximación de ellos. Mas explícitamente
5
podemos enunciar el siguiente teorema (ver [ ]).
Teorema 4.1. Sea
A ∈ Kn×n , si el algoritmo LU no produce pivots nulos,la factorización
LU producida por la máquina verica
L̃Ũ = A + ∆A
donde
|∆A| ≲ 2(n − 1)ε(|A| + |L̃||Ũ |).
Observación 4.2. El Teorema 4.1, sugiere controlar el tamaño de los factores
En efecto, si el producto
sobre el error. El
|L̃||Ũ |
pivoteo parcial
L̃, Ũ .
es muy grande no tendremos control (al menos teórico)
permite garantizar al menos el control
costo razonable. Si bien, esto no necesariamente implica que
|L̃||Ũ |
|L| ≤ 1
a una
sea pequeño, resulta
suciente en la mayoría de los casos prácticos (ver sin embargo la Observación 4.3).
Ejercicio 4.2. Muestre el el número de operaciones necesarias para realizar la factorización LU
es
3
O( 2n3 )
El número de elementos de una matriz de
n×n
es obviamente
n2 .
El número mínimo de
operaciones que un método de resolución puede efectuar debe ser de orden mayor o igual a
n2 .
Todos los métodos directos clásicos son de orden cúbico. Esto presenta problemas para matrices
muy grandes ya que en ciertas aplicaciones es posible tener un gran número de incógnitas.
rala
Otro problema importante es el
rellenado
que produce el algoritmo. Esto es, aunque
A
sea
-cosa que afortunadamente ocurre en muchas aplicaciones, como en ecuaciones diferenciales-
los factores
L, U
pueden no serlo.
Ejercicio 4.3. Cuanta memoria ocuparía una matriz de
3. Descomposición LU
Una matriz de permutaciones
P ∈ Kn×n
= PA
106 × 106
llena?.
(pivoteo parcial)
es una matriz identidad con las las permutadas.
Alternativamente puede verse como una matriz cuyas las están conformadas por los elementos
de la base canónica no necesariamente ordenados. Es decir,

eTi1
− − −−
eTi2









P =

.
.


.


− − − − −
eTin
donde
i1 , i2 , · · · in ∈ {1, 2, · · · n}
son todos diferentes. Alternativamente podemos pensar una
matriz de permutaciones como la identidad con las columnas permutadas
P = e i1
| ei2
| · · · |ein .
3. DESCOMPOSICIÓN
LU = P A (PIVOTEO PARCIAL)
85
Notemos que si
v ∈ Kn ,
 
v i1
 vi 
 2
P v =  .. 
 . 
v in
v T P = vi1 , vi2 , · · · vin .
Resumamos las siguientes propiedades de las permutaciones.
Dada
A
A ∈ Kn×n , P A
coincide con
A
pero con las las permutadas y
AP
coincide con
pero con las columnas permutadas.
x ∈ Kn , P x coincide con x pero con los elementos permutados.
det(P ) = ±1
P −1 = P T
Si P1 y P2 son permutaciones entonces P = P1 P2 también lo es.
Dada
Si durante la eliminación de Gauss hallamos un pivot nulo, podemos intercambiar las para
continuar con el algoritmo (siempre que haya algún elemento no nulo con el cual proseguir).
Mas aún, aunque el correspondiente pivot sea no nulo, podemos, casi al mismo costo, tomar
el pivot mas grande (en valor absoluto). Esa operación la podemos representar matricialmente
multiplicando por una adecuada permutación.
El procedimiento sería el siguiente: tomemos el elemento con mayor valor absoluto en la primera columna de
la la
k
A. Digamos que este es ak,1 (si det(A) ̸= 0 se tiene que ak,1 ̸= 0). Permutemos
1, lo cual se hace con una matriz P1 . Es decir


ak,1 ak,2 · · · ak,n
 a2,1 a2,2 · · · a2,n 
 .

.
.
. 
 .
.
.
.
.
.
. 
 .
P1 A = 
,
 a1,1 a1,2 · · · a1,n 
 .

.
.
. 
 ..
.
.
.
.
.
.
con la la
an,1 an,2 · · ·
an,n
M1 de modo tal que


ak,1 ak,2 · · · ak,n
 0



M1 P1 A =  ..
.
 .

A(1)
0
a partir de aquí construimos el multiplicador,
Llegado a este punto, repetimos el procedimiento con la primer columna de
tualmente requerirá otra matriz
P2
que even-
antes de la construcción del nuevo multiplicador
denitiva,
(4.2)
A(1)
Mn−1 Pn−1 · · · M1 P1 A = U ,
M2 .
En
86
4. MÉTODOS DIRECTOS PARA SISTEMAS LINEALES
se obtiene una nueva matriz triangular superior
0

U,

y donde
Mi = I − zi eTi
con
 .. 
 . 


 0 

zi =  (i) 
,
zi+1 
 .. 
 . 
(i)
zn
|zi | ≤ 1
(i.e. los multplicadores son menores o iguales a 1 en valor absoluto). El problema
ahora es que en la forma (4.2) no parece verse el modo de reconstruir los factores
LyP
de manera
sencilla. Sin embargo un hecho inesperadamente favorable resuelve esta cuestión. Notemos que
por el orden de las iteraciones en el paso
k
solo permutaremos en busca del mayor pivot (en caso
k a la n porque las las previas ya han sido procesadas. Eso indica
j < k . En particular, si bien no es cierto que Pk conmuta con Mj sí
de ser necesario) las desde la
que
eTj Pk = eTj
es cierto,
para todo
para todo j < k, que
Pk Mj = Pk (I − zj eTj ) = (I − Pk zj eTj )Pk = M̃j Pk ,
es decir que podemos pasar la permutación a la derecha permutando adecuadamente los multi-
Mj . Lo importante es que esta nueva matriz,
Mj . Así que volviendo a (4.2) tenemos
plicadores de la matriz
misma estructura que
denotada con
M̃j
tiene la
Mn−1 Pn−1 · · · M1 P1 A = M̃n−1 · · · M̃1 Pn−1 · · · P1 A = U .
Argumentando como en el caso son pivoteo (usando que la estructura de las
las de las
Mi )
y llamando
P = Pn−1 · · · P1
M̃i
es igual a la de
se llega a
P A = LU .
Proposición 4.4. Trabajando con aritmética exacta se tiene que si
det(A) ̸= 0
el algo-
ritmo de pivoteo parcial no tiene pivots nulos.
Observación 4.3. El proceso de pivoteo parcial garantiza que
|U |, como

0 1
0 1

· · · 1
,
.
.
.
··· 1
un control demasiado beningno sobre el tamaño de

1
−1

−1

 ..
 .
−1
puede verse que
∥U ∥∞ ≥ 2n ∥A∥∞ .
0 0 ···
1 0 ···
0 1 0
.
.
.
.
.
.
..
0 0
0
.
|L| ≤ 1
pero no se tiene
se ve en este ejemplo
Este ejemplo sin embargo parece ser singular en el
sentido de que en los casos genéricos el crecimiento de
|U |
estaría controlado por
√
n
5
[ ]
a. Esta particularidad parece (junto con el hecho de que su costo es la mitad que el de la
factorización
QR que veremos mas adelante) haber mantenido el algoritmo de eliminación
como uno de los más populares entre los métodos directos.
aAl
presente no parece haber una demostración rigurosa de esto.
4. DESCOMPOSICIÓN
LDL∗ : CHOLESKY
87
Controlar el tamaño del ambos factores L y U es posible. La idea se denomina pivoteo
completo, esto implica hacer permutaciones de las y de columnas para tomar siempre el mayor
pivot posible. Así en el paso inicial se busca el elemento
ak,l
con máximo valor absoluto y se
k y l respectivamente. En términos matriciales
P1 , P̃1 antes de aplicar el paso de eliminación. Es


∗ ∗ ··· ∗
0



M1 P1 AP̃1 =  ..
.
(1)
.

A
0
se obtiene U
permutan la la y columna 1 con la la y columna
eso requiere de dos matrices de permutaciones
decir
Repitiendo el procedimiento
Mn−1 Pn−1 · · · M1 P1 AP̃1 · · · P̃n−1 = U ,
y argumentando como antes se obtienen ahora dos matrices de permutaciones
P , P̃
tales que
P AP̃ = LU .
El pivoteo completo no se lleva a cabo en general debido a su alto costo (calcule el número de
comparaciones que debe realizar en cada) ya que hay otros métodos estables mas económicos.
Wilkinson probó lo siguiente
Teorema 4.2. En aritmética exacta, para el algoritmo de pivoteo completo se tiene
∥U ∥∞ ≤
√
n(2.31/2 .41/3 · · · n1/(n−1) )1/2 ∥A∥∞
Ejercicio 4.4. Estimar numéricamente el crecimiento del factor
√
n(2.31/2 .41/3 · · · n1/(n−1) )1/2 .
4. Descomposición LDL∗ : Cholesky
En muchos casos es posible explotar la estructura de las matrices a la hora de resolver
sistemas. Dicho sea esto a la hora de ahorrar computos o mejorar la estabilidad de los algoritmos.
Proposición 4.5. Si
A
es denida positiva entonces es invertible y también lo son todos sus
menores.
Demostración. En efecto, de no ser invertible, existiría
contradice la denida positividad ya que para ese
v
se tendría
0 ̸= v tal
v ∗ Av = 0.
que
Respecto de los menores el resultado se sigue del anterior. En efecto, sea
tomemos vectores
v ∈ Kn
de la forma
(ṽ, 0, · · · , 0)
con
ṽ ∈ Kk
k
Av = 0
jo,
lo que
1≤k≤n
y
arbitrario. Resulta
0 < v ∗ Av = ṽ ∗ A(1 : k, 1 : k)ṽ,
y de ahí la denida positividad de
Si
A
A(1 : k, 1 : k)
es denida positiva admite una descomposición
4.5 y 4.1) y podemos escribir
U = D L̃∗ ,
con
L̃
A = LU
(gracias a las Proposiciones
triangular inferior con
matriz diagonal. De ahí resulta
A = LD L̃∗ = L̃D ∗ L∗ ,
entonces
□
y por ende su invertibilidad.
D(L−1 L̃)∗ = L−1 L̃D ∗ ,
1
en la diagonal y
D
una
88
4. MÉTODOS DIRECTOS PARA SISTEMAS LINEALES
y como el lado izquierdo de esta ecuación es triangular superior y el derecho triangular inferior
L−1 L̃.
deberán ser ambos diagonales. Luego, debe serlo también
Li,i ,
1 ≤ i ≤ n . Debido a la primera igualdad se tiene
−1 L̃ = I , es decir L = L̃ y además D = D ∗ .
resulta L
para todo
De aquí
L̃i,i = 1 =
−1
que Li,i = 1.
Por construcción,
en particular
En particular se obtiene la
factorización
A
Como además
es denida positiva,
A = LDL∗ .
entonces D > 0,
pues para todo
v ̸= 0
0 < v ∗ Av = v ∗ LDL∗ v = (L∗ v)∗ DL∗ v,
de donde, llamando
D,
positividad de
w = L∗ v
y usando que
L
(y por ende
L∗ )
es invertible, resulta la denida
lo que en este caso, por ser diagonal, equivale a
D > 0.
Esto nos garantiza la
existencia de la factorización de Cholesky:
1
1
A = LD 2 D 2 L∗ = CC ∗ ,
donde
C
es triangular inferior con elementos diagonales positivos. La construcción de
C
puede
hacerse desde la factorización LU, sin embargo ese modo mas costoso y menos estable que el algoritmo que describiremos debajo. Antes, sin embargo, veamos cómo sería la base de un algoritmo
(garantizando que pueda ejecutarse sin interrupciones).
Asociemos el algoritmo con una función
Ya que
A=
CC ∗ , con
C
chol()3.
Escribimos
(4.3)
ci,i > 0,
C.
triangular inferior
de esta factorización). Intentaremos despejar
donde
Es decir
chol(A)
devuelve el factor
C.
(de hecho, ya probamos la existencia


c1,1
|
0

−
−
−
C=
C(2 : n, 1) | C(2 : n, 2 : n)
C(2 : n, 2 : n) tiene las mismas características que C . Sabiendo que


a1,1
|
A(2 : n, 1)∗


−
−
−
=
A(2 : n, 1) | A(2 : n, 2 : n)

 

c1,1
|
0
c1,1 |
C(2 : n, 1)∗

 − −

−
−
−
−
∗
C(2 : n, 1) | C(2 : n, 2 : n)
0
| C(2 : n, 2 : n)
se tiene, respectivamente, que
Paso 1
Paso 2
c21,1 = a1,1
A(2 : n, 1) = c1,1 C(2 : n, 1)
lo cual nos permitió despejar las incógnitas
lo que permite elegir
Paso 3
c1,1 > 0.
→
→
c1,1 :=
√
a1,1 ,
C(2 : n, 1) := A(2 : n, 1)/c1,1 ,
C(1 : n, 1),
puesto que
a1,1 > 0
A(2 : n, 2 : n) = C(1 : n, 1)C(1 : n, 1)∗ + C(2 : n, 2 : n)C(2 : n, 2 : n)∗ →
C(2 : n, 2 : n) := chol(A(2 : n, 2 : n) − C(1 : n, 1)C(1 : n, 1)∗ ),
3
En Python
por hipótesis,
Ahora consideramos
np.linalg.cholesky()
en Matlab
chol().
5. ORTOGONALIDAD EN MÉTODOS DIRECTOS
89
chol(A(1 : n, 1 : n)) para una matriz de n×n se redujo a resolver
chol(A(2 : n, 2 : n) − C(2 : n, 1)C(2 : n, 1)∗ ) para una matriz de tamaño (n − 1) × (n − 1), lo que
de donde el problema de resolver
inductivamente (siempre que la nueva matriz sea denida positiva) nos lleva al problema trivial
de factorizar un número real positivo (matriz de
1×1
denida positiva) como el cuadrado de
otro positivo. Veamos entonces la siguiente
A es SDP entonces A(2 : n, 2 : n) − C(2 : n, 1)C(2 : n, 1)∗ ,
√
C = (2 : n, 1) = A(2 : n, 1)/ a1,1 , es DP.
Proposición 4.6. Si
donde
A(2 : n, 2 : n) − C(2 : n, 1)C(2 : n, 1)∗ es Hermitiana
n
otro lado, y por hipótesis, para todo 0 ̸= u = (u1 , v) ∈ C
Demostración. Claramente
simétrica, en el caso real). Por
tiene
(o
se
∗ 
 
u1
a1,1
|
A(2 : n, 1)∗
u1
 − =
−
−
−
0 < u∗ Au =  −  
v
A(2 : n, 1) | A(2 : n, 2 : n)
v

|u1 |2 a1,1 + u∗1 A(2 : n, 1)∗ v + u1 v ∗ A(2 : n, 1) + v ∗ A(2 : n, 2 : n)v.
Elijamos
∗v
u1 = − A(2:n,1)
a1,1
y resulta para todo
v ̸= 0,
0 < v ∗ (A(2 : n, 2 : n) − C(2 : n, 1)C(2 : n, 1)∗ ) v,
□
lo que completa la demostración.
En forma de algoritmo, Cholesky puede escribirse del siguiente modo,
for j= 1:n
aj,j :=
√
aj,j
for i=j+1:n
ai,j := ai,j /aj,j
for k=j+1:n
for i=k:n
ai,k := ai,k − ai,j ak,j
A (la parte superior
C.
en donde se utliliza solo la información de la parte triangular inferior de
es redundante) y en donde, además, se almacenan los datos de la matriz
5. Ortogonalidad en Métodos Directos
Como hemos mencionado, el método de eliminación se basa en triangulación por matrices
triangulares (los multiplicadores). El crecimiento de los multiplicadores y de la matriz
triangular superior resultante podría ser problemático. Por esa razón lo ideal sería realizar
operaciones con matrices de norma controlada (idealmente de norma 1). Esos algoritmos
son posibles y se basan en ideas de ortogonalidad.
90
4. MÉTODOS DIRECTOS PARA SISTEMAS LINEALES
Dada una matriz
A ∈ Km×n ,
con columnas
{a1 , a2 , · · · , an }
linealmente independientes,
podemos considerar los subespacios anidados generados por sus columnas:
< a1 >⊂< a1 , a2 >⊂ · · · ⊂< a1 , a2 , · · · , ak > .4
En varias aplicaciones es de interés encontrar generadores
es, una colección
{q1 , q2 , · · · , qk },
tales que
qi∗ qj = δij
ortonormales
de esos subespacios. Esto
y
⟨a1 , a2 , · · · , al ⟩ = ⟨q1 , q2 , · · · , ql ⟩
para todo l.
Matricialmente, y observando los subespacios anidados, es obvio que esto equivale a hallar
una matriz
R ∈ Cn×n
triangular superior

r1,1 r1,2 r1,3 · · ·
 0 r2,2 r2,3 · · ·


0 r3,3 ·
R= 0
 ..
.
.
.
.
.
.
 .
.
.
.
0
0
0
0

r1,n
r2,n 

r3,n 

. 
. 
.
rn,n
tal que



a1


|
|
| a2
|
|
|
|
| ···
|
|
 
|
 
|
 

| an 
 = q1


|
|
de donde se observa que tanto los
qi
|
|
| q2
|
|
|
|
| ···
|
|

r1,1 r1,2 r1,3 · · ·
|

  0 r2,2 r2,3 · · ·
|

0
0 r3,3 ·
| qn 

 ..
.
.
.

.
.
.
|
 .
.
.
.
|
0
0
0
0
(elegidos ortonomales) como los
ri,j

r1,n
r2,n 

r3,n 
,
. 
. 
.
rn,n
pueden obtenerse desde
las ecuaciones
a1 = r1,1 q1
a2 = r1,2 q1 + r2,2 q2
.
.
.
an = r1,n q1 + r2,n q2 + · · · rn,n qn
por ejemplo, a través de Gramm-Schmidt. Notemos que en caso de que
(A
∈ Kn×n ),
tendremos que
Q
A
resulte cuadrada
será una matriz unitaria (ortogonal en caso de ser una matriz
A ∈ Kn×n
ortogonal Q
real). En particular, a través de Gramm-Schmidt hemos conluído que toda matriz
invertible (en particular con todas sus columnas l.i.) puede factorizarse como una
por una triangular superior
R
A = QR,
factorización que se denomina QR.
4
Si las columnas son
l.i.
las inclusiones son obviamente estrictas, pero no en el caso general.
Capítulo 5
Diagonalización
1. Motivación: Google Page Rank
El éxito inicial del motor de búsquedas de Google se debe en gran parte al algoritmo desarrollado para rankear las páginas, es decir, ordenarlas por orden de importancia, y de esa forma
poder mostrar a los usuarios resultados relevantes.
¾Cómo determinar si una página es relevante? Una primer medida de relevancia es considerar
la cantidad de otras páginas que tienen un enlace a esa página. Sin embargo, con este criterio tan
simple, no distinguimos si las páginas que enlazan a cada página son importantes o no. Queremos
darle mayor relevancia a enlaces provenientes de páginas relevantes, y caemos en una especie de
círculo vicioso.
Podemos resumir la solución propuesta por Google de la siguiente forma. Consideremos que
tenemos 11 páginas, que contienen enlaces entre las distintas página. Una echa en el gráco
indica que la página de partida tiene un enlace a la página de llegada.
Como podemos ver, la página B es relevante porque recibe enlaces desde muchas páginas. La
página C en cambio es relevante porque recibe un enlace de B, que es una página relevante. ¾Cómo
podemos denir la relevancia? Pensamos que realizamos el siguiente experimento: ponemos a
1.000.000 de personas a navegar por internet. Inicialmente eligen una página cualquiera al azar y
luego cada segundo cambian de página siguiendo algún link al azar de la página en la que están.
Después de varios segundos, ¾cuántos visitantes habrá en cada página?
Podemos modelar esto llamando
v (0) ∈ R11 a la cantidad inicial de visitantes
k segundos. Vamos a ver que podemos
(k) a la cantidad de visitantes luego de
y v
91
en cada sitio,
construir una
92
5. DIAGONALIZACIÓN
matriz
A ∈ R11×11 ,
llamada matriz de transición, tal que
v (k) = Av (k−1)
y recursivamente,
v (k) = Ak v (0) .
Por lo tanto, para estudiar este proceso, nos interesa poder calcular potencias altas de matrices, o predecir su comportamiento.
Podemos preguntarnos también si existe un límite del proceso, es decir, si luego de varios
segundos, la cantidad de visitantes en cada página se mantiene estable. En ese caso, el vector
límite debe cumplir la relación
Av ∞ = v ∞ .
Los vectores con esta propiedad se llaman autovectores, y es el tema principal de este capítulo.
2. Autovalores y autovectores
Dada una matriz cuadrada
A ∈ Kn×n ,
un vector
Av = λv,
se llama
autovector
de
A
con
v ∈ Kn
para algún
no nulo tal que
λ∈K
autovalor λ.
Ejemplo. Buscamos los autovalores y autovectores de la matriz A =
encontrar
v
y
λ
tales que
Av = λv .
2 3
2 1
. Tenemos que
El término de la derecha podemos reescribirlo como
λIv ,
y
esto nos permite agrupar:
(A − λI)v = 0,
que en nuestro caso queda
Si el determinante de
A − λI
2−λ
3
v1
0
=
,
2
1−λ
v2
0
(v1 , v2 ) = (0, 0).
det(A − λI) = 0.
es no nulo, el sistema tiene solución única
Como estamos buscando vectores no nulos, debemos encontrar
λ
tal que
Calculamos
det(A − λI) = (2 − λ)(1 − λ) − 6 = λ2 − 3λ − 4.
Esta ecuación es un polinomio de grado 2 en
λ1 = −1
Estos son los autovalores de
y
λ
y tiene raíces
λ2 = 4.
A.
Para calcular los autovectores correspondientes a esos autovalores, calculamos los núcleos de
las matrices
3 3
A − (−1)I2 =
2 2
y
−2 3
A − (4)I2 =
.
2 −3
2. AUTOVALORES Y AUTOVECTORES
93
import numpy as np
import scipy.linalg
A = np.array([[2, 3], [2, 1]])
A1 = A - (-1) * np.eye(2)
print(scipy.linalg.null_space(A1))
%% [[-0.70710678]
%% [ 0.70710678]]
import numpy as np
import scipy.linalg
A = np.array([[2, 3], [2, 1]])
A1 = A - (-1) * np.eye(2)
print(scipy.linalg.null_space(A1))
%% [[0.83205029]
%% [0.5547002 ]]
El comando
el espacio de
null_space normaliza los vectores a norma-2 igual a 1. Podemos vericar que
autovectores correspondiente a λ1 = −1 es
Eλ1 = ⟨(1, −1)⟩
y el espacio de autovectores correspondiente a
λ2 = 4
es
Eλ2 = ⟨(3, 2)⟩.
Es decir, por ejemplo,
(1, −1)
es autovector de
A
de autovalor
−1,
como también lo es
cualquier múltiplo no nulo de ese vector. En este caso, obtuvimos que el espacio de autovectores
de cada autovalor tiene dimensión 1, o abusando un poco la notación, que a cada autovalor le
corresponde un único autovector.
Repasando,
Los
autovalores
cuales
de una matriz
A ∈ Kn×n (K = R
El espacio de autovalores de un autovalor
Si
λ
o
C)
son los valores
λ∈C
para los
det(A − λIn ) = 0.
λ
es el núcleo de la matriz
A − λIn .
es autovalor, el núcleo siempre tiene dimensión mayor o igual que 1.
Si el núcleo tiene dimensión exactamente 1, decimos informalmente que el autovalor
λ
tiene un único autovector.
Definición 5.1. Dada
A ∈ Kn×n ,
llamamos
polinomio característico
de
A
al determinante
χA (λ) = det(A − λI).
A son las raíces de χA (λ). El polinomio det(λI − A) es un polinomio mónico con las mismas raíces que det(λI − A), y llamamos indistintamente polinomio característico
Los autovalores de
a cualquiera de estos dos polinomios.
94
5. DIAGONALIZACIÓN
Ejercicio 5.1. Calcular el polinomio característico, los autovalores y autovectores de la matriz


2 0 0
B = 0 3 4  .
0 4 9
Ejemplo 5.1. Vericamos en
comando
linalg.eig
de
Python
numpy.
los cálculos para las dos matrices
A
y
B
utilizando el
A = np.array([[2, 3], [2, 1]])
e = np.linalg.eig(A)
# e es una lista con dos elementos
print("Autovalores: ", e[0])
# El primer elemento es un array
# de autovalores
print("Autovectores:\n", e[1]) # El segundo elemento es una matriz
# con los autovectores como columnas.
%% Autovalores: [ 4. -1.]
%% Autovectores:
%% [[ 0.83205029 -0.70710678]
%% [ 0.5547002
0.70710678]]
Ejercicio 5.2. Calcular en
Python los autovalores y los autovectores asociados a cada autovalor
para las siguientes matrices.

1.
2.

−1 4 −2
A = −3 4 0 
−3 1 3


0 0 2 1
1 0 1 0 

A=
0 1 −2 0
0 0 0 1
Vamos a utilizar la siguiente propiedad más adelante.
Proposición 5.1. Para
A ∈ Rn×n ,
los autovalores de
Demostración. Recordemos que para cualquier
A
y
AT
son los mismos.
A ∈ Rn×n , det(A) = det(AT ).
A son las raíces del polinomio característico pA (λ) = det(A − λI) y los
AT son las raíces del polinomio característico pAT (λ) = det(AT − λI). Como
= AT − λI , ambos determinantes son iguales y por lo tanto las raíces son las
□
Los autovalores de
autovalores de
(A − λI)T
mismas.
3. Diagonalización
A ∈ Kn×n como una transformación lineal de
TA (v) = A · v para v ∈ Kn . En este caso estamos pensando que tanto el
Como vimos, podemos pensar una matriz
TA :
Kn
vector
v
→
Kn dada por
como
TA (v) están expresados en coordenadas de la base canónica. Veamos cómo cambia
la matriz de una transformación cuando expresamos los vectores en otra base.
3. DIAGONALIZACIÓN
95
Ejemplo 5.2. Continuando el ejemplo anterior, consideramos
asociada
A=
2 3
2 1
y la transformación
2 3
v1
f (v) = TA (v) = Av =
.
2 1
v2
Para esta transformación, vale
T ((1, 0)) = (2, 2)
T ((0, 1)) = (3, 1)
También vimos que
4
w1 = (1, −1)
y
respectivamente. Si tomamos la base
w2 = (3, 2) son autovectores de A con autovalores −1 y
B = {w1 , w2 }, la transformación en esta base toma una
forma más simple:
T (w1 ) = −w1
T (w2 ) = 4w2
o si escribimos a estos vectores en las coordenadas de la base
B,
obtenemos
T ((1, 0)B ) = (−1, 0)B
T ((0, 1)B ) = (0, 4)B
Podemos entonces considerar la matriz de la transformación
la base
B
y llamamos
[f ]B
T
expresada en coordenadas de
a esta matriz. Obtuvimos:
[f ]B =
−1 0
.
0 4
En general, tenemos el siguiente resultado.
Proposición 5.2. Sea
autovectores de
Kn
A,
A ∈ Kn×n
tal que existe una base
B = {w1 , . . . , wn }
de
Kn
formada por
λ1 , . . . , λn ∈ C (no necesariamente distintos). Sea f : Kn →
f (v) = Av . La matriz de la f en la base B es diagonal,


λ1
0


..
[f ]B = 

.
0
λn
con autovalores
la transformación asociada,
Estudiamos ahora la relación entre la matriz original
A
y la matriz
[f ]B
en la base de
autovectores.
Recordemos que dada una base
en la base
B = {w1 , . . . , wn } de Kn y un vector v ∈ Kn con coordenadas
B
v = (u1 , . . . , un )B ,
podemos encontrar las coordenadas de
v
en la base canónica mediante la multiplicación
vE = CBE vB ,
donde
CBE
es la matriz de cambio de base de

CBE
B
a
E,
|
|

= b1 b2 · · ·
|
|

|
bn  .
|
96
5. DIAGONALIZACIÓN
Si en cambio, dadas las coordenadas canónicas de un vector
encontrar las coordenadas en la base
B,
v = (v1 , . . . , vn )E ,
queremos
realizamos la multiplicación
vB = CEB vE ,
donde
CEB
es la matriz de cambio de base de
E
a
B,
que podemos calcular invirtiendo la matriz
CBE ,
−1
CEB = CBE
.
f es una transformación lineal dada en coordenadas de la base canónica por
A, podemos obtener la matriz de la transformación en una base B (es decir que tanto
v como TA (v) estén expresados en coordenadas de la base B ) aplicando el siguiente cambio de
base a la matriz A:
Por lo tanto, si
una matriz
AB = CEB ACBE .
A
Vemos que tanto
como
AB
representan la misma transformación lineal pero expresada en
semejantes.
distintas bases. En este caso, decimos que las matrices son
Más generalmente, dos matrices
A, B
son
semejantes
si existe una matriz inversible
C
tal
que
B = C −1 AC.
Ejemplo. Continuamos el ejemplo A = 22 31 . Vimos que A tiene autovalores λ1 = −1 y
λ2 = 4 con autovectores v1 = (1, −1) y v2 = (3, 2) respectivamente. Estos autovectores forman
2
una base de R . Si expresamos la matriz A en la base B = {v1 , v2 } obtenemos
−1 0
AB =
0 4
(en las columnas de
AB
ponemos las imágenes de los vectores de la base
en coordenadas de la base
Vericamos en
B
expresados también
B ).
Python.
A = np.array([[2, 3], [2, 1]])
e = np.linalg.eig(A)
C_BE = e[1]
C_EB = np.linalg.inv(C_BE)
print("A_B = \n", C_EB @ A @ C_BE)
%% A_B =
%% [[ 4.00000000e+00 0.00000000e+00]
%% [-5.55111512e-17 -1.00000000e+00]]
La siguiente propiedad resume lo que acabamos de ver.
Proposición 5.3. Si
de
A
con autovalores
A ∈ Kn×n y B = {b1 , . . . , bn } es una base de Kn
{λ1 , . . . , λn }, entonces tomando
formada por autovectores
3. DIAGONALIZACIÓN
D
la matriz diagonal de autovalores,

λ1

D=

C
la matriz de autovectores de
de la matriz
97

..
|
A, C = b1 . . .
|

,
.
λn

|
bn 
|
obtenemos la diagonalización
A
A = CDC −1
y
D = C −1 AC.
Ejercicio 5.3. Calcular en Python los autovalores y autovectores de las siguientes matrices.
Según los resultados obtenidos, ¾alguna de estas matrices es diagonalizable?


1 1 0
A = 0 1 1 
0 0 1


−1 3 −1
A = −3 5 −1
−3 3 1
1.
2.
Para la matriz que resulte diagonalizable, ¾cuál es la base
Hallar
C
tal que
A = CDC −1
B
de autovectores? ¾Quién es
D?
.
Como vimos en el ejercicio, no cualquier matriz es diagonalizable.
Dada una matriz
A,
sean
λ1 , . . . , λk los autovalores distintos
λi . A es diagonalizable si
de
A.
Denimos
Eλi
el espacio
de autovectores asociados al autovalor
dim(Eλ1 ) + dim(Eλ2 ) + · · · + dim(Eλk ) = n.
En particular, como
distintos,
A
dim(Eλ ) ≥ 1
para
λ
autovector (¾por qué?), si
A
tiene
n
autovalores
es diagonalizable.
Ejercicio 5.4. Para cada una de las siguientes matrices, calcular en
Python
los autovalores,
las dimensiones de los espacios asociados a cada autovalor y determinar si las matrices son
diagonalizables.

101 2
3
4
 1 102 3
4 

A=
 1
2 103 4 
1
2
3 104


5
4
2
1
0
1 −1 − 1 

A=
−1 −1
3
0
1
1
−1
2

1.
2.
3.1. Multiplicidad algebraica y geométrica.
valor
λ
de
A,
La
multiplicidad aritmética
Dada una matriz
A ∈ Kn×n
y un auto-
denimos:
terístico
χA .
de
λ
es la multiplicidad de
λ
como raíz del polinomio carac-
98
5. DIAGONALIZACIÓN
multiplicidad geométrica
La
λ,
de
λ
es la dimensión del espacio de autovectores asociado a
o equivalentemente, la dimensión de
Proposición 5.4. Dada una matriz
Nu(A − λI).
A ∈ Kn×n
y un autovalor
λ
de
A,
la multiplicidad geomé-
trica es siempre menor o igual que la multiplicidad aritmética.
Demostración. Sea
vectores de
de
Eλ ,
s
la multiplicidad geométrica de
el espacio de autovectores asociados a
λ.
λ
y
{v1 , . . . , vs }
una base de auto-
Completamos la base de
Eλ
a una base
Kn :
B = {v1 , . . . , vs , w1 , . . . , wn−s }.
Consideramos la matriz de la transformación

f
A

denida por
λ
..




[f ]B = 



B
.
λ
0
donde el primer bloque es una matriz de
D
en la base
B:




,



s × s.
Utilizando la fórmula para el cálculo de determinantes desarrollando una columna, es fácil
ver que
χ[f ]B (x) = det(xIn − [f ]B ) = (x − λ)s det(xIn − [f ]B ).
Ya vimos que
[f ]B y [f ]E tienen el mismo polinomio característico. Por lo tanto,
λ como autovalor de A es al menos s, como queríamos ver.
la multipli-
□
cidad algebraica de
Para una matriz
A ∈ Kn×n ,
el polinomio característico tiene grado
n
y por lo tanto
n
raíces
contando sus multiplicidades. Es decir, que la suma de las multiplicidades aritméticas de todos
los autovalores es siempre exactamente
n.
Más aún, autovectores correspondientes a autovalores
distintos son linealmente independientes.
A ∈ Kn×n , sean v1 , . . . , vs autovectores de A correspondientes
λ1 , . . . , λs . El conjunto {v1 , . . . , vs } es linealmente independiente.
Proposición 5.5. Dada
valores distintos
a auto-
Demostración. Consideramos una relación de dependencia lineal:
a1 v1 + a2 v2 + · · · + as vs = 0
y supongamos que es la relación que involucra la menor cantidad posible de vectores, en particular
todos los
ai
son no nulos.
Si multiplicamos la igualdad por
(A − λ1 In )
obtenemos:
a1 (A − λ1 In )v1 + a2 (A − λ1 In )v2 + · · · + as (A − λ1 In )vs = 0,
y simplicando,
0 + a2 (λ2 − λ1 )v2 · · · + as (λs − λ1 )vs = 0,
que es una relación con menos términos no nulos que la anterior, lo cual es un absurdo.
Combinando este resultado con la propiedad anterior, obtenemos el siguiente resultado.
□
3. DIAGONALIZACIÓN
Proposición 5.6. Una matriz
99
A es diagonalizable si para todo autovalor λ de A, la multiplicidad
artimética y la multiplicidad geométrica coinciden.
3.2. Propiedades de las matrices diagonalizables.
Proposición 5.7. Si
A = C −1 DC ,
A2 = C −1 DCC −1 DC = C −1 DDC = C −1 D 2 C
k
−1 DC . . . C −1 DC = C −1 D k C
Inductivamente, A = C
−1 = (C −1 DC)−1 = C −1 D −1 C .
Si A inversible, A
−1 p(D)C .
Si p(x) ∈ R[x], p(A) = C
En todos estos casos, como vimos anteriormente, la función aplicada a una matriz diagonal
se puede calcular fácilmente aplicando la función a cada elemento de la diagonal.
3.3. Aplicación.
Consideramos el siguiente problema como ejemplo de aplicación.
Para guardar cadenas de caracteres en la computadora se pueden utilizar distintas codicaciones. Una codicación consiste en asignarla a cada carácter un número y ese número se guarda
en binario en la memoria de la computadora. Dependiendo la codicación utilizada pueden utilizarse entre 1 y 4 bytes por carácter. Supongamos ahora que recibimos un mensaje en el que
se han mezclado caracteres guardados utilizando 1 byte y caracteres utilizando 2 bytes, y no
sabemos cuáles caracteres usan 1 byte y cuáles usan 2 bytes. ¾De cuántas formas distintas se
puede interpretar el mensaje?
Planteando el problema en forma más abstracta, tenemos un tablero de
dividir el tablero en bloques, que pueden ser de
1×1
o de
2 × 1.
n × 1,
y queremos
¾De cuántas formas podemos
hacerlo?
Llamamos
an
a esta cantidad. Es posible demostrar la siguiente fórmula recursiva para los
valores de la sucesión:
a1 = 1
a2 = 2
an = an−1 + an−2
Es decir, los valores
an
forman una sucesión de Fibonacci. Para utilizar la teoría de transfor-
macion lineales, nos gustaría encontrar una relación lineal entre cada término y el siguiente. Sin
embargo, como está planteada la sucesión, cada término depende de los dos anteriores. Aplicamos
un truco simple para plantear la relación de forma que cada término dependa solo del anterior.
Plantear la ecuación de recurrencia en forma matricial de la siguiente forma:
Si llamamos
an
an−1
1 1
an−1
=
.
1 0
an−2
1 1
A=
, obtenemos
1 0
an
an−1
an−2
n−2 a2
=A
= AA
= · · · = (A)
an−1
an−2
an−3
a1
100
5. DIAGONALIZACIÓN
Por lo tanto, podemos dar una fórmula cerrada para la sucesión si encontramos una expresión
cerrada para la matriz
(A)n−2 .
Esto podemos hacerlo diagonalizando la matriz.
Calculamos autovalores y autovectores de
A
en
Python.
A = np.array([[1, 1], [1, 0]])
e = np.linalg.eig(A)
print("Autovalores: ", e[0])
print("Autovectores: \n", e[1])
%% Autovalores: [ 1.61803399 -0.61803399]
%% Autovectores:
%% [[ 0.85065081 -0.52573111]
%% [ 0.52573111 0.85065081]]
A.
1.618
0
A = CBE
CEB ,
0
−0.618
Como hay dos autovalores distintos, podemos diagonalizar
con
CBE
0.85 −0.52
=
0.52 0.85
y
Obtenemos
−1
.
CEB = CBE
Esto nos permite dar la siguiente expresión para los términos de la sucesión:
an
an−1
(1.618)n−2
0
a
= CBE
CEB 2 .
n−2
a1
0
(−0.618)
Vemos en particular que los términos de la sucesión crecen con velocidad exponencial. Haciendo las cuentas en forma simbólica, podemos dar una expresión exacta para los términos de
la sucesión (los autovalores de la matriz son
√
√
1+ 5 1− 5
2 y 2 .
4. Descomposición de Schur
Si bien vimos que no toda matriz es diagonalizable, es decir, semejante a una matriz diagonal,
vamos a ver que toda la matriz es semejante a una matriz triangular superior con los autovalores
en la diagonal. Más aun, la matriz de cambio de base se puede tomar unitaria. En este caso,
decimos que las matrices son unitariamente equivalentes. Concretamente, tenemos el siguiente
resultado.
A ∈ Kn×n con autovalores λ1 , . . . , λn
U unitaria y T triangular superior tales que
Teorema 5.1. Dada una matriz
tintos), existen matrices
(no necesariamente dis-
A = UT U∗
y
tii = λi .
Es decir,
autovalores de
A
A
A
son reales, la matriz
U
se puede tomar real y ortogonal.
Recordemos que para una matriz
T
son semejantes.
T triangular superior con los
A ∈ Rn×n y los autovalores de
es unitariamente equivalente a una matriz
en la diagonal en cualquier orden arbitrario. Si
U
unitaria, vale
U −1 = U ∗ ,
por lo tanto las matrices
A
y
5. AUTOVALORES Y AUTOVECTORES DE MATRICES ESPECIALES
Demostración. Construimos
Tomamos
λ1
autovalor de
Completando
{w1 }
A
y
U
y
T
w1
autovector de
paso a paso.
Kn y
n
de C ,
a una base de
demos obtener una base ortonormal
101
A
con autovalor
λ1
y
∥w1 ∥2 = 1.
aplicando ortonormalización de Gram-Schmidt, po-
{w(1) , z (2) , . . . , z (n) }.
Construimos la matriz
primera columna de
AU1
U1 tomando estos vectores como
λ1 w(1) , obtenemos
λ1 ∗
∗
,
U1 AU1 =
0 A1
columnas de la matriz. Como la
es
∗
Como U1 AU y A son semejantes, tienen el mismo polinomio característico. Luego A1 ∈
(n−1)×(n−1)
(2) ∈ Cn−1 autovector normaliC
tiene autovalores λ2 , . . . , λn . Tomamos ahora w
A1 correspondiente al autovalor
(n−1)×(n−1)
C
unitaria tal que
zado de
λ2
y repetimos el procedimiento. Construimos
U2∗ A1 U2 =
λ2 ∗
0 A2
U2 ∈
,
y denimos
V2 =
Las matrices
V2
y
U1 V2
1 0
0 U2
.
V2∗ U1∗ AU1 V2 tiene la forma


λ1 ∗
∗
 0 λ2

.
V2∗ U1∗ AU1 V2 = 


son unitarias, y
0
A2
Repitiendo este procedimiento, obtenemos matrices unitarias
1, . . . , n − 1,
y matrices unitarias
Vi ∈
Cn×n ,
i = 2, . . . , n − 1.
Ui ∈ C(n−i+1)×(n−i+1) , i =
La matriz
U = U1 V2 V3 . . . Vn−1
es unitaria y
U ∗ AU
es la factorización que buscamos.
Si todos los autovalores de
A
son reales, los autovectores pueden elegirse también reales y
todas las operaciones se pueden hacer sobre los reales, lo que prueba la última información.
□
5. Autovalores y autovectores de matrices especiales
Matrices ortogonales. Si A ∈ Kn×n es unitaria, todos sus autovalores cumplen |λ| = 1.
Matrices normales. Decimos que una matriz A es normal si conmuta con la matriz adjunta,
es decir, si
AA∗ = A∗ A.
Recordemos que dos matrices
A
y
B
son unitariamente equivalentes si existe
U
unitaria tal
que
U ∗ AU = B.
Proposición 5.8. Si
A es normal y B
es unitariamente equivalente a
A, entonces B
es normal.
102
5. DIAGONALIZACIÓN
Demostración. Tenemos que existe
U
unitaria tal que
U ∗ AU = B .
Por lo tanto,
BB ∗ = U ∗ AU U ∗ A∗ U = U ∗ AA∗ U = U ∗ A∗ AU = U ∗ A∗ U U ∗ AU = B ∗ B.
□
Decimos que una matriz
tal que
U AU ∗
A
es
unitariamente diagonalizable
es diagonal. Esto es equivalente a decir que
si existe una matriz
A
U
unitaria
tiene una base ortonormal de
autovectores.
Proposición 5.9. Si
autovectores de
A
A
es normal, entonces
A
es unitariamente diagonalizable. En particular,
correspondientes a autovalores distintos son ortogonales.
Demostración. Por la descomposición de Shur, sabemos que existe
unitariamente equivalente a
A.
T
triangular superior
Por lo tanto, podemos probar el resultado para
T.
Hacemos la demostración probando mediante cálculos explícitos que una matriz
T
triangular
y normal debe ser diagonal. Tenemos

t̄11 0 · · ·
 t̄21 t̄22 · · ·

 ..
.
..
.
 .
.
.
t̄n1 t̄n2 · · ·

0
t11 t12 · · ·
 0 t22 · · ·
0 

.  .
.
..
.  .
.
.
.
.
.
t̄nn
0
0 ···
Comparando la casilla
(1, 1)
 
t1n
t11 t12 · · ·
 0 t22 · · ·
t2n 
 
.  =  .
.
..
. 
.
 ..
.
.
.
tnn
0
0 ···

t1n
t̄11 0 · · ·
 t̄21 t̄22 · · ·
t2n 

.  .
.
..
.  .
.
.
.
.
.
tnn
t̄n1 t̄n2 · · ·
del producto a ambos lados,
t̄11 t11 = t11 t̄11 +
n
X
t1j t̄j1 .
j=2
Recordando que para cualquier
a ∈ C, aā = āa = |a|2 ,
|t11 |2 = |t11 |2 +
n
X
obtenemos
|t1j |2 .
j=2
y por lo tanto
0=
n
X
|t1j |2 .
j=2
Una suma de términos no-negativos solo puede dar 0 si todos sus términos son 0, luego
t1j = 0, j = 2, . . . , n.
Ahora usamos que la casillas
(2, 2)
de
T ∗T
y
TT∗
t̄22 t22 = t22 t̄22 +
n
X
son iguales y obtenemos
t2j t̄j2 ,
j=3
de donde concluimos
t2j = 0, j = 3, . . . , n.
Repitiendo este mismo argumento para todas las casillas de la diagonal, obtenemos
tij = 0,
para todo
j>i

0
0 

. .
. 
.
t̄nn
5. AUTOVALORES Y AUTOVECTORES DE MATRICES ESPECIALES
103
y como
tij = 0,
porque
T
para todo
es triangular superior, concluimos que
T
j<i
□
es diagonal.
Matrices simétricas y hermitianas. Una matriz A ∈ Rn×n es simétrica si A = AT . Más
generalmente,
A ∈ Cn×n
Proposición 5.10. Si
1.
2.
3.
x∗ Ax
es Hermitiana si
A
A = A∗ .
es Hermitiana, entonces
x ∈ Cn ,
todos los autovalores de A son reales,
S ∗ AS es Hermitiana para toda S ∈ Cn×n .
es real para todo
Demostración. Para 1, calculamos
x∗ Ax = (x∗ Ax)∗ = x∗ A∗ x = x∗ Ax.
Como el conjugado de
Para 2, si
x∗ Ax
Ax = λx
es igual a si mismo, es un número real.
y suponemos
x
normalizado
∥x∥2 = x∗ x = 1,
entonces
λ = λx∗ x = x∗ λx = x∗ Ax,
que es un número real por 1.
Por último,
(S ∗ AS)∗ = S ∗ A∗ S = S ∗ AS ,
y por lo tanto
S ∗ AS
es Hermitiana.
□
Ejemplo 5.3. Buscamos una base ortogonal de autovectores de


−4 2 −2
A =  2 −7 4  .
−2 4 −7
det(A − λI3 ) = −(λ3 + 18λ2 + 81λ + 108) = −(λ + 12)(λ + 3)2 ,
autovalores λ1 = −12 y λ2 = −3.
Calculamos
dos
Calculando los núcleos de
A − λi I3 , i = 1, 2,
por lo tanto hay
obtenemos los espacios de autovectores
Eλ1 = ⟨(1, −2, 2)⟩
Eλ2 = ⟨(2, 1, 0), (2, 0, −1)⟩
Por la Proposición 5.8, los espacios de autovalores correspondientes a distintos autovectores
son ortogonales. Por lo tanto, para obtener una base de autovectores ortogonales, solo debemos
ortogonalizar cada uno de los autoespacios por separado.
√
5
una base ortonormal
5 (1, −2,
D √2) y para encontrar
E
√
3
5
de Eλ2 aplicamos Gram-Schmidt y obtenemos Eλ2 =
3 (2, 1, 0), 15 (2, −4, −5) .
n√
o
√
√
5
3
5
La base ortogonal de autovectores es B =
(1,
−2,
2),
(2,
1,
0),
(2,
−4,
−5)
.
5
3
15
El autovector
(1, −2, 2) lo normalizamos a
Ejercicio 5.5. Calcular los autovalores y autovectores de las siguientes matrices.


1
0
0
A = 0 cos α − sin α,
0 sin α cos α
para
α = π/2
y
α = π/4.
104
5. DIAGONALIZACIÓN


0
0 −2
A =  0 −2 0 
−2 0 −3
En el segundo punto, encontrar una matriz
A=
Q
ortogonal y una matriz
D
diagonal tales que
QT DQ.
5.1. Matrices denidas positivas.
Cuando
A
A
A
es
es
es simétrica, con autovalores
QUITAR
λ1 , . . . , λ n
, denimos:
denida positiva si λi (A) > 0 para todo 1 ≤ i ≤ n.
semidenida positiva si λi (A) ≥ 0 para todo 1 ≤ i ≤ n.
Proposición 5.11.
A ∈ Rn×n
es
semidenida positiva
si y solo si
v T Av ≥ 0
para todo
v ∈ Rn .
Demostración / ejemplo:
Si
A=
λ1 0
0 λ2
, y
v = (v1 , v2 ),
λ1 0
v1
v Av = v1 v2
0 λ2
v2
λ1 v1
= v1 v2
λ2 v2
2
= λ1 v1 + λ2 v22 ,
T
y
λ1 v12 + λ2 v22 ≥ 0
si
Proposición 5.12.
λ1 , λ2 ≥ 0.
AT A
y
AAT
son matrices simétricas y semidenidas positivas.
□
Demostración. Ejercicio.
6. El método de la potencia
Veamos cómo podemos calcular mediante aproximaciones numéricas los autovalores de una
matriz.
Comencemos con un ejemplo. Consideremos la matriz


0.9 0.075 0.025
0.05 
A = 0.15 0.8
0.25 0.25
0.5
Tomamos un vector cualquiera no nulo, por ejemplo
distintos valores de
v = (1, 2, 3)
y calculamos
Ak v
para
k . O, equivalentemente, calculamos distintos términos de la sucesión denida
recursivamente por
v (0) = (1, 2, 3)
v (k) = Av (k−1)
Lo programamos en
Python.
6. EL MÉTODO DE LA POTENCIA
105
def estado(A, v, k):
for i in range(k):
v = A @ v
return(v)
A = np.array([[0.9, 0.075, 0.025], [0.15, 0.8, 0.05], [0.25, 0.25,
0.5]])
v = np.array([1,2,3])
print(estado(A, v, 1))
print(estado(A, v, 10))
print(estado(A, v, 100))
print(estado(A, v, 1000))
%%
%%
%%
%%
[1.125 1.9
2.25 ]
[1.41762971 1.47373372 1.45503428]
[1.4375 1.4375 1.4375]
[1.4375 1.4375 1.4375]
Observamos en el experimento que
cierto, entonces
Aw = w.
v (k)
tiende a
w = (1.4375, 1.4375, 1.4375).
Si esto es
Luego encontramos un autovector de autovalor 1. ¾Cómo podemos
demostrar lo que observamos?
Calculamos autovalores y autovectores de
A
y vericamos si
A
es diagonalizable.
e = np.linalg.eig(A)
print(e[0])
print(e[1])
%% [1.
0.74142136 0.45857864]
%% [[-0.57735027 -0.44371857 -0.03400257]
%% [-0.57735027 0.81130706 -0.13017638]
%% [-0.57735027 0.38065035 0.99090763]]
Obtenemos que
B = {w1 , w2 , w3 }
A es diagonalizable con autovalores λ1 = 1, λ2 = 0.74, λ3 = 0.45. Llamamos
a la base de autovectores.
Luego podemos escribir a cualquier vector
la base
v (0) ∈ R3
como combinación lineal de vectores de
B:
v (0) = a1 w1 + a2 w2 + a3 w3 .
Usando esta representación, ¾quién es
Av (0) ?
Obtenemos
v (1) = Av (0) = a1 Aw1 + a2 Aw2 + a3 Aw3
= a1 λ1 w1 + a2 λ2 w2 + a3 λ3 w3
106
5. DIAGONALIZACIÓN
y si multiplicamos nuevamente por
A,
v (2) = A2 v = A(Av) = a1 Aλ1 w1 + a2 Aλ2 w2 + a3 Aλ3 w3
= a1 λ21 w1 + a2 λ22 w2 + a3 λ23 w3
Repitiendo el mismo razonamiento obtenemos
v (k) = Ak v = a1 (λ1 )k w1 + a2 (λ2 )k w2 + a3 (λ3 )k w3 .
Como
para todo
|λ2 | < 1
y
|λ3 | < 1,
tenemos que
(λ2 )k −−−→ 0
k→∞
k ∈ N.
y
(λ3 )k −−−→ 0.
k→∞
Por otro lado,
λk1 = 1
Tomando límite, concluimos entonces
v (k) −−−→ a1 w1 ,
k→∞
(k) tiende a un vector de autovalor 1, que es el autovalor de mayor módulo de la matriz.
es decir v
En general, las matrices pueden tener autovalores de cualquier módulo y la sucesión anterior
podría tender a
0
o diverger o no tener límite. Para el caso general, realizamos la siguiente
modicación.
Tomamos un vector cualquiera no nulo
normalizamos el resultado a norma-2
v (k) =
Calculamos en
Python
v (0)
y en cada iteración de la recursión anterior
= 1:
Av (k−1)
,
∥Av (k−1) ∥2
para
k ≥ 1.
los vectores de esta sucesión tomando


3 1 2
A = 0 1 −2
1 2 4
def estado(A, v, k):
for i in range(k):
Av = A @ v
v = Av / np.linalg.norm(Av, 2)
return(v)
A = np.array([[3, 1, 2], [0, 1, -2], [1, 2, 4]])
v = np.array([1,2,3])
print(estado(A, v, 1))
print(estado(A, v, 10))
print(estado(A, v, 100))
print(estado(A, v, 1000))
%%
%%
%%
%%
[
[
[
[
0.53295174
0.74404261
0.74278135
0.74278135
-0.19380063
-0.37049752
-0.37139068
-0.37139068
0.82365269]
0.55599656]
0.55708601]
0.55708601]
v (0) = (1, 2, 3)
y
6. EL MÉTODO DE LA POTENCIA
Observamos que en este caso también existe límite
cierto en este caso también que
w
v (k) −−−→ w = (2.97, −1.49, 2.23).
k→∞
w
¾Será
es un autovector? ¾Cuál es el autovalor correspondiente? Para
responder estas preguntas, utilizamos nuevamente que si
la fórmula recursiva a
107
obtenemos nuevamente
w=
w.
w
es el límite de la sucesión, al aplicar
Es decir,
Aw
,
∥Aw∥2
y despejando, obtenemos
Aw = ∥Aw∥2 w.
w es
Python).
Concluimos que
cuenta en
autovector de
A
con autovalor
λ = ∥Aw∥2 = 4
(vericar esta última
Para demostrar el resultado en este caso, calculamos nuevamente autovalores y autovectores
de
A:
e = np.linalg.eig(A)
print(e[0])
print(e[1])
%% [4.+0.j 2.+1.j 2.-1.j]
%% [[ 0.74278135+0.j
%% [-0.37139068+0.j
%% [ 0.55708601+0.j
0.35355339-0.35355339j 0.35355339+0.35355339j]
-0.70710678+0.j
-0.70710678-0.j
]
0.35355339+0.35355339j 0.35355339-0.35355339j]]
Nuevamente la matriz es diagonalizable con autovalores
λ1 = 4, λ2 = 2 + i, λ3 = 2 − i.
Aplicando el razonamiento anterior,
v (1) =
Av (0)
,
∥Av (0) ∥2
(0)
v
(2)
Av
A ∥Av
(0) ∥
Av (1)
2
=
=
(0)
(1)
Av
∥Av ∥2
A ∥Av(0) ∥
2
=
2
...
v (k) =
Av (k−1)
Ak v (0)
=
.
∥Av (k−1) ∥2
∥Ak v (0) ∥2
A2 v (0)
∥Av (0) ∥2
∥A2 v (0) ∥2
∥Av (0) ∥2
=
A2 v (0)
∥A2 v (0) ∥2
108
5. DIAGONALIZACIÓN
Obtenemos en este caso,
v (k) =
=
Ak v (0)
∥Ak v (0) ∥2
a1 (λ1 )k w1 + a2 (λ2 )k w2 + a3 (λ3 )k w3
∥a1 (λ1 )k w1 + a2 (λ2 )k w2 + a3 (λ3 )k w3 ∥2
k k
λ2
k
λ1 a1 w1 + a2 λ1 w2 + a3 λλ31 w3
=
|λ1 |k a1 w1 + a2
=
En nuestro ejemplo,
tanto
v (k)
tiende a
λ1
|λ1 |
λ1 = 4
k
y
λ2
λ1
k
w2 + a3
λ3
λ1
k
k
w3
2
k
a1 w1 + a2 λλ12 w2 + a3 λλ13 w3
k
k
a1 w1 + a2 λλ21 w2 + a3 λλ31 w3
λ1
|λ1 |
k
= 1.
Los cocientes
2
λi /λ1 , i = 2, 3
tienden a
0
y por lo
w1 /∥w1 ∥2 .
λ1 no es un número real positivo, λ1 /|λ1 | es un número (complejo) de
k
módulo 1, y (λ1 /|λ1 |) tiene módulo 1 para todo k pero no tiene límite. Sin embargo, a partir
Observamos que si
de esta sucesión podemos aproximar el valor de
λ1
y conociendo
λ1
podemos obtener fácilmente
un autovector correspondiente a este autovalor. Esta estrategia para calcular el autovalor de
módulo máximo se conoce como el
método de la potencia. Vamos a presentar el método realizando
algunas suposiciones que facilitan la demostración. El método se puede aplicar en condiciones
más generales, incluso cuando
A
no es diagonalizable, pero en ese caso necesitamos utilizar la
forma de Jordan de la matriz u otras herramientas que escapan el contenido de este apunte para
la demostración.
Lema 5.1. Si
v
es un autovector de
A ∈ Cn×n
r(v) =
es igual al autovalor
de autovalor
λ,
el cociente de Rayleigh
v T Av
vT v
λ.
La demostración es inmediata usando que si
v
es autovector de autovalor
λ, Av = λv .
A
partir de la denición tenemos muchas formas de calcular el autovalor correspondiente a un
v de un autovector, r(v)
α = r(v) minimiza la norma
autovector. Se puede demostrar que cuando tenemos una aproximación
es el valor que más se parece a un autovalor, en el sentido de que
de
∥Av − αv∥2 .
Algorithm 1: Método de la potencia
A ∈ Cn×n , v (0) ∈ Cn ;
for k = 1, 2, . . . do
Av (k−1)
v (k) = ∥Av
(k−1) ∥ ;
2
rk =
end
(v (k) )T Av (k)
(v (k) )T v (k)
7. NORMA-2 DE MATRICES
109
A ∈ Cn×n una matriz diagonalizable con base de autovectores B = {w1 , . . . , wn }
y autovalores correspondientes {λ1 , . . . , λn } con |λ1 | > |λ2 | ≥ · · · ≥ |λn | ≥ 0 (existe un único
(0) ∈ Cn tal que en su escritura en la base B el
autovalor de módulo máximo). Dado un vector v
coeciente de w1 es no nulo, el algoritmo 1 satisface |rk − λ1 | → 0 cuando k → ∞.
Teorema 5.2. Sea
Demostración. Por hipótesis, podemos escribir
v (0) = a1 w1 + · · · + an wn ,
con
a1 ̸= 0.
Siguiendo los pasos del ejemplo, obtenemos
v (k) =
λ1
|λ1 |
k
k
a1 w1 + a2 λλ21 w2 + · · · + an λλn1 wn
.
k
k
λ2
λn
a1 w1 + a2 λ1 w2 + · · · + an λ1 wn
k
2
Despejando,
|λ1 |
λ1
k
y por lo tanto, llamando
v (k)
k
k
a1 w1 + a2 λλ21 w2 + · · · + an λλn1 wn
=
k
k
a1 w1 + a2 λλ21 w2 + · · · + an λλn1 wn
ṽ (k) =
|λ1 |
λ1
k
v (k) ,
ṽ (k) −−−→
k→∞
Como
ṽ (k)
es igual a
v (k)
ṽ (k)
a 1 w1
.
∥a1 w1 ∥2
multiplicado por un escalar, podemos fácilmente ver que
r(ṽ (k) ) =
Como
2
(ṽ (k) )T Aṽ (k)
(v (k) )T Av (k)
=
= r(v (k) ).
(ṽ (k) )T ṽ (k)
(v (k) )T v (k)
tiende a un autovector de
A,
concluimos
lı́m r(v (k) ) = lı́m r(ṽ (k) ) = λ.
k→∞
k→∞
□
7. Norma-2 de matrices
El estudio de autovalores y autovectores que realizamos en este capítulo nos permite dar una
mejor interpretación a la norma-2 de matrices. Recordemos que dada una matriz
una norma vectorial
∥·
∥n en Kn , denimos la norma inducida
∥A∥ = máx m
0̸=x∈K
A ∈ Kn×n
∥Ax∥
=
máx
∥Ax∥.
∥x∥
x∈Km ,∥x∥=1
En el caso de matrices diagonales, el cálculo de normas matriciales es muy simple.
y
110
5. DIAGONALIZACIÓN
Proposición 5.13. Si
A
diagonal,

λ1 0
0
 0 λ2 0


A =  0 0 λ3
 ..
.
.
.
.
0 0 ···
...
···
···
..
.

0
0

0
,
. 
. 
.
λn
∥A∥2 = máx{|λi |}.
□
Demostración. Ejercicio.
Esa simple observación motiva la siguiente denición.
Definición 5.2. Dada
A ∈ Kn×n
denimos el radio espectral de
ρ(A) = máx{|λ|,
A
como
con λ autovalor de A}
A ∈ Rn×n es simétrica, sea B = {v1 , · · · , vn } una base
n
autovectores y {λ1 , λ2 , · · · λn } ⊂ R los respectivos autovalores. Sea x ∈ R tal
escribiendo x en la base B se tiene
n
X
x=
αi vi ,
Supongamos que
ortonormal de
que
∥x∥2 = 1,
i=1
y por ser
B
un conjunto ortonormal tenemos por la Observación 3.4
1=
∥x∥22
=
n
X
αi2 .
i=1
Por otro lado, como
Ax =
Pn
i=1 αi λi vi , usando nuevamente la Observación 3.4
n
X
∥Ax∥22 =
αi2 λ2i .
i=1
Por lo tanto
n
∥Ax∥2 X 2 2
=
αi λi ≤ ρ(A)2 ,
∥x∥2
, ∀x, ∥x∥ ≤ 1
i=1
ya que cada
|λi | ≤ ρ(A). Por otro lado, llamando j
x = vj , se tiene
a un índice tal que
el vector de norma 1
∥Ax∥2 = |λj |2 ∥x∥22 = ρ(A)2 .
En denitiva
sup ∥Ax∥2 = ρ(A)2 .
∥x∥=1
Resultado que recuadramos debajo.
Si
A ∈ Rn×n , AT = A
entonces
∥A∥2 = ρ(A).
|λj | = ρ(A) y considerando
7. NORMA-2 DE MATRICES
111
Podemos hacer una cuenta similar para el caso general. En efecto, consideremos ahora
Rn×n
A∈
no necesariamente simétrica. Queremos calcular
sup ∥Ax∥22 = (Ax)T Ax = xT (AT A)x
∥x∥2 =1
M = AT A, resulta simétrica. Consideremos una base B = {v1 , · · · , vn } ortonormal
de autovectores de M y {λ1 , λ2 , · · · λn } ⊂ R los respectivos autovalores. Notemos que M es
n
semidenida positiva (ver Denición 3.9), pues de la ecuación previa se ve que para todo x ∈ R
Si llamamos
xT M x ≥ 0,
λi ≥ 0
y en particular se sigue que
pues si
vi ∈ ker(A)
debe ser
λi = 0
y en caso contrario
0 < viT M vi = viT λi vi = λi .
Con esta información escribimos como antes
x=
n
X
1 = ∥x∥22 =
αi vi ,
i=1
n
X
αi2 ,
Mx =
i=1
de donde por la ortonormalidad de los
n
X
αi M v i =
i=1
n
X
λi αi vi
i=1
vi
xT M x =
n
X
λi αi2 .
i=1
Luego,
sup
∥x∥2 =1
∥Ax∥22
n
X
= P sup
n
i=1
α2i =1 i=1
λi αi2 = λmax = ρ(M ).
En denitiva tenemos
Sea
A ∈ Rn×n ,
entonces
a
∥A∥2 =
aTambién
q
ρ(AT A).
vale la demostración escrita mas arriba para el caso de matrices rectangulares.
Ejercicio 5.1. Verique que de la última expresión se obtiene como caso particular la de las
matrices simétricas.
Otra propiedad importante es la siguiente
Proposición 5.14. Sea
A ∈ Kn×n ,
entonces
ρ(A) = ı́nf{∥A∥ : ∥ · ∥ es
Demostración. Solo vamos a probar que
una norma subordinada}.
ρ(A) ≤ ∥A∥
para cualquier norma subordinada.
La otra desigualdad es mas complicada y no la probaremos aquí.
en
Si K = C la demostración es mas sencilla. Sea λ autovalor de A y sea ∥·∥ una norma matricial
Cn×n subordinada a la norma vectorial1 ∥ · ∥. Luego existe 0 ̸= v autovector de autovalor λ.
1
Usamos la misma notación para ambas normas ya que el contexto indica cuando estamos usando una o la
otra.
112
5. DIAGONALIZACIÓN
Podemos suponer que
∥v∥ = 1
y entonces
Av = λv,
∥Av∥ ≤ |λ|∥v∥ = |λ|.
de donde
Por lo tanto, para todo
λ
autovalor
∥A∥ = sup ∥Ax∥ ≥ ∥Av∥ ≥ |λ|.
∥x∥=1
de donde
∥A∥ ≥ ρ(A).
Si
K=R
hay un problema si intentamos repetir el argumento previo vemos que funciona per-
fectamente si
λ ∈ R, sin embargo el autovalor y el autovector podrían ser complejos y no tener
∥v∥ si se trata de una norma en Rn . Supongamos entonces que λ = a+ib ∈ C
sentido la expresión
y escribamos entonces,
2
v = Re(v) + iIm(v)
y
Av = (a + ib)(Re(v) + iIm(vb)),
luego
ARe(v) = aRe(v) − bIm(v)
AIm(v) = bRe(v) + bIm(v),
y entonces
∥ARe(v)∥22 = a2 ∥Re(v)∥22 − 2ab⟨Im(v), Re(v)⟩ + b2 ∥Im(v)∥22
∥AIm(v)∥22 = b2 ∥Re(v)∥22 − 2ab⟨Im(v), Re(v)⟩ + a2 ∥Im(v)∥22
sumando miembro a miembro
∥ARe(v)∥22 + ∥AIm(v)∥22 = (a2 + b2 ) ∥Re(v)∥22 + ∥Im(v)∥22
de donde
∥Re(v)∥22 + ∥Im(v)∥22 ∥A∥22 ≥ (a2 + b2 ) ∥Re(v)∥22 + ∥Im(v)∥22
y entonces
∥A∥22 ≥ (a2 + b2 ) = |λ|2 .
Es decir -ya que
λ
es arbitrario-
∥A∥2 ≥ ρ(A).
Sea ahora
∥·∥
una norma arbitaria en
Rn
y
k ∈ N:
que además (por Proposición 3.2) existe una constante
C∥Ak ∥.
C
-independiente de
3
ρ(A)k ≤ ρ(Ak ) y
k - tal que ∥Ak ∥2 ≤
por un lado sabemos que
Por lo tanto,
ρ(A)k ≤ ρ(Ak ) ≤ ∥Ak ∥2 ≤ C∥Ak ∥ ≤ C∥A∥k ,
donde hemos usado (3.8) en la última desigualdad. Tomando raíz
k−ésima
ρ(A) ≤ C 1/k ∥A∥,
tomando
k→∞
se obtiene
ρ(A) ≤ ∥A∥,
□
como queríamos probar.
2
Debemos este argumento a Ariel Lombardi, colega de la UNR.
3
En realidad vale el igual. Para ver la desigualdad basta notar que si
k
de A .
λ
es autovalor de
A
entonces
λk
lo es
8. EL ALGORITMO QR
113
Como aplicación, obtenemos un criterio para determinar cuándo las potencias de una matriz
tienden a la matriz nula.
Proposición 5.15. Sea
M ∈ Kn×n ,
se tiene que
lı́m ∥M k ∥ = 0
k→∞
∥·∥
ρ(M ) < 1.
para cierta norma
y solo sí
Demostración. Si
(y por ende para cualquier otra ya que son todas equivalentes) sí
ρ(M ) < 1,
entonces existe
∥·∥
tal que
∥M ∥ = µ < 1
y listo.
Por otro lado,
de donde necesariamente
ρ(M )k = ρ(M k ) ≤ ∥M k ∥ → 0,
ρ(M ) < 1.
□
8. El algoritmo QR
Vimos anteriormente el método de la potencia para calcular el autovalor de mayor módulo
de una matriz. En este sección, veremos otro algoritmo que nos permite aproximar todos los
autovalores y autovectores de una matriz de forma muy eciente.
Una demostración completa de este algoritmo excede las intenciones de este apunte, por lo
tanto nos limitaremos a ver las ideas principales.
La primera idea es extender el método de la potencia a subespacios.
El método de la potencia nos permite calcular el autovalor de mayor módulo mediante una
sucesión
{v (k) }
con
v (k) =
Si bien, en general,
λ1
|λ1 |
k
k
k
a1 w1 + a2 λλ21 w2 + · · · + an λλn1 wn
k
k
a1 w1 + a2 λλ12 w2 + · · · + an λλn1 wn
{v (k) } ↛ w1
2
(ni a un múltiplo jo), podemos intuitivamente pensar en
convergencia de subespacios:
⟨v (k) ⟩ → ⟨w1 ⟩.
¾Cómo calculamos los demás autovalores y autovectores?
Si aplicamos el método (sin normalizar) a dos vectores en vez de uno, podemos escribir
(k)
v1
= (λ2 )
k
(k)
= (λ2 )
k
v2
!
k
k
λ3
λn
w1 + a2 w2 + a3
w3 + · · · + an
wn ,
a1
λ2
λ2
!
k
k
k
λ1
λ3
λn
b1
w 1 + b2 w 2 + b3
w3 + · · · + bn
wn .
λ2
λ2
λ2
Intuitivamente vemos que
1. Si bien
(k)
(k)
λ1
λ2
k
(k)
(k)
⟨v1 , v2 ⟩ → ⟨w1 , w2 ⟩
⟨v1 , v2 ⟩ → ⟨w1 , w2 ⟩,
cuando
individualmente
(k)
k → ∞.
⟨v1 ⟩ → ⟨w1 ⟩
y
(k)
⟨v2 ⟩ → ⟨w1 ⟩.
114
5. DIAGONALIZACIÓN
(k)
v2
2. Si logramos sacarle a
⟨w2 ⟩.
{w1 , . . . , wn }
3. Si
la componente en la dirección de
base ortonormal y
4. Por lo tanto, si conocemos
w1 ,
(k)
w1 , vamos a obtener ⟨ṽ2 ⟩ →
v = a1 w1 + · · · + an wn ,
tenemos
(v, w1 ) = a1 .
podemos hacer
v − (v, w1 )w1 = a2 w2 + · · · + an wn .
5. En nuestro caso,
(k)
(k)
⟨v2 − (v2 , w1 )w1 ⟩ → ⟨w2 ⟩.
w1
En general, no conocemos
Si
(k)
⟨v1 ⟩ → ⟨w1 ⟩
y denimos
pero podemos usar
(k)
(k)
u1 = v1
,
(k)
v1
.
(k)
u1
(k)
ũ1 =
(k) ,
∥u1 ∥
(k)
(k)
u2
obtenemos
=
(k)
v2
−
(k) (k)
(k)
⟨ũ1 , v2 ⟩ũ1
(k)
ũ2
y
u2
=
(k)
,
∥u2 ∥
(k)
⟨ũ2 ⟩ → ⟨w2 ⟩.
Observación 5.1.
(k)
(k)
{ũ1 , ũ2 }
es el resultado de aplicar Gram-Schmidt a
(k)
(k)
{v1 , v2 }.
Analizamos ahora el caso de matrices simétricas.
independientes podemos generar sucesiones de vectores
(0)
(0)
{v1 , . . . , vn } de vectores
(k)
tales que ⟨ũi ⟩ → ⟨wi ⟩.
Si extendemos el razonamiento a un conjunto inicial
linealmente
Trabajando con matrices, podemos aplicar el método simultáneamente a un conjunto de
vectores. Obtenemos el siguiente método para matrices simétricas.
Algorithm 2: Iteración simultánea
A matriz (simétrica) con autovalores |λ1 | > |λ2 | > . . . > |λn |;
B (0) = In (o cualquier matriz de rango máximo);
for k = 1, 2, . . . do
B̃ (k) = AB (k−1) ;
B̃ (k) = Q(k) R(k) , descomposición QR de B̃ (k) ;
B (k) = Q(k) , el resultado de aplicar G-S a las columnas de B̃ (k)
end
Si
(k)
ci
es la
i-ésima
columna de
B (k) ,
(k)
⟨ci ⟩ → ⟨wi ⟩.
¾Cómo aproximamos los autovalores? La matriz
A
en la base
B (k)
dada por
B (k) ,
T
[A]B(k) = (B (k) ) AB (k) ,
es una matriz diagonal con los autovalores en la diagonal.
Ejercicio 5.6. Aplicar el algoritmo a una matriz simétrica
A
arbitraria y comparar los auto-
valores y autovectores obtenidos con los que se obtienen por el comando
eig
de
Python.
9. TEOREMA DE LOS CÍRCULOS DE GERSHGORIN
115
¾Qué sucede si aplicamos el método anterior para matrices generales con autovalores
|λ1 | >
|λ2 | > . . . > |λn |?
Si bien no se cumple
(k)
⟨ṽi ⟩ → ⟨wi ⟩ para todo i, obtenemos

(k)

⟨ṽ1 ⟩ → ⟨w1 ⟩




(k) (k)


⟨ṽ , ṽ ⟩ → ⟨w , w ⟩
1
1
2
en cambio
2
.

.

.




 (k)
⟨ṽ1 , . . . , ṽn(k) ⟩ → ⟨w1 , . . . , wn ⟩
Por lo tanto,
T
[A]B(k) = (B (k) ) AB (k) ,
tiende a una matriz triangular superior con los autovalores en la diagonal.
Finalmente, acomodando las operaciones convenientemente, obtenemos el siguiente método.
Algorithm 3: Método QR
A(0) = A ∈ Cn×n
for k = 0, 1, 2, . . .
con autovalores
do
Calcular la descomposición
A(k+1)
end
=
A
QR
de
A(k) , A(k) = Q(k) R(k)
;
R(k) Q(k)
Proposición 5.16. La matriz
de
|λ1 | > |λ2 | > . . . > |λn |;
A(k)
tiende a una matriz triangular superior con los autovalores
en la diagonal.
Observación 5.2. La matriz que se obtiene en cada paso es semejante a la matriz del paso
anterior:
(Q(k) )T A(k) Q(k) = (Q(k) )T (Q(k) R(k) )Q(k) = R(k) Q(k) = A(k+1) ,
por lo tanto las matrices
A(k)
tiene los mismos autovalores para todo
k = 0, 1, 2, . . .
A arbitraria y comparar los autovalores obeig de Python. ¾Cómo podemos calcular los
Ejercicio 5.7. Aplicar el algoritmo a una matriz
tenidos con los que se obtienen por el comando
autovectores?
Ejercicio 5.8. ¾Qué sucede si hay autovalores del mismo módulo? Analizar el caso
A ∈ Rn×n
con autovalores complejos conjugados.
9. Teorema de los círculos de Gershgorin
Esta es otra herramienta en la caja de los buscadores de autovalores.
A ∈ Cn×n , denimos para 1 ≤ i ≤ n, Ri la suma
i-ésima la de A fuera de la diagonal,
X
Ri =
|aij |.
Dada
la
de los módulos de los elementos de
j̸=i
Llamamos
D(aii , Ri ) ⊂ C
al disco cerrado centrado en
aii
de radio
Ri .
116
5. DIAGONALIZACIÓN
Teorema 5.3. Todos los autovalores de
A están en alguno de los discos de Gershgorin D(aii , Ri ).
10. Procesos de Markov
Estudiamos ahora los procesos de Markov como aplicación de diagonalización de matrices.
Comenzamos por un ejemplo.
Ejemplo 5.4. En una ciudad, todos los adultos tienen teléfono celular de una de las tres com-
pañías A, B o C. Cada mes, algunos clientes se cambian de compañía, según la siguiente fórmula:

 
 
ak+1
0.9 0.15 0.25
ak
 bk+1  = 0.075 0.8 0.25  bk  .
ck+1
0.025 0.05 0.5
ck
La casillas de la matriz indican que porcentaje de los clientes de cada compañía se queda en
la misma compañía o se cambian a otra compañía. Por ejemplo
90 % de los clientes de la compañía A en
15 % de los clientes de la compañía B se pasan
lo que signica que el
A en el mes
k + 1,
el
ak+1 = 0.9ak + 0.15bk + 0.25ck ,
el mes k siguen en la compañía
a A y el 25 por ciento de los
clientes de la compañía C se pasan a A.
Queremos ver cuántos clientes hay en cada compañía con el paso del tiempo, y si esas cantidades converge a algún valor límite. Para esto, contestamos las siguientes preguntas utilizando
Python.
Si inicialmente hay 1000 clientes en cada compañía, es decir
1. hallar
2. hallar
v1 = (a1 , b1 , c1 )
v10 y v100 ,
y
v0 = (a0 , b0 , c0 ) = (1000, 1000, 1000),
v2 = (a2 , b2 , c2 ),
3. hallar (si existe) el límite de la cantidad de clientes en cada compañía, es decir
Para contestar 1, calculamos
v1 = Av0
y
lı́mk→∞ (ak , bk , ck ).
v2 = Av1 .
import numpy as np
A = np.array([[0.9, 0.15, 0.25], [0.075, 0.8, 0.25] , [0.025, 0.05,
0.5]])
v0 = np.array([1000, 1000, 1000])
v1 = A @ v0
print("v1 = ", v1)
v2 = A @ v1
print("v2 = ", v2)
%% v1 =
%% v2 =
[1300. 1125. 575.]
[1482.5 1141.25 376.25]
En general, para calcular
v (k) ,
tenemos
v (k) = Av (k−1) = A(Av (k−2) ) = · · · = A(A(. . . (Av (0) ) . . . )),
y podemos calcular estos vectores mediante una iteración en
Python:
11. MATRICES DE MARKOV
117
v = np.array([1000, 1000, 1000])
k = 10
for i in range(k):
v = A @ v
print("v(", k, ") = ", v)
v = np.array([1000, 1000, 1000])
k = 100
for i in range(k):
v = A @ v
print("v(", k, ") = ", v)
%% v( 10 ) = [1844.0598284 965.482631
%% v( 100 ) = [1875.
937.5 187.5]
190.4575406]
Finalmente, para calcular el límite mediante cálculos en Python, tomamos valores mayores
de
k
y vemos si las coordenadas de
v (k)
se estabilizan.
v = np.array([1000, 1000, 1000])
k = 1000
for i in range(k):
v = A @ v
print("v(", k, ") = ", v)
v = np.array([1000, 1000, 1000])
k = 10000
for i in range(k):
v = A @ v
print("v(", k, ") = ", v)
%% v( 1000 ) = [1875.
%% v( 10000 ) = [1875.
Observamos que
937.5 187.5]
937.5 187.5]
lı́mk→∞ v (k) = (1875, 937.5, 187.5).
A partir de este ejemplo, nos planteamos las siguientes preguntas:
v (k) ?
(∞) = lı́m
(k) .
existe v
k→∞ v
¾Cómo podemos analizar el comportamiento de
¾Será cierto que para cualquier vector inicial,
Para contestar estas preguntas vamos a estudiar los llamados procesos de Markov.
11. Matrices de Markov
Definición 5.3. Decimos que una matriz
A ∈ Rn×n
es
de Markov
(o estocástica) si
118
5. DIAGONALIZACIÓN
Todas las casillas de
A
son números reales no negativos
La suma de las casillas en cualquier columna de
A
es siempre 1.
En particular, estas dos condiciones implican que todas las coordenadas de la matriz deben
ser números entre 0 y 1. Observamos que la matriz del ejemplo cumple estas condiciones.
11.1. Espectro de las matrices de Markov.
∞
proceso de Markov, debe cumplir Av
=
v∞
Observamos que si
v ∞ , es decir
es el límite de un
v ∞ es un autovector de
A
de autovalor
1.
Estudiamos ahora entonces los autovalores y autovectores de las matrices estocásticas.
Proposición 5.17. Si
A
es una matriz de Markov,
Demostración. Como las columnas de
A
λ=1
es un autovalor de
suman 1, si
A.
v = (1, 1, 1, . . . , 1),
AT v = v,
luego
v
es autovector de
AT
con autovalor
1.
Como los autovalores de
A
y
AT
son los mismos,
λ = 1 es autovalor de A (aunque no necesariamente el autovector correspondiente
v = (1, 1, . . . , 1)).
□
concluimos que
es
Proposición 5.18. Si
A
Demostración. Si
es una matriz de Markov y
Av = λv ,
para
λ
es un autovalor de
A,
entonces
|λ| ≤ 1.
1 ≤ i ≤ n,
|λ||vi | = |λvi | = |Ai1 v1 + · · · + Ain vn | ≤ |Ai1 v1 | + · · · + |Ain vn | = Ai1 |v1 | + · · · + Ain |vn |
(para la última igualdad utilizamos que todas las coordenadas de
Ahora sumamos sobre todos los
A
son no-negativas).
i:
|λ|(|v1 | + · · · + |vn |) ≤ (A11 |v1 | + · · · + A1n |vn |) + · · · + (An1 |v1 | + · · · + Ann |vn |)
= (A11 + · · · + An1 )|v1 | + · · · + (A1n + · · · + Ann )|vn |
= |v1 | + · · · + |vn |
Como
|v1 | + · · · + |vn | ≥ 0,
obtenemos
|λ| < 1.
A es una matriz de Markov, λ ̸= 1
λ, entonces v1 + · · · + vn = 0.
Proposición 5.19. Si
autovector asociado a
Demostración. Si
Av = λv ,
para
□
es un autovalor de
A
y
v
es un
1 ≤ i ≤ n,
λvi = Ai1 v1 + · · · + Ain vn
y
λ(v1 + · · · + vn ) = (A11 v1 + · · · + A1n vn ) + · · · + (An1 v1 + · · · + Ann vn )
= (A11 + · · · + An1 )v1 + · · · + (A1n + · · · + Ann )vn
= v1 + · · · + vn
Como
λ ̸= 1,
debe ser
v1 + · · · + vn = 0.
□
11. MATRICES DE MARKOV
11.2. Probabilidades y proporciones.
tintos, podemos considerar a la casillas
pasar del estado
j
al estado
(i, j)
119
Si consideramos un sistema con
n
estados dis-
de una matriz de Markov como la probabilidad de
i.
Ejemplo 5.5. Para modelar el estado del tiempo en una ciudad, consideramos tres estados:
soleado, nublado y lluvioso, y la matriz de Markov que indica la probabilidad de pasar de un
estado a otro de un día a otro:


0.6 0.2 0.1
0.3 0.6 0.4 .
0.1 0.2 0.5
Si consideramos que inicialmente tenemos la misma probabilidad de que el día sea soleado,
nublado o lluvioso, es decir, comenzamos con un vector inicial de probabilidades:
v (0) = (1/3, 1/3, 1/3)
calculando
v (k)
podremos estimar la probabilidad de que llueva en un día especíco, o calculando
v (∞) podemos estimar la probabilidad de que llueva a largo plazo.
11.3. Conjunto de estados.
Denimos el conjunto
Pn
de estados
Pn = {π ∈ Rn+ : π1 + · · · + πn = 1}
que podemos pensar como vectores de probabilidades.
M ∈ Rn×n
Proposición 5.20. Si
π ∈ Pn
Proposición 5.21. Si
M ∈ Rn×n ,
y
existe
es una matriz de Markov,
π ∈ Pn
π = (π1 , . . . , πn )
M |π| = |π| (ejercicio).
Demostración. Ver que si
(|π1 |, . . . , |πn |)
satisface
11.4. Estados de equilibrio.
de Markov
M
Un estado
tal que
M π ∈ Pn .
M π = π.
satisface
M π = π,
entonces también
π ∈ Pn se dice estado de equilibrio
|π| =
□
de una matriz
si cumple
M π = π,
o equivalentemente, si es un autovector de
M
de autovalor 1.
Toda matriz de Markov tiene al menos un estado de equilibrio.
Una matriz de Markov puede tener varios estados de equilibrio.
Para el autovalor
λ = 1, la la multiplicidad algebraica coincide con la multiplicad geoméE1 formada por vectores de estado
trica, y podemos hallar una base de autovectores de
(sin demostración).
Ejercicio 5.9. Hallar dos estados de equilibrio distintos para la matriz


0.5 0.3 0
0
0.5 0.7 0
0
.
M =
0
0 0.1 0.5
0
0 0.9 0.5
¾Cuántos estados de equilibrio tiene
M?
120
5. DIAGONALIZACIÓN
11.5. Estados límite.
Nos preguntamos si dado un estado inicial
π (0) ,
existe
π ∗ = lı́m π (k) .
k→∞
En tal caso,
π ∗ = lı́m π (k+1) = lı́m M π (k) = M π ∗ ,
k→∞
es decir,
π∗
k→∞
es un estado de equilibrio.
Preguntas:
¾Dado un estado inicial
π (0) ,
el sistema evoluciona siempre hacia un estado límite?
Si el estado de equilibrio no es único, ¾cómo determinamos a qué estado converge?
11.6. Autovalores y autovectores.
|λ2 | ≥ · · · ≥ |λn | ≥ 0,
Usando las propiedades vistas, si
λ1 = λ2 = · · · = λs = 1
(0)
Dado π
∈ P,
y
w1 , . . . , ws
s
M diagonalizable, con autovalores |λ1 | ≥
w1 , . . . , wn .
Supongamos
y autovectores correspondientes
es la multiplicidad del autovalor 1, podemos suponer
vectores de estado.
escribimos
π (0) = a1 w1 + · · · + an wn
y
π (k) = a1 (λ1 )k w1 + · · · + an (λn )k wn
Ejercicio 5.10. Si
π (0) ∈ P ,
existe
1≤i≤s
tal que
11.7. Cálculo analítico de estados límite.
π
(k)
k
ai ̸= 0.
¾Por qué?
A partir de la expresión
k
= a1 (λ1 ) w1 + · · · + an (λn ) wn
= a1 w1 + · · · + as ws + as+1 (λs+1 )k ws+1 + · · · + an (λn )k wn
utilizando que
λki → 0
Ejemplo 5.6.
si
Si
|λi | < 0
1
deducimos:
es el único autovalor de módulo 1,
lı́m π (k) = a1 w1 + · · · + as ws .
k→∞
s = 1, π (k) → w1 .
Si existe λi ̸= 1, |λi | = 1, el proceso de Markov puede no tener límite (depende del vector
Si además
inicial de estados).
11.8. Diagonalización de matrices de Markov.
1 = |λ1 | ≥ |λ2 | ≥ · · · ≥ |λn | ≥ 0,
Si
M
diagonalizable, con autovalores
y autovectores correspondientes
M = CBE DCEB

λ1

= CBE 
w1 , . . . , wn ,

..

 CEB
.
y
λn


M k = CBE D k CEB = CBE 

λk1
..
.
λkn

 CEB ,
tenemos
11. MATRICES DE MARKOV

con
CBE
|
= w1 . . .
|
11.9. Matriz
121

|
wn .
|
M ∞.
Notamos
M ∞ = lı́mk→∞ M k ,
cuando ese límite existe.
Proposición 5.22. Se cumplen las siguientes propiedades.
M ∞ , π ∞ = M ∞ π (0) para cualquier vector inicial de estados.
∞ si y solo si λ = 1 es el único autovalor de módulo 1.
Existe M
∞ = C D ∞ C , y tomando 1∞ = 1 y λ∞ = 0 para |λ| < 1 obtenemos
En este caso, M
BE
EB


 ∞

1
λ1



  ...

∞
..
D =
=



.

1 
∞
λn
0
Si existe
Si el autovalor
λ=1
tiene multiplicidad 1, con autovector de estado

M
∞
|

= w ...
|
w,
entonces

|
w .
|
Ejercicio 5.11. Para estudiar la relevancia de 4 páginas, se utiliza el modelo de Google Page
Rank.
Las echas indican los enlaces que hay en cada página. Se supone que inicialmente hay 1/4
del total de personas en cada una de las 4 páginas.
Hallar la matriz de Markov y determinar, si existe,
π (∞)
en cada caso.
1. Considerando que cada minuto, los navegantes clickean alguno de los links al azar disponibles en la página que se encuentran.
2. Considerando que cada minuto, la mitad de los navegantes que están en una página se
quedan en esa página y la otra mitad clickean alguno de los links al azar disponibles en
la página que se encuentran.
Capítulo 6
Métodos Iterativos
Como ya hemos visto, los métodos directos poseen en general una complejidad de orden
cúbico en el número de incógnitas
O(N 3 ).
Esto dice que si en un problema determinado se
duplica el número de incógnitas entonces el número de operaciones se multiplica por 8. Eso ha
llevado a intentar desarrollar métodos de orden menor
1
y los métodos iterativos son una posible
alternativa.
Hay, además de la complejidad, otros problemas con los métodos directos. Por ejemplo, en
muchas aplicaciones aparecen problemas con un número muy grande de incógnitas pero con
matrices
ralas,
es decir, matrices con un elevado porcentaje de coeciente nulos. Esto permite
en principio reducir notablemente el número de operaciones del algoritmo pero sin embargo
como desventaja aparece un rellenado innecesario en la factorización resultante. En la siguiente
sección vemos un ejemplo sencillo.
1. Un ejemplo: distribución de temperatura
Ciertas ecuaciones diferenciales lineales pueden resolverse de modo aproximado a través de
discretizaciones.
En dimensión uno es fácil imaginar como puede hacerse. Por ejemplo, conside-
remos en el intervalo
[a, b]
la ecuación diferencial
 ′′
u (x) = f (x),
u(a)
= 0,

u(b)
= 0.
(6.4)
f (x) representa un dato conocido. Podemos aproximar el problema en dimensión nita
a = x0 <
b−a
x1 < · · · < xn+1 = b tales que xi = a + ih donde h = n+1 . Cuando n → ∞ (aumentamos el
número de puntos) resulta que h → 0 y como
Aquí,
del siguiente modo: consideramos puntos (en este ejemplo uniformemente distribuidos)
u(xi + h) − 2u(xi ) + u(xi − h)
u(xi+1 ) − 2u(xi ) + u(xi−1 )
=
h2
h2
tenemos para
u
sucientemente derivable
u(xi + h) = u(xi ) + u′ (xi )h + u′′ (xi )h2 /2 + u′′′ (xi )h3 /3! + O(h4 )
u(xi − h) = u(xi ) − u′ (xi )h + u′′ (xi )h2 /2 − u′′′ (xi )h3 /3! + O(h4 )
y así
u(xi + h) − 2u(xi ) + u(xi − h)
= u′′ (xi ) + O(h2 ),
h2
1
Observe que el límite inferior para un método de resolución es
de la matriz.
123
O(N 2 ) ya que ese es el número de coecientes
124
6. MÉTODOS ITERATIVOS
por lo que usando que
xi
u′′ (xi ) = f (xi ), vemos que podemos aproximar la temperatura en el punto
resolviendo
u(xi+1 ) − 2u(xi ) + u(xi−1 ) = f (xi )h2 ,
lo que conduce a un sistema
tridiagonal y simétrico, con una ecuación por cada xi , que se escribe2

(6.5)
−2 1
0 0
 1 −2 1 0

0
1 −2 1

 ..
.
.
.
.
.
.
 .
.
.
.
0
0
0 0
···
···
···
···
···
0
0
0
0
0
0
.
.
.
.
.
.
1 −2





f (x1 )
 u(x1 )
  u(x2 ) 
 f (x2 ) 




  ..  = h2  ..  .
 . 
 . 

u(xn )
f (xn )
La ecuación (6.4) modeliza (en un caso muy elemental y sin contemplar constantes físicas) el
problema de la distribución de temperatura en una barra unidimensional. En dimensión mas alta
(por ejemplo en dimensión 3) el problema se puede modelizar con la ecuación
3
∆u(x) = f (x).
Para ver un ejemplo concreto en la Figura 1 se muestra un cuarto de pistón (pieza que se desplaza
dentro de uno de los cilindros de un motor). La distribución de temperatura en esa pieza puede
aproximarse como antes través de una discretización. No vamos a describir aquí como hacer esto,
Figura 1. Distribución de temperatura en un pistón. Se visualiza un cuarto de la pieza.
pero una vez discretizado, el problema puede escribirse, al igual que el problema unidimensional,
como un sistema lineal de ecuaciones. En este ejemplo particular, se obtiene un sistema
Ax = b,
A ∈ R3319×3319
donde cada incógnita es el valor de la temperatura en un punto interior del pistón. Este ejemplo
(que llamaremos
(E)
) nos servirá para ejemplicar algunas particularidades que aparecen en
este capítulo. Si bien esta matriz
A
no es mas tridiagonal
sí es simétrica, además de rala4. En la
39753
33192 = 11015761 que representan el total de elementos
la memoria utilizada en el almacenamiento de A esto es
Figura 1 se observan ambos hechos (con el comando np.spy(A)). En este caso, solamente
coecientes son diferentes de cero, en vez
de la matriz. Desde el punto de vista de
signicativo. Teniendo en cuenta que en doble precisión cada número ocupa 8 bytes tendriamos
en cada caso:
2
u(x0 ) = u(xn+1 ) = 0 no son incógnitas del sistema, por ello no están en la ecuación.
Recordar que ∆ representa al Laplaciano de u. En dimensión 3 por ejemplo se escribe ∆u = uxx + uyy + uzz .
3
4
En inglés sparse: un porcentaje signicativo de elementos de la matriz es nulo.
1. UN EJEMPLO: DISTRIBUCIÓN DE TEMPERATURA
Figura 2. Estructura de la matriz
A:
125
se observa que es rala y simétrica.
8
39753 1024
∼ 300K
8
11015761 (1024)
2 ∼ 84M .
Esta ventaja se puede perder al hacer
solo
39753
LU .
fenómeno se conoce como
A tiene
2440542 (∼ 18M ). Este
En efecto, en este ejemplo, a pesar de que
elementos no nulos, el número de elementos no nulos de
L
es
rellenado. La apariencia de L y su comparación con la matriz original
puede verse en la Figura 1
Figura 3. Estructura de las matrices
L
de
de la factorización
A
y
A = LU
A y L en el ejemplo (E). Izquierda, matriz
donde se nota el rellenado. Derecha, superposición
L.
Si bien hay heurísticas para evitar el rellenado, buscando permutar las variables y las ecuaciones no las vamos a comentar en este texto. Vamos a concentrarnos en los métodos iterativos.
Estos no buscan ninguna factorización y se basan en iterar un procedimiento de orden
O(N 2 )
(básicamente el producto de una matriz por vector) con el esperanza de conseguir una buena
aproximación de la solución buscada en unas pocas
Ya hemos visto que
ρ(A)
5
iteraciones.
no es una norma, sin embargo verica:
ρ(A) = ı́nf ∥A∥.
∥·∥
Lo que implica que para todo
0<ε
existe una norma
∥·∥
∥A∥ ≤ ρ(A) + ε
5
Pocas al menos relativo al tamaño
N
de la matriz.
tal que
126
6. MÉTODOS ITERATIVOS
Usaremos esta propiedad en la demostración del siguiente resultado que da la clave para predecir
el orden de convergencia de los métodos iterativos.
Proposición 6.1. Para toda norma subordinada
∥·∥
vale que
k 1/k
ρ(M ) = lı́m ∥M ∥
k→∞
Demostración. Dado
ϵ>0
.
existe una norma subordinada
∥ · ∥∗
tal que
∥M ∥∗ ≤ ρ(M ) + ϵ.
k
k
ρ(M ) = ρ(M ) ≤ ∥M k ∥ ≤ C∥M k ∥∗ ≤ C∥M ∥k∗ ≤ C(ρ(M ) + ϵ)k ,
tomando límite y notando
ρ(M ) ≤ ∥M k ∥1/k ≤ C 1/k (ρ(M ) + ϵ)
que ϵ es arbitrario se demuestra el resultado.
□
2. Métodos Iterativos
Supongamos que queremos resolver
Ax = b,
pero la matriz
A
es difícil de invertir. Entonces proponemos una descomposición
A = B + C,
donde
B
fácil
es elegida de modo que sea
de invertir y escribimos
Bx = −Cx + b,
o equivalentemente
x = −B −1 Cx + B −1 b.
−1 C (denominada matriz de iteraciones ) y B −1 b = b̃, resolver
Notemos que llamando MI = −B
el sistema equivale a hallar x tal que
x = MI x + b̃.
La idea es tomar un vector inicial
x0
e iterar
xn+1 = MI xn + b̃,
con la esperanza de que
ek = x − xk
xk → x.
Para ver si nuestra idea puede funcionar estudiamos el error
restando miembro a miembro las dos ecuaciones de arriba
ek+1 = MI ek = MI MI ek−1 = · · · = MIk+1 e0
de donde vemos que
solo sí
ek → 0
para
todo
error inicial
e0
sí y solo sí
MIk → 0
lo cual ocurre sí y
ρ(MI ) < 1.
Más aún
∥ek ∥ ≤ Cρ(MI )k
lo que nos da la velocidad de convergencia del algoritmo.
Comencemos estudiando un caso particular llamado el método de Richardson. Elegimos
como un múltiplo de la identidad
B = ω −1 I,
ω > 0.
B
2. MÉTODOS ITERATIVOS
127
Luego, se tiene
C = A − ω −1 I = ω −1 (ωA − I)
y la matriz de iteraciones resulta
MI = −B −1 C = I − ωA
Proposición 6.2. Si
sí y solo sí
ω<
A es SDP, el método de Richardson converge -para todo dato inicial-
2
ρ(A) .
ρ(MI ) < 1, con MI = I − ωA. Como A
es SDP sus autovalores cumplen 0 < λ1 ≤ λ2 ≤ · · · ≤ λn . Los autovalores de MI son entonces
1−ωλi . Queremos ver bajo que condiciones |1−ωλi | < 1, para todo 1 ≤ i ≤ n. Equivalentemente,
Demostración. Basta ver bajo que condiciones
−1 < 1 − ωλi < 1
i.e. es necesario y suciente que
Claramente, al variar
ω
ω<
2
λi para todo
2
(0, ρ(A)
)
en el rango
1≤i≤n
lo que equivale a
ω<
2
ρ(A) .
obtendremos distintas velocidades de conver-
gencia para nuestro método. Podemos intentar localizar el óptimo
orden máximo de convergencia (equivalentemente, el
ωopt
ωopt ,
para el cual
es decir el que garantiza
ρ(MI )
es mínimo). Para
ello observemos que (ver Figura 2) como
ρ(MI ) = máx{|1 − ωλn |, |1 − ωλ1 |}
ωopt
ocurre en el punto de cruce de los grácos. Ese punto puede despejarse
ωopt =
2
λn + λ1
de donde el respectivo radio espectral óptimo es
ρ(MI ) =
□
λn − λ1
κ(A) − 1
=
.
λn + λ1
κ(A) + 1
Notemos que la velocidad de convergencia del método se deteriora si
κ(A)
es grande.
128
6. MÉTODOS ITERATIVOS
Para el ejemplo
(E)
de la distribución de temperatura, dado al principio del capítulo,
tenemos (aproximados por el método de la potencia)
λ1 ∼ 0.0009
λn ∼ 1.93
κ(A) ∼ 2144
ωopt ∼ 1.04
lo que da
ρ(MI ) ∼ 0.99907
−3 precisamos iterar aproximadamente
si queremos reducir el error inicial en un orden de 10
60000 veces, número mucho mayor que el tamaño n ∼ 3000 de la matriz. Como vemos no
resulta muy competitivo en este caso.
3. Algunos Métodos Clásicos
A = L + D + U (triangular
descomposiciones A = B + C :
Si tomamos
ensayar varias
1.
2.
inferior+diagonal+triangular superior), podemos
B = D método de Jacobi
B = L + D método de Gauss-Seidel
Las matrices de iteración son
MJ = −D −1 (L + U )
−1 U
Gauss-Seidel MGS = −(L + D)
1. Jacobi
2.
Si bien en el caso GS, contrariamente al caso J, la matriz no parece obviamente invertible,
originalmente fueron concebidos del modo siguiente que no requiere inversiones explícitas: de
Ax = b,
se tiene, para todo
1≤i≤n
n
X
ai,j xj = bi ,
j=1
en Jacobi se escribe (asumiendo
ai,i ̸= 0)

n
X
xi = −

ai,j xj + bi  /ai,i
∀1 ≤ i ≤ n
j=1,j̸=i
que da lugar al método

(k+1)
xi
= −
n
X
j=1,j̸=i
para pasar del iterado
k
al
k + 1.

(k)
ai,j xj + bi  /ai,i
∀1 ≤ i ≤ n
3. ALGUNOS MÉTODOS CLÁSICOS
129
Para Gauss-Seidel se escribe

(k+1)
xi
n
X
= −
(k)
ai,j xj −
j=i+1
para pasar del iterado
k

(k+1)
ai,j xj
∀1 ≤ i ≤ n
+ bi  /ai,i
j=1
k + 1,
al
i−1
X
con la idea de utilizar
(k+1)
x1
(k+1)
, · · · xi−1
(considerados
mejores
(k+1)
aproximaciones) en el cálculo de xi
.
Notar que:
No es necesiario construir explícitamente
MJ
no
MGS .
Jacobi puede paralelizarse pero no así Gauss-Seidel.
A ∈ Kn×n
Proposición 6.3. Sea
estrictamente diagonal dominante, entonces Jacobi y
Gauss-Seidel convergen.
Demostración. 1. Jacobi: sea
v ∈ Kn
−D
sea
1≤i≤n
tal que
0 ̸= |vi | ≥ |vk |
−1
autovector de
MJ
de autovalor
λ
q.v.q.
|λ| < 1.
(L + U )v = λv,
1 ≤ k ≤ n. Tenemos
n
X
=
aij vj
para todo
−λvi ai,i
i̸=j=1
, como
vi ̸= 0 ̸= aii
−λ =
n
X
aij vj
aii vi
i̸=j=1
tomando modulo
n
X
aij
|λ| ≤
| |<1
aii
i̸=j=1
pues
A
es EDD.
2. Gauss-Seidel: como antes sea
v
autovector de autovalor
λ
de
MGS ,
y
0 ̸= |vi | ≥ |vk |
1 ≤ k ≤ n:
U v = −λ(D + L)v


n
i
X
X
aij vj = −λ 
aij vj 
j=i+1
dividiendo por
vi
n
X
j=i+1
j=1
y tomando módulos
|aij | ≥
n
X
j=i+1

aij
vj
= |λ| 
vi
i
X
j=1


aij
vj 
≥ |λ| |a11 | −
vi
de donde
Pn
|λ| ≤
j=i+1 |aij |
Pi−1
|a11 | − j=1
|aij |
<1
i−1
X
j=1

|aij |
con
130
6. MÉTODOS ITERATIVOS
□
por ser EDD.
Si trabajamos una matriz
tridiagonal,
como por ejemplo el de la ecuación (6.5), podemos
probar fácilmente la propiedad siguiente
A ∈ Kn×n tridiagonal
ρ(MGS ) = ρ(MJ )2 .
Proposición 6.4. Sea
1 ≤ i ≤ n.
Entonces
(i.e.
|ai,j | = 0
si
|j − i| > 1)
con
A = L + D + U . Sea 0 ̸= λ autovalor de
λ2 es autovalor de MGS = −(D + L)−1 U .
det −D −1 (L + U ) − λI = 0
Demostración. Escribimos
−D −1 (L + U ).
Queremos ver que
por lo tanto (sacando
−D −1
aii ̸= 0
para todo
la matriz
MJ =
En particular
de factor común y usando propiedades del determinante)
det (L + U + λD) = 0
donde la matriz
M = L + U + λD
tridiagonal.
es
En particular, tomando un
0 ̸= α ∈ K
cualquiera tenemos que

α 0 0
 0 α2 0

3

det(M ) = det  0 0 α
 .. ..
.
.
 . .
.
0 0 0
···
···
···
···
···
propiedad que vale para cualquier matriz
M
 −1
α
0
0
−2

 0
α
0


−3

 0
0
α
M 
 ..
. 
.
.
. 
.
.
 .
.
.
.
n
α
0
0
0
0
0
0

pero en este caso particular,
···
···
···
···
···
0
0
0
.
.
.
α−n




 ,


por ser tridiagonal, un
cálculo directo muestra que

α 0 0
 0 α2 0

 0 0 α3

 .. ..
.
.
. .
.
0 0 0
por lo que tomando
···
···
···
···
···
α−1
0
0
−2

 0
α
0


−3

 0
0
α
M 


.
.
.
.
. 
.
.
 ..
.
.
.
n
α
0
0
0
0
0
0
α−1 = λ


···
···
···
···
···
0
0
0
.
.
.
α−n




 = α−1 L + λD + αU


tenemos que
0 = det (L + U + λD) = (−λ)n det −L − D − α2 U = (−λ)n det −(L + D)−1 U − λ2 I ,
es decir
λ2 es autovalor de MGS . Queda como ejercicio seguir los pasos en sentido inverso y ver
̸= 0 es autovalor de MGS entonces λ lo es de MJ . Los autovalores nulos no son de
porque no modican el radio espectral.
□
2
que si λ
interés,
Proposición 6.5. Si
A ∈ Kn×n
Hermitiana y denida positiva, entonces Gauss-Seidel
converge.
Demostración. Sea
v
autovector de autovalor
λ
de la matriz de iteraciones:
−(D + L)−1 U v = λv,
−U v = λ(D + L)v = λAv − λU
(λ − 1)U v = λAv
(λ − 1)v ∗ U v = λv ∗ Av
3. ALGUNOS MÉTODOS CLÁSICOS
131
λ
v∗U v
= ∗
λ−1
v Av
como
λ ̸= 1
y
A
es Hermitiana (simétrica, en el caso real)
2Re
Llamando
λ = a + ib
λ
λ−1
=
U = L∗ ,
v ∗ (U + L)v
v∗U v
v ∗ Dv
=
=
1
−
< 1.
v ∗ Av
v ∗ Av
v ∗ Av
resulta
2
(a(a − 1) + b2 )
< 1,
(a − 1)2 + b2
|λ|2 = a2 + b2 < 1.
y así
□
Volviendo a nuestro ejemplo
(E) de distribución de temperatura, la matriz A es simétrica
y denida positiva (no estamos probando esta última armación). Por la proposición
anterior sabemos que GS converge. Por otro lado no es EDD sino solamente DD, tampoco
es tridiagonal, sin embargo cumple con otras hipótesis (que no veremos en este curso) que
garantizan que
ρ(MGS ) = ρ(MJ )2 ,
por lo cual Jacobi y Gauss-Seidel convergen. En este ejemplo (E), usando el método de la
potencia, obtenemos
ρ(MJ ) ∼ 0.998
y
ρ(MGS ) ∼ 0.996
que satisface la relación predicha.
Este resultado no vale siempre pero ocurre en muchas matrices asociadas a estas ecuaciones
diferenciales. Como vemos, precisaríamos unas 3500 iteraciones para que en J se reduzca
el error en un orden
10−3
y unas 1750 en GS para el mismo nivel de reducción del error.
Observemos que todos los métodos estudiados se originaron a partir de la identidad
x = −B −1 Cx + B −1 b,
que podemos reescribir
x = x − B −1 (Ax − b),
y entonces pensar en las iteraciones del siguiente modo
xk+1 = xk − B −1 (Axk − b),
que pueden verse como una corrección que involucra al
residuo rk = Axk − b.
podemos modicar el método del modo siguiente: tomamos un
0<ω
Con esta idea
y escribimos una nueva
variante
dando mas o menos
ω>1
estamos
xj+1 = (1 − ω)xj + ω(xj − B −1 (Axj − b)),
importancia a la iteración original. Si 0 < ω < 1
amplicado
6
estamos
atenuado
y si
la corrección. Si aplicamos estas ideas a Gauss-Seidel obtenemos el
denominado método SOR . Para estudiarlo un poco reescribamos la iteración adecuadamente:
para Gauss-Seidel (GS) tenemos que
coordenada
i − esima
B =L+D

xk+1
=
i
6
y
C = U,
en particular podemos escribir en la
como:
Sobre Relajación Sucesiva.
1 
−
ai,i
i−1
X
j=1
ai,j xk+1
−
j
n
X
j=i+1

ai,j xkj + bi  ,
132
6. MÉTODOS ITERATIVOS
por lo tanto, el método SOR en la coordenada

xk+1
= (1 − ω)xki +
i
o sea
ai,i xk+1
i
+ω
i−1
X
ω 
−
ai,i
ai,j xk+1
j
i − esima,
i−1
X
toma la forma
ai,j xk+1
−
j
j=1
= (1 −
n
X

ai,j xkj + bi  ,
j=i+1
ω)ai,i xki
−ω
j=1
n
X
ai,j xkj − ωbi .
j=i+1
En términos matriciales
(D + ωL)xk+1 = ((1 − ω)D − ωU ) xk − ωb,
en particular, y como es de esperar,
ω=1
recupera a GS. El método SOR tiene una matriz de
iteraciones que puede escribirse
Mω = (D + ωL)−1 ((1 − ω)D − ωU ) .
No vamos a estudiar con detalle la convergencia para este método, pero observemos que como
Mω
es producto de matrices triangulares, es fácil ver que
det(Mω ) = (1 − ω)n ,
lo que dice que
ρ(Mω ) ≥ |1 − ω| en particular
0 < ω < 2.
y vemos que una condición necesaria para la
convergencia del método es que
El hecho de que la condición
0<ω <2
sea
necesaria
para la convergencia de SOR es
resultado general (vale para matrices arbitrarias). Para las matrices que son como las del
(E) de distribución de temperatura se puede probar que el método converge sí
0 < ω < 2. Además, trabajando numéricamentea con la matriz podemos ver
como se comporta ρ(Mω ) en términos del ω (ver Figura 3). En nuestro ejemplo: tenemos
ωopt ∼ 1.904,
ρ(Mωopt ) ∼ 0.9
−4 con solo 150 iteraciones!.
con lo cual podemos lograr una reducción del error en 10
ejemplo
y solo sí
aEn realidad hay una teoría completa que predice el comportamiento del método SOR para estas matrices
pero no veremos esos detalles aquí.
Figura 4. Comportamiento de
ω = 1.904
ρ(Mω ).
Se ve que tiene un mínimo cerca de
que se corresponde con un radio espectral cercano a
0.9.
4. MÉTODO DE GRADIENTE (O DEL DESCENSO MAS RÁPIDO)
133
4. Método de gradiente (o del descenso mas rápido)
Cuando trabajamos con matrices simétricas denidas positivas es posible reemplazar el problema:
(P1) Hallar
x ∈ Rn
por un problema de minimización asociado a la función
(P2) Hallar
En efecto, calculemos para
x∈
Rn ,
x ∈ Rn
z∈
J : Rn → R, J(z) = 12 z T Az − z T b:
tal que J(x)
Rn , z
Ax = b
tal que
̸= 0
y
= mı́nn J(y).
t∈R
y∈R
arbitrarios, la expresión
1
h(t) = J(x + tz) = (x + tz)T A(x + tz) − (x + tz)T b,
2
desarrollando los términos resulta
1
1
h(t) = t2 z T Az + t z T Ax − z T b + xT Ax − xT b
2
2
(6.6)
una cuadrática en la variable
t,
(6.7)
tm =
con mínimo en
z T Ax − z T b
z T (Ax − b)
=
.
z T Az
z T Az
Supongamos que x resuelve (P1). En ese caso debe ser tm = 0 y entonces
J(x) = h(0) ≤ h(t) = J(x + tz)
para todo
t
y vemos que
J(x) = mı́nn J(y),
y∈R
lo que dice que
x
resuelve
(P 2).
Recíprocamente: si
x
es tal que
J(x) = mı́nn J(y),
y∈R
repetimos la cuenta anterior y vemos que el mínimo de
0=
h(t)
z T Ax − z T b
z T Az
es decir
z T (Ax − b) = 0,
para todo
z ̸= 0,
lo que indica que
7
Ax − b = 0,
es decir
Ax = b.
y entonces
7
x
resuelve
(P 1).
Tomando, por ejemplo,
z = Ax − b.
está en
t=0
lo que dice que
134
6. MÉTODOS ITERATIVOS
2
Ejemplo en R : Consideremos la matriz
5 2
M =
2 4
1
b=
.
0
y el vector
El sistema
asociado
M x = b,
tiene por solución
x=
1/4
.
−1/8
Por otro lado,
J(x1 , x2 ) = 5/2x21 + 2x22 + 2x1 x2 − x1 ,
y en la Figura 4 vemos las curvas de nivel de
Figura 5. Curvas de nivel de
J
y el punto
J(x1 , x2 ) = 5/2x21 + 2x22 + 2x1 x2 − x1 .
Antes de continuar observemos que tomando en (6.6) ,
donde el corchete
x (en rojo) solución del sistema.
z = ei
(el canónico i) se tiene que
∂J(x)
J(x + tei ) − J(x)
= lı́m
= [Ax − b]i ,
t→0
∂xi
t
representa la coordenada i del vector Ax − b. En
particular tenemos
∇J(x) = Ax − b.
Lo que hemos visto indica que para resolver un sistema con una matriz SDP podemos alternativamente atacar un problema de minimización en
Rn .
Para comenzar simplicando este
nuevo problema vamos a intentar llevarlo a uno que sea iterativo en
busqueda por líneas: dado
xi
elegimos una dirección de búsqueda
zi
xi+1 = xi + λi zi .
En un caso general quisieramos
λi
tal que
J(xi + λi zi ) = mı́n J(xi + tzi ),
t∈R
lo que nos llevaría a resolver
0=
R.
Este es un método de
y un escalar
dJ(xi + tzi )
|t=λi = ∇J(xi + λi zi )T zi .
dt
λi
tal que
5. GRADIENTE CONJUGADO
En el caso que nos interesa ya sabemos despejar
λi = −
donde
ri = b − Axi
λi
135
(ver (6.7)):
ziT (Axi − b)
z T ri
= Ti
T
zi Azi
zi Azi
es el residuo.
zi en cada paso. Una forma
J en el punto xi : −∇J(xi ) =
Este método no nos sugiere como elegir el vector de búsqueda
natural es utilizar la dirección de mayor decrecimiento de la función
b − Axi = ri .
Esto da lugar al método del gradiente o del descenso más rápido:
rTi ri
ri .
rTi Ari
xi+1 = xi +
El proceso anterior puede converger muy lentamente. En cada paso minimizamos (de forma
exacta en aritmética exacta) a lo largo de la recta
Una mejora sustancial sería comenzar en un
xi + λzi .
x0 ,
minimizar a lo largo de una recta, luego a
lo largo de un plano, e ir aumentando la dimensión. Por ejemplo podríamos intentar minimizar
el paso
i
en
J(xi+1 ) =
mı́n
y∈⟨z0 ,···zi ⟩+x0
que claramente daría un algoritmo que naliza
8
J(y)
en a lo sumo
n
pasos. Obviamente, vemos que
el problema que aparece es la dicultad de minimizar en dimensiones mayores a uno. Hay, sin
embargo, un modo de lograr nuestro propósito minimizando sobre líneas, si es que elegimos las
direcciones de búsqueda de modo adecuado. Este algoritmo lo estudiamos en la siguiente sección.
5. Gradiente Conjugado
Observemos, antes de continuar, que una matriz simétrica (o Hermitiana) denida positiva
dene un producto interno a través de la operación
9
xT Ay.
En particular este producto posee la siguiente norma asociada
√
∥x∥A =
xT Ax.
Teniendo esta norma denida probamos lo siguiente.
Lema 6.1. Supongamos que las direcciones de búsqueda son
0)
y en cada paso
λi
se elige para minimizar sobre la línea correspondiente. Entonces
mı́n J(y) = J(xi+1 ) =
xi +⟨zi ⟩
Demostración. Sea
Wi+1 = ⟨z0 , z1 , · · · , zi ⟩
mı́n
y∈x0 +⟨z0 ,z1 ,··· ,zi ⟩
y tomo
trucción, se puede escribir
con
z = y + tzi
y ∈ x0 + Wi = x0 + ⟨z0 , z1 , · · · , zi−1 ⟩.
8
Al menos en aritmética exacta.
9
A ortogonales (i.e. ziT Azj =
Dejamos como ejercicio esta armación.
J(y)
z ∈ x0 + Wi+1
arbitrario. Por cons-
136
6. MÉTODOS ITERATIVOS
Observamos que
mı́n
z∈x0 +Wi+1
J(z) =
mı́n
y∈x0 +Wi ,t∈R
J(y + tzi )
Escribimos
1
1
J(z) = J(y + tzi ) = t2 ziT Azi + t ziT Ay − ziT b + y T Ay − y T b
2
2
pero, usando que
ziT Azj = 0
ziT Ay = ziT Ax0 = ziT Axi
1
1 2 T
T
T
t zi Azi + t zi Axi − zi b + y T Ay − y T b
J(y + tzi ) =
2
2
de donde resulta que para minimizar en
el segundo en
y ∈ Wi .
Pero el
t
z
basta minimizar ambos términos: el primero en
óptimo es justamente
λ=
t∈R
ziT Ari
provisto por nuestro método.
ziT Azi
□
En denitiva el resultado sale por inducción.
Las direcciones
A
ortogonales suelen llamarse conjugadas lo que da nombre al algoritmo
que veremos mas adelante.
Queremos un método que minimice sobre direcciones conjugadas (y no sea costoso)
Idea: A-ortogonalizar los residuos
z0 = r0
zi = ri −
zjT Ari
j=0 z T Azj zj
j
Pi−1
Vale lo siguiente
⟨z0 , z1 · · · , zi ⟩ = ⟨r0 , r1 · · · , ri ⟩
rTi rj = 0, pues J(xi + trj ) tiene un mínimo en t = 0,
evaluando en t = 0
0 = rTj (Axi − b) = rTj ri .
Existe
m≤n
si
0 ≤ j < i.
Luego derivando y
tal que
x0 ̸= x1 ̸= · · · =
̸ xm = x
W0 ⊊ W1 ⊊ · · · ⊊ Wm
1 ≤ i ≤ m, {z0 , z1 · · · zi−1 } (resp. {r0 , r1 · · · ri−1 })
(resp. ortogonal) de Wi .
Pi−1 zjT Ari
ziT ri = rTi ri . Pues zi = ri − j=0
z y entonces
z T Az j
Para todo
j
rTi zi = rTi ri −
i−1 T
X
zj Ari
j=0
pues para cada
j
zjT Azj
rTi zj = rTi ri
j ≤ i − 1, zj ∈ Wi = ⟨r0 , · · · , ri−1 ⟩, rTi zj = 0.
es una base
A
ortogonal
6. GC Y APROXIMACIÓN POLINOMIAL
137
Queremos hallar las direcciones de búsqueda sin hacer Gram-Schmidt (o sea mas rápido)
Escribamos
zi
en la base de los residuos (ortogonales),
zi =
ziT ri = rTi ri
A ortogonal a Wi .
ya vimos que
zi
es
zi =
pero además
i
X
z T rj
i
Tr
r
j=0 j j
i
X
z T rj
i
T
r r
j=0 j j
rj ,
ziT (ri − rl ) = ziT A(xi − xl ) = 0
rj =
porque
xi − xl ∈ Wi
y
i−1
i
X
X
rj
rTi ri
T
r
=
r
+
r
r
,
i
i i
Tr j
Tr
r
r
j
j
j
j
j=0
j=0
como la ultima sumatoria permite escribir recursivamente las direcciones de búsqueda


i−2
i−1
T
X
X
rj 
rj
r ri 
= ri + T i
ri−1 + rTi−1 ri−1
ri + rTi ri
T
T
r r
ri−1 ri−1
r r
j=0 j j
j=0 j j
entonces
zi = ri +
rTi ri
zi−1
rTi−1 ri−1
los residuos pueden obtenerse de
xi+1 = xi + λzi
ri+1 = ri + λi Azi
Tomo
x0 ,
calculo
r0
asigno
z0 = r0
for i=0...
rT r
λi = zTiAzi
i
i
xi+1 = xi + λi zi
ri+1 = ri + λi Azi
zi+1 = ri+1 +
rT
i+1 ri+1
zi
rT
i ri
end
Aplicado a nuestro caso de ejemplo: para un error de orden
10−4
tarda
0.057
segundos...
6. GC y aproximación polinomial
Para estudiar el error del GC notemos
Wi = ⟨r0 , Ar0 , · · · Ai−1 r0 ⟩
lo cual se ve por inducción. Si
para
i + 1.
i = 1 es cierto, y asumiendo que vale para i queremos ver que vale
Para eso vemos que basta con ver que
Wi+1 ⊂ ⟨r0 , Ar0 , · · · Ai r0 ⟩
puesto que
dim(Wi+1 ) = i + 1
Asumiendo entonces que
Wi ∋ ri−1 , zi−1 ∈ ⟨r0 , Ar0 , · · · , Ai−1 r0 ⟩
138
6. MÉTODOS ITERATIVOS
se tiene que
ri = ri−1 − λi−1 Azi−1 ∈ ⟨r0 , Ar0 , · · · , Ai r0 ⟩
En general, dada una matriz
A,
subespacios de la forma
que es lo que queríamos ver.
⟨b, Ab, · · · , Ai b⟩,
se llaman subes-
pacios de Krylov. La identidad de abajo permite relacionar esos subespacios con polinomios.
⟨r0 , Ar0 , · · · Ai−1 r0 ⟩ = {p(A)r0 : p ∈ Pi−1 [x]} =
= {q(A)(x − x0 ) : q ∈ Pi [x], q(0) = 0}
Va a resultar cómodo estudiar el error en la norma
∥ · ∥A :
es decir, acotar
∥x − xi ∥A
Como
ri
es ortogonal a
Wi , x − x i
es
A
ortogonal a
Wi
∥x − xi ∥A = ı́nf ∥x − xi − y∥A
y∈Wi
como
x 0 − x i ∈ Wi
∥x − xi ∥A = ı́nf ∥x − x0 − y∥A =
y∈Wi
=
ı́nf
q∈Pi [x],q(0)=0
=
∥x − x0 − q(A)(x − x0 )∥A =
ı́nf
p∈Pi [x],p(0)=1
ı́nf
p∈Pi [x],p(0)=1
∥p(A)(x − x0 )∥A ≤
∥p(A)∥A ∥(x − x0 )∥A
pero
∥p(A)x∥2A
=
∥x∥2A
x̸=0
∥p(A)∥2A = sup
xT p(A)T Ap(A)x
(p(A)x)T A(p(A)x)
=
sup
=
xT Ax
xT Ax
x̸=0
x̸=0
= sup
xT A1/2 p(A)T p(A)A1/2 x
y T p(A)T p(A)y
=
sup
=
y̸=0
yT y
xT A1/2 A1/2 x
x̸=0
= sup
= supy̸=0
∥p(A)y∥22
= ∥p(A)∥22 = ρ(p(A))2 ≤ máx p(λ)2
∥y∥22
λ∈[λ1 ,λn ]
En denitiva
∥p(A)∥A ≤
máx |p(x)|
x∈[λ1 ,λn ]
y hay que acotar
ı́nf
máx |p(x)|
p∈Pi [x],p(0)=1 x∈[λ1 ,λn ]
esto, por suerte, lo estudió Chebyshev.
En el intervalo
[−1, 1]
los polinomios de Chebyshev son
T0 (x) = 1, T1 (x) = x, T2 (x) = 2x2 − 1, · · ·
en general
Tn+1 (x) = 2Tn (x) − Tn−1 (x)
Para
x ∈ [−1, 1], |Tn (x)| ≤ 1
6. GC Y APROXIMACIÓN POLINOMIAL
(de hecho en ese rango
para
139
Tn (x) = cos(n cos−1 (x)))
|x| ≥ 1
Tn (x) =
El polinomio
p(x) ∈ Pn [x]
p
p
1
(x + x2 − 1)n + (x − x2 − 1)n
2
máxx∈[λ1 ,λn ] |p(x)|
1
2x − λn − λ1
T
n
+λ1
λn − λ1
Tn ( λλn1 −λ
)
n
que minimimiza
2
máx |p(x)| ≤
ı́nf
p∈Pi [x],p(0)=1 x∈[λ1 ,λn ]
q
λn
+1
λ
q 1
λn
−1
λ1
es decir
ı́nf
máx |p(x)| ≤ 2
p∈Pi [x],p(0)=1 x∈[λ1 ,λn ]
∥x − xi ∥A ≤ 2
con la condición
p
κ(A) − 1
p
κ(A) + 1
!i
+
q
λn
−1
λ1
q
λn
+1
λ1
!i
p
κ(A) − 1
p
κ(A) + 1
!i
∥x − x0 ∥A
!i
p(0) = 1
es
Capítulo 7
Descomposición en valores singulares
1. Motivación: número de condición y autovalores
Ya vimos que una matriz cuadrada está mal condicionada si está cerca de una matriz singular.
O equivalentemente, está cerca de una matriz que no tiene el máximo rango posible. Podemos
extender esta última idea a matrices rectangulares.
La matriz


1
1
1 
A = 1
1 1+ϵ
tiene rango 2 si
ϵ ̸= 0
pero está muy cerca de una matriz de rango 1 si
ϵ
es chico. Podemos
pensar intuitivamente que la matriz está mal condicionada, aunque la denición que vimos no
se aplica para matrices rectangulares.
Observación 7.1. Para saber si una matriz cuadrada está mal condicionada no alcanza ver que
hay un autovalor cercano a 0 o el determinante es chico.

Ejemplo 7.1. La matriz

ϵ 0 0
A = 0 ϵ 0
0 0 ϵ
está bien condicionada para cualquier
ϵ ̸= 0.
Relacionamos ahora el número de condición con los autovalores de una matriz.
Para matrices simétricas,
κ2 (A) = ∥A∥2 ∥A−1 ∥2 = |λmáx (A)|
1
|λmáx (A)|
=
.
λmı́n (A)
|λmı́n (A)|
Vemos que lo que determina que una matriz está mal condicionada es la relación entre el
autovalor de mayor módulo y el autovalor de menor módulo.
2. Introducción
Comencemos la sección con un experimento numérico. Generemos matrices simétricas al
azar y graquemos la imagen del círculo unitario por la transformación lineal resultante. Para
conseguir guras uniformes, reescalamos los grácos de modo que el círculo unitario (en azul)
contenga a su imagen (en rojo). El resultado obtenido es esperable. Las imágenes son elípses
{v1 , v2 } de autovectores ortonormales.
Avi = λi vi , por lo que cualquier punto v del círculo unitario puede escribirse como
v = x1 v1 + x2 v2 con 1 = x21 + x22 , por lo que Av = x1 λ1 v1 + x2 λ2 v2 es un punto de una elipse
de semiejes a lo largo de las rectas generadas por v1 y v2 de longitudes |λ1 | y |λ2 |.
debido a que cada una de estas matrices posee una base
Es decir
141
142
7. DESCOMPOSICIÓN EN VALORES SINGULARES
Figura 1. Elípses obtenidas por el mapeo del circulo unitario a través de matri-
ces simétricas.
Figura 2. Elípses obtenidas por el mapeo del circulo unitario a través de matri-
ces generales.
Lo extraordinario es que algo similar ocurre con matrices aleatorias cualesquiera, como podemos ver en la Figura 2. En este caso no podemos garantizar una base de autovectores ortonormales, sin embargo podemos estudiar las preimágenes de los semiejes de las elipses (en verde y rosa
respectivamente) y notamos que provienen de vectores unitarios ortogonales (con el mismo color
en las guras). Es decir que nuestro experimento sugiere la existencia de dos pares de vectores
ortonormales
{v1 , v2 }
σ1 ≥ σ2 ≥ 0)
y no negativos, cambiando si hicera falta
y
{u1 , u2 }
y dos escalares
σ1 , σ2 , que podemos suponer ordenados
ui por −ui , tales que Avi = σi wi .
(i.e.
Esta observación nos permite escribir
AV = U Σ
donde

|
|
V = v1 v2 
|
|

con matrices
V ,U
Σ=
σ1 0
0 σ2


|
|
U = u1 u2 
|
|
ortogonales. Dicho otro modo puede factorizarse
A
como
A = U ΣV ∗ .
Esta factorización generaliza en algún sentido a la obtenida al diagonalizar matrices simétricas. Si bien, no toda matriz es diagonalizable en una base ortonormal
{v1 , v2 },
nuestro
experimento dice que algo similar puede obtenerse si nos permiten trabajar con
bases
diferentes : una {v1 , v2 } para el espacio de partida y otra {u1 , u2 } para el de llegada.
3. CONSTRUCCIÓN
143
Lo realmente notable, como veremos en breve, es que esta factorización siempre existe y no
solo para matrices cuadradas.
Definición 7.1. Dada
zación de
A ∈ Km×n ,
la descomposición en valores singulares SVD es una factori-
A
A = U ΣV ∗ ,
con
U ∈ Km×m
V ∈ Kn×n
y
Σ=
si
m ≥ n,
Σ ∈ Rm×n .
D
,
matrices unitarias y
La matriz
Σ
tiene la forma
0(m−n)×n
o la forma
Σ = D 0m×(n−m)
D ∈ Rp×p , donde p = mı́n{m, n}, es una matriz diagonal con
elementos en la diagonal d11 ≥ d22 ≥ · · · ≥ dpp ≥ 0. Los elementos no nulos de la diagonal de D
se denominan valores singulares de A, y se notan σi (A) = dii .
si
n > m.
En ambos casos
Ejemplo 7.2.
√
2
√2
2
2
3 2 2
=
2 3 −2
√
!
2
5 0 0  √22
0 3 0  62
− 22
√
2
2√
3
√
2
2√
− 62
− 23
0
√

2 2

3
1
−3
3. Construcción
Para constuir la descomposición SVD observamos las siguientes relaciones.
Dada una matriz
A ∈ Km×n ,
si
A = U ΣV ∗ :
AA∗ = (U ΣV ∗ )(V Σ∗ U ∗ ) = U (ΣΣ∗ )U ∗ , con ΣΣ∗ ∈ Rm×m diagonal.
A∗ A = (V Σ∗ U ∗ )(U ΣV ∗ ) = V (Σ∗ Σ)V ∗ , con Σ∗ Σ ∈ Rn×n diagonal.
Recordar que
A∗ A y AA∗
son matrices semidenidas positivas y por lo tanto diagonalizables
con autovalores no-negativos y base ortonormal de autovectores.
En base a estas relaciones, concluimos:
Las columnas de
Las columnas de
U
V
son una base de autovectores de
AA∗ ∈ Km×m .
∈ Kn×n .
∗
son una base autovectores de A A
Los valores singulares en
Σ
son la raíz cuadrada de los autovalores no nulos de
AA∗ ordenados de mayor a menor.
Esto nos da un método para calcular la descomposición.
Primero construimos la matriz
Luego obtenemos las las de
U
V
tomando una base de autovectores de
a partir de la relación
A = U ΣV ∗
multiplicando por
V:
AV = U Σ.
A∗ A.
A∗ A
o
144
7. DESCOMPOSICIÓN EN VALORES SINGULARES
En el término de la izquierda tenemos


|
Avn  .
|
|

AV = Av1 . . .
|
3.1. Si
m ≤ n. Si m ≤ n,


σ1
|
|



AV = U Σ = u1 . . . um 
|
|
Por lo tanto, para
columnas de
V.
1 ≤ i ≤ n,

..
σm
Obtenemos
ui =
para
U
1≤i≤m
y
σi ̸= 0.
m > n.
Si
vi
son las
de
Km×m .
1 ≤ i ≤ n,

..
las columnas de
Obtenemos
1 ≤ i ≤ n y σi ̸= 0. El resto de
{u1 , . . . , um } de Km×m .


|

 = σ1 u1 . . .
σn 

|
.
0
ui =
para
{u1 , . . . , um }
σ1


|

um  


|
|
AV = U Σ = u1 . . .
|
V.
donde
0
m ≥ n,

columnas de
σi ui = Avi ,
cumplen

Si existen valores singulares nulos, las columnas correspondientes de

Por lo tanto, para
U
|
σm um
|
1
Avi .
σi
las elegimos completando una base ortonormal
3.2. Si
|
 
0  = σ1 u1 . . .
|
.
las columnas de

U
cumplen

|
σn un 
|
σi ui = Avi ,
donde
vi
son las
1
Avi .
σi
las columnas de
U
las elegimos completando una base
ortonormal
Ejercicio 7.1. Calcular la descomposición SVD de la matriz
3 2 2
A=
∈ R2×3 .
2 3 −2
realizando los siguientes pasos:
1. Construir la matriz
V
tomando como columnas una base ortonormal de autovectores de
A∗ A ∈ R3×3 .
2. Calcular los valores singulares
A∗ A.
3. Calcular las columnas de
U
σi =
√
λi , i = 1, 2,
por la fórmula
ui =
con
1
σi Avi ,
λi
los autovalores (no nulos) de
i = 1, 2.
4. Vericar.
Ya vimos cómo construir una descomposición SVD. Si repasamos la construcción que realizamos, vemos que utilizamos la existencia de tal descomposición para obtener propiedades de las
matrices en la descomposición. Para probar la existencia de la descomposición nos falta completar
algunos detalles de la construcción.
4. VALORES SINGULARES Y NORMA-2
Teorema 7.1. Dada una matriz rectangular
U ∈ Km×m unitaria,
Σ ∈ Rm×n , con Σ = (D|0)
mı́n{m, n}),
V ∈ Kn×n unitaria,
A = U ΣV ∗ . Los valores
valores singulares de A, σi = dii .
tales que
Σ =
o
no nulos
A ∈ Km×n ,
D
0 ,
D
145
existen matrices
diagonal y
d11 ≥ · · · ≥ dss > 0
d11 ≥ · · · ≥ dss ≥ 0 (s =
son únicos y se denominan
Demostración. En la construcción que hicimos, falta ver que los vectores
ui =
1
σi Avi
construidos son ortogonales. Calculamos
u∗j ui
y usando que
V ∗ vi = ei ,
u∗j ui
1 ∗ ∗
1
=
Avi
v A
σj j
σi
1
1
1
1
= vj∗ (A∗ A)vi = (vj∗ )(V Σ∗ ΣV ∗ )vi
σj
σi
σj
σi
obtenemos
1
1
1
1
= (e∗j Σ∗ )(Σei ) = (σj e∗j )(σi ei ) = e∗j ei =
σj
σi
σj
σi
(
1
0
si
si
i=j
i ̸= j
□
4. Valores singulares y norma-2
Ahora estamos en condiciones de retomar la discusión inicial de este cápítulo.
Teorema 7.2. Dada una matriz rectangular
A ∈ Km×n ,
∥A∥2 = σ1 (A).
Demostración. Recordando que multiplicar por una matriz unitaria es una transformación
inversible que no cambia la norma de un vector,
∥A∥2 = sup ∥Ax∥2
∥x∥2 =1
= sup ∥U ΣV ∗ x∥2 = sup ∥ΣV ∗ x∥2
∥x∥2 =1
∥x∥2 =1
r
X
= sup ∥Σy∥2 = sup (
∥y∥2 =1
∥y∥2 =1 i=1
1
σi2 |yi |2 ) 2 ≤ σ1
□
Proposición 7.1. Si
A ∈ Km×n
y
rango(A) = n,
entonces
mı́n ∥A∥2 = σn (A)
∥x∥2 =1
Corolario 7.1. Si
A ∈ Kn×n
inversible,
cond2 (A) =
σ1 (A)
.
σn (A)
146
7. DESCOMPOSICIÓN EN VALORES SINGULARES
A ∈ Km×n
En general, para cualquier matriz
rectangular de rango máximo, denimos
cond2 (A) =
con
σ1 (A)
,
σr (A)
r = mı́n{m, n}.
5. Distancia a matrices de menor rango
Por último, vemos cómo formalizar la noción de matrices rectangulares mal condicionadas o
cercanas a matrices de menor rango.
A ∈ Kn×n , buscamos una matriz singular lo más cercana posible a A. En
n×n de norma lo más chica posible tal que A + B sea singular.
buscamos B ∈ K
Dada una matriz
otras palabras,
1.
2.
3.
4.
5.
6.
A + B = A(I + A−1 B)
−1 B∥ < 1, entonces I + A−1 B (y por lo tanto A + B ) es inversible.
Si ∥A
−1 ∥.
Por lo tanto, si A + B es singular y A es inversible, debe ser ∥B∥ ≥ 1/∥A
∗
−1
Tomando norma-2, y A = U ΣV
la SVD, ∥A
∥2 = 1/σn .
Por lo tanto, si A + B es singular, debe ser ∥B∥ ≥ σn (A).
∗
Podemos tomar B = U EV , con E = diag(0, 0, . . . , 0, −σn ), que cumple ∥B∥2 =
∥E∥2 = σn .
Teorema 7.3. Dada
A ∈ Kn×n
inversible, con
A = U ΣV ∗
su descomposición en valores
singulares. Deniendo
Σn−1
la matriz
à = U Σn−1 V ∗

σ1


=


..
.
σn−1


,

0
es la matriz singular más cercana a
Ejercicio 7.2. Encontrar la matriz singular más cercana a
A
en norma-2.


1 2 3
A = 1 3 5.
1 5 8
Podemos ahora el resultado anterior para calcular las matrices más cercanas de distinto
rango.
A ∈ Km×n de
m×n
singulares. La matriz A1 ∈ K
∗
Frobenius es A1 = U Σ1 V , con
Teorema 7.4. Sea
k > 0, con A = U ΣV ∗ su descomposición en valores
rango k1 < k más cercana a A en la norma 2 o norma
rango
de

σ1


Σ1 = 

la matriz igual a
reemplazan por 0.
Σ

..
.
σk1


,

0
excepto que solo se usan los valores singulares
σ1 , . . . , σk1
y los demás se
6. APLICACIONES
147
6. Aplicaciones
6.1. Reducción de dimensionalidad.
n
variables (features), con
m > n,
Para una población de
m
individuos analizamos
y queremos ver si hay variables redundantes o si podemos
reducir la cantidad de variables sin perder mucha información.
A ∈ Rm×n , m > n, el k -ésimo valor singular nos dice la distancia de A
a una matriz de rango k − 1. Es decir, mide cuánta información vamos a perder si utilizamos
k − 1 variables en lugar de las n variables originales.
Dada una matriz
Ejercicio 7.3. Para la siguiente matriz, calcular los valores singulares. ¾Considera que hay
variables redundantes? ¾Cuáles variables eliminaría?
6.2. La pseudo-inversa.
x1
x2
x3
x4
1
100
100
757
220
2
70
80
603
174
3
50
90
700
190
4
150
40
250
110
5
80
10
42
36
A partir de la descomposición en valores singulares
construimos la pseudo inversa de
A = U ΣV ∗ ,
A,
A† = V Σ† U ∗ ,
donde
Σ†
se obtiene a partir de
la diagonal por
Σ transponiéndola y reemplazando los elementos no nulos dii
en
1/dii .
Ejercicio 7.4. Calcular la pseudo-inversa de
√
3 2 2
=
2 3 −2
2
√2
2
2
√
!
2
5 0 0  √22
0 3 0  62
− 22
√
2
2√
3
√
2
2√
− 62
− 23
0
√

2 2

3
1
−3
Se cumplen las siguientes propiedades.
Proposición 7.2.
AA† A = A y A† AA† = A† (pero en general
n×n es inversible, A−1 = A† .
Si A ∈ K
no se cumple
AA† = Im
o
□
Demostración. Ejercicio.
Ejercicio 7.5. Vericar
A† A = In )
AA† A = A
para
3 2 2
A=
2 3 −2
6.3. Resolución de sistemas de ecuaciones.
Enunciamos ahora el resultado principal,
cuya demostración veremos en la Práctica 6 de Mínimos Cuadrados.
Teorema 7.5. Dada la ecuación
Ax = b, con A ∈ Km×n , si el sistema tiene soluciones entonces
z = A† b
es una solución y si hay innitas soluciones,
z
es la solución de mínima norma-2.
148
7. DESCOMPOSICIÓN EN VALORES SINGULARES
Utilizando la pseudo-inversa podemos obtener también un criterio para determinar si un
sistema tiene solución.
Teorema 7.6. El sistema
Ax = b
tiene solución si y solo si
AA† b = b.
Demostración.
Si
AA† b = b
v = A† b es solución del sistema.
existe v tal que Av = b, entonces
entonces
Recíprocamente, si
b = Av = AA† Av = AA† b
(aunque usted no lo crea!).
□
Cuando el sistema solución, la pseudo-inversa nos permite también hallar todas las soluciones.
Teorema 7.7. Dadas
A ∈ Km×n
y
b ∈ Kn .
Si
AA† b = b,
todos los vectores de la forma
x = A† b + (In − A† A)y
con
y ∈ Kn
son soluciones del sistema
Ax = b.
Más aún, cualquier solución la puedo escribir de esa forma.
Demostración. Si
x
es de esa forma,
Ax = A(A† b + (In − A† A)y)
= (AA† b) + (A − AA† A)y
= b + (A − A)y = b.
Ahora, dado un vector
z ∈ Kn
tal que
Az = b,
escribimos
z = (A† A)z + (In − A† A)z = A† b + (In − A† A)z
que es un vector de la forma buscada.
□
Observación 7.2.
Puede haber soluciones repetidas entre las soluciones obtenidas de esta forma.
En particular, el sistema
Ax = b
tiene solución única si y solo si
A† A = In .
Ejercicio 7.6. Determinar cuántas soluciones tienen los siguientes sistemas de ecuaciones, y
hallar una solución cuando sea posible.

 x − 2y = 2
2x + y = 1

x + 3y = −1
En
Python
puede utilizar

 x − 2y + z = 2
2x + y + 5z = 1

x + 3y + 4z = −1
np.linalg.pinv

 x − 2y + z = 2
2x + y + 5z = 1

x + 3y + 4z = 7
para calcular la pseudo-inversa.
6. APLICACIONES
6.4. Compresión de imágenes.
149
Veamos como comprimir una imagen aplicando reduc-
ción de dimensionalidad por SVD.
Tomamos una matriz
0=
negro y
1=
A ∈ Rm×n , con aij ∈ [0, 1], que representa una tonalidad de gris, siendo
blanco.
Ejemplo 7.3. Para representar la imagen de la gura, tomamos
¾Cuál es el rango de
A?
A ∈ R25×15 .
¾Cuántos valores singulares no nulos tiene
Eliminamos columnas de
A?
U
La descomposición en valores singulares de
A ∈ R25×15 ,
A = U ΣV ∗
tiene 3 valores singulares no nulos,
U
¾Podemos descartar las de
U ∈ R25×25 , Σ ∈ R25×15
y
V
y
V ∈ R15×15 .
sin perder información?
Recordando que


|
U Σ = u1 . . .
|


|


u25 


|
vemos que podemos tomar siempre
también
ui = 0
para

σ1
..


|

 = σ1 u1 . . .


|
.
σ15
0
ui = 0
para
i > 16

|
σ15 u15 
|
sin perder información, y en nuestro caso
i > 3.
Eliminamos columnas de
V
(ΣV ∗ )∗ =

σ1
|

v15  
|
Análogamente, a partir de

|
V Σ∗ = v1 . . .
|
vemos que podemos tomar
vj = 0
para

..
.
σ15
j>3

|
 
σ
=
1 v1 . . .
0
|
|
σ15 v15
|

0
sin perder información.
En forma más compacta, para no guardar tantos 0's, podemos guardar la descomposición

|
A = u1 . . .
25×15
|
25×3
Cantidad de datos



|
σ1 0 0
−v1 −
u3  0 σ2 0 −v2 −
|
0 0 σ3
−v3 −
3×3
3×15
150
7. DESCOMPOSICIÓN EN VALORES SINGULARES
En total, necesitamos guardar:
3 columnas de
3 columnas de
U → 75
V → 45
valores
valores
3 valores singulares
Total:
75 + 45 + 3 = 123
valores
Para guardar la matriz original necesitamos
25 × 15 = 375
valores
Veamos otro ejemplo más realista.
Ejemplo 7.4. Tomamos ahora la imagen de un árbol
A ∈ R1082×2000×3 .
Para imágenes en color se utilizan tres matrices con tonalidades RGB (red, green, blue), pero
vamos a utilizar solo tonalidades de gris, tomamos
Calculamos la descomposición
A = U ΣV ∗
A ∈ R1080×2000 .
y gracamos los logartimos de los valores singu-
lares. Podemos tomar los primeros 987 valores singulares sin casi perder información, pero no es
suciente compresión.
6. APLICACIONES
151
Probamos tomar las primeros 200 valores singulares. Es decir, tomamos
à =
Ũ
1080×200
Σ̃
200×200
Ṽ ∗
200×2000
y obtenemos la imagen
Ejercicio 7.7. Calcular el porcentaje de compresión (es decir, la relación entre la cantidad de
números que guardamos para la imagen comprimida y la cantidad de números de la imagen
original).
Capítulo 8
Cuadrados Mínimos
Consideremos el problema
Ax = b
con
A∈
Rm×n . La existencia de soluciones de este problema equivale a que
(ai son las columnas de
sea
b ∈ ⟨a1 , a2 , · · · , an ⟩
A) y en ese caso la unicidad depende de que el conjunto {a1 , a2 , · · · , an }
l.i..
b∈
/ ⟨a1 , a2 , · · · , an ⟩
En el caso en que
podemos intentar minimizar el residuo
r = b − Ax
Para eso nos conviene usar una norma: la norma
El problema es entonces, hallar
x ∈ Rn
2
es la mas adecuada como veremos en breve.
tal que
∥Ax − b∥2 = mı́nn ∥Az − b∥2
z∈R
o el equivalente hallar
x∈
Rn tal que
∥Ax − b∥22 = mı́nn ∥Az − b∥22
z∈R
el enfoque tradicional (fuera del álgebra lineal numérica) es buscar una ecuación para el punto
crítico
x
como minimizante.
Eso equivale a anular el gradiente de la función
F : Rn → R, F (z) = ∥Az − b∥22 ,
es decir
m
X
∂ ([Az − b]i )2
∂F
|x =
|x =
∂zk
∂zk
i=1
P
2


n
m
m
n
∂
a
z
−
b
X
X
X
i
j=1 ij j

|x = 2
aij xj − bi  aik
∂zk
0=
i=1
i=1
La validez de esta identidad para todo
1≤k≤n
j=1
dice que
AT (Ax − b) = 0
Dicho de otro modo
AT Ax = AT b
estas se llaman las ecuaciones normales.
A pesar de su popularidad esta no siempre es la mejor manera de calcular
x.
Desde esas ecuaciones podemos deducir cuando habrá solución única de nuestro problema:
si las columnas de
A
son
l.i.
entonces
AT Ax = 0
implica
0 = (AT Ax)T x = (Ax)T Ax = ∥Ax∥22 ,
153
154
8. CUADRADOS MÍNIMOS
es decir
Ax = 0
y así
x=0
por ser las columnas de
A l.i.,
por lo que el núcleo de
AT A
es
trivial.
Observemos que en este caso
AT A ∈ Rn×n
resulta
simétrica denida positiva. En particular
podemos resolver el sistema usando Cholesky a un costo
En gran parte de las aplicaciones
mˇn
∼ mn2 + 31 n3
y las columnas de
A
son
l.i.
lo cual muestra el éxito
relativo de las ecuaciones normales.
1. Interpolación Polinomial
Un caso tradicional de uso de cuadrados mínimos es en aproximación polinomial.
n+1 pares de puntos {(x0 , y0 ), (x1 , y1 ) · · · , (xn , yn )
pn (xi ) = yi .
El problema de la interpolación consiste en lo siguiente: dados
Kn
hallar un polinomio
Con los
xi ̸= xj
pn (x)
de grado a lo sumo
n
tal que
este problema siempre tiene solución única gracias a las siguientes observa-
ciones.
Se propone
0≤i≤n
pn (x) = a0 + a1 x + · · · + an−1 xn−1 + an xn
y se hace
que conduce a un sistema lineal con matriz de Vandermonde

1 x0 x20
1 x1 x2
1

 .. ..
.
.
. .
.
1 xn x2n
···
···
···
···
pn (xi ) = yi para
V [x0 , x1 , · · · , xn ]
todo
   
xn0
a0
y0
n




x 1   a 1   y1 

.  .  =  . .
.  . 
 .. 
.
.
an
yn
xnn
Se tiene
det V [x0 , x1 , · · · , xn ] = Π0≤i<j≤n (xj − xi ).
(La demo mas corta que conozco...)
Vale en
2×2
LLamo
pn (x) = det V [x0 , x1 , · · · , xn−1 , x],
y sale por inducción: supongo que vale hasta
n − 1.
n, su coedet V [x0 , x1 , · · · , xn−1 ] =
claramente es polinomio y tiene grado
ciente principal es (desarrollo por la primera la y uso hipótesis inductiva)
Π0≤i<j≤n−1 (xj − xi ).
Ademas las raíces de
pn (x)
son exactamente
x0 , x1 , · · · , xn−1 ,
luego se escribe como
pn (x) = Π0≤i<j≤n−1 (xj − xi )Πn−1
k=0 (x − xk ),
evaluando en
x = xn
se obtiene el resultado mencionado.
En particular el problema de interpolación tiene solución única...
Hay otros enfoques... Lagrange
Li (x) =
Π0≤j≤n,j̸=i (x − xj )
Π0≤j≤n,j̸=i (xi − xj )
Li (xj ) = δij
n
X
pn (x) =
yi Li (x).
i=0
La unicidad sale aparte...
Problemas de la interpolación:
1. INTERPOLACIÓN POLINOMIAL
155
156
8. CUADRADOS MÍNIMOS
La teoría anterior se aplica igual las matrices de Vandermonde son (mˇn)

1
1
.
.
.
.
.
.
.
 ..
x0
x1
.
.
.
cuadrada invertible.
···
···
.
.
.
···
.
.
.
.
.
.
···
.
.
.
.
.
.
1 xm
notar que las columnas son
x20
x21
x2m
···
···

xn0
xn1 

. 
.
. 

. 
.
. 
. 
. 
.
xnm
l.i. porque las primeras n+1 las forman una matriz de Vandermonde
1. INTERPOLACIÓN POLINOMIAL
Si hacemos
n=1
157


 
1 x0
y0
 1 x 1   y1 

 a0
 
=  ..  .
 ..
. 
.  a1
.
 . 
.
1 xm
ym
las ecuaciones normales conducen a la tradicional expresión
1
m+1
1
Pm
i=0 xi
1 Pm
a0
m+1 P i=0 xi
m
1
2
a1
i=0 xi
m+1
=
1 Pm
m+1P i=0 yi
.
m
1
i=0 xi yi
m+1
Intuitivamente si
A = U ΣV ∗
σ1
σn . Si hacemos
A T A = V Σ2 V ∗
2
σ1
T
vemos que en las ecuaciones normales la condición de la matriz nal empeora κ(A A) =
.
σn
y
A ∈ Rm×n , vimos que puede denirse la condición de A como
Problema revisitado
El gráco sugiere otro enfoque: construir el proyector
{q1 , · · · , qn }
es una base ortonormal de
S = Im(A)
P
sobre la imagen de
tenemos
PS b = QQ∗ b
donde
Q = q1 |q2 | · · · |qn
La obtención de
Q ∈ Rm×n
puede hacerse con la factorización
A = QR
con
R ∈ Rn×n
triangular superior.
QR,
es decir
A.
Esto es , si
158
8. CUADRADOS MÍNIMOS
Escribimos
QRx = Ax = PS b = QQ∗ b
es decir que basta resolver
Rx = Q∗ b
QR
mˇn,
Este algoritmo es mas estable que el de las ecuaciones normales su costo esta gobernado por
que es
rango
2mn2
1 3
3 n . Volvemos a las ecuaciones normales: supongamos que
∼
−
n (columnas
A∈
l.i.): debemos resolver
At Ax = At b
si escribimos
A = U ΣV ∗ ,
tenemos
V Σt ΣV t x = At Ax = At b = V Σt U t b
Como

σ1 0
 0 σ2

0 0

Σ=0 0

 ..
.
.
.
.
0 0

0
0

σn 

0

. 
. 
.
0
···
···
···
···
0
0
0
0
.
.
.
···
0 ···
y

σ1 0 0 · · ·
Σt =  0 σ2 0 · · ·
0 0 0 ···
0 ···
0 ···
σn · · ·

0
0
0
tenemos
σ12 0
 0 σ22

t
ΣΣ=
0 0

0
0
0
0
···
···
..
.
0
..
.
0

0
0


0
σn2
entonces
 −1
σ1
0 0 ···
x = V  0 σ2−1 0 · · ·
0
0 0 ···
0
0
σn−1
···
···
···

0
0 U t b
0
o sea
x = A+ b
y la pseudoinversa funciona como ïnversa".
En general en el caso
Recordemos que de
mˇn
podríamos tener rango menor a
A = U ΣV t ,
tenemos que para
t
n
(digamos
1≤i≤r
Avi = U ΣV vi = U Σei = U σi ei = σi Ui
y
Avi = 0
si
r < i ≤ n.
r < n).
Rm×n ,
1. INTERPOLACIÓN POLINOMIAL
Luego
ker(A) = ⟨vr+1 , · · · , vn ⟩
y
159
Im(A) = ⟨u1 , · · · , ur ⟩.
De hecho

1
0
.
.
.

A+ A = vΣ+ Σv t = v 0

0
.
 ..
0 ···
1 ···
0 ···
0 ···
.
.
.
.
.
.
0 ···
0 ···
1 ···
0 ···
.
.
.
.
.
.
.
.
.
0 0 ···
Queremos estudiar
A+ b
.
.
.
0 ···

0
0

.
.
.

0 v t

0


0
en este caso.
El producto


ut1 b
 ut b 
 2 
t
U b =  .. 
 . 
utm b
así

σ1−1 (ut1 b)
σ −1 (ut b)
 2
2 


.
.


.


+ t
n×1
−1
t

Σ U b = σr (ur b)
∈R


0




.
.


.
0

entonces
x = V Σ+ U t b =
r
X
σj−1 (utj b)vj
j=1
Chequeamos
Ax =
r
X
σj−1 (utj b)Avj =
j=1
r
X
(utj b)uj = PIm(A) b
j=1
y vemos que es solución del problema de cuadrados mínimos.
Si hubiera otro
x̃
tal que
Ax̃ = PIm(A) b
entonces
A(x̃ − x) = 0
luego
x̃ − x =
n
X
αj vj
j=r+1
x̃ = x +
n
X
j=r+1
αj vj
160
8. CUADRADOS MÍNIMOS
como
x ⊥ vj
r+1≤j ≤n
para todo
n
X
∥x̃∥2 = x̃t x̃ = xt x +
|αj |2
j=r+1
i.e.
∥x∥ < ∥x̃∥
la pseudoinversa da la solución de menor norma
2.
Relación con regularización:
En el caso de rango
r<n
(o muy mal condicionado) también se puede pensar el problema
del modo siguiente: minimizar
F (z) = ∥Az − b∥2 + α2 ∥z∥2
y luego hacer
α → 0.
El término se elige
α2
para garantizar signo
2
2
La expresión: α ∥z∥ se denomina penalización (se penalizan valores grandes de
Para cada
α
tenemos una solución: la denotamos
∥z∥.
xα .
Decimos que
xα → x solución
En efecto: para el mínimo de
F
+
dada por A
se tiene
2(At (Axα − b) + α2 xα ) = 0
(At A + α2 I)xα = At b
en el caso mas interesante en que
pero para todo
α ̸=
0, At A
+
A
tene rango
r<n
la matriz simétrica
At A
no es invertible
α2 I sí lo es.
xα = (At A + α2 I)−1 At b
usando SVD
 2
σ1 + α 2
0
0
2
2
 0
σ2 + α
0

..

.
0
 0

t
2
0
0
···
A A+α I =V 

0
···
 0

.
.
.

.
.
.
.
.
.

0
0
..
···
···
σr2
.
(At A + α2 I)−1 =
0
0
···
···
0
0 ···
2
+α
0 ···
0
α2 · · ·
.
.
.
0
..
0
0
···
.

0
0


0

0 V t

0

. 
.
. 
α2
1. INTERPOLACIÓN POLINOMIAL
 2
(σ1 + α2 )−1
0
0

0
(σ22 + α2 )−1 0

..

.
0
0


0
0
·
·
·

V 
0
0
···


.
.
.

.
.
.
.
.
.

0
0
..
.
···
···
161
0
0
···
···
0
0
···
(σr2 + α2 )−1
0
···
0
α−2 · · ·
.
.
.
0
..
0
0
···
.
(At A + α2 I)−1 At = (At A + α2 I)−1 V Σt U t =

 σ
1
0
0
···
0 ··· 0
σ12 +α2


σ2
0
···
0 · · · 0
 0
2 +α2
σ
2




..

 0
.
0
0
0
·
·
·
0
 t

σr

0
· · · σ2 +α2 0 · · · 0
V  0
U
r

 0
0
·
·
·
0
0
·
·
·
0


 .
.
.
.
.
..
.
.
.
.
 ..
.
.
.
.
0
.


..
.
0
0 ··· 0
0
0
si hacemos
α→0
(At A + α2 I)−1 At → A+ .

0
0 


0 

0 V t

0 

. 
.
. 
α−2
Bibliografía
[1] J. W. Demmel Applied Numerical Linear Algebra SIAM, 1996.
[2] T. Eirola, O. Nevanlinna, Numerical Linear Algebra, Iterative Methods, Lecture Notes, Mat.
1.175, Institute of Mathematics, Helsinki Univ. of Technolgy, 2003.
[3] G. Golub, C.F. Van Loan, Matrix Computations, 3rd. Ed., The Johns Hopkins University Press, 1996.
[4] J. M. Ortega, Numerical Analysis: A second course. SIAM, 1990.
[5] L. N. Trefethen, D.Bau III, Numerical linear algebra, SIAM 1997.
[6] R. S. Varga, Matrix Iterative Analysis, Prentice-Hall, 1962.
[7] J. Wilkinson
1984.
The perdious polynomial
Studies in Numerical Analysis, pp. 1-28, MAA Stud. Math., 24,
Matrix Analysis, Cambridge University Press, 1990.
Algebra, Springer, 2002.
[8] R. Horn, C. Johnson
[9] S. Lang
163
Download