Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones...

91
= = Álgebra lineal numérica con Matlab = Métodos Matemáticos de Especialidad (Mecánica-Máquinas) = Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid Javier García de Jalón de la Fuente Septiembre 2004 =

Transcript of Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones...

Page 1: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

=

=

Álgebra lineal numérica con

Matlab

=

Métodos Matemáticos de Especialidad

(Mecánica-Máquinas)

=

Escuela Técnica Superior de Ingenieros IndustrialesUniversidad Politécnica de Madrid

Javier García de Jalón de la FuenteSeptiembre 2004

=

Page 2: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.
Page 3: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab

Métodos Matemáticos de Especialidad

(Mecánica-Máquinas)

Escuela Técnica Superior de Ingenieros IndustrialesUniversidad Politécnica de Madrid

Javier García de Jalón de la FuenteSeptiembre 2004

Page 4: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.
Page 5: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Índice pág. i

ÁLGEBRA LINEAL NUMÉRICA CON MATLAB

Índice 0. Prefacio.......................................................................................................................................v 1. Introducción................................................................................................................................1

1.1 Tipos de matrices .......................................................................................................................... 1 1.2 Espacios vectoriales euclídeos ...................................................................................................... 1

1.2.1 Definición de producto escalar y de espacio vectorial euclídeo o hermítico............................... 1 1.2.2 Bases ortonormales en espacios euclídeos .................................................................................. 1 1.2.3 Coordenadas de un vector en una base ortonormal ..................................................................... 2 1.2.4 Existencia de bases ortonormales: método de Gram-Schmidt..................................................... 2 1.2.5 Interpretación gráfica del método de Gram-Schmidt .................................................................. 3 1.2.6 Matrices ortogonales ................................................................................................................... 4 1.2.7 Matrices de columnas ortogonales .............................................................................................. 4

1.3 Subespacios de una matriz A∈Rm×n .............................................................................................. 4 1.4 Matrices de rango 1....................................................................................................................... 5 1.5 Dos formas de interpretar el producto de matrices ....................................................................... 6 1.6 Matrices de rotación, proyección y simetría ................................................................................. 7

1.6.1 Matrices de proyección y simetría en R2 ..................................................................................... 7 1.6.2 Matriz de rotación en 2-D ........................................................................................................... 8 1.6.3 Matrices de rotación de Givens ................................................................................................... 8

1.7 Aproximación en norma cuadrática: Teorema de la proyección ortogonal .................................. 9 1.7.1 Teorema de la proyección ortogonal ........................................................................................... 9 1.7.2 Matriz de proyección ortogonal sobre un subespacio................................................................ 10 1.7.3 Simetría ortogonal respecto de un subespacio........................................................................... 10 1.7.4 Matriz de Householder .............................................................................................................. 11 1.7.5 Aplicación de las matrices de Householder............................................................................... 11 1.7.6 Almacenamiento de las matrices de Householder:.................................................................... 13

1.8 Normas de vectores y matrices ................................................................................................... 13 1.8.1 Normas vectoriales en Rn ó Cn .................................................................................................. 13 1.8.2 Norma de una matriz ................................................................................................................. 15 1.8.3 Norma matricial inducida por una norma vectorial (norma natural): ........................................ 15 1.8.4 Norma-1 matricial ..................................................................................................................... 16 1.8.5 Norma-∞ matricial .................................................................................................................... 16 1.8.6 Norma espectral......................................................................................................................... 17 1.8.7 Teoremas relacionados con las normas matriciales (sin demostración) .................................... 17

2. Sistemas de ecuaciones lineales ...............................................................................................19 2.1 Introducción a los sistemas de ecuaciones lineales..................................................................... 19 2.2 Interpretaciones del sistema Ax=b.............................................................................................. 19 2.3 Algunos casos posibles del sistema Ax=b en 2-D ...................................................................... 19 2.4 Sistema de m ecuaciones con n incógnitas.................................................................................. 20 2.5 El método de eliminación de Gauss básico................................................................................. 21

2.5.1 Operaciones con filas y matrices elementales ........................................................................... 21 2.5.2 Factorización LU equivalente ................................................................................................... 22 2.5.3 Programa de Gauss básico n×n ................................................................................................. 23 2.5.4 Programa para resolver un sistema en la forma LUx=b ............................................................ 24 2.5.5 Programa de Gauss vectorizado ................................................................................................ 25

2.6 Método de eliminación de Gauss con pivotamiento ................................................................... 25 2.6.1 Necesidad del pivotamiento ...................................................................................................... 25 2.6.2 Método de Gauss con pivotamiento por columnas.................................................................... 26 2.6.3 Método de Gauss con pivotamiento total .................................................................................. 28

2.7 Resumen del método de eliminación de Gauss........................................................................... 29 2.7.1 Reducción de una matriz a la forma de escalera........................................................................ 29 2.7.2 Conclusiones de la forma de escalera PA=LU .......................................................................... 29 2.7.3 La eliminación de Gauss y los cuatro subespacios de la matriz A ............................................ 30

2.8 Algunas funciones de Matlab en relación con el método de Gauss ............................................ 30

Page 6: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. ii

2.9 Errores en la resolución de sistemas de ecuaciones lineales....................................................... 31 2.9.1 Número de condición de una matriz.......................................................................................... 31 2.9.2 Casos particulares de propagación de errores en sistemas de ecuaciones lineales .................... 32 2.9.3 Fórmula general de propagación de errores en sistemas de ecuaciones lineales ....................... 32 2.9.4 Expresión general del número de condición.............................................................................. 33 2.9.5 Número de condición para la norma euclídea ........................................................................... 33 2.9.6 Inversas de matrices perturbadas............................................................................................... 34 2.9.7 Conclusiones sobre errores en sistemas de ecuaciones lineales ................................................ 35

2.10 Sistemas de ecuaciones lineales redundantes (m>n=r) ............................................................... 35 2.10.1 Aplicación del teorema de la proyección ortogonal .................................................................. 35 2.10.2 Sistema de ecuaciones ampliado ............................................................................................... 36 2.10.3 Problema de mínimos cuadrados con matrices de columnas ortogonales ................................. 37

2.11 Sistemas de ecuaciones indeterminados (r=m<n) ....................................................................... 38 2.12 Problema general de mínimo error cuadrático y mínima norma................................................. 38 2.13 Matriz seudoinversa A+............................................................................................................... 40

2.13.1 Interpretación del sistema de ecuaciones general Ax=b............................................................ 42 3. Valores y vectores propios .......................................................................................................45

3.1 Definición del problema de valores y vectores propios .............................................................. 45 3.2 Interpretación geométrica de los valores y vectores propios ...................................................... 46 3.3 Propiedades de los valores y vectores propios............................................................................ 46

3.3.1 Subespacios propios .................................................................................................................. 46 3.3.2 Relación de los valores propios con la traza y el determinante ................................................. 46 3.3.3 Propiedad de "desplazamiento" de los valores propios ............................................................. 46 3.3.4 Casos particulares del problema de valores propios.................................................................. 47

3.4 Transformaciones de semejanza ................................................................................................. 47 3.4.1 Matrices semejantes .................................................................................................................. 47 3.4.2 Diagonalización mediante transformaciones de semejanza....................................................... 47 3.4.3 Reducción a forma triangular mediante transformaciones de semejanza.................................. 48 3.4.4 Transformaciones de semejanza unitarias ................................................................................. 48 3.4.5 Lema de Schur........................................................................................................................... 49

3.5 Matrices normales....................................................................................................................... 49 3.5.1 Definición, casos particulares y propiedades ............................................................................ 49 3.5.2 Teorema espectral para matrices normales................................................................................ 50 3.5.3 Corolarios del teorema espectral ............................................................................................... 51 3.5.4 Descomposición espectral de matrices normales ...................................................................... 51

3.6 Formas cuadráticas y transformaciones de congruencia............................................................. 52 3.6.1 Definición y propiedades de las formas cuadráticas.................................................................. 52 3.6.2 Transformaciones de congruencia............................................................................................. 52 3.6.3 Ley de Inercia de Sylvester ....................................................................................................... 52 3.6.4 Matrices definidas-positivas...................................................................................................... 53 3.6.5 Matrices semi-definidas positivas e indefinidas. ....................................................................... 54

3.7 Cociente de Rayleigh .................................................................................................................. 55 3.7.1 Definición y relación con los valores y vectores propios .......................................................... 55 3.7.2 Error en los valores propios estimados mediante el cociente de Rayleigh ................................ 55 3.7.3 Teorema mini-max y maxi-min (Teoremas de Courant-Fischer) .............................................. 56 3.7.4 Interpretación geométrica de los teoremas mini-max y maxi-min ............................................ 57 3.7.5 Propiedad de "separación" de los valores propios..................................................................... 57

3.8 Valores y vectores propios generalizados ................................................................................... 58 3.8.1 Introducción a partir del problema estándar .............................................................................. 58 3.8.2 Planteamiento del problema generalizado de valores y vectores propios.................................. 58 3.8.3 Reducción del problema generalizado al problema estándar..................................................... 59 3.8.4 Cociente de Rayleigh para Ax=λBx.......................................................................................... 61 3.8.5 Convergencia a otros valores propios. Técnicas de deflacción matricial .................................. 61

4. Factorizaciones de una matriz ..................................................................................................63 4.1 Factorización LU ........................................................................................................................ 63

4.1.1 Ejemplo de factorización LU directa......................................................................................... 63 4.1.2 Fórmulas generales para la factorización LU............................................................................ 64 4.1.3 Factorización LU con matrices simétricas................................................................................. 64 4.1.4 Factorización LU vectorizada ................................................................................................... 66

Page 7: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Índice pág. iii

4.1.5 Factorización de Choleski ......................................................................................................... 67 4.2 Factorización QR ........................................................................................................................ 67

4.2.1 Factorización QR por Gram-Schmidt........................................................................................ 67 4.2.2 Factorización QR de matrices rectangulares ............................................................................. 68 4.2.3 Factorización QR mediante matrices de Householder............................................................... 70 4.2.4 Factorización QR mediante rotaciones de Givens..................................................................... 71

4.3 Descomposición espectral de matrices normales........................................................................ 71 4.4 Descomposición de valores singulares (DVS)............................................................................ 72

4.4.1 Cálculo y existencia de la DVS................................................................................................. 73 4.4.2 Propiedades de las matrices U y V............................................................................................ 74 4.4.3 Cálculo de la DVS..................................................................................................................... 74 4.4.4 Aplicaciones de la DVS ............................................................................................................ 75 4.4.5 Valores singulares y perturbaciones en una matriz ................................................................... 76 4.4.6 Problemas de reducción de la dimensionalidad......................................................................... 77 4.4.7 Aplicación de la DVS a la solución del sistema general Ax=b ................................................. 78

Page 8: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.
Page 9: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Prefacio pág. v

0. Prefacio Los métodos numéricos para la resolución de problemas de Álgebra Lineal tienen una enorme im-portancia práctica en la asignatura de Métodos Matemáticos de Especialidad, asignatura troncal que se imparte en el primer semestre del cuarto curso en la Escuela Técnica Superior de Ingenieros In-dustriales de la Universidad Politécnica de Madrid. Los métodos matriciales se aplican en multitud de áreas de la ingeniería, y además su resolución numérica es algo que se les da bastante bien a los computadores actuales.

La experiencia del curso 2003-04 –primero en el que se impartió esta asignatura del Plan 2000– y de la asignatura Matemáticas de Especialidad del Plan 1976, aconseja no dar por supuesto que se mantienen los conocimientos adquiridos en las asignaturas de Álgebra I y II de primer curso. Tam-poco es posible dedicar un gran número de horas de clase a presentar de nuevo los contenidos fun-damentales de dichas asignaturas.

El objetivo de estos apuntes es facilitar a loa alumnos de cuarto el repaso personal de los temas más importantes de cálculo vectorial y matricial, que vieron al comienzo de la carrera. La idea no es dar por sabida el Álgebra Lineal numérica en la asignatura de cuarto, sino liberarse de los aspectos más teóricos y poder dedicar las clases a los aspectos más algorítmicos y a las aplicaciones prácticas.

Por tratarse de unos apuntes de repaso, el orden es diferente del que se utilizó o utilizaría en prime-ro, conteniendo algunas referencias a temas que se tratarán posteriormente.

Algunas demostraciones se han omitido, sobre todo cuando son complicadas y no tienen gran inte-rés pedagógico. Muchas otras se han incluido, aunque pueden omitirse en una primera lectura. En muchos casos, se les ha restado importancia utilizando una letra más pequeña. Se han incluido tam-bién algunos programas de Matlab, con objeto de ilustrar los algoritmos explicados en teoría. Estos algoritmos pueden servir de base para muchos otros, introduciendo en ellos las modificaciones oportunas.

El autor de estos apuntes asume íntegramente la responsabilidad de sus limitaciones y deficiencias, pero no puede desaprovechar la oportunidad de agradecer a sus compañeros del Departamento de Matemática Aplicada a la Ingeniería Industrial, en particular a los profesores de Métodos Matemáti-cos de Especialidad y de Álgebra II, el apoyo y la ayuda prestadas en estas materias a lo largo de los últimos cursos.

Madrid, 24 de septiembre de 2004,

Javier García de Jalón de la Fuente

Page 10: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.
Page 11: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 1

1. Introducción 1.1 Tipos de matrices Una matriz ∈ m×nA C es un conjunto de escalares –reales o complejos– dispuestos en m filas y n columnas. Si m n= la matriz se dice cuadrada y si m n≠ la matriz se dice rectangular. Esta dis-tinción es importante entre otras razones porque ciertas propiedades sólo tienen sentido si la matriz es cuadrada. Por ejemplo, sólo las matrices cuadradas tienen determinante, sólo ellas pueden ser invertibles, sólo ellas tienen valores y vectores propios, etc.

Las matrices rectangulares tienen algunas propiedades que se pueden considerar como generaliza-ción de las anteriores. Así, los conceptos de matriz seudoinversa y de valores singulares, pueden ser considerados como una generalización de los conceptos de matriz inversa y de valores propios.

Teniendo en cuenta los elementos distintos de cero, las matrices pueden ser diagonales, bidiagona-les, triangulares superior o inferior, tridiagonales, de Hessenberg, etc.

1.2 Espacios vectoriales euclídeos

1.2.1 Definición de producto escalar y de espacio vectorial euclídeo o hermítico Un espacio vectorial euclídeo es un espacio vectorial real, de dimensión finita, dotado de un pro-ducto escalar. Análogamente, un espacio vectorial hermítico es un espacio vectorial complejo, de dimensión finita, dotado de un producto escalar.

Sea E un espacio vectorial euclídeo o hermítico. Se define el producto escalar en E como una apli-cación: , : E E× → R con las tres propiedades siguientes:

) Simetría: , ,

) Lineal en la 1ª variable: + , , ,

) Definida-positiva , 0, si ; , 0, sólo si

a

b

c

α β α β

=

= +

> ≠ = =

u v v u

u v w u w v w

u u u 0 u u u 0

(1)

La notación a indica el complejo conjugado de a . El producto escalar estándar (euclídeo en nR ó hermítico en nC ), se expresa respectivamente de modo matricial en la forma:

1 1 2 2En : , ...T Tn nx y x y x y= = = + + +nR x y x y y x (2)

1 1 2 2En : , ...H Tn nx y x y x y= = = + + +nC x y x y x y (3)

El considerar el conjugado y transpuesto del primer factor en nC es necesario para asegurar la pro-piedad c) de (1). Los espacios euclídeos son un caso particular de los espacios herméticos en el que todos los vectores y escalares son reales.

En lo sucesivo se considerarán sólo los espacios vectoriales euclídeos, salvo que se indique otra cosa. Prácticamente todo lo que se diga sobre ellos es válido para los espacios hermíticos cambian-do la notación de transpuesta (T) por la de conjugada y transpuesta (H).

1.2.2 Bases ortonormales en espacios euclídeos

Se dice que un vector ∈ nu R está normalizado cuando cumple:

2

21T = =u u u (4)

Page 12: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 2

Se dice que dos vectores , ∈ nu v R son ortogonales cuando su producto escalar es nulo:

0T =u v (5)

Se dice que una base ( )1 2, ,..., nq q q en un espacio vectorial de dimensión n es ortonormal cuando está formada por n vectores de norma unidad y ortogonales entre sí:

, 1,2,...,Ti j ij i j nδ= =q q (6)

1.2.3 Coordenadas de un vector en una base ortonormal

Sea a un vector cualquiera en nR y ( )1 2, ,..., nq q q los vectores de una base ortonormal de nR . Se desean hallar las componentes αi de a expresado en dicha base ortonormal. El vector a se puede expresar como combinación lineal de los vectores qi con coeficientes por determinar iα :

1 1 2 2 ... n nα α α= + + +a q q q (7)

Para determinar la componente iα basta realizar el producto escalar por iq :

1 1 2 2 ... 0 ... ... 0T T T T Ti i i n i n i i i iα α α α α= + + + = + + + + =q a q q q q q q q q (8)

Despejando iα de esta ecuación y sustituyendo en (7):

( ) ( ) ( )1 1 2 2 ...T T Tn n= + + +a q a q q a q q a q (9)

O bien, utilizando formulación matricial:

[ ]

1

2 11 1 2 2 1 2... = , ,..., = n n n

n

αα

α α α

α

⎡ ⎤⎢ ⎥⎢ ⎥= + + + ⇒ =⎢ ⎥⎢ ⎥⎣ ⎦

a q q q q q q Qα α Q a (10)

La matriz [ ]1 2, ,..., n≡Q q q q es una matriz cuadrada y ortogonal cuyas columnas son los vectores de la base. Comparando las expresiones (9) y (10) se concluye que la inversa de Q es su transpuesta, lo que caracteriza a las matrices ortogonales:

1

1 12

2

T

TT T

T

− −

⎡ ⎤⎢ ⎥⎢ ⎥= = = ⇒ =⎢ ⎥⎢ ⎥⎣ ⎦

q aq aα Q a Q a Q Q

q a

(11)

1.2.4 Existencia de bases ortonormales: método de Gram-Schmidt

Se parte de n vectores ( )1 2, ,..., na a a linealmente independientes y se trata de hallar a partir de ellos

una base ortogonal ( )1 2, ,..., nq q q .

El primer vector q1 se puede obtener normalizando a1:

1 1 1 1 1 ≡ =b a q b b (12)

Page 13: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 3

Los vectores q2, q3, … se obtienen quitando a los vectores a2, a3, … las componentes según los "q" anteriores (calculadas según (9)) y normalizando (siempre existe i ≠b 0 , por ser los ia linealmente independientes):

( )2 2 1 2 1 2 2 2 T≡ − =b a q a q q b b (13)

( ) ( )3 3 1 3 1 2 3 2 3 3 3 T T≡ − − =b a q a q q a q q b b (14)

( ) ( )1 1 T Tn n n n n n n n n≡ − − − =b a q a q q a q q b b (15)

Existe otra forma de organizar los cálculos (método de Gram-Schmidt modificado) consistente en eliminar la componente según qi a todos los vectores aj (j=i+1,...,n), tan pronto como qi ha sido cal-culado (se obtienen menores errores numéricos):

( )( )

( )

1 1 1 1 1

2 2 2 2 2

2,3,...,

3,4,...,

...

1,...,

Tj j j

Tj j j

Ti i i j j i j i

j n

j n

j i n

= = − =

= = − =

= = − = +

q a a a a q a q

q a a a a q a q

q a a a a q a q

(16)

Obsérvese que en la expresión de cada qi (ai) sólo intervienen a1,..., ai (q1,..., qi).

Figura 1. Interpretación gráfica del método de Gram-Schmidt.

1.2.5 Interpretación gráfica del método de Gram-Schmidt Se realizará para el espacio euclídeo tridimensional. Las expresiones (13)-(15) en este caso son:

( )( ) ( )

1 1 1 1 1

2 2 1 2 1 2 2 2

3 3 1 3 1 2 3 2 3 3 3

T

T T

≡ =

≡ − =

≡ − − =

b a q b b

b a q a q q b b

b a q a q q a q q b b

(17)

Teniendo en cuenta que cada vector ia sólo tiene proyección no nula sobre los vectores ortonorma-les ( )1 2, ,..., iq q q , los subespacios generados por ( )1 2, ,..., ia a a y por ( )1 2, ,..., iq q q coinciden:

a2

a3

q1 q2

q3 ( )2 2 1 2 1

T= −b a q a q

( ) ( )3 3 1 3 1 2 3 2T T= − −b a q a q q a q

1 1=b a

Page 14: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 4

[ ] [ ][ ] [ ][ ] [ ]

1 1

1 2 1 2

1 2 3 1 2 3

, ,

, , , ,

L L

L L

L L

=

=

=

q a

q q a a

q q q a a a

(18)

La relación entre los vectores ( )1 2 3, ,a a a , ( )1 2 3, ,b b b y ( )1 2 3, ,q q q se muestra en la Figura 1.

1.2.6 Matrices ortogonales

Una matriz Q es ortogonal si es cuadrada y sus columnas iq son ortonormales entre sí:

( ), 1; 0, T T Ti j ij i i i j i jδ∈ = = = ≠n×nQ R q q q q q q (19)

Estas condiciones se expresan de modo gráfico y matricial tal como se muestra en la Figura 2 y en la ecuación (20).

Figura 2. Ortogonalidad entre las columnas de la matriz Q.

T =Q Q I (20)

Propiedades de las matrices ortogonales (se pueden demostrar como ejercicio):

− Se verifica que la inversa es igual a la traspuesta QT=Q–1, como se concluye de la ec. (20).

− Todos los valores propios de una matriz ortogonal tienen módulo unidad.

− El determinante de una matriz ortogonal es +1 ó –1.

− Las matrices ortogonales conservan el producto escalar, y por tanto distancias y ángulos.

− Casos particulares de las matrices ortogonales son las matrices de permutación, las de rota-ción y las de simetría.

1.2.7 Matrices de columnas ortogonales

Se llama matriz de columnas ortogonales Q a una matriz rectangular ( ) m n m n× > , tal que sus columnas son un conjunto de vectores ortonormales. No son matrices ortogonales porque no son cuadradas.

Las matrices rectangulares de columnas ortogonales, aunque cumplan QTQ=I, no son ortogonales pues QQT≠I . En este caso QT no es la inversa de Q, sino una inversa por la izquierda. Se verá más adelante que QQT es una matriz de proyección sobre el subespacio de columnas de Q, Im(Q).

1.3 Subespacios de una matriz A∈Rm×n Un subespacio se puede determinar, entre otras formas, de los dos modos siguientes (representados respectivamente en la Figura 3 y en la Figura 4):

1 0 00 1 0

0 0 1

• =

1Tq

2Tq

Tnq

1q 2q nq

Page 15: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 5

1. Por un conjunto de vectores generador (ejemplo, un plano determinado por dos vectores no colineales). Estos vectores pueden constituir una base, o ser un sistema linealmente depen-diente del que se puede extraer una base.

2. Por un conjunto de restricciones sobre un espacio vectorial que lo contiene (por ejemplo, un plano queda determinado por la recta a la que es perpendicular).

Figura 3. Base de un subespacio.

Figura 4. Complemento ortogonal.

En relación con una matriz rectangular A, de tamaño m×n y rango r, se pueden considerar los cuatro subespacios vectoriales fundamentales siguientes:

1. Subespacio de columnas Im(A). Es el subespacio de Rm generado por las columnas de A. Tendrá dimensión r, pues hay r columnas independientes. Se verifica que Ax∈Im(A), ∀x.

2. Subespacio de filas Im(AT). Es el subespacio de Rn generado por las filas de A. También ten-drá dimensión r, pues sólo hay r filas independientes.

3. Subespacio nulo Ker(A). Es subespacio de Rn formado por todos los vectores x tales que Ax=0. Todos los vectores de Ker(A) son ortogonales a las filas de A (y a todas sus combina-ciones lineales), por lo que Ker(A) e Im(AT) son subespacios ortogonales y complementarios en Rn. De aquí se concluye que la dimensión de Ker(A) es n–r. Se tiene:

( ) ( )Ker Im T⊥ =A A (21)

4. Subespacio nulo de la transpuesta Ker(AT). Es el subespacio de Rm formado por todos los vectores y que satisfacen yTA=0, es decir por todos los vectores ortogonales a las columnas de A (y a sus combinaciones lineales). Los subespacios Ker(AT) e Im(A) son ortogonales y com-plementarios, por lo que la dimensión de Ker(AT) es m–r. En este caso, se tendrá:

( ) ( )Ker ImT ⊥=A A (22)

1.4 Matrices de rango 1 Las matrices de rango 1 se pueden obtener como producto de un vector columna por un vector fila: A=uvT. Las columnas de A son múltiplos de u y las filas de A son múltiplos de vT, por ejemplo:

{ } [ ]1 1 1 1 2 1 3 1

2 1 2 3 2 1 2 2 2 3 1 2 3 2

3 3 1 3 2 3 3 3

T

T T

T

u u v u v u v uu v v v u v u v u v v v v uu u v u v u v u

⎡ ⎤⎧ ⎫ ⎡ ⎤⎪ ⎪ ⎢ ⎥⎢ ⎥= = = = =⎨ ⎬ ⎢ ⎥⎢ ⎥⎪ ⎪ ⎢ ⎥⎢ ⎥⎩ ⎭ ⎣ ⎦ ⎣ ⎦

vA uv u u u v

v (23)

Como sólo hay una fila y una columna linealmente independientes, el rango es uno. Como conse-cuencia de su rango, la matriz A=uvT tendrá un valor propio 0 con multiplicidad n−1, y un único valor propio distinto de cero. Es fácil determinar este valor propio y el vector propio asociado. La ecuación de valores y vectores propios de la matriz A es:

λ=Ax x (24)

Page 16: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 6

En la ec. (24) el miembro izquierdo pertenece a Im(A) porque es una combinación de las columnas de A, luego para 0λ ≠ también el miembro derecho, esto es x, pertenecerá a Im(A). Por ello, en el caso de la matriz de rango uno A=uvT, el vector propio asociado con el único valor propio distinto de cero será u, asociado con el valor propio vTu, ya que se cumple:

( ) ( ) ( ) T T T Tλ λ= = = = ⇒ =Au uv u u v u v u u u v u (25)

También se puede decir algo acerca de los n−1 vectores propios asociados con el valor propio nulo. Son todos los vectores del subespacio nulo o núcleo Ker(A), definido por la ecuación:

( ) ( ) 0T T T= ⇒ = ⇒ =uv x 0 u v x 0 v x (26)

El núcleo es pues el complemento ortogonal del vector v:

( ) [ ]Ker L ⊥=A v (27)

Una matriz de rango uno , con 1T T= =P uv v u es una matriz de proyección, pues cumple:

( )( ) ( )2 1T T T T T= = = ⋅ =P uv uv u v u v uv P (28)

Sin embargo, no es una matriz de proyección ortogonal, pues no es simétrica. Se podría hablar de proyección oblicua. Si =v u , imponiendo la condición 1T T= =v u u u se obtiene la expresión ge-neral de la matriz de proyección ortogonal sobre un subespacio de dimensión 1, que es:

T

TT= =

uuP uuu u

(29)

1.5 Dos formas de interpretar el producto de matrices El producto de matrices =C AB se puede interpretar de varias formas diferentes, dos de las cuales están basadas respectivamente en el producto escalar o interior y en el producto exterior de vecto-res. Denotando respectivamente como ja y T

ja a la columna j y a la fila j de la matriz A:

[ ]1 1 1 1 2 1

2 2 1 2 2 21 2

1 2

T T T Tn

T T T Tn

n

T T T Tm m m m n

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= = =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

a a b a b a ba a b a b a b

C AB b b b

a a b a b a b

(30)

[ ]1

21 2 1 1 2 2

1

...

T

T lT T T T

l l l i ii

Tl

=

⎡ ⎤⎢ ⎥⎢ ⎥= = = + + + =⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

bb

C AB a a a a b a b a b a b

b

(31)

En la primera forma, el elemento (i, j) de la matriz producto es el producto escalar de la fila i de A por la columna j de B.

En la segunda forma, el producto matricial se formula como una suma de l matrices de rango uno, formadas cada una por el producto de una columna de A por la correspondiente fila de B. Esta se-gunda forma es muy poco práctica desde el punto de vista del cálculo numérico del producto, pero puede arrojar luz sobre ciertos aspectos del producto de matrices. Por ejemplo, las columnas o las filas de la matriz producto se pueden expresar en la forma:

Page 17: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 7

[ ] [ ]1 1

2 21 2 1 2, ,..., , ,..., ,

T T

T T

n n

T Tm m

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= = = =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

c ac a

c c c AB A b b b AB B

c a

(32)

1.6 Matrices de rotación, proyección y simetría

1.6.1 Matrices de proyección y simetría en R2 Se comenzará considerando la forma de una matriz de proyección ortogonal P en 2-D. Se trata de determinar la proyección ortogonal de un punto b sobre el subespacio generado por el vector a.

Figura 5. Proyección y simetría sobre una recta en R2.

Sea p el vector proyección de b sobre a. Se trata de hallar una matriz P tal que Pb=p. Si x es la magnitud de dicha proyección, la matriz de proyección P se puede determinar como sigue:

( ) ( ), =0

T

T T T T

T T T T

x x

x x

= − ⊥ ⇒ −

= ⇒ = = = ≡ ≡

p a b p a a b a

a b a b aa aap a a b Pb Pa a a a a a a a

(33)

Esta expresión de P coincide con la ec. (29). Esta expresión de P es general, en el sentido de que sirve para Rn cuando se proyecta sobre un subespacio de dimensión 1.

Algunas propiedades de la matriz P son las siguientes:

− Es simétrica (sólo si la proyección es ortogonal).

− Se verifica que P2=PP=P (idempotente).

− La matriz P tiene rango 1 (es singular) y su subespacio Im(A) está generado por el vector a.

− El subespacio nulo Ker(A) es el complemento ortogonal a Im(A).

− La proyección Pb pertenece a Im(A) (todas las columnas de P tienen la dirección de a).

La Figura 5 muestra también el vector simétrico de b respecto de la recta a. La matriz de simetría S se puede determinar en función de la matriz de proyección P en la forma:

( ) ( )2 2 2= + − = − ⇒ = −Sb b Pb b P I b S P I (34)

La matriz de simetría es simétrica y ortogonal, es decir, su inversa es ella misma:

( ) ( )2 2 1, 2 2 4 4 T T −= = = − − = − + = ⇒ =S S S S S P I P I P P I I S S (35)

Definiendo el vector a por medio de sus componentes cosc α≡ y sens α≡ , la matriz de proyec-ción P, correspondiente a la Figura 6, se puede calcular a partir de la expresión (33):

ab

b–p

p=Pb

Sb

Page 18: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 8

{ }

{ }

2

2

T

T

cc s

c cssc sc sc ss

⎧ ⎫⎨ ⎬ ⎡ ⎤⎩ ⎭= = = ⎢ ⎥⎧ ⎫ ⎣ ⎦⎨ ⎬

⎩ ⎭

aaPa a

(36)

Como era de esperar, la matriz P calculada es simétrica, singular e idempotente.

Sustituyendo el resultado de (36) en (34) se obtiene una expresión para la matriz de simetría en R2 mostrada en la Figura 7:

2 2 2

2 2 2

1 0 22 2

0 1 2c cs c s cssc s sc s c

⎡ ⎤ ⎡ ⎤−⎡ ⎤= − = − =⎢ ⎥ ⎢ ⎥⎢ ⎥ −⎣ ⎦⎣ ⎦ ⎣ ⎦

S P I (37)

Más adelante se determinarán expresiones análogas y más generales para P y S en espacios Rn.

Figura 6. Proyección 2-D. Figura 7. Simetría 2-D.

Figura 8. Rotación 2-D.

1.6.2 Matriz de rotación en 2-D

La Figura 8 muestra el resultado de rotar el vector a un ángulo α para convertirse en el vector b. En este caso, en función del coseno y el seno del ángulo girado, la matriz de rotación A es una matriz ortogonal dada por (b=Aa; ATA= AAT =I):

cos , senx x

y y

b ac sc s

b as cα α

−⎧ ⎫ ⎧ ⎫⎡ ⎤= ≡ ≡⎨ ⎬ ⎨ ⎬⎢ ⎥

⎣ ⎦⎩ ⎭ ⎩ ⎭ (38)

1.6.3 Matrices de rotación de Givens Las matrices de rotación de Givens son rotaciones planas ó 2-D que se aplican a matrices n×n. Se utilizan para hacer cero un elemento determinado (i,j) de una matriz A o como transformaciones de semejanza unitarias (como matrices de rotación, son ortogonales).

Sea la matriz Gij una matriz n×n con todos sus elementos iguales a los de la matriz identidad I, ex-cepto los cuatro elementos siguientes:

cos ; senii jj ji ijg g c g g sα α= = ≡ = − = ≡ (39)

Al pre-multiplicar la matriz A por Gij se combinan las filas i y j, y al post-multiplicar se combinan las columnas. En el primer caso se obtiene el siguiente resultado:

a

b

α

ay

ax

b

α

a

Sb

b

α

a

Pb

Page 19: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 9

11 1 1 1

1 1

1 1

1

1 0 0 0

0 0

0 0

0 0 0 1

i j n

i j ii ji ij jj in jn

ij

i j ii ji ij jj in jn

n ni nj nn

a a a a

ca sa ca sa ca sa ca sac s

sa ca sa ca sa ca sa cas c

a a a a

⎡⎡ ⎤ ⎢⎢ ⎥ ⎢⎢ ⎥ − − − −−⎢ ⎥⎢ ⎥= =⎢ ⎥

+ + + +⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ ⎣

G A A

⎤⎥⎥

⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎦

(40)

Los valores de c y s se pueden determinar con la condición de que el nuevo elemento (j,i) se anule:

2 2 2 2

; 0 , jiiiii ji

ii ji ii ji

aasa ca c sa a a a

−+ = = =

+ + (41)

Las matrices de Givens se pueden utilizar para triangularizar una matriz A de modo semejante a como se hace en el método de eliminación de Gauss. Haciendo ceros por columnas, de izquierda a derecha, los ceros anteriores se conservan y la matriz A se triangulariza con un nº finito de opera-ciones aritméticas.

Como se ha dicho anteriormente y es fácil de comprobar, las matrices de Givens son ortogonales y su producto, es decir la aplicación sucesiva de varias rotaciones de este tipo, también lo es. Por tan-to, la factorización de A con matrices de Givens será del tipo A=QR (ver apartado 4.2). La factori-zación de Givens es más costosa en operaciones aritméticas que la descomposición LU.

1.7 Aproximación en norma cuadrática: Teorema de la proyección ortogonal

1.7.1 Teorema de la proyección ortogonal

Enunciado: Sea E un espacio euclídeo (o hermítico), y F un subespacio de E. Sea E∈v un vector cualquiera de E. Las dos condiciones siguientes son equivalentes:

22

proyección ortogonal de sobre minF

F∗ ∗

∈⇔ − = −

ww b b w b w (42)

La 2ª parte de la expresión (42) indica que el vector w*∈F es una aproximación óptima en F del vector b∈E. Además, dicha aproximación óptima es única. La Figura 9 ilustra este teorema. Demostración: Si ∗w es la proyección ortogonal de b sobre F, se verificará que F∗ ⊥− ∈b w . Si w es un punto cual-quiera de F, se podrá escribir:

( ) ( ) 22

2 2 2 2 2

=

2 ,

∗ ∗

∗ ∗ ∗ ∗ ∗ ∗ ∗

− − + − =

= − + − + − − = − + − ≥ −

b w b w w w

b w w w b w w w b w w w b w

(43)

lo que demuestra que ∗w es la aproximación óptima, que además es única porque para alcanzar la igualdad es necesario que se cumpla ∗− =w w 0 . Recíprocamente, la condición de aproximación óptima en (43) implica que w sea la pro-yección ortogonal de b sobre F.

Page 20: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 10

Figura 9. Teorema de la proyección ortogonal.

1.7.2 Matriz de proyección ortogonal sobre un subespacio Sea F E⊂ un subespacio vectorial determinado por las columnas linealmente independientes de una matriz ∈ m×nA R , que constituyen una base. Aplicando el teorema de la proyección ortogonal se puede calcular la matriz de proyección sobre dicho subespacio.

Sea ∗ =w Ax la mejor aproximación del vector b en el subespacio Im(A), siendo x un vector de coeficientes a determinar. Se define el residuo r en la forma:

≡ −r v Ax (44)

El teorema de la proyección ortogonal establece que r debe ser ortogonal a Im(A). Esta condición se puede imponer haciendo que r sea ortogonal a una base de Im(A), es decir, a las columnas de A:

( ) ( ) 1 T T T T T T−

= ⇒ − = ⇒ = ⇒ =A r 0 A v Ax 0 A Ax A v x A A A v (45)

El vector Ax es también la proyección ortogonal de v sobre el subespacio Im(A). Esta condición permite determinar la matriz de proyección P:

( ) ( )1 1 T T T T− −

= ⇒ = ⇒ =Ax Pv A A A A v Pv P A A A A (46)

Obsérvese la analogía entre esta expresión y la de proyección sobre un subespacio de dimensión 1 vista en la ecuación (33), particularmente si ésta se transforma ligeramente:

( ) 1TT T

T

−= =

aaP a a a aa a

(47)

1.7.3 Simetría ortogonal respecto de un subespacio Como en el caso 2-D, las matrices de proyección y simetría están estrechamente relacionadas. En este no se trata de proyectar un punto sobre un subespacio, sino de hallar su simétrico respecto a dicho subespacio.

Se llamará Sb al punto simétrico de b respecto al subespacio Im(A), determinado por las columnas de A. La transformación de simetría puede ponerse en función de la proyección (ver Figura 9):

( ) ( ) ( )2 2 2 2= − = − − = − ⇒ = −Sb b r b b Pb P I b S P I (48)

b

F w*=Pb

w

r∈F⊥

v

Sb

Page 21: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 11

Propiedades de la matriz de simetría S:

1. Es simétrica, pues tanto P como I lo son.

2. Es ortogonal, pues se verifica que su inversa es su transpuesta, es decir, ella misma:

( ) ( )2 22 2 4 4= = − − = − + =SS S P I P I P P I I (49)

A diferencia de la matriz de proyección, la matriz de simetría es invertible, como fácilmente se comprende a partir de su significado geométrico. Si se aplica dos veces se vuelve al ori-gen.

1.7.4 Matriz de Householder La simetría o reflexión más importante se define respecto a un hiperplano (subespacio de dimen-sión n–1), determinado, no mediante una base (columnas de una matriz A), sino mediante un vector v perpendicular a dicho hiperplano, que genera su complemento ortogonal.

Las matrices de simetría de Householder se denotan como H y se definen en la forma:

2 , o bien: 2 1T

TT= − = − =

vvH I H I uu uv v

(50)

donde v es un vector cualquiera. La matriz de Householder define una simetría respecto al hiperpla-no perpendicular al vector v. La Figura 9 justifica la expresión (50): Sea P1 la matriz de proyección sobre el subespacio de dimensión 1 generado por v. La matriz de proyección P sobre el hiperplano ortogonal a v y la correspondiente matriz de simetría de acuerdo con la expresión (48), serán:

( )1 1 1; 2 2 2 2T T

T T= − = − = − = − − = − = −vv vvP I P I H P I I P I I P Iv v v v

(51)

Es obvio que las matrices de Householder son simétricas, y es fácil demostrar que son ortogonales:

( )( )2 2 4 4T T T T T T= − − = − + =H H I uu I uu I uu uu uu I

Como son matrices ortogonales, conservan ángulos y distancias, y por eso son muy estables en su aplicación numérica.

1.7.5 Aplicación de las matrices de Householder Las matrices de Householder se utilizan para, al multiplicarlas por un vector cualquiera x, anular todos los elementos excepto el primero, es decir, para alinear x con el vector e1 de la base natural.

Supóngase un vector cualquiera x. Si el vector v se define en la forma:

{ }1 1, 1 0 0T= − ≡v x x e e (52)

se demostrará que el producto Hx tiene nulos todos los elementos excepto el 1º. Como H es ortogo-nal conserva las magnitudes, luego se deberá cumplir:

1=Hx x e (53)

En efecto, con H definida en la ecuación (50) y v definido por la ecuación (52), el producto Hx es:

Page 22: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 12

( ) ( )

( ) ( )

( ) ( )

11

1 1

11 1 12

1

22 2

2 22

TT T

T TT T

T

T

xx

−⎛ ⎞= − = − = − − =⎜ ⎟

− −⎝ ⎠

−= − − = − − =

− +

x x e xvv vv xHx I x x x x x ev v v v x x e x x e

x x xx x x e x x x e x e

x x x x

(54)

En el cálculo del vector v según (52) deben evitarse sustracciones o restas numéricas que puedan disminuir la precisión. Así, cuando x1>0, el cálculo del elemento v1 se puede hacer mediante una expresión alternativa en la que todos los términos son positivos:

( )2 2 22

211 1

1 1

...= = nx xx

v xx x

− + +−= −

+ +x

xx x

(55)

Las matrices de Householder se pueden utilizar para hacer ceros debajo de la diagonal en una matriz A, en forma análoga al método de Gauss:

1

1 1 11

1

02 ;

0

0

T

T

σ

σ

∗ ∗ ∗⎡ ⎤⎢ ⎥∗ ∗ ∗⎫ ⎢ ⎥= = − = − ⎪ = ∗ ∗ ∗⎢ ⎥⎬⎢ ⎥⎪= ⎭ ⎢ ⎥⎢ ⎥∗ ∗ ∗⎣ ⎦

vvU H I v x x eU Av v

x (56)

La segunda trasformación es similar, pero con una matriz H de tamaño n−1 completada con la pri-mera fila y columna de la matriz identidad:

1

2

2 2 12

1 0 0 00 0

, 0 0 0

0 0 0

σσ∗ ∗ ∗⎡ ⎤ ⎡ ⎤

⎢ ⎥ ⎢ ⎥∗ ∗⎢ ⎥ ⎢ ⎥= = ∗ ∗⎢ ⎥ ⎢ ⎥

⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥∗ ∗⎣ ⎦ ⎣ ⎦

U U U AH

(57)

La Figura 10 y la Figura 11 muestran gráficamente las transformaciones correspondientes.

Figura 10. Primera transformación de

Householder.

Figura 11. Segunda transformación de

Householder.

Cada transformación conserva los ceros de las anteriores. Esta transformación es más estable que la de Gauss, aunque más costosa en número de operaciones aritméticas.

A continuación de incluye una función de Matlab para calcular el vector v y el factor β a partir de un vector cualquiera x. El vector v se normaliza haciendo v(1)=1, de modo que v se pueda almace-nar en lugar de los ceros introducidos (el primer elemento vale siempre 1 y no necesita ser almace-nado). Se utilizan las expresiones siguientes.

x A x A

Page 23: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 13

{ } ( )

11 2 2

1211

1

Si 02 ; = ; /...

1 0 0T

n TT

x

vx xv

xβ β

> ⎫= − ⎫ ⎪⎪ − =− + +⎬ ⎬

=≡ ⎪ ⎪⎭ + ⎭

v x x eH = I vv v v

v vex

(58)

% cálculo del vector de Householder function [v,beta] = householder(x) n=length(x); % módulo de x (sin primera componente) s=x(2:n)'*x(2:n); v=[1,x(2:n)']'; if s==0 % los elementos x(2), ... x(n) son cero beta=0 else % módulo de x mx=sqrt(x(1)^2+s); if x(1)<=0 v(1)=x(1)-mx; else v(1)=-s/(x(1)+mx); end beta=2*v(1)^2/(s+v(1)^2); v=v/v(1); end

1.7.6 Almacenamiento de las matrices de Householder: No hace falta almacenar las matrices de Householder H, sino que basta almacenar el vector v. Si se hace v1=1, el vector v puede almacenarse en las posiciones de los ceros introducidos en la matriz A.

El producto de una matriz de Householder H por una matriz A se puede hacer, sin tener que formar las matrices H ó U explícitamente y con menos operaciones aritméticas, de la forma siguiente:

( )2 , T TT T T

T β β β= − = − = − = −vvH I I vv HA A vv A A v A vv v

(59)

Con la expresión (59) el producto HA no necesita O(n3) operaciones aritméticas como un producto de matrices estándar, sino que basta un nº de operaciones aritméticas de orden O(n2).

1.8 Normas de vectores y matrices Las normas de vectores y matrices proporcionan una forma sencilla de "medir" el tamaño de un vector y/o una matriz por medio de un número real positivo, en la misma forma en la que se emplea el módulo de un vector en Rn.

1.8.1 Normas vectoriales en Rn ó Cn Como se ha dicho, el objetivo es disponer de una medida del tamaño de los vectores, con objeto de estudiar convergencias, relaciones de mayor o menor, proximidad a cero, etc.

El producto escalar permite definir de modo natural una norma en Cn, que coincide con la longitud de un vector en R2 y R3. Esta norma se llama norma euclídea, y responde a la expresión:

2

21

,n

jj

x=

= = ∑x x x (60)

De un modo más general (hay otros tipos de normas posibles), la norma de un vector x debe sa-tisfacer las tres propiedades siguientes:

Page 24: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 14

1. 0, y 0 si y sólo si =≥ =x x x 0 (61)

2. , para cualquier ( o )α α α= ⋅ ∈x x K R C (62)

3. (desigualdad triangular)+ ≤ +x y x y (63)

La norma euclídea no es la única posibilidad. Puede considerarse que es un caso particular de una norma más general, la llamada norma-p, que se define en la forma:

1

1

, 1p pn

jpj

x p=

⎛ ⎞= ≥⎜ ⎟⎜ ⎟

⎝ ⎠∑x (64)

Dependiendo del valor de p, existen varios casos particulares muy utilizados de la norma-p:

1. Norma-1: Se toma p=1,

1 211

...n

j nj

x x x x=

= = + + +∑x (65)

2. Norma-2 ó norma euclídea: Se toma p=2,

( )1

2 12 2 2 2 21 22

1

...n

j nj

x x x x=

⎛ ⎞= = + + +⎜ ⎟

⎝ ⎠∑x (66)

3. Norma-∞ ó norma máxima: Se toma p=∞,

1

11

lim lim maxp pn

j jpp p j nj

x x∞ →∞ →∞ ≤ ≤

=

⎛ ⎞= = =⎜ ⎟⎜ ⎟

⎝ ⎠∑x x (67)

a) p=1 b) p=2 c) p=∞

Figura 12. Representación de los puntos 1≤x con tres normas distintas.

En la Figura 12 se muestra el lugar geométrico de los puntos de R2 que cumplen la condición 1≤x , con cada una de las tres normas-p consideradas.

Es inmediato ver que las normas-p definidas cumplen las condiciones 1 y 2 (ecs. (62) y (63)) de la definición de norma. También se demuestra fácilmente que se cumple la condición 3; por ejemplo, para p=1:

1 1 1

1 1 1

n n n

j j j jj j j

x y x y= = =

+ = + ≤ + = +∑ ∑ ∑x y x y (68)

A continuación se enuncian dos teoremas (sin demostración):

1 11≤x 1 2

1≤x 1 1∞

≤x

Page 25: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 15

− Teorema 1: Cada norma vectorial p

x es una función continua de las componentes del vec-

tor x, es decir, de x1, x2, ..., xn,.

− Teorema 2: Para cada dos normas vectoriales y i j

x x , existen dos constantes positivas

m y M tales que:

, i j i

m M≤ ≤ ∀ ∈ nx x x x C (69)

Este teorema establece una equivalencia de normas: por ejemplo, si con una norma una se-cuencia de vectores tiende a cero, también tenderá a cero con cualquier otra norma.

1.8.2 Norma de una matriz Una norma de una matriz es un número real positivo que "mide" el tamaño de una matriz, y permi-te por ejemplo estudiar cuando una matriz tiende a otra matriz o a la matriz nula.

A la norma de una matriz se le exige las mismas tres condiciones que debía satisfacer la norma de un vector, y una condición adicional relacionada con el producto de matrices:

1. 0, y 0 si y sólo si =≥ =A A A 0 (70)

2. , para cualquier α α α= ⋅ ∈A A K (71)

3. (desigualdad triangular)+ ≤ +A B A B (72)

4. ≤ ⋅AB A B (73)

Es posible definir normas de matrices directamente. Por ejemplo, en Álgebra II se vio que las matri-ces A∈Rm×n forman un espacio vectorial euclídeo con un producto escalar definido como:

( )1 1

, trazam n

Tij ij

i j

a b= =

= = ∑∑A B A B (74)

Este producto escalar induce una norma, la norma de Frobenius, que responde a la expresión:

( )1

22

1 1

trazam n

TijF

i j

a= =

⎛ ⎞= = ⎜ ⎟

⎝ ⎠∑∑A A A (75)

Sin embargo, las normas matriciales más utilizadas se definen por otro camino.

1.8.3 Norma matricial inducida por una norma vectorial (norma natural): En este caso la norma matricial se va a definir a partir de una norma vectorial en la forma:

( )1

max , o bien: max 1≠ =

≡ ≡ = =x 0 u

AxA A Au Ay y

x (76)

donde y es el vector concreto de Rn que produce el máximo (y la igualdad). El máximo se alcanza siempre porque el conjunto de vectores u es cerrado y acotado.

De esta definición de norma matricial se concluye que:

≤Ax A x (77)

Se cumplen las cuatro condiciones de la definición de norma matricial:

Page 26: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 16

1. Si 0, 0, y 0 si y sólo si =≠ ≠ =x A A A 0 (78)

( )2. max max , o α α

α α α≠ ≠

= = = ∀ ∈x 0 x 0

Ax AxA A K R C

x x (79)

( )3. + = + = + ≤ + ≤ +A B A B y Ay By Ay By A B (80)

( ) ( )4. = = ≤ ⋅ ≤ ⋅AB AB y A By A By A B (81)

Se van a estudiar a continuación las normas matriciales inducidas por las normas vectoriales 1

x ,

2x y

∞x , que se denotarán con la notación correspondiente.

1.8.4 Norma-1 matricial La expresión de la norma-1 de una matriz A es la siguiente:

1 1

max njkjk

a=

= ∑A (82)

La norma-1 es el máximo de la suma de los valores absolutos de los elementos de cada columna. Demostración: Supóngase que la igualdad en la definición de la norma se alcanza para un vector y tal que:

1 1 1

, siendo 1.= =A Ay y (83)

Desarrollando la expresión de la norma-1 del vector Ay:

( )

1 1 1 1 1 1 1 1

11 1 1 1max max max

n n n n n njk k jk k k jkj k j k k j

n n n nk jm jm jmk j j jm m m

a y a y y a

y a a a

= = = = = =

= = = =

= = ≤ = ≤

≤ = =

∑ ∑ ∑ ∑ ∑ ∑

∑ ∑ ∑ ∑

A Ay

y

(84)

El desarrollo anterior demuestra que el máximo de las sumas de los valores absolutos de cada columna es un límite superior de la norma-1, pero para que ésta sea verdaderamente la expresión de la norma-1 este límite debe poder ser alcanzado, al menos para un cierto vector x.

En efecto, supóngase que la columna que da el máximo es la columna K. Tomando como vector x el vector eK de la base natural ( )1

1K =e :

1 11 1 1

n n nK jk kK jKj k j

a aδ= = =

= = =∑ ∑ ∑Ae A (85)

1.8.5 Norma-∞ matricial La expresión de la norma-∞ de una matriz A es la siguiente:

1

max nkjjk

a∞ =

= ∑A (86)

La norma-∞ es el máximo de la suma de los valores absolutos de los elementos de cada fila. Demostración: Supóngase que la igualdad en la definición de la norma se alcanza para un vector y tal que:

, siendo 1.∞ ∞ ∞

= =A Ay y (87)

Desarrollando la expresión de la norma-∞ del vector Ay:

1 1

1 1 1

max max

max max max max

n njk k jk kk kj j

n n nk jk jk jkk k kk j j j

a y a y

y a a a

∞ ∞ = =

∞= = =

= = ≤ ≤

≤ ⋅ = =

∑ ∑∑ ∑ ∑

A Ay

y (88)

Page 27: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Introducción pág. 17

Al igual que en el caso anterior, se ha obtenido un límite superior para la norma-∞. Para que la expresión obtenida co-rresponda a dicha norma, hay que demostrar que dicho límite se puede realmente alcanzar para un cierto vector x.

En efecto, supóngase que la fila que da la máxima suma de valores absolutos es la fila J. Se toma un vector x tal que , si 0; 0, si 0k Jk Jk Jk k Jkx a a a x a= ≠ = = . Sustituyendo en (88):

( )21 1 1 1

max , 1n n n njk k Jk k Jk Jk Jkk k k kj

a x a x a a a∞ ∞= = = =

= = = = =∑ ∑ ∑ ∑Ax x (89)

1.8.6 Norma espectral

La expresión de la norma espectral o norma-2 de una matriz cualquiera A es la siguiente:

( )2Hρ=A A A (90)

donde ( )ρ M es el radio espectral, esto es, el valor absoluto del máximo valor propio en valor ab-soluto. La expresión (90) indica que la norma-2 es la raíz cuadrada positiva del máximo valor pro-pio de la matriz AHA, que es una matriz hermítica y –al menos– semidefinida positiva, cuyos valo-res propios son por tanto reales y no negativos. Demostración: La matriz AHA tendrá una base ortonormal de vectores propios u1, u2, ..., un:

H H Hj j j j j jλ λ= ⇒ =A Au u u A Au (91)

El vector y∈Rn que produce la igualdad en la definición de la norma inducida (76) se puede expresar como combina-ción lineal de los n vectores propios uj:

2 221 1

; 1n nk k kk k

α α= =

= = =∑ ∑y u y (92)

Introduciendo ahora la definición de la norma-2 del vector (Ay) y operando:

( ) ( )( ) ( ) ( ) ( ) ( )

2 2

2 2 1 1

2 2

1 1 1 1max max

n nH H H Hj j k kj k

n n n nH Hj j k k k k k i k ij k k ki i

α α

α α λ α λ λ α λ ρ

= =

= = = =

= = = =

= = ≤ = =

∑ ∑∑ ∑ ∑ ∑

A Ay y A Ay u A A u

u u A A (93)

De nuevo éste es solamente un límite superior, pero dicho límite se puede alcanzar para x=un:

( )2

2H H H H

n n n n n n nλ λ ρ= = = =Au u A Au u u A A (94)

1.8.7 Teoremas relacionados con las normas matriciales (sin demostración)

− Teorema 1: Cualquier norma matricial A es una función continua de los m×n elementos de la matriz A∈Cm×n.

− Teorema 2: Para cada par de normas matriciales y i j

A A existen unas constantes posi-

tivas m y M tales que:

i j i

m M≤ ≤A A A (95)

Este Teorema permite hablar de "equivalencia de normas matriciales".

− Teorema 3: Para cualquier norma natural y cualquier matriz cuadrada A∈Cn×n se verifica:

( )ρ ≤A A (96)

pues ( )1

max n n n n n nλ λ λ ρ=

= ≥ = = = =x

A Ax Au u u A

Page 28: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 18

− Teorema 4: Para cualquier matriz cuadrada A∈Cn×n y cualquier valor ε arbitrariamente pe-queño, existe alguna norma natural A tal que:

( ) ( )ρ ρ ε≤ ≤ +A A A (97)

El radio espectral de una matriz cuadrada no es una norma (salvo que la matriz A sea nor-mal, en cuyo caso ( )2

ρ=A A ), pero puede ser utilizado como tal dada su "cercanía".

− Corolario: Para cualquier matriz cuadrada A: ( ) infρ−

=A A .

Page 29: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 19

2. Sistemas de ecuaciones lineales 2.1 Introducción a los sistemas de ecuaciones lineales La resolución de sistemas de ecuaciones lineales es uno de los problemas matemáticos más impor-tantes en ingeniería. Hasta la llegada de los computadores digitales (segunda mitad del s. XX) la capacidad de resolver sistemas de ecuaciones lineales estaba muy limitada, no por la dificultad con-ceptual del problema, sino por el gran número de operaciones aritméticas necesarias. Ahora se pue-de resolver con un PC un sistema 1000×1000 en menos de 1 seg. Con programas especiales que aprovechan la estructura de la matriz se pueden resolver con PCs, de forma rutinaria, sistemas de decenas ó cientos de miles de ecuaciones lineales.

Muchos otros métodos matemáticos (cálculo de valores y vectores propios, integración de ecuacio-nes diferenciales, optimización, ...) se reducen a la resolución repetida de sistemas de ecuaciones lineales. La resolución de sistemas de ecuaciones lineales tiene además un importante valor didácti-co para los métodos numéricos en general y para la programación de ordenadores.

2.2 Interpretaciones del sistema Ax=b El sistema de ecuaciones lineales Ax=b admite al menos las dos interpretaciones siguientes:

1. Intersección de hiperplanos. La solución es el punto (o conjunto de puntos) que satisface las ecuaciones de todos los hiperplanos, es decir, su intersección. La intersección puede ser un punto, un subespacio de dimensión n−r, o el conjunto vacío.

2. Combinación lineal de vectores. El vector término independiente b es una combinación li-neal de las columnas de A, cuyos coeficientes son los valores de x. Con notación de Matlab:

1 2; (:,1) (:,2) ... (:, ) nx x n x+ + + =Ax = b A A A b (98)

Figura 13. Intersección de hiperplanos. Figura 14. Combinación lineal de vectores columna.

La expresión (98) indica que para que el sistema de ecuaciones Ax=b tenga solución, es necesario y suficiente que el vector b pertenezca a Im(A), es decir, al subespacio generado por las columnas de A. La solución será única si hay una única forma de expresar b como combinación lineal de las co-lumnas de A.

2.3 Algunos casos posibles del sistema Ax=b en 2-D Como ejemplo ilustrativo de lo dicho en el apartado anterior, en la Figura 15 se muestran geométri-camente algunos casos posibles de sistemas de ecuaciones en R2, teniendo en cuenta los números de ecuaciones y de incógnitas, el rango de la matriz A y el vector b. La interpretación es inmediata.

b

A(:,1)

A(:,1)x1

A(:,2)x2

A(:,3)

A(:,3)x3

A(:,2)

Page 30: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 20

Figura 15. Algunos casos posibles del sistema Ax=b en R2.

2.4 Sistema de m ecuaciones con n incógnitas Se parte de un sistema de ecuaciones lineales expresado en forma matricial del siguiente modo:

11 1 12 2 1 1 11 12 1 1 1

21 1 22 2 2 2 21 22 2 2 2

1 21 1 2 2

... ...

...

...

n n n

n n n

m m mn n mm m mn n m

a x a x a x b a a a x ba x a x a x b a a a x b

a a a x ba x a x a x b

+ + + = ⎫ ⎧ ⎫ ⎧ ⎫⎡ ⎤⎪ ⎪ ⎪ ⎪ ⎪⎢ ⎥+ + + = ⎪ ⎪ ⎪ ⎪ ⎪⎢ ⎥⇒ ⇒ =⎬ ⎨ ⎬ ⎨ ⎬⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎪⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎪+ + + = ⎩ ⎭ ⎩ ⎭⎣ ⎦⎭

Ax = b (99)

Como se ha dicho anteriormente, para que el sistema tenga solución, el vector b debe ser combina-ción lineal de las columnas de A (en Matlab, A(:,i) representa la columna i de A):

1 2 (:,1) (:,2) ... (:, ) nx x n x⇒ + + + =Ax = b A A A b (100)

El método de eliminación de Gauss está basado en el hecho de que una ecuación cualquiera puede sustituirse por una combinación lineal de esa ecuación y de las demás, sin que varíe la solución del sistema. Así pues, el método de eliminación de Gauss:

− Combina ecuaciones (filas de la matriz A y elementos del vector b) de forma que el sistema adopte una forma más sencilla: forma triangular superior o forma de escalera.

− Permite entender mejor las características del sistema a resolver: si tiene solución o no, si la solución es única, etc.

− Es equivalente a una factorización PA=LU, donde P es una matriz de permutación, L es una matriz triangular inferior m×m con unos en la diagonal, que contiene los factores por los que se han multiplicado las filas de los pivots y U es una matriz m×n que resulta de trans-formar A a la forma de escalera.

m=2, n=2, m=3, n=2, r=2b∈Im(A)

m=3, n=2, r=2b∉Im(A)

m=1, n=2, r=1 m=2, n=2, r=1

b∈Im(A)

m=2, n=2, r=1

b∉Im(A)

Page 31: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 21

2.5 El método de eliminación de Gauss básico

2.5.1 Operaciones con filas y matrices elementales A continuación se describe el método de eliminación de Gauss con un ejemplo 4×4. En primer lugar se hace un cero en la posición (2,1) multiplicando el sistema por la matriz P21:

11 12 13 14 11 12 13 14

21 22 23 24 22 23 242121 21

31 32 33 34 31 32 33 34

41 42 43 44 41 42 43 44

1 0 0 001 0 0

, , 0 0 1 00 0 0 1

a a a a a a a aa a a a a a ama a a a a a a aa a a a a a a a

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ′ ′ ′−⎢ ⎥ ⎢ ⎥⎢ ⎥= = =⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥

⎣ ⎦⎣ ⎦ ⎣ ⎦

A P P A (101)

donde:

21 2121 21 21 21 11 21 11 2 2 21 1

11 11

; 0; , 2,...,4j j ja am a a m a a a a a m a ja a

′ ′= = − = − = = − = (102)

Seguidamente se obtienen ceros en los restantes elementos de la 1ª columna pre-multiplicando por las matrices P31 y P41. Se llega a la situación siguiente:

11

1131 4131

1 141

11 12 13 14

22 23 2441 31 21 1 41 31

32 33 34

42 43 44

1 0 0 01 0 0 00 1 0 00 1 0 0

, , 0 0 1 00 1 0

0 0 10 0 0 1

0,

00

ii

ij ij i j

ama

m a a m am

a a a aa a aa a aa a a

⎡ ⎤⎡ ⎤⎧⎢ ⎥⎢ ⎥ =⎪⎢ ⎥⎢ ⎥= = ⎨− ⎢ ⎥⎢ ⎥ ⎪ ′ = −⎢ ⎥⎢ ⎥ ⎩−⎣ ⎦ ⎣ ⎦

⎡ ⎤⎢ ⎥′ ′ ′⎢ ⎥= ≡

′ ′ ′⎢ ⎥⎢ ⎥′ ′ ′⎣ ⎦

P P

P P P A P P P P 2121

31

41

1 0 0 01 0 00 1 00 0 1

mmm

⎡ ⎤⎢ ⎥−⎢ ⎥=−⎢ ⎥

⎢ ⎥−⎣ ⎦

(103)

Obsérvese la forma peculiar en que se multiplican las matrices elementales Pi1. Si la matriz A es simétrica, la submatriz de P1A en la que hay que seguir haciendo ceros también lo es. De forma análoga se hacen ceros, debajo de la diagonal, en las columnas 2 y 3, pre-multiplicando por unas matrices P2 y P3:

11 12 13 14

22 23 2442 32 1 2 42 32

33 34 32

43 44 42

1 0 0 00 0 1 0 0

, 0 0 0 1 00 0 0 0 1

a a a aa a a

a a ma a m

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥′ ′ ′⎢ ⎥ ⎢ ⎥= ≡ =

′′ ′′ −⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥′′ ′′ −⎣ ⎦⎣ ⎦

P P P A P P P (104)

11 12 13 14

22 23 243 2 1 3 43

33 34

4344

1 0 0 00 1 0 00

, 0 0 1 00 00 0 10 0 0

a a a aa a a

a ama

⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥′ ′ ′ ⎢ ⎥⎢ ⎥= ≡ =

′′ ′′ ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥′′′ −⎣ ⎦ ⎣ ⎦

P P P A P P (105)

Para llegar a este resultado se ha supuesto que los elementos que aparecen sobre la diagonal −los pivots: 11 22 33, y a a a′ ′′ − son distintos de cero, pues aparecen en los denominadores de los factores mji.

Finalmente se llega a un sistema de ecuaciones lineales equivalente al original, que tiene la forma:

Page 32: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 22

( )3 2 1 3 2 1=P P P A x P P P b (106)

Este sistema es mucho más fácil de resolver que el original, por los ceros introducidos en la matriz. El sistema podría resolverse calculando x4 de la cuarta ecuación, x3 de la tercera, x2 de la segunda, y finalmente x1 de la primera ecuación.

2.5.2 Factorización LU equivalente Las matrices elementales Pi introducidas en las expresiones (103), (104) y (105) tienen propiedades especiales y operan de una forma particular. Por una parte, es fácil comprobar que el producto P3P2 no ofrece ninguna característica especial:

3 23232

43 43 32 42 4342

1 0 0 0 1 0 0 01 0 0 00 1 0 0 0 1 0 00 1 0 00 0 1 0 0 1 00 1 00 0 1 0 10 0 1

mmm m m m mm

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥= =

−−⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥− − −−⎣ ⎦⎣ ⎦ ⎣ ⎦

P P (107)

Sin embargo, la inversa de las matrices Pj tiene una forma muy sencilla, ya que se obtiene simple-mente cambiando el signo de los factores mij, como se comprueba a continuación para P2:

12 2

32 32

42 42

1 0 0 0 1 0 0 0 1 0 0 00 1 0 0 0 1 0 0 0 1 0 00 1 0 0 1 0 0 0 1 00 0 1 0 0 1 0 0 0 1

m mm m

⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥= =

−⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥− ⎣ ⎦⎣ ⎦ ⎣ ⎦

P P (108)

Ahora se comprobará que el producto de las inversas de P3P2 −en orden inverso− se realiza me-diante simple "superposición":

1 12 3

3232

43 42 4342

1 0 0 0 1 0 0 01 0 0 00 1 0 0 0 1 0 00 1 0 00 0 1 0 0 1 00 1 00 0 1 0 10 0 1

mmm m mm

− −

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥= =⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥

⎣ ⎦ ⎣ ⎦ ⎣ ⎦

P P (109)

Pre-multiplicando la ecuación (105) por las inversas de las matrices Pi y teniendo en cuenta la for-ma (109) que adopta dicho producto de inversas:

11 12 13 14 11 12 13 14

2122 23 24 22 23 241 1 11 2 3

31 3233 34 33 34

41 42 4344 44

1 0 0 01 0 00 0

1 00 0 0 010 0 0 0 0 0

a a a a a a a ama a a a a am ma a a am m ma a

− − −

⎡ ⎤⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥′ ′ ′ ′ ′ ′⎢ ⎥⎢ ⎥ ⎢ ⎥= =

′′ ′′ ′′ ′′⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥′′′ ′′′⎣ ⎦ ⎣ ⎦⎣ ⎦

A P P P (110)

La conclusión es que el método de eliminación de Gauss equivale a descomponer la matriz A en el producto de una matriz triangular inferior L con "unos" en la diagonal, por una matriz triangular superior U:

=A LU (111)

La factorización LU tiene una gran importancia en álgebra lineal numérica y se estudiará con deta-lle en el apartado 4.1.

Page 33: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 23

Figura 16. Eliminación de Gauss.

Figura 17. Vuelta atrás.

2.5.3 Programa de Gauss básico n×n A continuación se presenta un programa básico para resolver sistemas de ecuaciones lineales con Matlab (los programas en C y Fortran serían muy similares). Se realizan dos tares sucesivas: en primer lugar la triangularización, basada hacer cero el elemento (i,k) combinando las filas i y k:

% triangularización de la matriz A % se hacen ceros en las n-1 primeras columnas for k=1:n-1 % se hacen ceros en la columna k for i=k+1:n m=A(i,k)/A(k,k); % a la fila i se resta la fila k multiplicada por m for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end % se transforma del mismo modo el término independiente b(i)=b(i)-m*b(k); end end

En una segunda fase se calculan las incógnitas mediante la vuelta atrás, con el siguiente proceso: % se calcula x(n) de la última ecuación x(n)=b(n)/A(n,n); % se calcula x(k) de la ecuación k for k=n-1:-1:1 s=0; for i=k+1:n s=s+A(k,i)*x(i); end x(k)=(b(k)-s)/A(k,k); end

El algoritmo básico puede modificarse si la matriz A es simétrica, haciendo que el número de ope-raciones se reduzca aproximadamente a la mitad (en negrita las dos sentencias modificadas):

% triangularización de la matriz A (simétrica) % se hacen ceros en las n-1 primeras columnas for k=1:n-1 % se hacen ceros en la columna k for i=k+1:n m=A(k,i)/A(k,k); % se tiene en cuenta la simetría % a la fila i se resta la fila k multiplicada por m % sólo se opera por encima de la diagonal for j=i:n A(i,j)=A(i,j)-m*A(k,j); end % se transforma del mismo modo el término independiente b(i)=b(i)-m*b(k); end end

=

k

k

i

k

0

* * *

=

k

k

0 i

j

k

i

Page 34: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 24

2.5.4 Programa para resolver un sistema en la forma LUx=b Los programas anteriores suponen que las operaciones sobre las filas en el sistema Ax=b se realizan simultáneamente en ambos miembros. En realidad, hay una opción más favorable, que permite se-parar las operaciones sobre la matriz A y sobre el vector b. En una primera fase se realiza la trian-gularización de la matriz A sin operar con el vector b, pero almacenando los factores m que apare-cen en la ec. (110) en las posiciones de los nuevos ceros de A, con objeto de disponer al final de las matrices L y U.

Una vez hecha la factorización, el sistema LUx=b se transforma definiendo un nuevo vector y≡Ux, con lo que se tiene el sistema Ly=b, del que se puede despejar fácilmente el vector y porque L es triangular inferior. Conocido y, se despeja el vector x del sistema Ux=y teniendo en cuenta que U es triangular superior. A continuación se dan los programas de Matlab que realizan la triangularización y las dos resoluciones con matrices triangulares (ver Figura 18 y Figura 19). Por brevedad, se han reducido al mínimo los comentarios en el código.

% factorización A=LU for k=1:n-1 for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end % se almacena el factor m en la posición del cero A(i,k)=m; end end % Resolución del sistema Ly=b y=zeros(n,1); y(1)=b(1); for k=2:n s=0; for j=1:k-1 s=s+A(k,j)*y(j); end y(k)=b(k)-s; end % Resolución del sistema Ux=y x=zeros(n,1); x(n)=y(n)/A(n,n); for k=n-1:-1:1 s=0; for j=k+1:n s=s+A(k,j)*x(j); end x(k)=(y(k)-s)/A(k,k); end

Figura 18. Resolución de Ly=b.

Figura 19. Resolución de Ux=y.

1 =

k

k k0

*1 *=

k

k

i

k

0

* * *

Page 35: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 25

2.5.5 Programa de Gauss vectorizado Matlab permite realizar una vectorización parcial o total del algoritmo: la velocidad de cálculo con Matlab (sobre todo en versiones anteriores a Matlab 6.5) aumenta considerablemente reemplazando el for más interno por una única instrucción que trabaja con dos filas completas:

for k=1:n-1 for i=k+1:n m=A(i,k)/A(k,k); A(i,k+1:n)=A(i,k+1:n)-m*A(k,k+1:n); b(i)=b(i)-m*b(k); end end

La vectorización puede ser doble realizando las operaciones del método de Gauss en otro orden diferente, mostrado en la Figura 20. Obsérvese que en vez de hacer ceros por columnas, se hacen cero los elementos de la fila i que están delante de la diagonal. Los elementos mostrados en gris han alcanzado ya su valor definitivo.

Para transformar la fila i (hacer ceros en ella) se crea el vector de factores por los que hay que mul-tiplicar las filas anteriores a la i:

(1: 1) (1: 1, ) '. / diag(( (1: 1,1: 1)) 'i i i i i− = − − −v A A (112)

La fila i puede sufrir todas las transformaciones a la vez, resultando un método sensiblemente más rápido que los anteriores (con versiones antiguas de Matlab):

1

1

( , : ) ( , : ) ( , : ) ( ) ( , : ) (1: 1) (1: 1, : )

( ,1: 1) (1: 1)

i

j

i i n i i n j i n j i i n i i i n

i i i

=

= + ∗ = + − ∗ −

− = −

∑A A A v A v A

A v (113)

Figura 20. Vectorización doble del método de Gauss.

2.6 Método de eliminación de Gauss con pivotamiento

2.6.1 Necesidad del pivotamiento En el proceso de eliminación de Gauss básico anteriormente explicado es necesario dividir por los elementos que aparecen en la diagonal, que se denominan "pivots" o "pivotes". En ocasiones puede aparecer un cero (o un elemento de valor muy pequeño) en la posición de un pívot: en ese caso el proceso no puede continuar si se utiliza el algoritmo previo. Si debajo del pívot hay elementos no nulos se pueden permutar las filas correspondientes y proseguir la eliminación (la solución del sis-tema no varía). Se considerará un sistema 4×5, en el que se ha encontrado un elemento nulo en la posición (2,2):

Elementos con el valor inicial

i

i Elementos ya transformados

Elementos a hacer 0

Fila a trans-formar

Elementos que ya son 0

Page 36: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 26

11 12 13 14 15

23 24 251

32 33 34 35

42 43 44 45

0 000

a a a a aa a a

a a a aa a a a

⎡ ⎤⎢ ⎥′ ′ ′⎢ ⎥=

′ ′ ′ ′⎢ ⎥⎢ ⎥′ ′ ′ ′⎣ ⎦

P A (114)

La permutación de filas puede hacerse pre-multiplicando por una matriz P en la forma:

11 12 13 14 15 11 12 13 14 15

23 24 25 32 33 34 351

32 33 34 35 23 24 25

42 43 44 45 42 43 44 45

1 0 0 00 0 00 0 1 00 0 00 1 0 00 00 0 0 1

a a a a a a a a a aa a a a a a a

a a a a a a aa a a a a a a a

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ′ ′ ′ ′ ′ ′ ′⎢ ⎥ ⎢ ⎥⎢ ⎥= =

′ ′ ′ ′ ′ ′ ′⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ′ ′ ′ ′ ′ ′ ′ ′⎣ ⎦ ⎣ ⎦ ⎣ ⎦

PP A (115)

La matriz P puede construirse a partir de un vector p que contiene el orden de los pivots [1,3,2,4].

También puede suceder que algunas columnas carezcan de pívot válido. Por ejemplo, si al hacer ceros en la columna 2 los elementos correspondientes de la columna 3 se han hecho también cero:

11 12 13 14 15

¨22 23 24 25 442 1 44 4 43

34 35 34

44 45 43

1 0 0 00 0 1 0 0

, , 0 0 0 0 0 1 00 0 0 0 0 1

a a a a aa a a a am

a a aa a m

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥′ ′ ′ ′ ′′⎢ ⎥ ⎢ ⎥= = ≡ =

′′ ′′ ′′⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥′′ ′′ −⎣ ⎦ ⎣ ⎦

P P A P P (116)

el proceso normal falla y hay dos posibilidades:

1. La eliminación puede proseguir en las columnas posteriores y llegar hasta un último pívot en la última fila (x3 es una variable libre o independiente, que puede tomar un valor arbitrario).

11 12 13 14 15

¨22 23 24 254 2 1

34 35

45

00 0 00 0 0 0

a a a a aa a a a

a aa

⎡ ⎤⎢ ⎥′ ′ ′ ′⎢ ⎥=

′′ ′′⎢ ⎥⎢ ⎥′′′⎣ ⎦

P P P A (117)

2. La eliminación se detiene porque debajo del último pívot encontrado todas las filas restantes se han hecho cero (una fila dependiente de las demás, y dos variables libres: x3 y x5).

11 12 13 14 15

¨22 23 24 254 2 1

34 35

00 0 00 0 0 0 0

a a a a aa a a a

a a

⎡ ⎤⎢ ⎥′ ′ ′ ′⎢ ⎥=

′′ ′′⎢ ⎥⎢ ⎥⎣ ⎦

P P P A (118)

2.6.2 Método de Gauss con pivotamiento por columnas Continuando con lo indicado en la sección anterior, en el caso general el método de Gauss con pivo-tamiento por columnas procede del siguiente modo, ilustrado con un ejemplo en la Figura 21:

1. Se busca el mayor elemento en valor absoluto de la primera columna. Este elemento servirá como pívot para hacer ceros en dicha columna.

2. El segundo pívot es el máximo elemento en valor absoluto de la 2ª columna, sin contar el elemento de la fila del primer pívot. Con este pívot se hacen ceros en los elementos de la 2ª columna que no pertenecen a una fila de un pívot anterior.

Page 37: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 27

3. De modo análogo se calculan los pivots en las restantes columnas y se hacen cero los ele-mentos de cada columna, pero sólo en las filas en las que no han aparecido pivots.

4. En el sistema final es fácil hallar las incógnitas xn, ..., x1, partiendo de la fila en la que ha aparecido el último pívot, luego en la del penúltimo pívot, y así hasta la del primero.

5. En la práctica, no es necesario intercambiar filas: basta conocer las filas dónde han ido apa-reciendo los sucesivos pivots, almacenando en un vector la información correspondiente. 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

∗ ∗ ∗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ⊗ ∗ ∗ ⊗ ∗ ∗⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⊗⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢

⇒ ⇒ ⇒ ⇒∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⊗ ∗ ⊗ ∗⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣

⎤⎥⎥⎥⎥⎥

⎢ ⎥⎦

Figura 21. Método de eliminación de Gauss con pivotamiento por columnas.

Posibles dificultades del método de Gauss con el pivotamiento por columnas descrito:

− Si una ecuación del sistema (o una fila de la matriz) se multiplica por un número muy gran-de (por ejemplo, 1e10), la solución del sistema no varía, pero se puede alterar el orden en el que se eligen los pivots, y con dicho orden la precisión de la solución calculada.

− Por ello es conveniente que todas las filas de la matriz sean vectores que tengan aproxima-damente la misma norma, o bien que, al elegir los pivots, se comparen los elementos de la columna correspondiente, dividiendo cada uno de ellos por la norma de su fila. A este pro-ceso se le denomina escalamiento o scaling por filas.

A continuación se presenta un programa de Matlab, llamado pivotcol1.m, que selecciona directa-mente los pivots en cada columna, sin dividir por la norma de la fila.

% fichero pivotcol1.m % Gauss y pivotamiento por columnas. Vectorización simple % se generan aleatoriamente la matriz y el vector de un tamaño dado n=5; A=round(rand(n,n)*20-10); b=round(rand(n,1)*20-10); x=zeros(n,1); % se calcula la solución exacta con el operador (\) xe=AA\bb; % vector que contendrá el orden de los pivots p=[1:n]; for k=1:n-1 % buscar el pívot en columna k. No intervienen las filas de pivots anteriores [pk,ik]=max(abs(A(p(k:n),k))); % se intercambian los elementos en p para indicar el orden de los pivots temp=p(k); p(k)=p(ik+k-1); p(ik+k-1)=temp; % hacer ceros en columna pívot for i=p(k+1:n) m=A(i,k)/A(p(k),k); A(i,k:n)=A(i,k:n)- ... m*A(p(k),k:n); b(i)=b(i)-m*b(p(k)); %A(i,k)=m; end end % vuelta atrás: orden inverso de aparición de pivots x(n)=b(p(n))/A(p(n),n); for i=n-1:-1:1 s=A(p(i),i+1:n)*x(i+1:n); x(i)=(b(p(i))-s)/A(p(i),i); end

Page 38: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 28

disp('Solución de Matlab'); disp(xe); disp('Solución calculada'); disp(x); disp('Ya he terminado')

2.6.3 Método de Gauss con pivotamiento total En muchas aplicaciones prácticas el pivotamiento por columnas descrito anteriormente es suficiente para obtener una solución correcta y con pequeños errores numéricos. Sin embargo, existen casos en los cuales es necesario realizar pivotamiento total, eligiendo el pívot no entre los elementos de una columna, sino entre todos los elementos de la matriz que no están en una fila y/o columna de los pivots anteriores. Una posible aplicación del pivotamiento total es en los sistemas indetermina-dos, cuando es necesario elegir las variables libres más adecuadas.

El método de Gauss con pivotamiento total se ilustra en la Figura 22 y procede del siguiente modo:

1. En primer lugar se busca el mayor elemento en valor absoluto de toda la matriz. Este ele-mento será el primer pívot: en el caso de la Figura 22 se supone que es la fila 4, columna 2.

2. Se hacen ceros todos los elementos de la columna 2 (menos el pívot).

3. Se busca el máximo elemento en valor absoluto de toda la matriz, excluyendo la fila 4 y la columna 2. Este elemento será el 2º pívot (fila 3, columna 4).

4. Se hacen ceros en la columna 4 excepto en las filas de pivots anteriores.

5. Se prosigue de la misma forma hasta que todas las filas y/o columnas tienen un pívot.

6. En la vuelta atrás, las incógnitas se calculan en orden decreciente de columnas en las que han aparecido los pivots, y cada una de ellas se calcula en el orden decreciente de filas en las que han aparecido pivots.

0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0

∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⊗ ∗ ⊗⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢∗ ∗ ∗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ⊗ ∗ ∗ ⊗ ∗ ∗⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢

⇒ ⇒ ⇒ ⇒∗ ∗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ⊗ ∗⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗ ∗ ⊗ ∗ ∗ ∗⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⊗⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣

⎤⎥⎥⎥⎥⎥

⎢ ⎥⎦

Figura 22. Método de eliminación de Gauss con pivotamiento total.

El pivotamiento total mejora algo la estabilidad del proceso de eliminación de Gauss, pero en gene-ral se considera que esta ganancia no merece la pena por el esfuerzo adicional que lleva consigo. Como ya se ha dicho, se utiliza en ocasiones cuando el objetivo es determinar el rango de la matriz o una partición óptima entre variables básicas y variables libres.

Con pivotamiento total puede ser conveniente utilizar escalamiento por filas y por columnas, según la siguiente expresión (D1 y D2 permutaciones de una matriz diagonal):

, siendo 1 2 1 2D AD y = D b x = D y (119)

El escalamiento por columnas implica un cambio de unidades en las incógnitas: en algunos casos puede ser conveniente no mezclar metros con micras, y en otros casos puede ser necesario hacerlo. Hay que señalar que no hay criterios absolutos para hacer un buen escalamiento por columnas. Un buen criterio podría ser hacer que el máximo elemento de cada fila y columna tenga una magnitud parecida, por ejemplo que esté entre ½ y 1. Hay que tener en cuenta que si al hacer el scaling se multiplica y divide siempre por potencias de 2, no se introducen errores de redondeo adicionales.

Page 39: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 29

2.7 Resumen del método de eliminación de Gauss

2.7.1 Reducción de una matriz a la forma de escalera Mediante el método de eliminación de Gauss con pivotamiento por columnas y permutación de filas un sistema Ax=b, de tamaño m×n, se puede reducir a la forma de "escalera" siguiente:

pivot0

elemento 0 0 0 0

matriz de permutación 0 0 0 0 0 0 0 0

matriz triangular inferior 0 0 0 0 0 0 0 0 0

m mm m

⊗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗⎡ ⎤⊗ →⎢ ⎥⊗ ∗ ∗ ∗ ∗ ∗ ∗ ∗⎢ ⎥ ∗ → ≠

= = ⊗ ∗ ∗ ∗ ∗ ∗⎢ ⎥→ ×⎢ ⎥⊗⎢ ⎥ → ×

⎢ ⎥⎣ ⎦

PA LU LPL

(120)

Esta forma de escalera es muy interesante, pues arroja mucha más luz sobre el sistema de ecuacio-nes a resolver que el sistema original Ax=b. Aparecen r pivots (elementos distintos de cero), con ceros debajo y a la izquierda. El rango de la matriz A es r. En la práctica las cosas no estarán tan claras, por ejemplo cuando los elementos (3,3), (4,5), (4,6), (4,7) y (4,8) sean muy pequeños, pero no exactamente cero: ¿Cuándo un número pequeño debe pasar a considerarse cero? La mejor solu-ción a este tipo de preguntas no está en la forma de escalera, sino el la DVS (Descomposición de Valores Singulares), que se verá en el apartado 4.2.4.

De momento, se supondrá que la forma de escalera no presenta confusión posible entre elementos cero y elementos muy pequeños.

2.7.2 Conclusiones de la forma de escalera PA=LU A partir de la forma de escalera dada por la expresión (120) se pueden extraer las conclusiones si-guientes:

− La matriz P indica las posibles permutaciones de filas realizadas para que los pivots aparez-can siempre ordenadamente en las filas superiores. La factorización LU realizada corres-ponde a la matriz PA, es decir a la matriz A con las filas permutadas.

− En el sistema original sólo r de las m ecuaciones eran independientes y por tanto sólo r de los m vectores fila (en Rn) eran independientes. Por eso hay m−r filas que se han hecho cero, correspondientes a las filas que eran linealmente dependientes de las demás.

− Las columnas (y las incógnitas) aparecen divididas en dos grupos: las que tienen pivots (va-riables básicas o dependientes) y las que no tienen pivots (variables libres o independien-tes). Si hay variables libres, la solución, caso de existir, no será única.

Dependiendo de lo que haya sucedido con el vector b (que habrá debido sufrir las mismas permuta-ciones y combinaciones de filas que la matriz A), se pueden presentar distintas posibilidades. Re-cuérdese que, matricialmente, el sistema se ha transformado en la forma:

( )14 3 2 1 −= = ⇒ = =PAx LUx Pb Ux L Pb P P P P Pb (121)

Existe solución si las (m–r) filas que se han hecho cero en el primer miembro Ux se hacen también cero en el segundo miembro L–1Pb, es decir cuando los (m–r) últimos elementos de ( )4 3 2 1P P P P Pb se anulan al igual que las correspondientes filas de U. Además, si el sistema tiene solución y hay variables libres, el sistema tiene infinitas soluciones.

Page 40: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 30

2.7.3 La eliminación de Gauss y los cuatro subespacios de la matriz A El sistema de ecuaciones lineales Ax=b transformado a forma de escalera según las ecuaciones (120) y (121), permite relacionar los cuatro subespacios fundamentales de las matrices A y U.

2.7.3.1 SUBESPACIO DE FILAS IM(AT)⊂RN

Supóngase que el rango es r≤m. El subespacio de filas Im(AT) coincide con Im(UT) por la forma en la que se ha construido U mediante combinaciones lineales de las filas de A. Las filas no nulas de U constituyen una base de Im(A). Si r=m el sistema siempre tiene solución. Si r<m sólo existe solu-ción si los últimos elementos de b se hacen cero a la vez que las últimas filas de A:

1 10

0 0 00 0 0 0 0 0 ?

− −

∗⎧ ⎫⊗ ∗ ∗ ∗ ∗ ∗⎡ ⎤⎪ ⎪⎢ ⎥ ∗⊗ ∗ ∗ ∗ ∗ ⎪ ⎪⎢ ⎥= ⇒ = = = = ⎨ ⎬∗⊗ ∗ ∗⎢ ⎥ ⎪ ⎪⎢ ⎥ ⎪ ⎪⎣ ⎦ ⎩ ⎭

Ax b PL Ax Ux x PL b (122)

2.7.3.2 SUBESPACIO NULO KER(A)⊂RN

El núcleo de A, Ker(A), está formado por los vectores x∈Rn que satisfacen Ax=0. Por tanto, Ker(A) es el complemento ortogonal de Im(AT) y su rango es n–r. Se verifica que ( ) ( )Ker Ker=U A . Se puede obtener una base de ambos subespacios resolviendo el sistema de ecuaciones n–r veces, dan-do alternativamente valor unidad a una de las variables libres y cero a las demás.

Los vectores de Ker(A) representan las relaciones de dependencia lineal que existen entre las co-lumnas de A, como se ve de la ecuación Ax=0.

2.7.3.3 SUBESPACIO DE COLUMNAS IM(A)⊂RM

La dimensión de Im(A) es r, rango de A. Si r=m el sistema tiene solución para todo b. Si r<m sólo existe solución si b∈Im(A).

Los subespacios Im(A) e Im(U) son completamente diferentes, pues las operaciones sobre las filas de A han cambiado sus vectores columna. Sólo tienen en común la dimensión (el rango de A y de U) y las relaciones de dependencia e independencia lineal (las columnas de U en las que han apare-cido los pivots son también columnas independientes en A).

2.7.3.4 SUBESPACIO NULO DE LA TRANSPUESTA KER(AT)⊂RM

Ker(AT) contiene los vectores que cumplen yTA=0, y es el complemento ortogonal del subespacio de columnas Im(A). Su dimensión es pues m–r.

Los vectores ( )Ker T∈y A definen las combinaciones lineales de las filas de A que dan el vector nulo, y esas mismas combinaciones deberán anular los últimos elementos del vector b, de acuerdo con (122). Tampoco ( )Ker TA está relacionado con ( )Ker TU .

2.8 Algunas funciones de Matlab en relación con el método de Gauss En esta apartado se van a describir brevemente algunas funciones de Matlab en relación con el mé-todo de eliminación de Gauss y la resolución de sistemas de ecuaciones lineales.

1. Operador barra invertida (\)

Por lo general, la operación A\b produce el mismo resultado que inv(A)*b, con algunas dife-rencias, entre las que está la forma de realizar los cálculos:

Page 41: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 31

− Si A es una matriz cuadrada no singular, A\b es la solución de Ax=b calculada por elimina-ción de Gauss con pivotamiento por columnas.

− Si A y b son tales que el sistema tiene infinitas soluciones o ninguna, A\b da la solución de variables libres nulas o la de mínimos cuadrados, respectivamente.

− Además, el operador \ es "inteligente", en el sentido de que es capaz de descubrir y aprove-char si A es simétrica y definida-positiva, o si tiene forma triangular.

2. Función [L,U,P]=lu(A)

− Calcula con pivotamiento por columnas la factorización LU de la matriz PA, donde P es una matriz de permutación que representa el orden de filas en que han aparecido los pivots.

3. Función [R,c]=rref(A,tol)

− Reduce A a forma de escalera con pivots unidad y ceros también encima de cada pívot. El vector c es un vector de enteros cuyo número de elementos indica el rango de la matriz y cuyos elementos indican las columnas de los pivots (variables básicas o dependientes).

2.9 Errores en la resolución de sistemas de ecuaciones lineales

2.9.1 Número de condición de una matriz A continuación se incluye un recordatorio de ciertos conceptos estudiados en Álgebra, útiles para este apartado y los siguientes.

Se llama matriz convergente a una matriz que cumple las condiciones:

( )lim 0 1 limm m

m mρ

→∞ →∞= ⇔ < ⇔ =A A A 0 (123)

donde ( )ρ A es el radio espectral de A y la serie 2 3 ...+ + + +I A A A converge si A es convergen-te. En efecto, si A es convergente, la matriz (I–A) es no singular y se puede expresar como:

( )

( ) ( )

2 3 2 3

1 2 3

... ...

...−

≡ + + + + = + + + + + = +

− = ⇒ − = + + + +

S I A A A I A I A A A I AS

S I A I I A I A A A (124)

Proposición: Si 1<A , la matriz ( )−I A es no singular y se verifican las desigualdades:

( ) 1

) )

1 11 1a b

−≤ − ≤+ −

I AA A

(125)

Demostración de la desigualdad a)

( ) ( )

( ) ( ) ( ) ( )

1

1 1 111 1 1

− − −

= − −

≤ − ⋅ − ≤ + ⋅ − ⇒ ≤ −+

I I A I A

I A I A A I A I AA

(126)

Demostración de la desigualdad b)

( ) ( ) ( ) ( ) ( ) ( )

( ) ( ) ( )

1 1 1 1 1

1 1 1

11

1

− − − − −

− − −

− − = ⇒ − − − = ⇒ − = + −

− ≤ + ⋅ − ⇒ − ≤−

I A I A I I A I A A I I A I I A A

I A A I A I AA

(127)

Page 42: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 32

2.9.2 Casos particulares de propagación de errores en sistemas de ecuaciones lineales Se estudiará en primer lugar el error relativo en la solución debido exclusivamente a una perturba-ción o error en el término independiente:

( ) 1 1

δ δ δ δ δ δ δ δ− −

≤ ⎫= =⎫ = ⎫⎫ ⎪⇒ ⇒ ⇒⎬ ⎬ ⎬ ⎬+ = + = = ≤⎭ ⎭⎭ ⎪⎭

b A xAx b Ax bAx bA x x b b A x b x A b x A b

(128)

Multiplicando miembro a miembro las desigualdades anteriores se puede calcular una acotación para el error relativo de la solución, en función del error relativo del término independiente:

1 1 δ δ

δ δ− −≤ ⇒ ≤x b

b x A A x b A Ax b

(129)

A continuación se estudiará el error relativo en la solución debido a una perturbación o error en la matriz del sistema:

( ) ( ) ( ) ( )1 =0 δ δ δ δ δ δ

δ δ−

= ⎫⇒ + + ⇒ = − +⎬+ + = ⎭

Ax bA x A x x x A A x x

A A x x b (130)

Tomando normas y operando se llega al siguiente resultado:

1 1 1 δ δ δ

δ δ δ δδ δ

− − −≤ + ⇒ ≤ ⇒ ≤+ +

x x Ax A A x x A A A A

x x x x A (131)

Tanto en la expresión (129) como en la (131) el error relativo en los datos se multiplica por un mismo factor:

( ) ( ) ( )1 1 1, 1 pues , 1κ κ κ− − −≡ ≥ = ≤ =A A A A I A A A A A (132)

Este factor κ(Α) se llama número de condición o condición numérica y es un número real mayor o igual a uno que controla la transmisión de errores en los sistemas de ecuaciones lineales. Tal y co-mo se ha definido, se exige que la matriz A sea no singular. Otra observación importante es que las cotas para el error relativo (129) y (131) son óptimas, en el sentido de que la igualdad es alcanzable.

2.9.3 Fórmula general de propagación de errores en sistemas de ecuaciones lineales Los desarrollos matemáticos en este caso general son un poco más complicados que en los casos precedentes. Se suponen ahora unas perturbaciones en los datos δA y δb que producen un error δx:

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

Se supone también que las perturbaciones en A son pequeñas, de modo que se cumple:

( ) ( ) ( )1 1

1 1 , condición numérica de δ

δ κκ κ− −

< = = ⇒ ≤ ≡A A A

A A AA A AA A A

(134)

La matriz ( )1δ−A A es convergente, pues por la hipótesis (134) se cumple que:

( )1 1 11 no singularδ δ δ− − −≤ < ⇒ +A A A A I A A (135)

Aplicando a la matriz ( )1δ−−A A la desigualdad b) de la proposición (125):

( ) 111 1

1 11 1

δδ δ

−−− −

+ ≤ ≤− −

I A AA A A A

(136)

Desarrollando la expresión (133) y simplificando:

( ) ( ) ( ) ( )( )1 1 1 1 δ δ δ δ δ δ− − − −+ + = + ⇒ + + = +A A A x x A b b I A A x x x A b (137)

Despejando δx de la ecuación (137) y tomando normas:

Page 43: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 33

( ) ( ) ( ) ( )1 11 1 1 1 δ δ δ δ δ δ δ δ− −− − − −= + − ⇒ ≤ + +x I A A A b Ax x I A A A b A x (138)

Dividiendo por x y teniendo en cuenta la desigualdad (136):

1

11 1

1 1 1

δ δ δ δδ δ

δ δ

−≤−

− −

⎛ ⎞ ⎛ ⎞≤ + ⇒ ≤ +⎜ ⎟ ⎜ ⎟

− −⎝ ⎠ ⎝ ⎠

b A x Ax b x bA A A A

x x x bA A A A (139)

En esta expresión se hace aparecer ahora la condición numérica κ(Α), y se llega a:

1 1

111 1

δ δ δ δδ

δδ

− −

−−

⎛ ⎞ ⎛ ⎞≤ + = +⎜ ⎟ ⎜ ⎟

− ⎝ ⎠ ⎝ ⎠−

A A Ax b b AA A

Ax b b AA A A AA

(140)

Finalmente:

( )

( )1

δ δ δκδ

κ

⎛ ⎞≤ +⎜ ⎟

⎝ ⎠−

x b AAAx b AA

A

(141)

Al igual que en las expresiones (129) y (131), es de nuevo la condición numérica el factor que con-trola la amplificación en el resultado (siempre es κ(Α)≥1) de los errores relativos en los datos.

Hay que señalar que la condición numérica no depende de la magnitud de los elementos de una matriz: Si una matriz se multiplica por un escalar α la condición numérica permanece invariable.

2.9.4 Expresión general del número de condición

El número de condición ( )κ A definido en la expresión (132) exige que la matriz A sea invertible. De una forma más general, válida para cualquier tipo de matriz, el número de condición se define en la forma:

( ) 1

1

max

minκ =

=

= x

x

AxA

Ax (142)

El resultado (142) es el cociente entre la magnitud de la imagen del vector unitario que más crece con la matriz A, dividido por la magnitud de la imagen del vector unitario que menos crece. Nótese que esta definición se aplica también a una matriz rectangular.

Si el rango de A es menor que n, ∃ ∈ ny R , no nulo, tal que =Ay 0 y, por tanto, 1

min 0=

=x

Ax . Si A

no es la matriz nula, 1

max 0=

>x

Ax . En esta situación, como extensión a la definición de número de

condición, se dice que ( )κ = ∞A .

2.9.5 Número de condición para la norma euclídea El número de condición se ha definido en (132) para una norma cualquiera, aunque suponiendo una matriz invertible. Ahora dicha expresión se va a particularizar para la norma euclídea o espectral. La norma euclídea de una matriz A∈Cn×n es la raíz cuadrada positiva del radio espectral de AHA:

( )2Hρ=A A A (143)

Page 44: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 34

La matriz AHA es hermítica y todos sus valores propios son reales y no negativos, pues dicha ma-triz es –al menos– semidefinida positiva. Además, si la matriz A es normal y sus valores propios son λj, los valores propios de la matriz AHA son:

, H H H H H H H H⇒ = =U AU = D U A U = D DD U AUU A U U AA U (144)

( ) ( ) ( ) ( )2 2 21 2

diag ,..., H H Hn n nλ λ ρ λ λ ρ= = ⇒ = = = =U AA U DD A A A A (145)

Si además la matriz A es regular, los valores propios de A–1 son los inversos de los valores propios de A. Por tanto, se verificará que:

( ) ( )1 1 122

1 1

1 1Hρ ρλ λ

− − − −= = = =A A A A (146)

De acuerdo con esto y con (132), el número de condición de una matriz normal y regular será:

( ) ( ) ( ) ( )2 1 122

1

nλκ ρ ρ

λ− −= = =A A A A A (147)

Las matrices ortogonales y unitarias son las únicas que tienen todos sus valores propios de módulo unidad, y por tanto son las únicas que tienen número de condición igual a uno. Estas matrices son óptimas para resolver sistemas de ecuaciones sin errores significativos.

2.9.6 Inversas de matrices perturbadas Ahora se va a estudiar la variación en la inversa de una matriz A con una perturbación δA. Sea una matriz regular A en la que se introduce una pequeña perturbación δA, tal que A−1δA es convergente. Se desea acotar la norma del error:

( ) 1 1δ − −+ −A A A (148)

Se parte de la siguiente identidad matricial (se puede comprobar multiplicando por B):

( )1 1 1 1− − − −= − −B A B B A A (149)

Sutituyendo B por A+δA en la expresión (149):

( ) ( ) ( )1 11 1δ δ δ− −− −+ = − +A A A A A A A (150)

Pasando A−1 al primer miembro y tomando normas:

( ) ( )1 11 1δ δ δ− −− −+ − ≤ +A A A A A A A (151)

El primer factor del segundo miembro se puede transformar en un producto de inversas, y luego se le puede aplicar la desigualdad (136):

( ) ( )( ) ( ) ( )1

1 1 11 1 1 1 1 111

δ δ δ δδ

−− − −− − − − − −

−+ = + = + ≤ + ≤

AA A A I A A I A A A A I A A

A A (152)

Sustituyendo este resultado en la expresión (151) de la norma del error se obtiene:

( )( ) ( )12 11

1 11 1 1

1 1

δκδδ

δδ δ

− −−− −

− − −

+ −+ − ≤ ⇒ ≤

− −

AAA A AA A A

A A AA A A A A

(153)

Se ve que también en este caso el error relativo en el resultado depende del error en los datos a través del número de condición.

Page 45: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 35

2.9.7 Conclusiones sobre errores en sistemas de ecuaciones lineales

La condición numérica o número de condición κ(A) indica cómo se amplifican los errores δA y δb. Como mínimo, los errores relativos correspondientes son del orden de la precisión de los datos (eps=10e–16, en un PC trabajando con doble precisión). Además, en el transcurso de los cálculos se introducen errores de redondeo en las operaciones aritméticas. Existen dos formas de estudiar los efectos de estos errores:

− El análisis directo considera el error en cada operación y trata de estudiar cómo se propaga y acumula hasta el resultado final. Conduce a resultados muy pesimistas.

− El análisis inverso (Wilkinson, 1965) considera los errores de redondeo como efectos equi-valentes a perturbaciones en los datos iniciales, y trata de acotar dichas perturbaciones. Los resultados son mucho más precisos.

Seguidamente se incluye un resultado del análisis inverso de errores suponiendo la factorización exacta de una matriz perturbada δ+ =A A LU :

( ) ( )1 , ,

2 max kijij i j k n

n aδ ε≤ ≤

≤ ⋅ ⋅A (154)

donde n es el número de ecuaciones, ε es la precisión de la máquina (10e–16 para los PCs, trabajan-do en doble precisión) y ( )k

ija son los elementos que van apareciendo en A a lo largo del proceso de factorización. El pivotamiento por columnas basta para evitar que estos elementos crezcan incontro-ladamente.

Téngase en cuenta que las matrices definidas positivas no necesitan pivotamiento y que por tanto, en general, no suelen dar problemas de errores de redondeo salvo que el número de condición sea muy elevado. Si existen dudas al respecto, siempre es conveniente estimar los errores a través de un número de condición aproximado. Matlab dispone de las funciones cond(A,p) y condest(A). La primera de ellas calcula de modo exacto la condición numérica de A utilizando la norma-p (si se omite p, se supone p=2). Este cálculo puede ser muy laborioso si A es de gran tamaño. La función condest(A) calcula de modo económico un valor aproximado de la condición numérica.

Figura 23. Sistema de ecuaciones lineales incompatible.

2.10 Sistemas de ecuaciones lineales redundantes (m>n=r)

2.10.1 Aplicación del teorema de la proyección ortogonal Supóngase que se tiene un sistema de m ecuaciones lineales con n incógnitas (m>n), siendo r=n el rango de la matriz (ver Figura 23):

=Ax b (155)

=m

n=r

Page 46: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 36

Como el subespacio Im(A) (columnas de A) es un subespacio de Rm de dimensión r<m, en general b∉Im(A), por lo que este sistema no tendrá solución. Sin embargo, cuando b∈Im(A) la solución es única, pues no hay variables libres (r=n).

Se pretende hallar una solución aproximada de dicho sistema. Se va a buscar el vector x0 que haga el producto (Ax0) tan parecido a b como sea posible:

min , o bien: , min∈ ∈

− ≡ −n nx R x R

b Ax r b Ax r (156)

donde r es el residuo o error con que se satisfacen las ecuaciones.

El teorema de la proyección ortogonal (ver apartado 1.7) establece que r debe pertenecer al com-plemento ortogonal de Im(A), es decir, que es ortogonal a Im(A). Esta condición se puede imponer haciendo que r sea ortogonal a una base de Im(A), por ejemplo, a las columnas de A:

( )0 0 T T T T= ⇒ − = ⇒ =A r 0 A b Ax 0 A Ax A b (157)

( ) 1

0T T−

=x A A A b (158)

El sistema de ecuaciones obtenido en (157) se conoce como sistema de ecuaciones normales, y es típico del método de los mínimos cuadrados.

Es interesante estudiar las propiedades de la matriz ATA que aparece en la solución (158):

− La matriz ATA es simétrica: (ATA)T=AT(AT)T= ATA

− La matriz ATA, de tamaño n×n, es invertible pues tiene rango r=n, por ser las n columnas de A linealmente independientes.

− La matriz ATA es definida-positiva ya que:

( ) ( ) ( ) 2 0, TT T = = > ∀ ≠x A A x Ax Ax Ax x 0 (159)

− La matriz ATA tiene el mismo núcleo o subespacio nulo que A (también aunque r<n):

o Si x∈Ker(A) ⇒ Ax=0 ⇒ ATAx=0 ⇒ x∈Ker(ATA)

o Si y∈Ker(ATA) ⇒ ATAy=0 ⇒ yT ATAy=(Ay)T(Ay)=0 ⇒ Ay=0 ⇒ y∈Ker(A)

En resumen, la solución de mínimo error cuadrático del sistema Ax=b, donde el rango de A coinci-de con el nº de columnas m, se puede escribir por medio de las ecuaciones normales en la forma:

( ) 1

0T T−

=x A A A b (160)

Gráficamente, las ecuaciones normales tienen la forma mostrada en la Figura 24:

Figura 24. Solución de mínimo error cuadrático de un sistema incompatible.

2.10.2 Sistema de ecuaciones ampliado Las ecuaciones del método de los mínimos cuadrados se pueden también escribir mediante un sis-tema de ecuaciones ampliado. El residuo se ha definido en la forma:

= −r b Ax (161)

= ==A AAT AT ATA

Page 47: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 37

Además, el residuo es ortogonal a Im(A) lo que se puede expresar matemáticamente en la forma:

T =A r 0 (162)

Expresando conjuntamente las ecuaciones (161) y (162) se llega a la siguiente ecuación matricial:

0

T

⎧ ⎫⎡ ⎤ ⎧ ⎫=⎨ ⎬ ⎨ ⎬⎢ ⎥

⎣ ⎦ ⎩ ⎭⎩ ⎭

rI A bxA 0 0

(163)

que es un sistema de m+n ecuaciones con m+n incógnitas. Este sistema de ecuaciones ampliado tiene o puede tener algunas ventajas:

− La ventaja más importante es que la condición numérica de la matriz ampliada es menor que la de ATA, lo que permite alcanzar la solución con menor error.

− Si la matriz A es dispersa o sparse (la mayor parte de sus elementos cero) también los tiem-pos de cálculo pueden ser inferiores con la matriz ampliada, al menos para ciertos tipos de matrices.

Figura 25. Ecuaciones incompatibles con matriz de columnas ortogonales.

2.10.3 Problema de mínimos cuadrados con matrices de columnas ortogonales La Figura 25 muestra un sistema de ecuaciones lineales incompatible en el que la matriz del sistema es una matriz de columnas ortogonales Q. Como m>n, Q no es una matriz ortogonal, pues no es cuadrada. Considérense pues los sistemas de ecuaciones m>n incompatibles:

( ) Im= ∉Qx b b Q (164)

Planteando las ecuaciones normales, la solución de mínimo error cuadrático es:

0 0 T T T= ⇒ =Q Qx Q b x Q b (165)

pues QT es una inversa por la izquierda de Q (no es una verdadera inversa porque no es cuadrada). La proyección de b sobre el Im(Q) está dada por una matriz P definida en la ecuación (46):

( ) ( )1 1, para T T T T T− −

= = ⇒ = =P A A A A A Q P Q Q Q Q QQ (166)

Así como T =Q Q I porque QT es una inversa por la izquierda de Q, la ecuación (166) proporciona un significado para la matriz QQT, que resulta ser una matriz de proyección ortogonal sobre Im(Q). La Figura 26 y la Figura 27 ilustran los tamaños de ambas matrices y los significados citados:

Figura 26. Producto QTQ=I.

Figura 27. Producto QQT=P.

=Qx

b

= T =Q Q I

= T =QQ P

Page 48: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 38

2.11 Sistemas de ecuaciones indeterminados (r=m<n) Supóngase el siguiente sistema de ecuaciones lineales indeterminado, de rango pleno (r=m<n):

=Ax b (167)

en el que habrá infinitas soluciones, pues hay n–r variables libres.

Figura 28. Sistema de ecuaciones indeterminado de rango pleno.

Se trata de hallar la solución de mínima norma euclídea del sistema (167), representado en la Figura 28. Recuérdese que la solución general de un sistema indeterminado se puede construir su-mando la solución general del sistema homogéneo a una solución particular del sistema completo. Sea N una matriz n×(n–r) cuyas columnas son una base de Ker(A). Si xP es una solución particular de Ax=b, la solución general de dicho sistema viene dada por:

n rp

−= + ∈x x Nu u R (168)

Para hallar la solución de mínima norma se puede tener en cuenta que la ecuación (168) representa todas las soluciones del sistema (167), que dependen de los elementos del vector u, que pueden ser considerados como parámetros independientes. Cualquier solución es la suma de una componente en el núcleo de A y otra componente en su complemento ortogonal, que es Im(AT). Esta suma es directa, lo que implica que los sumandos están unívocamente determinados. La solución de mínima norma será pues el vector que no tenga componente en Ker(A) y que pertenezca a Im(AT).

Sea v el vector de coeficientes de la solución de mínima norma ∗x expresada como combinación lineal de las filas de A:

, T r∗ = ∈x A v v R (169)

Sustituyendo este resultado en el sistema de ecuaciones a resolver:

( ) invertibleT T∗ = =Ax AA v b AA (170)

Despejando el vector v de la expresión (170) y sustituyendo en la expresión (169) de ∗x :

( ) ( )1 1 T T T− −∗= ⇒ =v AA b x A AA b (171)

que es la expresión de la solución de mínima norma. Para que la matriz AAT sea invertible es nece-sario que sea de máximo rango (r=m), es decir, que las filas de A sean linealmente independientes.

2.12 Problema general de mínimo error cuadrático y mínima norma En los apartados anteriores se han resuelto los casos de solución de mínimo error cuadrático de un sistema de ecuaciones incompatible (m>n) y de solución de mínima norma de un sistema de ecua-ciones indeterminado (m<n). En ambos casos se ha supuesto que la matriz A era de rango máximo, esto es, que las columnas (en el caso m>n) o las filas (en el caso m<n) eran linealmente indepen-dientes. Ahora se va a considerar el caso más general.

=m=r

n

Page 49: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 39

Considérese el sistema de ecuaciones =Ax b , en el que la matriz A no es de rango máximo (r<min(m,n)). En general, en este caso no hay solución (r<m) y –si existe– no es única (r<n). Se puede intentar hallar la solución que es al mismo tiempo de mínimo error y de mínima norma. Un ejemplo en 2-D de sistema incompatible cuya solución de mínimo error no es única se muestra en la Figura 29. Todos los puntos que equidistan de las dos rectas paralelas (la recta a trazos) tienen el mismo error. De todos estos puntos se ha señalado el único que es al mismo tiempo de norma mí-nima.

Figura 29. Sistema incompatible de dos ecuaciones con dos incógnitas, sin solución de mínimo error única.

Figura 30. Descomposición de A en el producto de dos matrices de rango máximo.

Sea cual sea la matriz A (de rango r), siempre se puede descomponer en el producto de dos matrices de rango máximo de tamaños (m×r) y (r×n), tal como se muestra en la Figura 30:

=A BC (172)

Las columnas de B son una base de Im(A) y las filas de C lo son de Im(AT). Cada columna de C contiene los coeficientes con los que hay que combinar las columnas de B para obtener cada colum-na de A; análogamente, cada fila de B contiene los coeficientes con los que hay que combinar las filas de C para obtener cada fila de A.

Utilizando la factorización (172), el sistema Ax=b se puede escribir en la forma:

= ⇒ =Ax b BCx b (173)

Introduciendo ahora un nuevo vector y definido en la forma:

≡y Cx (174)

el sistema de ecuaciones (173) se puede escribir como:

=By b (175)

Hay que tener en cuenta que la solución de mínimo error cuadrático de Ax=b se corresponde con la de By=b, pues:

( ) ( ) ( )min min minn n r∈ ∈ ∈

− = − = −x R x R y R

b Ax b BCx b By (176)

Como el rango de la matriz B es máximo (igual al número de columnas), se puede aplicar la expre-sión (171) de la solución de mínimo error cuadrático, reemplazando A por B:

( ) 1T T−=y B B B b (177)

Por otra parte, una vez conocido y, la ecuación (174) constituye un sistema indeterminado con una matriz C de rango máximo. La solución de mínima norma viene dada por la expresión (171):

=A C B m

rm n

r

Page 50: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 40

( ) 1T T −+ =x C CC y (178)

Combinando los resultados de mínimo error (177) y mínima norma (178) se obtiene:

( ) ( ) ( )1 1 1T T T T T T− − −+ += = =x C CC y C CC B B B b A b (179)

donde la matriz +A es la matriz seudoinversa, que se estudiará en detalle en el siguiente apartado.

2.13 Matriz seudoinversa A+ La solución óptima (179) obtenida para el caso general del sistema Ax=b se puede escribir como:

( ) ( )1 1, T T T T− −+ + += ≡x A b A C CC B B B (180)

La matriz A+ se conoce con el nombre de matriz seudoinversa, por analogía con la solución de un sistema compatible y determinado x=A–1b. Esta matriz juega un papel muy importante en la teoría de sistemas de ecuaciones lineales.

Características de la solución dada por la ecuación (180):

− Si la matriz A es cuadrada e invertible, también lo serán los factores B y C. En este caso la seudoinversa coincide con la inversa:

( ) ( )1 1 1 1 1 1 1T T T T T T T T− −+ + − − − − − − −= = = = =x A b C CC B B B b C C C B B B b C B b A b (181)

− Si el sistema es incompatible y la matriz A es de rango máximo, la solución viene dada por las ecuaciones normales. En este caso C es cuadrada e invertible, por lo que se verifica:

( ) ( )1 11 T T T T T T T T T− −− −= ⇒ = ⇒ =A A C B BC B B C A AC B B C A A C (182)

Sustituyendo en la expresión (181) de la solución aproximada x+:

( ) ( ) ( )1 1 11 1T T T T T T T T T T T− − −+ − − − −= = =x C C C B B B b C C C C A A C B b A A A b (183)

que es la solución dada por las ecuaciones normales para mínimos cuadrados.

− Análogamente se puede demostrar que si el sistema es indeterminado y la matriz A de ran-go máximo, la solución (180) se reduce a la expresión (171) hallada anteriormente para la solución de mínima norma.

La matriz pseudoinversa A+ definida en la expresión (180) se puede expresar también en la forma:

( ) ( ) ( ) ( )1 1 1 1T T T T T T T T T T T T− − − −+ ≡ = =A C CC B B B C B BCC B C B AC B (184)

La expresión x+=A+b representa pues, en cada caso, la solución más conveniente para el sistema general de ecuaciones lineales Ax=b. La matriz inversa A–1 sólo existe cuando A es cuadrada y no singular. Sin embargo, la matriz seudoinversa A+ existe siempre y tiene algunas propiedades seme-jantes a las de la matriz inversa A–1. Algunas de estas propiedades son (sin demostración):

− La matriz A+ es única, a pesar de que la factorización A=BC no está unívocamente defini-da.

− La seudoinversa de la seudoinversa es la matriz original: (A+)+=A

− Los operadores (T) y (+) se pueden permutar: (AT)+=(A+)T

− Relaciones entre rangos: r(A)=r(A+)=r(AA+)=r(A+A)

Page 51: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 41

− Si las columnas de A son independientes, la seudoinversa es una inversa por la izquierda:

r(A)=n ⇒ A+A=In (185)

− Si las filas de A son independientes, la seudoinversa es una inversa por la derecha:

r(A)=m ⇒ A A+ =Im (186)

Sin embargo, existen también diferencias importantes entre la inversa y la seudoinversa. En gene-ral:

( )

( ) ( ), ,

pp

+ + +

+ + + +

+ +

≠ ≠ ≠

AB B A

AA I A A I AA A A

A A

(187)

En la práctica, el cálculo de la matriz seudoinversa no se hace por medio de la factorización A=BC sino mediante la descomposición de valores singulares (DVS), que se verá en el apartado 4.2.4. Sin embargo, en ciertas ocasiones (por ejemplo cuando la matriz A es muy grande y dispersa) el método expuesto en este apartado para calcular la seudoinversa A+ puede ser preferible a la DVS. Propiedades adicionales relacionadas con la matriz seudoinversa:

− La matriz P=AA+ es la matriz de proyección ortogonal sobre Im(A). En efecto, se cumple que Ax+= Pb, sien-do x+ la solución de mínimo error en norma cuadrática. Puesto que también se cumple que x+=A+b:

+ + += = ⇒ =Ax AA b Pb P AA (188) − La matriz Q=A+A es la matriz de proyección ortogonal sobre Im(AT). Utilizando AT en lugar de A en la pro-

piedad anterior se tendrá:

( ) es la matriz de proyección sobre Im( ); T T T T+ += = =Q A A A Q Q A A (189)

− Las matrices A y P tienen el mismo espacio de columnas, Im(A)=Im(P):

( )Im( ) ; Im( ) + +∈ ⇒ ∃ ⇒ = ⇒ = ⇒ ∈x P u Pu = x AA u x A A u x x A (190)

Análogamente se demuestra que: x∈Im(A) ⇒ x∈Im(P).

− La solución general del sistema Ax=b que minimiza el cuadrado de la norma del residuo (sin minimizar la norma de la solución) viene dada por:

( ) ( ) vector arbitrario+ += + − ≡x A b I A A w w (191)

pues (I–A+A)=(I–Q) es la matriz de proyección sobre el complemento ortogonal de Im(AT), que es Ker(A).

− Las cuatro propiedades siguientes caracterizan a la seudoinversa de A (se puede demostrar que A+ es la única matriz que las cumple):

1. AA+A=A

( ) ( )1 1T T T T− −+ = ⋅ ⋅ = =AA A BC C CC B B B BC BC A (192)

2. A+AA+=A+

( ) ( ) ( ) ( )1 1 1 1T T T T T T T T− − − −+ + += ⋅ ⋅ =A AA C CC B B B BC C CC B B B A (193)

3. (AA+)T=AA+ (simetría del producto)

( ) ( ) ( ) ( ) ( )T T T T TT T T T T T T− − −+ += = ⋅ =AA A A B B B CC C C B B B B B (194)

( ) ( ) ( )1 1 1T T T T T T− − −+ = ⋅ =AA BC C CC B B B B B B B (195)

Page 52: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 42

4. (A+A)T=A+A (simetría del producto)

(demostración análoga a la anterior)

− Conviene finalmente recordar que la seudoinversa obtenida a partir de las expresiones (184) es única, aunque la factorización A=BC no lo sea.

2.13.1 Interpretación del sistema de ecuaciones general Ax=b En el producto Ax=b la matriz A transforma Rn en Rm. Los vectores x y b se pueden descomponer respectivamente en sus componentes en los subespacios suplementarios Im(AT) y Ker(A), e Im(A) y Ker(AT):

( ) ( )( ) Im , KerTf n f n= + ∈ ∈x x x x A x A (196)

( ) ( )( ) Im , Ker Tc n c n= + ∈ ∈b b b b A b A (197)

Sustituyendo estos valores en el sistema Ax=b y teniendo en cuenta que Axn=0 y que bn nunca pue-de obtenerse como combinación lineal de las columnas de A:

f n f c= + = =Ax Ax Ax Ax b (198)

La expresión (198) indica que tanto x como xf se transforman a Im(A). Por otra parte, cada vector bc∈Im(A) proviene de un y sólo un vector xf∈Im(AT), como se puede demostrar por reducción al absurdo. Suponiendo dos vectores distintos en Im(AT) que se transforman en bc:

( ) ( ) ( )

Ker ¡Absurdo!

f cf f f f

f c

= ⎫′ ′− = ⇒ − ∈⎬′ = ⎭

Ax bA x x 0 x x A

Ax b (199)

Así pues, cada matriz A transforma el subespacio de filas Im(AT) en el subespacio de columnas Im(A) y esta parte de la transformación siempre es invertible. Al mismo tiempo, hay una parte del vector b, el vector bn, que es inalcanzable por la transformación Ax=b.

¿Qué hace la matriz seudoinversa en un sistema general de estas características?

De la definición de la matriz seudoinversa (180) se concluye que:

( ) ( ) ( )Im Im Im T Tn

+ += = ⇒ =A C A A b 0 (200)

Si A−1 no existe, la seudoinversa A+ la sustituye e invierte "lo que es invertible" en el sistema Ax=b, obteniendo xf a partir de bc:

( )

( ) f n f f

f c

c n c

+ + ++

+ + +

⎫= + = = ⎪ =⎬= + = ⎪⎭

A Ax A A x x A Ax xx A b

A b A b b A b (201)

La Figura 31, inspirada en el libro de G. Strang1, representa gráficamente los 4 subespacios funda-mentales de la matriz A e interpreta la transformación Ax=b en función de dichos subespacios, re-sumiendo gráficamente lo establecido en los párrafos precedentes. Obsérvese que la componente de x en Ker(A) no influye en la imagen Ax, y que la componente de b en Ker(AT) tampoco interviene porque es inalcanzable.

1 G. Strang, "Introduction to LinearAlgebra", 3rd edition, Wellesley-Cambridge, ch. 4, p. 188.

Page 53: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Sistemas de ecuaciones lineales pág. 43

Figura 31. Relación entre el sistema Ax=b y los

cuatro subespacios fundamentales de la matriz A.

xn

Rn Rm

nr m

mn

r

n−rm−r

Im(AT)

Ker(A) Ker(AT)

Im(A)

0 0

xf

x

Ax=bc

x→Ax

xf → Axf → Ax

xn → Axn → 0

b bn

Page 54: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.
Page 55: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 45

3. Valores y vectores propios 3.1 Definición del problema de valores y vectores propios Los vectores propios de una matriz ∈ n×nA C son los vectores ,∈ ≠nx C x 0 que se transforman del modo:

, λ λ= ∈Ax x C (202)

El escalar λ , que puede ser real o complejo, es el valor propio asociado al vector propio x. La ecuación (202) también se puede expresar como:

( )λ− =A I x 0 (203)

El vector nulo no se considera vector propio. Para que exista una solución x distinta de la trivial (x=0), el valor propio λ deberá ser raíz de la ecuación característica, que se obtiene igualando a cero el polinomio característico (de grado n):

( )det 0λ− =A I (204)

Características generales del problema de valores y vectores propios:

− Es un problema no lineal en los valores propios λ y lineal en x.

− Dado que un polinomio de grado n siempre tiene n raíces reales y/o complejas, siempre existen n valores propios, que pueden ser reales o complejos. Si un valor propio es complejo, su complejo conjugado también es valor propio.

− Sin embargo, no siempre existen n vectores propios. Los valores propios de multiplici-dad algebraica m>1 tienen un subespacio propio asociado de dimensión <=m (multipli-cidad geométrica). Todos los vectores en este subespacio propio son vectores propios. Las matrices que tienen menos de n vectores propios se llaman matrices defectivas.

− Los vectores propios pertenecen al subespacio nulo de (Ax–λI) y no están unívocamente determinados: Si x es un vector propio, (α⋅x) también lo es. Si un valor propio es múlti-ple y su subespacio propio tiene dimensión mayor que uno, hay infinitas posibilidades de elegir una base ortonormal de dicho subespacio propio.

Figura 32. Interpretación geométrica de los valores y vectores propios.

En lo sucesivo, salvo que se indique lo contrario, se considerarán matrices reales. Para las matrices reales, los vectores propios asociados con valores propios conjugados son también vectores comple-jos conjugados entre sí.

2x

2 2 2λ=Ax x

1 1 1λ=Ax x

1x

xAx

Page 56: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 46

3.2 Interpretación geométrica de los valores y vectores propios Por lo general, el vector Ax no tiene la misma dirección que x. Los vectores propios son vectores que se transforman sin cambiar de dirección. El valor propio λ determina el cambio de longitud.

3.3 Propiedades de los valores y vectores propios

3.3.1 Subespacios propios

Los vectores propios asociados con un mismo valor propio λ forman un subespacio vectorial de Rn. En efecto, si x1 y x2 son vectores propios asociados a un mismo valor propio λ, se verificará:

( ) ( )α β α β λ α β+ = + = +1 2 1 2 1 2A x x Ax Ax x x (205)

lo que demuestra que una combinación lineal de vectores propios asociados con un mismo valor propio es también vector propio. Estos subespacios vectoriales formados por vectores propios se conocen como subespacios propios.

Por otra parte, los subespacios propios correspondientes a valores propios distintos sólo tienen en común el vector nulo. En efecto, si x es un vector propio común, por reducción al absurdo:

11 2

2

( ) λ

λ λλ

= ⎫= − ⇒ =⎬= ⎭

Ax x0 x x 0

Ax x (206)

Como consecuencia, los vectores propios correspondientes a valores propios distintos son lineal-mente independientes.

3.3.2 Relación de los valores propios con la traza y el determinante

Igualando coeficientes en las distintas expresiones del determinante det(A−λI)=0 de la ecuación (204) se deducen las propiedades siguientes (fórmulas de Vieta):

( ) ( ) ( ) ( ) ( ) ( )

11 12 1

12 22 21 2

0

1 2

det 1 1

n

nj nn j

n j nj

n n nn

a a aa a a

a a a

λλ

λ σ λ λ λ λ λ λ λ

λ

−=

−−

− = = − = − − − −

∑A I (207)

donde n jσ − es la suma de los menores principales de orden ( )n j− de la matriz A:

1 1 2

2 1 2 1 3 1

1 2 3

......

...

n

n n

n n

σ λ λ λσ λ λ λ λ λ λ

σ λ λ λ λ

= + + += + + +

=

(208)

En concreto, igualando los coeficientes de λ y de nλ se obtiene que:

− La suma de los valores propios es igual a la traza de la matriz.

− El producto de los valores propios es igual al determinante de la matriz.

3.3.3 Propiedad de "desplazamiento" de los valores propios

Si los valores propios de la matriz A son λi, los valores propios de la matriz (A−αI), siendo α un escalar, son (λi−α). Los vectores propios xi de la matriz A siguen siendo vectores propios de la ma-triz (A−αI):

Page 57: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 47

( ) ( ); restando i i i i i i iλ α α λ α= ⇒ − = −Ax x x A I x x (209)

Esta propiedad es importante en algunos métodos numéricos de cálculo de valores propios.

3.3.4 Casos particulares del problema de valores propios De la expresión del determinante se deduce que los valores propios de una matriz diagonal, o de una matriz triangular superior o inferior son los elementos de la diagonal.

Los vectores propios de las potencias de A son los mismos vectores propios de A; los valores pro-pios de las potencias de A son las correspondientes potencias de los valores propios de A:

2 2; ; ... n nλ λ λ λ= = = =Ax x A x Ax x A x x (210)

Análogamente, para las potencias negativas, suponiendo que A sea invertible:

1 1 1 1; ; λ λ λ− − − −= = =Ax x A Ax A x A x x (211)

3.4 Transformaciones de semejanza

3.4.1 Matrices semejantes Dos matrices A y B son semejantes si existe una matriz no singular M tal que:

1−=B M AM (212)

Se dice que A y B están relacionadas mediante una transformación de semejanza.

Las matrices semejantes tienen los mismos valores propios. Partiendo de la definición de valor pro-pio de A:

1 λ−= =Ax MBM x x (213)

Pre-multiplicando por la inversa de la matriz M:

1 1 1( ) ( )λ λ− − −= =B M x M x M x (214)

de donde se deduce que λ es un valor propio de B asociado con el vector propio (M–1x).

Es fácil comprobar que dos matrices semejantes A y B tienen el mismo polinomio característico:

1 1

1 1

det( ) det( )det( ( ) ) det det( )det det( )

λ λ

λ λ λ

− −

− −

− = − =

= − = − = −

B I M AM M MM A I M M A I M A I

(215)

3.4.2 Diagonalización mediante transformaciones de semejanza

Si una matriz ∈ n×nA R tiene n vectores propios linealmente independientes se puede diagonalizar mediante una transformación de semejanza. En efecto, expresando la condición de valor y vector propio para los n valores y vectores propios simultáneamente:

[ ] [ ]1

21 2 1 2

0 00 0

0 0

i i i n n

n

λλ

λ

λ

⎡ ⎤⎢ ⎥⎢ ⎥= ⇒ =⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

Ax x A x x x x x x (216)

Llamando ahora P a la matriz cuyas columnas son los n vectores propios independientes y D a la matriz diagonal formada por los valores propios:

Page 58: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 48

[ ] ( )1 2 1 2

1 1

, diag , ,...,

y n nλ λ λ

− −

≡ ≡

P x x x D

AP = PD P AP = D A = PDP (217)

Para que una matriz sea diagonalizable, debe tener n vectores propios linealmente independientes. Para que sea invertible, debe tener los n valores propios distintos de cero.

Las matrices defectivas tienen menos de n vectores propios independientes. No se pueden diagona-lizar mediante transformaciones de semejanza. Se pueden reducir a la forma canónica de Jordan.

3.4.3 Reducción a forma triangular mediante transformaciones de semejanza

Teorema: Toda matriz cuadrada ∈ n×nA C se puede reducir mediante una transformación de seme-janza S–1AS a una matriz triangular superior T, cuyos valores propios aparecen en la diagonal. Demostración: Siempre es posible encontrar para A un vector propio x1 asociado con 1λ (en general, ambos comple-jos). Se puede construir una matriz no singular S1, con el vector x1 en la primera columna, tal que al multiplicar S1 por el primer vector de la base natural e1 se tiene:

11 1 1 1 1 1 −= → =S e x S x e (218)

Aplicando a la matriz A la transformación de semejanza definida por la matriz S1:

[ ] [ ]1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1

1

, , ,Tλ

λ λ− − − − ⎡ ⎤⎡ ⎤= = = = = ⎢ ⎥⎣ ⎦

⎣ ⎦

bB S AS S A x X S x AX e S AX

0 A (219)

Los valores propios de B1 son los de A, pues son matrices semejantes; los de A1 son los de A con la multiplicidad de 1λ disminuida en una unidad. Ahora a la matriz A1 se le puede aplicar idéntico razonamiento que a A, pues también tendrá al menos un vector propio asociado con 2λ . La segunda transformación de semejanza se deberá hacer con una matriz que respete los ceros introducidos por la primera, es decir mediante una matriz que tenga la forma:

2

2

1 T⎡ ⎤= ⎢ ⎥

⎣ ⎦

0P

0 S (220)

La matriz 1 12 2 1 1 2

− −=B P S AS P es semejante a A, y tiene ceros debajo de la diagonal en las dos primeras columnas. Conti-nuando con transformaciones de semejanza de este tipo se llega finalmente a transformar A en una matriz triangular superior T, cuyos valores propios están en la diagonal. La forma canónica de Jordan es un caso particular de matriz triangular superior a la que cualquier matriz es reducible por semejanza.

3.4.4 Transformaciones de semejanza unitarias Las matrices unitarias son una generalización de las matrices ortogonales al campo complejo. Es-tas matrices U∈Cn×n cumplen la propiedad de que su inversa es la conjugada y transpuesta:

1 H H H− = ⇔ = =U U U U UU I (221)

Se llama transformación de semejanza unitaria a una transformación de semejanza realizada me-diante una matriz unitaria:

1, siendo H H−= =B U AU U U (222)

Las transformaciones de semejanza unitarias tienen todas las propiedades de las transformaciones de semejanza (y algunas más). Las matrices A y B relacionadas por la ecuación (222) se dicen uni-tariamente semejantes.

Se llaman matrices unitariamente diagonalizables (triangularizables) a las matrices que se pueden reducir a forma diagonal (triangular) mediante una transformación de semejanza unitaria. Hay matrices diagonalizables que no son unitariamente diagonalizables.

Page 59: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 49

Se cumple que si las matrices A y B son unitariamente semejantes, las matrices AHA y BHB tam-bién lo son (con la misma matriz U):

( ) ( ), ; H H H H H H H H H H= = ⇒ = =B U AU B U A U U A AU U A U U AU B B (223)

Las transformaciones de semejanza conservan el polinomio característico y por tanto la traza, luego la suma de los cuadrados de los módulos de los elementos de la matriz se conserva en las trans-formaciones de semejanza unitarias:

( ) ( )2 2

, 1 , 1

traza trazan n

H Hij ij

i j i j

a b= =

= = =∑ ∑A A B B (224)

3.4.5 Lema de Schur

Enunciado: Para cualquier matriz cuadrada A∈Cn×n existe una matriz unitaria U tal que T=UHAU es triangular superior. Demostración: Se demuestra por inducción. La proposición es cierta para n=1. Supóngase que toda matriz (n–1)×(n–1) es unitariamente semejante a una matriz triangular superior.

Para cualquier matriz n×n siempre es posible encontrar un vector propio x1 asociado con un valor propio λ1 (aunque λ1 sea múltiple, su subespacio propio tendrá al menos un vector propio). Construyendo una matriz unitaria U1 cuya prime-ra columna es x1 y eligiendo las demás columnas de modo que sean ortonormales, se verificará:

11 1

1 1 1 1

* * ** * * *0 * * 0 * * 0

0

0 * * 0 * * 0

H

λλ λ ⎡ ⎤⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥= = = ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

AU U U AUB

(225)

Pero por hipótesis la matriz B es una matriz (n–1)×(n–1) unitariamente semejante a una matriz triangular superior H

B B B=B U T U luego A es unitariamente semejante a una matriz triangular T. La matriz A se podrá finalmente expresar como:

1 1

2 2 1 1 2 2 2

1 0 0 0 * * * * * *

0 0 0

0 0 00 0 0

H H H

B B

λ λ⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥= = =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

U U U AU U U UU B T

(226)

Desde un punto de vista constructivo, la matriz A se puede reducir a forma triangular determinando un vector propio para B y construyendo a partir de él la matriz UB, y continuando sucesivamente hasta que la matriz se haga triangular.

3.5 Matrices normales

3.5.1 Definición, casos particulares y propiedades

Una matriz A∈Cn×n se llama normal cuando el producto por su matriz conjugada transpuesta AH es conmutativo:

H H=AA A A (227)

Casos particulares de matrices normales:

− En Cn×n todas las matrices hermíticas, antihermíticas y/o unitarias son normales.

− En Rn×n todas las matrices simétricas, antisimétricas u ortogonales son normales.

− También existen matrices normales que no pertenecen a las categorías precedentes.

Todas las matrices B unitariamente semejantes a una matriz normal A son también normales:

Page 60: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 50

( ) ( ) ( )H H H H H H H H H H H H= = = = =BB U AU U A U U AA U U A AU U A UU AU B B (228)

Dada una matriz normal A, los vectores propios de AH son los mismos que los de A, y los valores propios de AH son los conjugados de los valores propios de A:

H H H H H⇒ ⇒ = =U AU = D U A = DU A U UD UD (229)

3.5.2 Teorema espectral para matrices normales

Enunciado: Sea A∈Cn×n una matriz cuyos valores propios son λ1, λ2, ..., λn. Las siguientes afirma-ciones son equivalentes entre sí (cada una de ellas implica todas las demás):

a) La matriz A es normal.

b) La matriz A es unitariamente diagonalizable.

c) Se verifica la igualdad: 2 2

, 1 1

n n

ij ii j i

a λ= =

=∑ ∑

d) La matriz A tiene n vectores propios ortonormales entre sí. Demostración. Se demostrará la equivalencia entre a) y b), entre b) y c) y entre b) y d):

a) ⇔ b): Una matriz es unitariamente diagonalizable si y sólo si es normal.

Por el Lema de Schur, toda matriz A∈Cn×n es unitariamente semejante a una matriz triangular superior T:

H =U AU T (230) Si A es normal, también lo será T, pues la condición de normal es conservada por las transformaciones de semejanza unitarias.

Se va a demostrar que si una matriz triangular es normal, en realidad es diagonal. La Figura 33 muestra la forma del producto THT, mientras que la Figura 34 lo hace con el producto TTH. Si T es normal, ambos productos deben dar el mismo resultado.

Figura 33. Forma del producto THT.

Figura 34. Forma del producto TTH.

De la igualdad de elementos (1,1) se concluye que en la primera fila de T sólo el elemento de la diagonal es distinto de cero:

( )

( )

211 11 1111 2

2 1 1221 1 11 111

1 2

0 0, 2,3,...,

Hn

n n j jHjj j j

j j

t t tt t j n

t t t t =

= =

⎫= =⎪

⇒ = ⇔ = =⎬= = + ⎪

∑∑ ∑

T T

TT (231)

De la igualdad de elementos (2,2) se concluye que en la segunda fila de T sólo el elemento de la diagonal es no nulo:

( )

( )

212 12 22 22 2222 2

2 2 2232 2 22 222

2 3

0 0, 3, 4,...,

Hn

n n j jHjj j j

j j

t t t t tt t j n

t t t t =

= =

⎫= + =⎪

⇒ = ⇔ = =⎬= = + ⎪

∑∑ ∑

T T

TT (232)

Prosiguiendo del mismo modo con los restantes elementos de la diagonal de ambos productos se demuestra que T y TH deben ser diagonales. Por tanto, toda matriz A normal es unitariamente diagonalizable.

El recíproco, que toda matriz unitariamente diagonalizable es normal, se cumple porque toda matriz diagonal es nor-mal, y por tanto también lo será A que es unitariamente semejante a ella.

0

0 HT T

0

0HTT

Page 61: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 51

b) ⇔ c): En una matriz unitariamente diagonalizable se cumple que: 2 2

, 1 1

n n

ij ii j i

a λ= =

=∑ ∑ .

La traza se conserva en las transformaciones de semejanza, pues es el 2º coeficiente del polinomio característico, que es un invariante. Si A y D son unitariamente semejantes, aplicando la propiedad vista en la expresión (224):

( ) ( )2 2

, 1 1

traza trazan n

H Hij i

i j i

a λ= =

= = =∑ ∑A A D D (233)

Recíprocamente, esta propiedad indica que la matriz triangular H=T U AU , unitariamente semejante a A y con los valores propios en la diagonal, debe ser diagonal, pues si se cumplen simultáneamente la condición c) y la ecuación (224), la suma de los cuadrados de los módulos de los elementos de fuera de la diagonal debe ser nula.

b) ⇔ d): Toda matriz es unitariamente diagonalizable si y sólo si tiene n vectores propios ortonormales entre sí.

Si A es diagonalizable mediante una matriz unitaria U:

H = ⇔ =U AU D AU UD (234) Las n columnas de U son vectores propios ortonormales de A y los elementos de D los valores propios.

Recíprocamente, si A tiene n vectores propios ortonormales que son las columnas de U, la misma expresión (234) indi-ca que es unitariamente diagonalizable.

3.5.3 Corolarios del teorema espectral Si A es una matriz normal (y por tanto unitariamente diagonalizable) se cumple que:

− La matriz A es hermítica si y sólo si sus valores propios son reales:

, realH H H H H H= ⇔ = = ⇔ = ⇔A A U AU D U A U D D D D (235)

Como caso particular, las matrices reales y simétricas siempre tienen valores propios reales.

− La matriz A es antihermítica si y sólo si sus valores propios son imaginarios puros:

, : imaginarios purosH H H H Hiid= − ⇔ = = = − ⇔A A U AU D U A U D D D (236)

− La matriz A es unitaria si y sólo si sus valores propios tienen módulo unidad:

( )( ) H H H H H H H H= ⇔ = = = ⇔ =A A I A A UD U UDU UD DU I D D I (237)

− La matriz A es normal si y sólo si los vectores (Ax) y (AHx) tienen la misma norma euclí-dea (sin demostración):

3.5.4 Descomposición espectral de matrices normales Toda matriz normal –por tanto unitariamente diagonalizable– admite una descomposición espectral mediante la que se expresa como suma de matrices de rango 1, en la forma:

[ ]1 1

1

Hn

H Hn k k k

kHn n

λλ

λ =

⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥= =⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦

∑1

uA = UDU u u u u

u (238)

Esta descomposición es una forma alternativa de considerar la diagonalización unitaria de la matriz A. Se estudiará con algo más de detalle en el apartado 4.3.

Page 62: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 52

3.6 Formas cuadráticas y transformaciones de congruencia

3.6.1 Definición y propiedades de las formas cuadráticas Una forma cuadrática en Rn es un polinomio homogéneo de grado dos en n variables, es decir fun-ción :ϕ nR R de la forma:

( ) ( )1 2, 1

, ,..., , , n

T Tn ij i j

i j

x x x a x xϕ ϕ=

= = = ∈ =∑ n×nx x Ax A R A A (239)

Las formas cuadráticas pueden reducirse a forma diagonal mediante cambios de coordenadas en el vector x. Como A es simétrica, una forma particular de reducir la forma cuadrática a forma diagonal es mediante una transformación de semejanza unitaria que la diagonalice. Sin embargo, como no se exige que el cambio de coordenadas sea unitario u ortogonal, una misma forma cuadrática puede transformarse en muchas formas cuadráticas diagonales diferentes, pero sólo en una forma diago-nal canónica. La forma diagonal canónica es aquella en la que todos los elementos de la diagonal son "1", "–1" ó "0" (en este orden).

3.6.2 Transformaciones de congruencia Una transformación de congruencia se define en la forma:

( ) no singularT=B C AC C (240)

Estas transformaciones surgen de realizar un cambio de base en una forma cuadrática:

; ; ; T T T T Tϕ ϕ= = = =x Ax x = Cy y C ACy y By B C AC (241)

Las transformaciones de semejanza unitaria son también transformaciones de congruencia, pero no cualquier transformación de congruencia es de semejanza o de semejanza unitaria.

Permutar unas filas y las correspondientes columnas, multiplicar una fila y la correspondiente co-lumna por un escalar, combinar filas y combinar del mismo modo las correspondientes columnas, son ejemplos de transformaciones de congruencia en una forma cuadrática que pueden llevarla a una forma diagonal o a la forma diagonal canónica.

3.6.3 Ley de Inercia de Sylvester Enunciado: Todas las formas diagonales de una misma forma cuadrática tienen el mismo número de coeficientes positivos, negativos y nulos.

Como consecuencia, las transformaciones de congruencia conservan el signo de los valores propios, es decir, el número de valores propios negativos, iguales a cero y positivos. Demostración: Supóngase dos formas diagonales de una misma forma cuadrática (una misma forma cuadrática en dos bases distintas) en un espacio E de dimensión n. Por la igualdad de rangos ambas tienen el mismo número de elementos no nulos.

( ) 2 2 2 2 2 2 21 1 1 1

2 2 2 2 2 2 21 1 1 1

... ... ...

... ... ...p p q q q r

p p q q q r

u y y y y y y y

z z z z z z z

ϕ + − +

+ − +

= + + − − − − − − − =

= + + + + + + − − − (242)

Hay que demostrar que p=q. Se hará por reducción al absurdo. Supóngase, por ejemplo, que p<q. Supóngase un vector u≠0 cuya expresión en las coordenadas y tiene las p primeras coordenadas nulas, y en las coordenadas z dicho vector u tiene las (n–q) últimas coordenadas nulas.

1 2 1 2... 0; ... 0p q q ny y y z z z+ += = = = = = = = (243)

Tal vector u existe y es no trivial, pues hay (n–q+p)<n condiciones. El vector u deberá verificar simultáneamente:

Page 63: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 53

( ) ( )2 2 2 21 1... 0, ... 0p r qu y y u z zϕ ϕ+= − − − < = + + > (244)

lo cual es absurdo. De forma análoga se puede demostrar que p>q es imposible, luego p=q.

Una consecuencia práctica importante de la ley de inercia de Sylvester es que para cualquier ma-triz simétrica con una factorización A=LDLT, los signos de los pivots que aparecen en D coinciden con los signos de los valores propios de A, pues A y D están relacionadas por una transformación de congruencia.

3.6.4 Matrices definidas-positivas Una matriz simétrica A es definida-positiva si cumple:

0, H > ∀ ≠x Ax x 0 (245)

Por otra parte, se dice que A es definida negativa cuando (–A) es definida positiva.

La condición (245) es equivalente a cualquiera de las cuatro condiciones siguientes:

− Todos los valores propios de A son estrictamente positivos: 0, i iλ > ∀ (246)

− Todos los menores principales de A son positivos: det( ) 0, k k> ∀A (247)

− Todos los pivots en la descomposición A=LDLT son positivos: 0, iid i> ∀ (248)

− La matriz A se puede descomponer en la forma: ( ) no singularHA = R R R (249)

Demostración:

1º) (245) ⇔ (246). Se pretende demostrar la siguiente equivalencia de propiedades:

0, , 0 Tj j j j jλ λ> ∀ ≠ ⇔ = > ∀x Ax x 0 Ax x (250)

En efecto, si 0, T > ∀ ≠x Ax x 0 , se cumplirá:

0T Tj j j j j j j j jλ λ λ= ⇒ = ⇒ >Ax x x Ax x x (251)

Recíprocamente, si todos los valores propios son positivos y los vectores propios ortonormales, la matriz A es definida positiva:

2

1

, 0

, 0,

Tii i

nT T T T

i ii

d

y

λ

λ=

= ⇒ = = >

= = = = > ∀ = ≠∑

AQ QD Q AQ D

x Qy x Ax y Q AQy y Dy x Qy 0 (252)

2º) (245) ⇔ (247). Ahora se va a demostrar lo siguiente:

( )0, det 0, 1Tk k n> ∀ ≠ ⇔ > ≤ ≤x Ax x 0 A (253)

Si 0, T > ∀ ≠x Ax x 0 , se verifica que 1 2det ... 0nλ λ λ= >A . Hay que demostrar que también se cumple para k<n. Todas las matrices Ak cumplen la condición (245), y por tanto:

0k kT T T Tk k k k

∗⎡ ⎤ ⎡ ⎤⎡ ⎤= = >⎢ ⎥ ⎢ ⎥⎣ ⎦ ∗ ∗⎣ ⎦ ⎣ ⎦

A xx Ax x 0 x A x

0 (254)

Como consecuencia todos los valores propios de Ak serán positivos y también serán positivos sus determinan-tes det Ak, que son el producto de los k valores propios correspondientes.

Recíprocamente, si det Ak>0 "k, la matriz A es definida positiva. Se demostrará por inducción en n. Está claro que si det A1>0, A1=a11>0

Se supone que An–1 es definida positiva. Entonces existe una transformación de congruencia tal que STA n–

1S=In–1. La matriz A se puede escribir como:

Page 64: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 54

1 1 1, , ; 11

Tn n nT T T TTa

a a a− − −− ⎡ ⎤⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤

= ∈ ∈ =⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎣ ⎦

n 1A u A u S 0 I vS 0A u R R

u u 0 v0 (255)

que es una matriz congruente con A y "casi" diagonal. Las últimas fila y columna de esta matriz se pueden anular mediante transformaciones de congruencia (añadiéndoles alguna de las n–1 primeras filas y columnas, multiplicadas por el factor adecuado). Estas transformaciones no alteran las n–1 primeras filas y columnas, por lo que se llega finalmente a una matriz diagonal:

1 , detnT d

d−⎡ ⎤

= =⎢ ⎥⎣ ⎦

I 0D D

0 (256)

Este determinante (de una matriz congruente con A) debe tener el mismo signo que det A, que es positivo por hipótesis. Así pues la matriz D es definida positiva, y también lo será la matriz A que es congruente con ella.

Esta propiedad que caracteriza a las matrices definidas positivas se conoce como criterio de Sylvester.

3º) (247) ⇔ (248). Ahora se va a demostrar lo siguiente:

( 1)det 0, 1 pivots eliminación Gauss 0jk jjk n a −> ≤ ≤ ⇔ >A (257)

Si det 0k >A , los pivots ( 1) 0jjja − > . La eliminación de Gauss sin pivotamiento conserva los determinantes de

las matrices Ak. Después de triangularizar la matriz A, el pívot k se puede escribir en la forma:

( 1)1det det 0k

kk k ka −−= >A A (258)

y es positivo si los dos determinantes de Ak y Ak–1 son positivos.

Recíprocamente, si todos los pivots son positivos también los determinantes deberán serlo, pues tanto el pri-mer pívot como el primer determinante son a11.

4º) (245) ⇔ (249). Se demostrará finalmente la equivalencia siguiente:

0 , rango T T n> ∀ ≠ ⇔ = =x Ax x 0 A R R R (259)

Si A=RTR la matriz A es definida positiva:

( )2 0 , pues Ker =T T T T= ⇒ = = > ∀ ≠A R R x Ax x R Rx Rx x 0 R 0 (260)

Recíprocamente, si A es simétrica y definida positiva siempre admite la factorización de Choleski, como se puede demostrar a partir de la factorización:

1 12 2=T T T= =A LDL LD D L R R (261)

pues todos los pivots (elementos de la diagonal de D) son positivos. Es evidente que la matriz R es no singular.

3.6.5 Matrices semi-definidas positivas e indefinidas. Se dice que una matriz simétrica A es semi-definida positiva cuando cumple la condición:

, 0 y , tal que 0T T∀ ∈ ≥ ∃ ≠ =nx R x Ax y 0 y Ay (262)

Las matrices semi-definidas positivas tienen valores propios positivos y nulos, pero no pueden tener ningún valor propio negativo. Siempre son singulares y tienen determinante nulo. Además, su nú-cleo Ker(A) tiene al menos dimensión 1, como se deduce directamente de su definición.

Las matrices semi-definidas positivas ∈ n×nA R se pueden factorizar en la forma A=RTR, siendo rango(R)<n.

Se dice que la matriz A es semi-definida negativa cuando (–A) es semidefinida positiva.

Finalmente, se dice que una matriz simétrica A es indefinida cuando se cumple que:

, tal que 0 y 0T T∃ ≠ > <y z 0 y Ay z Az (263)

Page 65: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 55

Las matrices indefinidas tienen necesariamente valores propios positivos y negativos, y también pueden tener valores propios nulos. En este último caso serán singulares, tendrán determinante nulo y un núcleo no vacío. Estas matrices no admiten factorización real en la forma A=RTR.

3.7 Cociente de Rayleigh

3.7.1 Definición y relación con los valores y vectores propios Para matrices simétricas se define el cociente de Rayleigh en la forma:

( )T

TR =x Axxx x

(264)

Sustituyendo x por el vector propio xi se obtiene el valor propio λi:

( )T Ti i i i i

i iT Ti i i i

R λ λ= = =x Ax x xxx x x x

(265)

Si los valores propios se ordenan de modo que 1 2 ... nλ λ λ< < < , el cociente de Rayleigh es mínimo para x=x1, máximo para x=xn y presenta un valor estacionario para cualquier otro vector propio:

2

2 ( ) 2( )( ) 2 ( ) 2( )( )

T TT T

TR −∇ = = ⇒ − =

Ax x x x Ax xx 0 Ax x x x Ax x 0x x

(266)

De aquí se concluye que la condición de valor estacionario equivale a que el cociente de Rayleigh cumpla la ecuación de valores propios:

( )T

T R− = − =x AxAx x Ax x x 0x x

(267)

Expresando x en base de vectores propios x=Qy:

( ) ( )

2 2 21 1 2 2

2 2 21 2

2 22 2 2 2 2 22 1 2 11 2 1 1 2 2

1 1 1 12 2 2 2 2 2 2 2 21 2 1 2 1 2

...( )...

...... ...... ... ...

T T T Tn n

T T Tn

n nn n n

n n n

y y yRy y y

y yy y y y y yy y y y y y y y y

λ λ λ

λ λ λ λλ λ λλ λ λ λ

+ + += = = = =

+ + +

− + + −+ + + + + += − + = + ≥

+ + + + + + + + +

x Ax y Q AQy y Λyxx x y y y y

(268)

Si los valores propios se suponen ordenados de menor a mayor:

1 2 ... nλ λ λ< < < (269)

todos los términos del numerador de la última fracción son positivos y también la fracción lo será. Por tanto el mínimo de R(x) vale λ1 y se produce cuando el vector x es x1 (y1=1, yj=0, j≠1).

De forma análoga se puede demostrar que el máximo de R(x) vale λn y se produce cuando x es el valor propio xn (yn=1, yj=0, j≠n)

3.7.2 Error en los valores propios estimados mediante el cociente de Rayleigh Si en el cociente de Rayleigh la aproximación en el vector propio es lineal, la aproximación en el valor propio es cuadrática. En efecto, si x=xi+εv, siendo v el error en xi, se cumple que R(x)=λi+O(ε2).

Page 66: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 56

Demostración:

( )2

2

( ) ( ) 2( )( ) 2

T T T T Ti i i i i

i T T T T Ti i i i i

R ε ε ε εεε ε ε ε

+ + + ++ = =

+ + + +x v A x v x Ax x Av v Avx vx v x v x x x v v v

(270)

Como el error v no tiene componente en xi, se cumplirán las relaciones:

2, A , , 0, 0, T T T Tj j i i i j ij i i j j

j i j i

α λ δ λ α≠ ≠

= = = = = =∑ ∑v x x x x x x Av v x v Av (271)

Sustituyendo en la expresión (264) del cociente de Rayleigh:

( )2 2

1

2 2 2 22 2

01

1

i j jj i

i i j j jj i j ij

j i

Rλ ε λ α

ε λ ε λ α ε αε α

≠ ≠≠

+ +⎛ ⎞⎛ ⎞

+ = = + +⎜ ⎟⎜ ⎟+ ⎝ ⎠⎝ ⎠

∑∑ ∑∑

x v (272)

Desarrollando en serie el segundo factor ( )( )1 2 31 1 ...x x x x−− = − + − + y agrupando términos:

( ) ( )2 2 2 4 ...i i j j i jj i j i

R ε λ ε λ α λ α ε≠ ≠

⎛ ⎞+ = + − + +⎜ ⎟

⎝ ⎠∑ ∑x v (273)

3.7.3 Teorema mini-max y maxi-min (Teoremas de Courant-Fischer) Se comenzará explicando el teorema maxi-min para el 2º valor y vector propio.

El mínimo valor del cociente de Rayleigh se obtiene para 1=x x y vale 1λ . Supóngase que ahora se quiere de nuevo calcular el mínimo de R(x) pero con la condición de que x sea ortogonal a un vec-tor dado w. Como hay menos libertad para elegir x que antes, el mínimo que se obtenga será mayor que el mínimo obtenido cuando no había restricciones, que era 1λ . Supóngase que ahora se toma otro w distinto y se vuelve a repetir el proceso, y así con todos los w posibles. Todos los mínimos obtenidos serán mayores o igual que 1λ , pero por lo demás cada uno tendrá una magnitud diferente.

Para el segundo valor y vector propio, el teorema maxi-min establece que el máximo de los míni-mos de R(x), sujeto a la restricción x⊥w, siendo w un vector arbitrario, es λ2 y se obtiene cuando x=x2.

En el caso general, para r≥2, el teorema maxi-min establece que:

max min 1, 2,... siendo 0, 1, 2,..., ( 1)i

TT

r iT r n i rλ⎛ ⎞

= = = = −⎜ ⎟⎝ ⎠xw

x Ax x wx x

(274)

Demostración: Expresando x en base de vectores propios y sustituyendo en R(x):

2 2 2 21 1 1 1

2 2 2 21 1

... ...max min... ...ji

r r r r n n

r r n

α λ α λ α λ α λα α α α

+ +

+

⎛ ⎞⎛ ⎞+ + + + += ⎜ ⎟⎜ ⎟+ + + + +⎝ ⎠⎝ ⎠w

(275)

Operando de modo que aparezca el valor propio rλ :

2 2 2 21 1 1 1 1 1

2 2 2 21 1

( ) ... ( ) ( ) ... ( )max min... ...ji

r r r r r r r n r nr

r r n

α λ λ α λ λ α λ λ α λ λλα α α α

− − + +

+

⎛ ⎞⎛ ⎞− + + − + − + + −= −⎜ ⎟⎜ ⎟+ + + + +⎝ ⎠⎝ ⎠w

(276)

Las incógnitas de la minimización son ahora los αj, que están restringidos por la condición de que x sea ortogonal a los vectores wi:

0, 1,2,..., 1T Ti i j j i rα= = = −∑w x w x (277)

Los valores de αi deben minimizar el paréntesis interior de la expresión (276), a la vez que satisfacen las restricciones (277). La fracción, que tiene signo negativo (–), deberá ser lo mayor posible. Para ello, αr+1=...=αr=0, pues así se anulan los términos negativos (que restan) del numerador de la fracción. Los (r−1) valores de (α1, α2, ..., αr−1) se deben elegir

Page 67: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 57

de modo que se cumplan las (r−1) restricciones (277). Es evidente que R(x)<λr pues a λr se le está restando algo positi-vo. Sin embargo, para wi=xi, se cumple que α1=α2= ...=αr−1=0 y se alcanza la igualdad R(x)=λr. Con esto queda demos-trado el teorema maxi-min.

De forma análoga se puede demostrar en teorema mini-max.

Enunciado conjunto de los teoremas mini-max y maxi-min: El valor propio λr se puede obtener de las expresiones siguientes:

min max max min

2,..., 1 siendo 0, 1,2,..., ( 1)

i ii i

T T

r T T

Tir n i r

λ⊥⊥

⎛ ⎞ ⎛ ⎞⎛ ⎞ ⎛ ⎞= =⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠= − = = −

w x wx w w

x Ax x Axx x x x

x w

(278)

donde los wi son conjuntos de r vectores arbitrarios de Rn.

3.7.4 Interpretación geométrica de los teoremas mini-max y maxi-min La búsqueda de máximos y mínimos del cociente de Rayleigh se puede interpretar como la búsque-da de los puntos de un elipsoide que están a una distancia máxima y mínima de su centro (ver Figura 35). La restricción de ser perpendicular a un vector w obliga a buscar mínimos en la elipse que resulta de cortar el elipsoide con un plano perpendicular a dicho vector w. Se corta el elipsoide con muchos planos diferentes y se calcula el mínimo. El máximo de los mínimos es 2λ y se obtiene cuando w=x1.

Figura 35. Elipsoide en R3.

3.7.5 Propiedad de "separación" de los valores propios Si A(m) es la matriz que resulta de suprimir las últimas m filas y columnas de la matriz A, se cumple que los (n−m−1) valores propios de A(m+1) separan –están entre– los (n−m) valores propios de A(m). Demostración: Esta propiedad se va a demostrar para A y A(1). La matriz A(1) resulta de suprimir la última fila y co-lumna de A. Se trata de demostrar que se cumple la relación:

(1)1 1,2,..., 1r r r r nλ λ λ +≤ ≤ = − (279)

Considérense las tres caracterizaciones maxi-min siguientes:

1a) max min 0 1,2,...,

ii

TT

r iT i rλ + ⊥

⎛ ⎞= = =⎜ ⎟

⎝ ⎠x ww

x Ax x wx x

(280)

Page 68: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 58

(1) 0 1,2,...,b) max min

arbitrario para 1,2,..., 1 ii

TTi

r Ti r n

i ri r

λ⊥

⎧ = =⎛ ⎞= ⎨⎜ ⎟ = − =⎝ ⎠ ⎩x ww

x wx Axx x w w e

(281)

c) max min 0 1,2,..., 1ii

TT

r iT i rλ⊥

⎛ ⎞= = = −⎜ ⎟

⎝ ⎠x ww

x Ax x wx x

(282)

A más libertad para elegir los vectores wi se podrán encontrar mayores máximos de los mínimos. La condición a) deja más libertad para elegir los wi que b), luego (1)

1r rλ λ+ ≥ . La condición b) deja más libertad para elegir los wi que c), lue-go (1)

r rλ λ≥ .

3.8 Valores y vectores propios generalizados

3.8.1 Introducción a partir del problema estándar El problema generalizado se puede introducir a partir del problema de valores y vectores propios estándar: Supóngase que la matriz A∈Rn×n es simétrica. Sea el problema de valores y vectores pro-pios estándar, planteado en la forma:

λ=Ax x (283)

Sea C una matriz relacionada con A mediante la transformación de congruencia:

T=C P AP (284)

donde la matriz P es una matriz cuadrada no singular. La ley de inercia de Sylvester asegura que los valores propios de C tienen los mismos signos que los de A, aunque en general tendrán diferentes valores numéricos. Sean y y µ los vectores y valores propios de C:

, Tµ µ= =Cy y P APy y (285)

Haciendo x=Py, la ecuación (285) se puede poner en la forma:

( ) ( )1 11 1, , T T Tµ µ µ− −− − −= = ⇒ = = ⇒ ≡ =x Py y P x Ax P P x P P x B P P Ax Bx (286)

que es el llamado problema generalizado de valores y vectores propios.

Muchas de las propiedades del problema estándar del que se ha partido se conservan en el problema generalizado. Por ejemplo, si la matriz C es simétrica y semidefinida positiva sus valores propios serán reales y no negativos. Estas mismas características tienen los valores propios generalizados de A y B cuando A es simétrica y semidefinida positiva, y B es simétrica y definida positiva (lo debe ser por la forma en que ha aparecido a partir de P, según (286)).

3.8.2 Planteamiento del problema generalizado de valores y vectores propios

Este problema se plantea matricialmente mediante la siguiente ecuación en x y λ :

λ=Ax Bx (287)

donde A y B son ser simétricas y definidas positivas –al menos una de ellas, de ordinario B–. La expresión anterior se puede poner en la forma:

( )λ− =A B x 0 (288)

Para que exista una solución x distinta de la trivial, el valor propio λ deberá ser raíz del polinomio de grado n que resulta de desarrollar el determinante:

( )det 0λ− =A B (289)

Page 69: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 59

Propiedades del problema de valores y vectores propios generalizado:

− Es un problema no lineal en los valores propios λ y lineal en los vectores x.

− Siempre existirán n valores propios, que pueden ser reales o complejos según sean las matri-ces A y B.

− Los valores propios de multiplicidad m>1 tienen un subespacio propio asociado de dimen-sión ≤m. Todos los vectores en este subespacio propio son vectores propios.

− Los vectores propios pertenecen a Ker(A–λB) y no están unívocamente determinados: Si x es un vector propio, αx también lo es.

Este problema se considerará con menos generalidad que el problema estándar: se suele suponer que las matrices son reales y –casi siempre– simétricas y definidas positivas.

La interpretación geométrica de este problema generalizado se puede ver en la Figura 36.

Figura 36. Interpretación geométrica del problema generalizado de valores y vectores propios.

Se pueden hacer algunos comentarios sobre la Figura 36:

− En general, los vectores Ax y Bx no tiene la misma dirección que el vector x.

− Los vectores propios generalizados son vectores que se transforman en vectores de la mis-ma dirección con la matriz A que con la matriz B.

− El valor propio generalizado λ determina la diferencia en el cambio de longitud con una y otra matriz.

− La Figura 36 muestra un ejemplo en el que se observa la diferencia en cómo se transforma un vector cualquiera x y cómo se transforman dos vectores propios generalizados x1 y x2.

En algunos casos prácticos el problema generalizado surge cuando se alinean fuerzas de distinta naturaleza, por ejemplo en Mecánica cuando se alinean las fuerzas de inercia y las fuerzas elásticas.

3.8.3 Reducción del problema generalizado al problema estándar Supóngase el problema generalizado de valores y vectores propios:

λ=Ax Bx (290)

Se desea transformarlo a la forma estándar. Pre-multiplicando por la inversa de B se obtiene:

1 λ− =B Ax x (291)

2Bx2 2 2λ=Ax Bx

1 1 1λ=Ax Bx

1x

x

Ax

2x1Bx

Bx

Page 70: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 60

Este método, aunque válido, no es una forma práctica de resolver el problema porque se pierde la simetría y se hacen más complicados los cálculos.

De otra forma, si la matriz B es simétrica y definida positiva se puede factorizar como B=RTR (R no singular) y se tiene:

1

1 1

,

T

T T

λ λ

λ λ

− − −

= = ≡

= ⇒ =

Ax Bx R Rx y Rx x = R yAR y R y R AR y y

(292)

Consecuencias:

− Si A y B son simétricas, la nueva matriz también lo es y los valores propios serán reales.

− Los valores propios del problema generalizado tienen los mismos signos que los valores propios de A (por la ley de inercia de Sylvester)

− Si A y B son simétricas, los vectores propios correspondientes a valores propios distintos son ortogonales respecto a dichas matrices:

( )1 1 1 2 1 1 2 1 2 11 2 2 1

2 2 2 1 2 2 1 2 2 1

0 0

0

T T TT

T T T

λ λλ λ

λ λ⎫ ⎫ ⎧= = =

− =⎬ ⎬ ⎨= = =⎭ ⎭ ⎩

Ax Bx x Ax x Bx x Bxx Bx

Ax Bx x Ax x Bx x Ax (293)

− Los vectores propios se suelen normalizar respecto a la matriz B:

1Ti i =x Bx (294)

− Como consecuencia, la matriz P cuyas columnas son los vectores propios, diagonaliza por congruencia las matrices A y B simultáneamente:

; T T= =P AP D P BP I (295)

− Introduciendo el cambio de variables x=Py y pre-multiplicando por PT la ecuación de valo-res y vectores propios se reduce a forma diagonal:

, T Tλ λ λ= ≡ ⇒ = ⇒ =Ax Bx x Py P APy P BPy Dy y (296)

− Obsérvese que la matriz de vectores propios P no es una matriz ortogonal puesto que PTP≠I. Para calcular la inversa de la matriz P (que no es PT) se puede proceder así:

1 1 1 T T T− − −= ⇒ = ⇒ =P BP I P BPP IP P P B (297)

− Desplazamiento de los valores propios. Si se sustituye la matriz A por A–αB, los valores propios λ pasan a ser (λ–α):

( ) ( ) ( ); ; α α α α= − = − − = −AP BPD A B P BPD BP A B P BP D I (298)

− Los valores propios no cambian ante una transformación de congruencia aplicada a ambas matrices A y B. La ecuación de los valores y vectores propios es:

λ=Ax Bx (299)

Introduciendo la transformación x=Cy y premultiplicando por CT

T Tλ=C ACy C BCy (300)

de donde se deduce que λ es un valor propio de las matrices CTAC y CTBC asociado con el vector propio y.

Page 71: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Valores y vectores propios pág. 61

− Valores propios cuando A tiene rango menor que n. En este caso los vectores de Ker(A) son vectores propios generalizados asociados con λ=0. Esto sucede cuando la matriz A es sólo semidefinida positiva.

− Si es la matriz B la que tiene rango menor que n, los vectores de Ker(B) son vectores pro-pios asociados con valor propio infinito: λ=∞.

− El papel de las matrices A y B puede intercambiarse escribiendo:

1 λ λ −= ⇔ =Ax Bx Bx Ax (301)

3.8.4 Cociente de Rayleigh para Ax=λBx El cociente de Rayleigh para el problema generalizado se define en la forma:

( )T

TR =x Axxx Bx

(302)

Propiedades:

− Derivando respecto a x para imponer la condición de valor estacionario:

( ) ( )( ) 2 T T T

T TR −∇ = = ⇒ − =

x Bx Ax x Ax Bx x Axx 0 Ax Bx 0x Bx x Bx

(303)

de donde se deduce que los valores estacionarios se obtienen cuando x es un vector propio, en cuyo caso el cociente de Rayleigh es el valor propio correspondiente.

− Si las matrices A y B son simétricas y definidas-positivas

o Todos los valores propios son reales y mayores que cero.

o El mínimo se obtiene para el valor propio más pequeño λ1 y el máximo para el valor propio más grande λn.

o El caso de las matrices de rango menor que n se deduce fácilmente.

− Cálculo de valores y vectores propios. Si se conoce:

o el valor propio, el vector propio se calcula resolviendo (A–λiB)xi=0 y normalizando.

o el vector propio, el valor propio se puede calcular con el cociente de Rayleigh.

− Existen también versiones de los teoremas mini-max y maxi-min para este problema.

3.8.5 Convergencia a otros valores propios. Técnicas de deflacción matricial Para calcular el k-ésimo valor propio se itera con un vector B-ortogonal a los k–1 vectores propios ya calculados (esta condición se impone en cada paso).

( )1

1

k Tk k j k jj

== − ∑z z x Bz x (304)

También puede obtenerse la convergencia a otros valores y vectores propios mediante una trans-formación de congruencia. Supóngase calculado x1 y 1λ ; sea S una matriz tal que:

[ ]1 2 3 ... n=S x s s s (305)

donde x1 es como se ha dicho un vector propio ya calculado, y s2, ..., sn son vectores linealmente independientes de x1 y entre sí. Teniendo en cuenta que PTAP=D y PTBP=I:

Page 72: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 62

1

1 1

0 0 1 0 0

0 0

0 0

T T

λ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

S AS S BSA B

(306)

Resulta que las matrices A1 y B1 ampliadas tienen los mismos valores propios que A y B, pues se relacionan con éstas a través de una transformación de congruencia. Además, tienen una fila y co-lumna menos. Con transformaciones de este tipo se pueden calcular valores propios distintos de los ya calculados.

Page 73: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 63

4. Factorizaciones de una matriz 4.1 Factorización LU

4.1.1 Ejemplo de factorización LU directa Para una matriz cuadrada de rango r=n la eliminación de Gauss llega al siguiente resultado (ver apartado 2.5.2):

11 12 13 14 11 12 13 14

21 22 23 24 21 22 23 24

31 32 33 34 31 32 33 34

41 42 43 44 41 42 43 44

1 0 0 01 0 0 0

; 1 0 0 0

1 0 0 0

a a a a u u u ua a a a l u u ua a a a l l u ua a a a l l l u

⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥= =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥

⎣ ⎦⎣ ⎦ ⎣ ⎦

A LU (307)

Exactamente a este mismo resultado se puede llegar por identificación directa de elementos, con el mismo nº de operaciones aritméticas, pero con una secuencia más favorable. Considérense los pasos siguientes:

1. A partir de la primera fila de A: 1 1 1,2,...,j ju a j n= = (308)

2. A partir de la primera columna de A: 1 1 11 1 1 11; = / 2,3,...j j j ja l u l a u j n= = (309)

3. A partir de la segunda fila de A, los elementos de la segunda fila de U:

12 12 21 1 2 2 2 21 1 2

11

1 ; 2,...,jj j j j j j j

u ua l u u u a l u a j n

u= + ⋅ = − = − = (310)

4. A partir de la segunda columna de A, los elementos de la segunda columna de L:

( )2 1 12 2 22 2 2 1 1222

1; 3,...,j j j j j ja l u l u l a l u j nu

= + = − = (311)

5. Para la tercera fila y columna de A:

− Elemento de la diagonal:

33 31 13 32 23 33 33 33 31 13 32 231 a l u l u u u a l u l u= + + ⋅ = − − (312)

− Resto de los elementos de la 3ª fila:

34 31 14 32 24 34 34 34 31 14 32 24 a l u l u u u a l u l u= + + = − − (313)

− Resto de los elementos de la 3ª columna:

( )43 41 13 42 23 43 33 43 43 41 13 42 2333

1 a l u l u l u l a l u l uu

= + + = − − (314)

6. Para el último elemento de la diagonal:

44 41 14 42 24 43 34 44 44 44 41 14 42 24 43 341 a l u l u l u u u a l u l u l u= + + + ⋅ = − − − (315)

Page 74: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 64

4.1.2 Fórmulas generales para la factorización LU La Figura 37 muestra esquemáticamente la factorización directa A=LU en un estado intermedio. Se supone que, utilizando los elementos de las partes rayadas de A, se han calculado ya las correspon-dientes partes rayadas de las matrices L y U. En el siguiente paso se van a calcular la columna i de L y la fila i de U, utilizando las correspondientes fila y columna de la matriz A (marcadas con línea gruesa en la Figura). Hay que recordar que los elementos de la diagonal de L son unos.

Figura 37. Estado intermedio de la factorización A=LU.

Para calcular los elementos marcados (columna i de L y fila i de U, a partir de la diagonal) se pro-cede del siguiente modo:

1. A partir de aii se calcula el elemento de la diagonal uii:

1 1

1 1

i i

ii ik ki ii ii ii ik kik k

a l u u u a l u− −

= =

= + ⇒ = −∑ ∑ (316)

2. A partir de aij (j=i+1, …, n) se calculan los elementos de la fila i de U:

1 1

1 1 , 1,...,

i i

ij ik kj ij ij ij ik kjk k

a l u u u a l u j i n− −

= =

= + ⇒ = − = +∑ ∑ (317)

3. A partir de aji (j=i+1, …, n) se calculan los elementos de la columna i de L:

1 1

1 1

1 , 1,...,i i

ji jk ki ji ii ji ji jk kik kii

a l u l u l a l u j i nu

− −

= =

⎛ ⎞= + ⇒ = − = +⎜ ⎟⎝ ⎠

∑ ∑ (318)

Las operaciones indicadas por las ecuaciones (316)-(318) presentan las siguientes ventajas respecto a la eliminación de Gauss:

1. Están fundamentalmente basadas en el producto escalar de vectores (fila de L por co-lumna de U), operación que se realiza de un modo muy eficiente en un computador.

2. Los elementos de las matrices L y U alcanzan su valor definitivo de una vez, sin resulta-dos intermedios. De esta forma se minimiza el trasiego de datos entre el procesador y los distintos niveles de la memoria del ordenador. Téngase en cuenta que en los ordenadores modernos el acceso a memoria es tan costoso o más que las propias operaciones aritmé-ticas. En relación con lo que se acaba de decir, todos los datos que se utilizan a la dere-cha de la igualdad en las expresiones (316)-(318) tienen ya su valor definitivo, por lo que pueden ser accedidos con operaciones de sólo-lectura y hacer un uso muy eficiente de las memorias intermedias del procesador (memorias cache).

4.1.3 Factorización LU con matrices simétricas Si la matriz A es simétrica las expresiones de lij y de uji coinciden, excepto en que los elementos lij están divididos por los uii. Se puede escribir entonces la factorización en la forma:

=0

0

Page 75: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 65

T= =A LU LDL (319)

Hay dos posibilidades para almacenar los resultados de la factorización:

1. Almacenar U en la matriz resultado en su posición habitual, incluyendo su diagonal. Se puede recuperar L fácilmente dividiendo las filas de U por el elemento de la diagonal y trasponiendo.

2. Almacenar D en la diagonal de la matriz resultado y LT en la mitad superior. En este ca-so, las filas de U se guardan ya divididas por el elemento de la diagonal.

Los cálculos pueden hacerse por filas o por columnas. A continua-ción se desarrollará con detalle el cálculo por filas, basándose en la representación simbólica de la matriz de la Figura 38.

En el cálculo por filas se supone que la parte rayada está ya calcu-lada. Se van a calcular los elementos de la fila i de LT y el elemento de la diagonal de D (o de U). Se parte de las expresiones (316)-(318) y se tiene en cuenta la relación existente entre los elementos de U y los de LT y D.

En primer lugar se calcula el elemento de la diagonal dii, distin-guiendo según las dos formas de almacenar los resultados:

21 1 1

1 1 1

i i iki ki

ii ii ik ki ii ki iik k kkk kk

u ud a l u a u au u

− − −

= = =

= − = − = −∑ ∑ ∑ (320)

( )1 1 2

1 1

i iT T T

ii ii ki ki kk ii ki kkk k

d a l l d a l d− −

= =

= − = −∑ ∑ (321)

El cálculo de los elementos de la fila i (con línea gruesa en la Figura 38) recuerda al producto esca-lar de la columna i por la columna j, excepto que cada sumando está dividido (o multiplicado) por el elemento de la diagonal. Estas divisiones restan eficiencia a los cálculos. Calculando U:

1 1

1 1

, 1,...,i i

ki kjij ij ik kj ij

k k kk

u uu a l u a j i n

u

− −

= =

= − = − = +∑ ∑ (322)

Si se almacena LT, es decir, los elementos de U divididos por el elemento de la diagonal:

1 1

1 1

1 1 , 1,...,i i

T T Tij ij ik kj ij ki kj kk

k kii ii

l a l u a l l d j i nd d

− −

= =

⎛ ⎞ ⎛ ⎞= − = − = +⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠

∑ ∑ (323)

El algoritmo puede modificarse para resolver la dificultad de tener que dividir (o multiplicar) por el elemento de la diagonal, al mismo tiempo que se vectoriza. La clave está en construir un vector auxiliar v cuyos elementos son los de la columna i de LT multiplicados cada uno de ellos por el correspondiente elemento de la diagonal. Las expresiones (321) y (323) se transforman en:

1 1

1 1

i iT T T

ii ii ki ki kk ii ki kk k

d a l l d a l v− −

= =

= − = −∑ ∑ (324)

1 1

1 1

1 1 , 1,...,i i

T T T Tij ij ki kj kk ij kj k

k kii ii

l a l l d a l v j i nd d

− −

= =

⎛ ⎞ ⎛ ⎞= − = − = +⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠

∑ ∑ (325)

La factorización LU, almacenando D y LT sobre la propia matriz A y utilizando las ecuaciones (324) y (325), puede programarse en Matlab como se muestra a continuación:

Figura 38. Factorización LDLT de una matriz simétrica.

i j

Page 76: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 66

function [D,Lt]=LUsim(A) n=size(A,1); % primera fila de L' for j=2:n A(1,j)=A(1,j)/A(1,1); end for i=2:n % se forma el vector auxiliar v for k=1:i-1; v(k)=A(k,i)*A(k,k); end % cálculo del elemento diagonal for k=1:i-1 A(i,i)=A(i,i)-v(k)*A(k,i); end % cálculo del resto de la fila i for j=i+1:n for k=1:i-1 A(i,j)=A(i,j)-v(k)*A(k,j); end A(i,j)=A(i,j)/A(i,i); end end D=diag(A); Lt=eye(n)+triu(A,1);

4.1.4 Factorización LU vectorizada Al igual que en el apartado anterior, el resultado contendrá la matriz D y la matriz LT almacenadas sobre la matriz A original. Las expresiones utilizadas son las mismas que en el programa anterior.

El programa de factorización puede ser como sigue (sólo dos bucles for): function [d,Lt]=LUsimVect1(A) % se guardan D y L' (A=L*D*L') n=size(A,1); v=zeros(n,1); d=zeros(n,1); d(1)=A(1,1); % se divide la fila 1 por A(1,1) A(1,2:n)=A(1,2:n)/A(1,1); for i=2:n % vector auxiliar v(1:i-1)=A(1:i-1,i).*d(1:i-1); % elemento diagonal fila i dii=A(i,i); dii=dii-v(1:i-1)'*A(1:i-1,i); d(i)=dii; A(i,i)=dii; % cálculo del resto de la fila i for j=i+1:n A(i,j)=(A(i,j)-v(1:i-1)'*A(1:i-1,j))/dii; end end Lt=eye(n)+triu(A,1);

La vectorización del algoritmo de factorización directa puede llegar aún más lejos: El siguiente pro-grama de Matlab calcula la factorización LU utilizando doble vectorización (con un solo bucle for):

function [d,Lt]=LUsimVect2(A) % se guardan D y L' (A=L*D*L') n=size(A,1); v=zeros(n,1); d=zeros(n,1); d(1)=A(1,1); % primera fila de L' A(1,2:n)=A(1,2:n)/A(1,1);

Page 77: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 67

% restantes filas for i=2:n % vector auxiliar: columna i dividida diagonal v(1:i-1)=A(1:i-1,i).*d(1:i-1); % elemento de la diagonal dii=A(i,i); dii=dii-v(1:i-1)'*A(1:i-1,i); A(i,i)=dii; d(i)=dii; % resto de la fila i A(i,i+1:n)=(A(i,i+1:n)-v(1:i-1)'*A(1:i-1,i+1:n))/dii; end Lt=eye(n)+triu(A,1);

Para ofrecer una idea de la eficiencia de la vectorización y de los propios ficheros *.m de Matlab, se ha construido y ejecutado una función comparativa que llama a las funciones anteriores y a la fun-ción lu() de Matlab. Los resultados obtenidos con un procesador Intel Pentium 4 a 3 Ghz han sido los siguientes (tiempo en segundos):

n LUsim LUsimVect1 LUsimVect2 lu() 250 0.2190 0.5470 0.0470 0.0160 500 1.5940 2.4840 0.3280 0.0620

1000 12.2810 11.4380 3.4220 0.4060

Hay que tener en cuenta que se ha utilizado la versión 6.5 de Matlab, que incorpora un JIT (Just-In-Time) Accelerator. Los resultados de esta tabla muestran que el acelerador JIT consigue que el código normal sea más rápido que la vectorización simple, aunque no tan rápido como la vectoriza-ción doble. La función lu() de Matlab, escrita en Fortran ó C y compilada, es en cualquier caso mu-cho más rápida que cualquiera de los ficheros *.m.

4.1.5 Factorización de Choleski Esta factorización se aplica a matrices simétricas y definidas positivas, pues hace falta que esté garantizado el que todos los pivots sean positivos. Está basada en la siguiente expresión:

1/ 2 1/ 2T T T= = =A = LU LDL LD D L LL (326)

Si se trabaja con L y con la parte inferior de A, las expresiones son las siguientes:

− Elemento de la diagonal:

1

1 1 22 2 2

1 1 1

i i i

Tii ik ki ik ii ii ii ik

k k k

a l l l l l a l− −

= = =

⎛ ⎞= = + ⇒ = −⎜ ⎟

⎝ ⎠∑ ∑ ∑ (327)

− Restantes elementos de la columna i:

1 1

1 1 1

1 i i i

Tji jk ki jk ik ji ii ji ji jk ik

k k kii

a l l l l l l l a l ll

− −

= = =

⎛ ⎞= = + ⇒ = −⎜ ⎟⎝ ⎠

∑ ∑ ∑ (328)

La factorización de Choleski requiere un código muy similar al visto anteriormente.

4.2 Factorización QR

4.2.1 Factorización QR por Gram-Schmidt El método de ortogonalización de Gram-Schmidt fue ya considerado en el apartado 1.2.4. Ahora se va a utilizar para pasar de una matriz cuadrada A, de tamaño n×n, cuyas columnas son independien-tes, a una matriz ortogonal Q:

Page 78: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 68

[ ] [ ]1 2 1 2 n n= ⇒ =A a a a Q q q q (329)

Recuérdese que [ ] [ ]1 2 1 2, ,..., , ,...,k kL L=a a a q q q , es decir, que las k primeras columnas de A gene-ral el mismo subespacio que las k primeras columnas de Q. Según esto, cada vector ai sólo tiene componentes en los i primeros vectores ortonormales q, es decir:

( )( ) ( )( ) ( ) ( )

1 1 1 1

2 1 2 1 2 2 2

3 1 3 1 2 3 2 3 3 3

T

T T

T T T

=

= +

= + +

a q a q

a q a q q a q

a q a q q a q q a q

(330)

Las ecuaciones (330) indican que las matrices A y Q se relacionan a través de una matriz triangular superior R, que es cuadrada n×n e invertible:

[ ] [ ]1 1 1 2 1

2 2 21 2 1 2

0

0 0

T T Tn

T Tn

n n

Tn n

⎡ ⎤⎢ ⎥⎢ ⎥= =⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

q a q a q aq a q a

a a a q q q A QR

q a

(331)

La factorización QR suele aplicarse de modo que todos los elementos de la diagonal de R sean posi-tivos (la función qr() de Matlab sin embargo, no cumple esta condición). La fila i de Q representa las componentes de todas las columnas de A según el vector qi de la base ortonormal. La columna j de R representa las componentes de aj en los vectores de la base ortonormal. Como se verá a conti-nuación, esta factorización mantiene pleno sentido aunque el número de columnas de A sea inferior al número de filas.

El método de Gram-Schmidt se suele aplicar según el llamado algoritmo modificado, que utiliza una secuencia de operaciones diferente a la convencional. En el algoritmo modificado, tan pronto como se halla un vector de la base ortonormal qi se hacen ortogonales respecto a él todos los vecto-res aj, j=i+1,...,n. Las expresiones correspondientes son las siguientes:

( )( )

( )

1 1 1 1 1

2 2 2 2 2

2,3,...,

3, 4,...,

...

1,...,

Tj j j

Tj j j

Ti i i j j i j i

j n

j n

j i n

= = − =

= = − =

= = − = +

q a a a a q a q

q a a a a q a q

q a a a a q a q

(332)

4.2.2 Factorización QR de matrices rectangulares Considérese una matriz rectangular A, de tamaño m×n (m>n). Se puede obtener una matriz Q, tam-bién m×n, cuyas columnas son ortonormales y generan el mismo subespacio de Rm que las de A.

Las fórmulas anteriores (330) y (331) se aplican también en este caso. La matriz Q es m×n, pero la matriz R es cuadrada n×n. A esta factorización se le llama factorización QR incompleta, porque las columnas de Q no constituyen una base completa de Rm (en este caso Q no es una matriz ortogo-nal, sino lo que se llamó matriz de columnas ortogonales).

La factorización QR completa obtiene una matriz Q ortonormal (m×m) aunque la matriz A sea rec-tangular, añadiendo a la matriz R tantas filas de ceros como columnas se han añadido a Q (la Figura 39 representa gráficamente la factorización QR completa de una matriz rectangular):

Page 79: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 69

[ ] [ ]

1 1 1 2 1

2 2 2

1 2 1 2 1

0

0 00 0 0

0 0 0

T T Tn

T Tn

Tn n n m n n+

⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥

= ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

q a q a q aq a q a

a a a q q q q q q a (333)

Figura 39. Factorización QR completa de una matriz rectangular.

La factorización QR se puede utilizar para resolver sistemas de ecuaciones lineales. En sí es más cara que la factorización LU, pero es más estable y es ventajosa siempre que por algún motivo se disponga ya de ella. Con la factorización QR la resolución de un sistema de ecuaciones lineales se reduce a un producto por QT y a una vuelta atrás con una matriz triangular superior:

1 T −= ⎫= = = ⇒ = ⇒ =⎬= ⎭Rx yAx b A QR QRx b y Q b x R yQy b

(334)

En el caso de las ecuaciones normales propias del método de los mínimos cuadrados su aplicación es mucho más ventajosa, porque las ecuaciones normales suelen tener números de condición altos. En este caso se llega a:

T T T T T T= = = =Ax b A Ax A b A QR R Q QRx R Q b (335)

y como Q es ortogonal y R triangular superior e invertible, la ecuación final es muy fácil de resol-ver

T T T T= ⇒ =R Rx R Q b Rx Q b (336)

A continuación se incluye una función de Matlab para la factorización QR incompleta mediante el método de Gram-Schmidt modificado

function [Q,R]=QRgsmod(A) % Factorización QR (G.-S. modificado) [m,n]=size(Q); R=zeros(n,n); for k=1:n % norma de la columna k R(k,k)=norm(Q(:,k)); % se normaliza la columna k Q(:,k)=Q(:,k)/R(k,k); % Se elimina la columna k de las siguientes columnas for j=k+1:n R(k,j)=Q(:,k)'*Q(:,j); Q(:,j)=Q(:,j)-Q(:,k)*R(k,j); end end

A Q R

0=

Page 80: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 70

4.2.3 Factorización QR mediante matrices de Householder La factorización QR puede hacerse también por medio de transformaciones de Householder, de modo aún más estable que con Gram-Schmidt. Además este método es más adecuado cuando se desea obtener la factorización QR completa.

En el apartado 1.7.5 se vio que pre-multiplicando por matrices de Householder se pueden hacer ceros por debajo de la diagonal principal en todas las columnas de una matriz rectangular A:

1 2 1...n− =U U U A R (337)

Cada matriz Uj tiene las (j–1) primeras filas y columnas iguales a las de la matriz identidad Im. Los restantes elementos contienen una matriz de simetría de Householder que responde a la expresión:

12 , T

TT β= − = − = −

vvH I I vv v x x ev v

(338)

siendo x el vector cuyas componentes 2, 3, ..., n se quiere anular.

Pre-multiplicando la expresión (337) por las inversas de las matrices de simetría Ui y teniendo en cuenta que el producto de matrices unitarias es también unitaria:

1 1 11 2 1 1 2 1 1 2 1... ... , ...n n n− − −

− − −= = = ≡A U U U R U U U R QR Q U U U (339)

No es necesario formar explícitamente las matrices Ui y menos aún realizar los productos de matri-ces que aparecen en las expresiones anteriores. La matriz Hi se puede calcular mediante la expre-sión (338) a partir del vector v cuando se necesite, pero para hacer un producto HA basta disponer del vector v, como se explicó en el apartado 1.7.6:

( ) ( )TT T Tβ β β= − = − = −HA I vv A A vv A A v A v

Por otra parte, el vector v se puede calcular a partir de x mediante la función householder.m, expli-cada en el apartado 1.7.5. Con este método, aunque la matriz A sea rectangular (m>n), se obtiene la factorización QR completa.

A continuación se muestra un programa de Matlab para hacer la factorización QR por Householder. % QR por el método de Householder function [Q,R]=QRhouse(A) [m,n]=size(A); if m<n, disp('m no puede ser menor que n'), exit, end R=zeros(n,n); Q=eye(m); beta=zeros(n,1); for j=1:n % crear el vector de Householder if j<m [v,beta(j)]=householder(A(j:m,j)); % actualizar la matriz H A(j:m,j:n)=(A(j:m,j:n)-beta(j)*v(1:m-j+1)*(v(1:m-j+1)'*A(j:m,j:n))); % almacenar v en los ceros hechos en la matriz A A(j+1:m,j)=v(2:m-j+1); end end % Q y R no se guardan explícitamente % Para obtener Q se puede multiplicar I(n,n) por la secuencia de transformaciones % Q=H1*H2*...*Hn-1*I % Q=I; Q=Hj*Q; j=n-1:-1:1

Page 81: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 71

for j=n:-1:1 % se extrae v de H, añadiendo el "1" v(j:m)=[1;A(j+1:m,j)]; % se aplica la fórmula H*Q=Q-v*w'; % donde w=beta*Q'*v; Q(j:m,j:m)=(eye(m-j+1)-beta(j)*v(j:m)*v(j:m)')*Q(j:m,j:m); end % R está en la parte superior de A R=[triu(A(1:n,1:n)); zeros(m-n,n)];

4.2.4 Factorización QR mediante rotaciones de Givens Las matrices de simetría de Householder permiten hacer ceros en una columna, debajo de la diago-nal, en un solo producto matricial. Las matrices de rotación de Givens, vistas en el apartado 1.6.3, sólo introducen un cero en cada producto matricial. Las matrices de Givens son también ortogona-les y más sencillas que las de Householder, pero en general no resultan rentables para hacer en mu-chos pasos los ceros que las matrices de Householder hacen en uno solo.

Sin embargo, las matrices de Givens se aplican con ventajas respecto a las de Householder en todos aquellos casos en los que se trata de hacer ceros selectivamente, es decir, en sólo unos pocos ele-mentos debajo de la diagonal. Tal sucede por ejemplo en las matrices tridiagonales o con forma de Hessenberg, como las que se muestran en la Figura 40. Para anular los elementos de debajo de la diagonal de estas matrices hay que aplicar (n–1) rotaciones de Givens, exactamente el mismo núme-ro que simetrías de Householder.

* * 0 0 0 * * * * *

* * * 0 0 * * * * *

, 0 * * * 0 0 * * * *

0 0 * * * 0 0 * * *

0 0 0 * * 0 0 0 * *

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

Figura 40. Matrices simétrica y con forma de Hessenberg.

La factorización QR se deduce fácilmente a partir de las rotaciones de Givens que convierten A en una matriz triangular superior R. En general:

, 1 2 32 1 31 21 21 31 1 32 2 , 1

21 31 1 32 2 , 1

T T T T T Tn n n n n n n n

T T T T T Tn n n n

− −

= ⇒ =

G G G G G G A R A = G G G G G G R QR

Q G G G G G G (340)

4.3 Descomposición espectral de matrices normales Sea ∈ n×nA R una matriz normal. Toda matriz normal –por tanto unitariamente diagonalizable– admite una descomposición espectral en la forma:

[ ]1 1

1

Hn

H Hn k k k

kHn n

λλ

λ =

⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥= =⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦

∑1

uA = UDU u u u u

u (341)

En el caso de que haya valores propios múltiples, es posible agrupar en una matriz Pi las im matri-ces de rango 1 asociadas con el valor propio iλ . En este caso, la descomposición espectral se expre-sa en la forma:

Page 82: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 72

( )

1 1 2

1

1 21 1 1 1

1 1 2 2 1 2

...

... ...s

m m mn nT T T T T

k k k k k k k s k kk k k m k n m

s s sm m m n

λ λ λ λ

λ λ λ

+

= = = + = − +

= = + + + =

= + + + + + + =

∑ ∑ ∑ ∑A = UDU u u u u u u u u

P P P (342)

Las matrices Pi son matrices de proyección ortogonal sobre los subespacios propios, pues son si-métricas e idempotentes. La simetría es evidente, pues cada Pi es una suma de matrices simétricas. La idempotencia se demuestra también fácilmente:

2 q q q q q q qT T T T T Ti i i j j i i j j i ij j i i ii p j p i p j p i p j p i p

δ= = = = = = =

= = = = =∑ ∑ ∑ ∑ ∑ ∑ ∑P u u u u u u u u u u u u P (343)

Se verifican además las siguientes propiedades:

( ) ( )0 siempre

q s q sT T T Ti j m m k k m m k km p k r m p k r

q s q sT T Tm m k k m mk km p k r m p k r

m kδ

= = = =

= = = =

= = =

= = = ≠

∑ ∑ ∑ ∑∑ ∑ ∑ ∑

P P u u u u u u u u

u u u u u u (344)

( ) ( )1 1 s q q q sT T

j i i i i i i jj i p i p i p jα

= = = = == = = = ⇒ =∑ ∑ ∑ ∑ ∑P x u u x u u x u x P I (345)

La expresión (345) indica que la suma de todas las matrices Pi es la matriz identidad I, pues cual-quier vector x se puede expresar como suma directa de sus componentes en la base ui.

4.4 Descomposición de valores singulares (DVS) Para todas las matrices normales n×n existe una matriz unitaria U tal que A se puede factorizar mediante la descomposición espectral (ver apartado 4.3): H=A UDU (346)

donde las columnas de U son los vectores propios de A. Si la matriz A no es cuadrada, no tiene vec-tores propios ni descomposición espectral. Sin embargo, para toda matriz real m×n siempre existe una factorización análoga a la espectral en la forma: H=A UΣV (347)

donde U y V son matrices unitarias (ortogonales, en casi todas las aplicaciones de este curso) de tamaño m×m y n×n, respectivamente, y Σ es una matriz diagonal de tamaño m×n cuyos elementos son tales que σii>0 (i=1,2,...,r) y σii=0 (i>r), siendo r el rango de la matriz A.

Es habitual considerar los valores singulares ordenados de mayor a menor:

( )1 2 1... ... 0, min ,r r p p m nσ σ σ σ σ+≥ ≥ ≥ > = = = = (348)

en cuyo caso las columnas de U y V deben estar ordenadas de modo acorde.

La forma de estas matrices se puede ver gráficamente en la Figura 41, que distingue los casos en que A tenga más o menos filas que columnas.

Figura 41. Descomposición de valores singulares de una matriz con menos y más filas que columnas.

A U Σ VH

= A U Σ

VH

=

Page 83: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 73

A esta factorización se le llama "Descomposición de Valores Singulares o DVS" (Singular Value Decomposition o SVD, en inglés) y tiene aplicaciones muy importantes en ingeniería, tanto teóricas como prácticas. En lo sucesivo se considerarán exclusivamente matrices A reales, por lo que se hará referencia a matrices ortogonales.

4.4.1 Cálculo y existencia de la DVS

Sea ∈ m×nA R . La prueba de la existencia de la DVS va a ser de tipo constructivo, es decir, se de-mostrará que existe definiendo un proceso que permite calcularla.

La matriz ATA es simétrica y –al menos– semi-definida positiva. Por tanto tiene n vectores propios ortogonales vi que pueden formar las columnas de la matriz ortogonal ∈ n×nV R :

( ) T Ti i i nλ= =A Av v A A V VD (349)

Los valores propios λi son no-negativos. Multiplicando la expresión (349) por Tiv , λi se puede ex-

presar en la forma (cociente de Rayleigh):

2= T T T T Ti i i i i i i i i iλ λ λ= = =v A Av v v v A Av Av (350)

Si A tiene rango r la matriz ATA tendrá también rango r (pues Ker(A)=Ker(ATA)). Habrá r valores propios λi mayores que cero y n–r valores propios nulos.

Se definen ahora el valor singular σj y el vector singular uj (uj∈Rm) en la forma:

, ; 1, 2,...,j j j j j j rσ λ σ≡ + ≡ =u Av (351)

Los vectores uj así formados constituyen un sistema ortonormal en el espacio Rm. En efecto:

2 1, 1, 2,...,

0 ,

T T Tj j j j j j j

T T T Ti j i j i j j i j i j

j r

i j

σ λ λ

σ σ λ σ σ

= = = =

= = = ≠

u u v A Av

u u v A Av v v (352)

Los r vectores ortogonales uj se pueden completar por el teorema de la base incompleta (y el méto-do de Gram-Schmidt) con otros (m–r) vectores ortogonales, hasta constituir una base de Rm. Este sistema ampliado de m vectores ortogonales uj constituyen las columnas de la matriz ortogonal

∈ m×mU R .

Se pretende demostrar la existencia de la DVS (A=UΣVT), pero para ello se estudiará en primer lugar el producto UTAV. El elemento (i,j) de este producto matricial tiene como valor:

( ) = si , por la definición de 0 si , pues 0

T T Ti j i j j ij j jij

j

j rj r

σ δ σ= = ≤= > =

U AV u Av u u uAv

(353)

En definitiva, el producto UTAV es igual a una matriz Σ, de tamaño m×n, que sólo tiene distintos de cero los r primeros elementos de la diagonal. Estos elementos son los valores singulares σj. Se ha demostrado pues que existen unas matrices ortogonales U y V que diagonalizan a la matriz A:

T =U AV Σ (354)

Como las matrices U y V son ortogonales y por tanto invertibles, se puede escribir:

( )min ,

1

m nT Ti i ii

σ=

= = ∑A UΣV u v (355)

Page 84: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 74

que es la expresión de la descomposición de valores singulares (DVS). Los vectores jv y ju son, respectivamente, los vectores singulares por la derecha y por la izquierda de la matriz A:

, 1, 2,...,Hj j j j j j j rσ σ= = =Av u A u v (356)

Como no se ha presupuesto ninguna condición para la matriz A, la DVS existe para cualquier ma-triz rectangular, cualquiera que sea su rango r. La DVS tiene propiedades muy importantes, deri-vadas de la ortogonalidad de las matrices U y V, y del carácter no negativo de los valores singula-res σj.

4.4.2 Propiedades de las matrices U y V

Las matrices ortogonales U y V que aparecen en la descomposición de valores singulares A=UΣVT tienen –entre otras– las siguientes propiedades:

1. Las columnas de U son vectores propios de AAT

T T T T T T Tm= = =AA UΣV VΣ U UΣΣ U UD U (357)

2. Las columnas de V son vectores propios de ATA

T T T T T T Tn= = =A A VΣ U UΣV VΣ ΣV VD V (358)

3. Tanto AAT como ATA tienen los mismos valores propios no nulos, lo que deduce de la relación de Dm y Dn con ΣΣT y ΣTΣ, respectivamente.

4. Relación de las matrices U y V con los subespacios de A:

o Las columnas 1 a r de U son una base ortonormal de Im(A)

o Las columnas r+1 a m de U son una base ortonormal de Ker(AT)

o Las columnas 1 a r de V son una base ortonormal de Im(AT)

o Las columnas r+1 a n de V son una base ortonormal de Ker(A)

Las propiedades anteriores se deducen de las relaciones siguientes:

o Ker(ATA)=Ker(A), pues si Ax=0 también se verifica ATAx=0 y si ATAx=0 se verifi-ca que xTATAx=(Ax)TAx=0, luego Ax=0.

o Im(ATA)=Im(AT), pues ambos son los espacios ortogonales complementarios de Ker(ATA) y Ker(A) en Rn.

o Análogamente, Ker(AAT)=Ker(AT), Im(ATA)=Im(A) y Im(AAT)=Im(A)

4.4.3 Cálculo de la DVS Las propiedades 1. y 2. del apartado anterior no son suficientes por sí mismas para determinar las matrices U y V, puesto que los vectores propios de una matriz no están unívocamente determinados (por ejemplo, si uj es vector propio de AAT, el vector –uj también lo es; si hay valores propios múl-tiples lo que está determinado es el subespacio propio correspondiente, pero no una base ortonor-mada de dicho subespacio). Las matrices U y V deben calcularse de modo que sean compatibles entre sí, según la expresión (351), que también se puede escribir en la forma:

=AV UΣ (359)

Para calcular las matrices U, V y Σ se puede proceder del siguiente modo:

1. Se calculan las matrices V y Σ resolviendo el problema de valores y vectores propios:

Page 85: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 75

, , 1,2,...,Tn i iid i rσ= = =A AV VD (360)

2. Ahora se calcula una matriz U compatible con la V ya calculada por medio de la ecuación (359). Esta ecuación sólo permite calcular directamente las r primeras columnas de U, pues son las que están multiplicadas por un valor singular distinto de cero. Las m–r columnas res-tantes se calculan simplemente completando una base ortonormal de Rm.

De forma análoga, es también posible calcular en primer lugar las matrices U y Σ resolviendo el problema de valores y vectores propios T

m=AA U UD , y luego calcular V de modo compatible con la U ya calculada por medio de la ecuación T T=U A ΣV (o bien, trasponiendo: T T=A U VΣ ).

La DVS de la matriz A no es única. Está claro que los valores singulares, ordenados de mayor a menor, sí están unívocamente determinados. Los vectores singulares por la derecha vi, correspon-dientes a valores singulares simples, no están unívocamente determinados pues pueden ser multipli-cados por un factor escalar de módulo unidad (–1, en el caso real). En el caso de valores singulares múltiples, lo que está unívocamente determinado es un subespacio singular de dimensión igual a la multiplicidad del valor singular. Sin embargo, dentro de este subespacio se puede tomar cualquier base ortonormal de vectores singulares.

4.4.4 Aplicaciones de la DVS Una de las aplicaciones más importantes de la DVS es el cálculo del rango de la matriz A. El pro-ducto por matrices unitarias conserva el rango, luego se tendrá:

( ) ( )rango rango=A Σ (361)

lo que indica que el rango de una matriz es igual al número de valores singulares no nulos. En un próximo apartado se verá cómo tratar el caso de valores singulares distintos de cero pero muy pe-queños.

Si la matriz A es cuadrada e invertible, los valores singulares serán todos no nulos y positivos. La matriz inversa de A se puede expresar como:

11

1nT Ti ii

iσ−

== = ∑A V U v u−1Σ (362)

Análogamente, la solución de un sistema de ecuaciones lineales compatible y determinado Ax=b se puede expresar en la forma:

11 1

1 T

n nT T ii i ii i

i iσ σ−

= == ⇒ = = = =∑ ∑ u bAx b x A b V U b v u b v−1Σ (363)

La DVS conserva las normas espectral y de Frobenius, como se demuestra a continuación:

( ) ( ) ( ) ( )2 2 212 2

T T T T T T Tρ ρ ρ ρ σ= = = = = =A A A V U U V V VΣ Σ Σ Σ Σ Σ Σ (364)

( ) ( ) ( ) ( )2 2 2traza traza traza trazaH T H H T H TiF F

σ= = = = = = ∑A A A V U U V V VΣ Σ Σ Σ Σ Σ Σ (365)

La DVS se puede aplicar también al cálculo de la condición numérica de una matriz, que para una matriz cualquiera se definió como el cociente entre el vector unitario que más "crece" al multipli-carse por la matriz A dividido por el vector unitario que menos crece:

( )11

max minκ==

=uu

A Au Au (366)

Page 86: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 76

Considerando la norma euclídea, hay que tener en cuenta que el producto por una matriz ortogonal no cambia la norma euclídea, por lo que las normas máxima y mínima de la expresión (366) son respectivamente el máximo y mínimo valor singular. Por ejemplo, para el máximo de la norma:

2 2 2 2

1 1 12 2 22 21 1 1 1max max max max

T

T T σ σ=

= = = == = = = =

v V u

u u u vAu UΣV u ΣV u Σv e (367)

Por tanto, el número de condición espectral será:

( ) ( )2 1 , min ,p p m nκ σ σ= =A (368)

La condición numérica de una matriz unitaria u ortogonal es la unidad, pues sus valores singulares son los valores propios de UTU=UUT=I, que son todos la unidad. Operar con estas matrices no am-plifica los errores en los datos.

4.4.5 Valores singulares y perturbaciones en una matriz En este apartado se va a considerar la sensibilidad de los valores singulares ante perturbaciones de la matriz. Evaluar el rango de una matriz puede ser muy difícil, pues el rango es un valor entero, mientras que los elementos de la matriz pueden varíar de modo continuo.

Para resolver esta dificultad se introduce el concepto de rango numérico de una matriz. Sea ε un número muy pequeño. Se define el rango numérico o rango-ε de la matriz A como:

( ) ( )2

rango , min rangoε

ε− <

≡A A

A A (369)

Es importante interpretar correctamente esta definición: Las matrices A son todas las posibles ma-trices que están a una distancia de A menor que ε, medida en la norma espectral. El rango numérico de A se define como el rango de aquella matriz que menor rango tiene y que está a una distancia de A menor que ε.

Teorema 1: Sea A∈Rm×n una matriz cuya DVS es 1

rT Ti i ii

σ=

= = ∑A U V u vΣ . Se define la matriz Ak

como una matriz de rango k formada por la suma 1

k Tk i i ii

σ=

= ∑A u v . Se cumple que la matriz de rango k que mejor aproxima a A en norma espectral es Ak, es decir:

( ) 122rango

min k kk

σ +=

− = − =A

A A A A (370)

y además el error en la aproximación es el valor singular σk+1, que es el mayor valor singular no incluido en Ak. Demostración: Utilizando la DVS y la definición de Ak se tiene que:

( ) ( )1diag ,..., , 0,...0 , rangoHk k k kσ σ= =U A V A (371)

( ) ( )1 12diag 0,...,0, ,..., , H

k k p k kσ σ σ+ +− = − =U A A V A A (372)

Hay que demostrar que Ak es la matriz de rango k que mejor aproxima a A.

Supóngase una matriz B∈Rm×n tal que rango(B)=k. El núcleo de B tendrá dimensión (n–k) y podrá ser generado por (n–k) vectores independientes:

( ) [ ]1 2Ker , ,..., n kL −=B x x x (373)

Considerando el subespacio [ ]1 2 1, ,..., kF L += v v v , la intersección de F y Ker(B) no podrá ser sólo el vector nulo, sino que tendrá dimensión 1, pues la suma de dimensiones es (n–k)+(k+1)=n+1.

Page 87: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 77

Sea z un vector de ( )KerF ∩ B tal que 2

1=z . Por pertenecer a ambos subespacios se tendrá que:

( ) ( )1

1 1

r kT Ti i i i i ii i

σ σ+

= =

=

= =∑ ∑Bz 0

Az u v z v z u (374)

Estudiando el cuadrado de la norma espectral de (A–B) y recordando que ( )21

11k T

ii

+

==∑ v z por ser z un vector unitario,

se tiene:

( ) ( ) ( )222 1 12 2 2 2 2 21 12 2 2 1 12

k kT T Ti i i i k i ki i

σ σ σ+ +

+ += =− ≥ − ≥ − = ≥ =∑ ∑A B A B z Az Bz v z u u v z (375)

En esta expresión la igualdad se obtiene cuando B=Ak. Con esto queda demostrado el teorema.

Observación: El valor singular más pequeño de A es la distancia, en norma espectral, entre A y el conjunto de matrices de rango inferior al de A.

Teorema 2: La perturbación en los valores singulares de una matriz ante una perturbación E en la matriz A está acotada mediante la expresión:

( ) ( ) 2k kσ σ− ≤A + E A E (376)

Esto quiere decir que los valores singulares son muy estables ante perturbaciones de la matriz. Demostración: En función de los valores y vectores singulares de la matriz A se puede escribir:

( )11 11 1

, , r 1r kT Tj j j k j j j kj j

kσ σ−

− −= == = = −∑ ∑A u v A u v A (377)

donde r(A) es el rango de la matriz A. En virtud del teorema 1 anteriormente demostrado:

( )

( ) ( )2r 1

min kkσ

≤ −+ − = +

BA E B A E (378)

Sustituyendo B=Ak–1 en la expresión (378), se obtiene:

( ) ( )1 12 2 2 2k k k kσ σ− −+ ≤ + − ≤ − + = +A E A E A A A E A E (379)

A partir de este resultado:

( ) ( ) 2k kσ σ+ − ≤A E A E (380)

Esto es sólo parte de lo que hay que demostrar según (376). Mediante un razonamiento similar, si , y j j jσ u v son los valores y vectores singulares de la matriz perturbada A+E:

( ) ( )1

1 11 1, , r 1r kT T

j j j j j jk kj jkσ σ−

− −= =+ = + = + = −∑ ∑A E u v A E u v A E (381)

Aplicando ahora el teorema 1 y tomando ( ) 1k −= +B A E se obtiene:

( )

( )2r 1min kk

σ≤ −

− =B

A B A (382)

( ) ( ) ( ) ( )1 1 2 22 2k kk kσ σ

− −≤ + − − + ≤ + − + + = + +A A E E A E A E A E E A E E (383)

De esta expresión se concluye lo que falta para probar (376), es decir:

( ) ( ) 2k kσ σ− + ≤A A E E (384)

4.4.6 Problemas de reducción de la dimensionalidad La descomposición de valores singulares permite expresar una matriz cualquiera A de rango r, co-mo suma de r matrices de rango 1:

1

rT Ti i ii

σ=

= = ∑A U V u vΣ (385)

Page 88: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 78

En función del valor de los valores singulares, la matriz A puede ser aproximada mediante las pri-meras k matrices de rango 1 (k<r):

1

k Tk i i ii

σ=

≈ = ∑A A u v (386)

En virtud del teorema 1, el error de esta aproximación en norma cuadrática es 12k kσ +− =A A .

La aproximación de la matriz A con reducción de la dimensionalidad dada por la expresión (386) tiene importantes ventajas y aplicaciones prácticas, como por ejemplo:

− La matriz aproximada requiere mucha menos memoria (2k vectores de m y n elementos) y también es mucho más fácil operar con ella.

− Además, la DVS proporciona información precisa y fiable sobre el error cometido en esta aproximación, que viene dado por el primer valor singular no incluido en la aproximación.

4.4.7 Aplicación de la DVS a la solución del sistema general Ax=b Se considerará en primer lugar la solución de mínimos cuadrados del sistema Ax=b (m ≥ n = r). La solución de mínimo error cuadrático viene dada por las ecuaciones normales (ver apartado 2.10):

( ) 1

0T T−

=x A A A b (387)

Utilizando la DVS (A=UΣVT) esta expresión se puede escribir en la forma:

2, =T T T T T T T Tn= = ⇒ =A U V A V U A A V V V VΣ Σ Σ Σ Σ (388)

( ) ( )1 12 1 1 1, 0 , , , T T T T T T T T

n n m n m n m

− −− − − −= = ⇒ = = ∈ n×mA A A V U V U x A A A b V U b RΣ Σ Σ Σ Σ (389)

Desarrollando los sumatorios implicados por esta expresión se llega a:

0 1 1

1 Tn rT i

i i ii ii iσ σ= =

= =∑ ∑ u bx v u b v (390)

A continuación se estudiará la solución de mínima norma para el sistema indeterminado de rango máximo Ax=b (r = m ≤ n), que viene dada por la expresión (171) (ver apartado 2.11):

( ) 1T T −∗ =x A AA b (391)

Introduciendo la DVS de A, tal como se ha hecho en el caso anterior:

( ) 1

,, T T T T T T T T T T Tm m n m

−= = = =AA U V V U U U A AA b V U U U b V U b2 −2 −1Σ Σ Σ Σ Σ Σ (392)

Poniendo este resultado en forma de sumatorio:

1 1

1 Tm rT i

i i ii ii iσ σ

∗= =

= =∑ ∑ u bx v u b v (393)

Obsérvese las expresiones (390) y (393) son idénticas. Esto induce a aplicar la DVS al caso general de un sistema de ecuaciones lineales incompatible y sin solución de mínimo error única, es decir al caso ( )min ,r m n< . Este caso fue estudiado en el apartado 2.12 y condujo a la introducción de la matriz seudoinversa A+. La DVS permite estudiar la pseudoinversa de un modo más sencillo.

Page 89: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Factorizaciones de una matriz pág. 79

Sea el sistema de ecuaciones lineales Ax=b (A∈Rm×n y rango(A)<min(m,n)). Para unos vectores b∈Rm este sistema tiene solución y para otros no (r<m). La solución de mínimo error cuadrático puede no ser única (r<n).

Introduciendo la DVS, el sistema de ecuaciones Ax=b se puede reformular del modo siguiente:

, T T= = ⇒ =Ax b A U V U V x bΣ Σ (394)

Haciendo el cambio de variable y=VTx y pre-multiplicando por UT se obtiene:

( )1 2, diag , ,..., ,0,...,0 , Trσ σ σ= ≡ = ∈ m×ny U b c RΣ Σ Σ (395)

El sistema de ecuaciones =y cΣ es incompatible e indeterminado, pero es también muy fácil de tratar porque la matriz del sistema sólo tiene elementos no nulos en la diagonal. Este sistema se muestra gráficamente en la Figura 42.

Figura 42. Sistema de ecuaciones Σy=c.

Figura 43. Solución de mínimo error

y mínima norma y=Σ+c.

Las variables libres , 1 ,iy r i n+ ≤ ≤ están multiplicadas por ceros y no tienen ninguna influencia en la solución. Para que la solución y sea de norma mínima estas variables deben ser nulas:

0, 1 .iy r i n= + ≤ ≤ (396)

Por otra parte, las r primeras ecuaciones se satisfacen exactamente en la forma:

, 1 ,i i iy c i rσ= ≤ ≤ (397)

mientras que las restantes ecuaciones no se pueden satisfacer en ningún caso, pues son:

0 , .i iy c r i m⋅ = ≤ ≤ (398)

Definiendo la matriz pseudoinversa Σ+ como una matriz n×m con los inversos de los valores singu-lares distintos de cero en la diagonal, la solución de mínimo error cuadrático y mínima norma vendrá dada por (ver Figura 43):

=y c+Σ (399)

Esta solución minimiza también el residuo y la norma en el sistema de ecuaciones original Ax=b, pues las matrices ortogonales no cambian la norma euclídea:

2 2 2 2 22 2 2

, yT T T T= − = − = − = − = =r c y U b V x b U V x b Ax V x xΣ Σ Σ (400)

Se concluye que la matriz que conduce a la solución de mínimo error y mínima en el caso general, es decir, la matriz pseudoinversa de A, es la matriz:

( ), , , T T T T T T+ + += = = ⇒ = ⇒ = = =y c y V x c U b V x U b x V U b A b A V U+ + +Σ Σ Σ Σ (401)

Esta matriz seudoinversa es única, coincide con la vista anteriormente y tiene todas sus propiedades.

=

=y cΣ

= 1iσ −

Page 90: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Álgebra lineal numérica con Matlab pág. 80

La aplicación convencional del método de los mínimos cuadrados a través de las ecuaciones norma-les puede dar problemas numéricos, pues la norma espectral de la matriz ATA es el cuadrado de la norma espectral de la matriz A. Como consecuencia la condición numérica de ATA es el cuadrado de la de A, lo que puede crear dificultades numéricas. Anteriormente se ha sugerido la utilización de un sistema de ecuaciones ampliado o de la factorización QR como formas de resolver este proble-ma.

Si existen estas dificultades y además es posible que el rango de la matriz A sea menor que min(m,n) el método más estable de resolver el problema es aplicar la DVS según las expresiones (390) (393) vistas anteriormente, que se repiten aquí haciendo intervenir a la matriz seudoinversa:

1 1

1, T

r rT T ii i ii i

i iσ σ+ +

= == = = = =∑ ∑ u bAx b x A b V U b v u b vΣ (402)

La DVS permite determinar el rango con precisión numérica, separando la información propia de la matriz de las componentes que se han podido introducir por errores de distinto tipo.

Page 91: Álgebra lineal numérica con Matlab - This ... · PDF file2.8 Algunas funciones de Matlab en relación con el método de Gauss..... 30 . Álgebra lineal numérica con Matlab pág.

Aplicaciones en ingeniería mecánica (máquinas) pág. 81