Guión de la Lección 1 - Matemática Aplicada II

Anuncio
MÉTODOS MATEMÁTICOS (Curso 2011-2012)
Tercer Curso de Ingeniería Aeronáutica
Departamento de Matemática Aplicada II. Universidad de Sevilla
LECCIÓN 1: SISTEMAS DE ECUACIONES LINEALES
Índice
1. Eliminación gaussiana
1.1.
1.2.
1.3.
1.4.
Método de eliminación gaussiana . . . . .
Costo operativo . . . . . . . . . . . . . . .
Comandos de Matlab . . . . . . . . . . .
Normas matriciales y número de condición
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
8
9
10
2. Problemas sobredeterminados
12
3. Matrices de rango deciente: Descomposición en valores singulares
19
4. Cuestiones y problemas
24
2.1. Problemas sobredeterminados: Solución de mínimos cuadrados . . . . . . . . . . . .
2.2. Descomposición QR de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Método de Householder para la descomposición QR . . . . . . . . . . . . . . . . . .
12
14
16
1. Eliminación gaussiana
Introducción. Los sistemas de ecuaciones lineales aparecen en una gran variedad de áreas cientícas, pero también indirectamente en la solución numérica de diferentes problemas matemáticos.
Por ejemplo, estos sistemas aparecen como etapas intermedias en la resolución de problemas numéricos en optimización, aproximación de funciones, ecuaciones diferenciales ordinarias, ecuaciones en
derivadas parciales, ecuaciones integrales,... Por esta razón, el estudio de métodos numéricos para
la resolución de los sistemas de ecuaciones lineales es uno de los pilares del Análisis Numérico.
Nos centraremos primero en el caso en que la matriz de coecientes del sistema es cuadrada e
invertible, en cuyo caso, como bien sabemos, la solución del sistema es única. Posteriormente se
tratarán los casos de matrices rectangulares y de matrices cuadradas no invertibles.
1.1. Método de eliminación gaussiana
Nos centramos en esta sección en sistemas de ecuaciones lineales con n ecuaciones y n incógnitas.
Un ejemplo es el siguiente.
x1
+2x3 =
3,
−2x1 +2x2 −3x3 = −2,
−3x1 +2x2 −4x3 = −3.
Recordemos que el proceso de eliminación gaussiana para su resolución consiste en restar múltiplos
de la primera ecuación a las demás para hacer desaparecer (eliminar) la primera incógnita de las
1
restantes ecuaciones, y, una vez hecho esto, se repite el proceso con la segunda incógnita, y así hasta
que la última incógnita aparece sola en una ecuación, esto es, está despejada. En el caso que nos
ocupa,


x1
+2x3 =
3,  e2 ← e2 + 2e1
x1
+2x3 = 3, 
−2x1 +2x2 −3x3 = −2,
−→
2x2 +x3 = 4,
→


−3x1 +2x2 −4x3 = −3.
e3 ← e3 + 3e1
2x2 +2x3 = 6.
e3 ← e3 − e2
−→
x1
2x2
+2x3 = 3,
+x3 = 4,
x3 = 2.
Este último sistema se resuelve fácilmente por sustitución regresiva.

x1
+2x3 = 3, 
2x2 +x3 = 4,
⇒ x2 = (4 − x3 )/2 = (4 − 2)/2 = 1,

x3 = 2.
⇒
x1 = 3 − 2x3 = 3 − 4 = −1.
Recuerde que en primer curso vimos que este proceso tenía una escritura matricial. El sistema se
escribe como Ax = b, donde A es la matriz de coecientes, x el vector de incógnitas y b el vector
dato,


 


1 0
2
x1
3
A =  −2 2 −3  ,
x =  x2  ,
b =  −2  .
−3 2 −4
x3
−3
Recuerde así mismo que
si A es invertible, entonces la única solución de Ax = b es x = A−1 b.
En la práctica, sin embargo, nunca se calcula A−1 y después se efectúa x = A−1 b por dos razones.
Calcular A−1 es más costoso que resolver el sistema Ax = b por eliminación gaussiana.
Calcular A−1 y multiplicar A−1 b es un proceso más sensible a errores de redondeo que resolver Ax = b por eliminación gaussiana.
Por tanto, debe aprender bién estas dos razones y no olvidar la primera regla del Cálculo Numérico:
Para multiplicar por A−1 se resuelve un sistema con matriz de coecientes A.
Matricialmente, el proceso de eliminación gaussiana es como sigue.

  


   
1 0
2
3
x1
e2 ← e2 + 2e1
1 0 2
3
x1
 −2 2 −3  x2  =  −2 





−→
0 2 1
x2 = 4  →
x3
−3 2 −4
−3
e3 ← e3 + 3e1
x3
0 2 2
6

   
1 0 2
3
x1
e3 ← e3 − e2
 0 2 1   x2  =  4  .
−→
x3
0 0 1
2
En este último sistema, U x = b0 , la matriz de coecientes es triangular superior. Observe que en
este proceso el vector de incógnitas no se ve afectado.
2
Recuerde así mismo que las operaciones por las efectuadas tienen una interpretación matricial
en términos de multiplicaciones por matrices elementales. Así por ejemplo, el primer paso del proceso
de eliminación gassiana consiste en
multiplicar Ax = b por M1 para obtener M1 Ax = M1 b,
donde M1 es la matriz que, al multiplicar por ella, resta múltiplos de la primera la a las demás,
dejando ceros en la primera columna por debajo de la diagonal. En nuestro ejemplo,


1 0 0
M1 =  2 1 0  ,
3 0 1
pues,


 

1 0 0
1 0
2
1 0 2
M1 A =  2 1 0  −2 2 −3  =  0 2 1  ,
3 0 1
−3 2 −4
0 2 2
Abreviadamente escribiremos
M1 A = A(2) ,


  
1 0 0
3
3
M1 b =  2 1 0  −2  =  4  .
3 0 1
−3
6
M1 b = b(2) .
Recuerde que la matriz M1 es como la identidad excepto que en la primera columna aparecen los
opuestos −lj1 de los multiplicadores lj1 , siendo éstos lj1 = aj1 /a11 .


1 0 0
l21 = a21 /a11 = −2/1 = −2,
M1 =  −l21 1 0  ,
l31 = a31 /a11 = −3/1 = −3.
−l31 0 1
El segundo paso de la eliminación consiste en multiplicar el sistema A(1) x = b(1) obtenido
anteriormente por la matriz M2 , que es como la identidad excepto que en la segunda columna
(2)
(2)
aparecen los opuestos −lj2 de los multiplicadores lj2 , siendo éstos lj2 = aj2 /a22 ,


1 0 0
M2 =  0 1 0  ,
0 −l32 1
(2)
(2)
l32 = a32 /a22 = 2/2 = 1,
pues

M2 A(2)

 

1
0 0
1 0 2
1 0 2
1 0  0 2 1  =  0 2 1  ,
= 0
0 −1 1
0 2 2
0 0 1

M2 b(2)
   
1
0 0
3
3





1 0
4 = 4 .
= 0
0 −1 1
6
2
Resumiendo todo el proceso de eliminación,
M2 M1 A = A(3) = U
triangular superior,
M2 M1 b = b(3) = b0 ,
con lo que, deshaciendo los cambios, obtenemos
A = M1−1 M2−1 U.
b = M1−1 M2−1 b0 .
3
(1)
Observe que puesto que las matrices de transformación elemental M1 y M2 efectúan cambios por
las cuando se multiplican por la izquierda, sus inversas consistirán en deshacer dichos cambios.

−1 
 

1 0 0
1 0 0
1 0 0
M1−1 =  −l21 1 0  =  l21 1 0  =  −2 1 0  ,
−l31 0 1
l31 0 1
−3 0 1
−1 
 

1 0 0
1 0 0
1 0 0
=  0 1 0  =  0 1 0  =  0 1 0 .
0 −l32 1
0 l32 1
0 1 1

M2−1
Debido a que mulitiplicar por la izquierda por la matriz M1−1 es sumar a las las segunda y tercera
múltiplos de la primera, y la primera la de la matriz M2−1 es la de la identidad, la matriz M1−1 M2−1
contiene en sus columnas por debajo de la diagonal los divisiores correspondientes,


 

1 0 0
1 0 0
1 0 0
M1−1 M2−1 =  l21 1 0   0 1 0  =  l21 1 0  = L.
l31 0 1
0 l32 1
l31 l32 1
Esto es, M1−1 M2−1 = L es una matriz triangular inferior con unos en la diagonal , y con los multiplicadores calculados en el proceso de eliminación gaussiana en sus lugares correspondientes.
Por ello, de la igualdad (1) obtenemos que
Lb0 = b.
A = LU,
Este proceso se generaliza fácilmente para sistemas de n ecuaciones con n incógnitas.
a11 x1 + a12 x2 + . . . + a1n xn = b1 ,
a21 x1 + a22 x2 + . . . + a2n xn = b2 ,
..
..
.
.
an1 x1 + an2 x2 + . . . + ann xn = bn ,
que escrito matricialmente es

a11 a12 . . . a1n
 a21 a22 . . . a2n

 ..
.. . .
.
 .
. ..
.
an1 an2 . . . ann

  
x1
b1
  x2   b2 
   
  ..  =  ..  ,
 .   . 
xn
abreviadamente,
Ax = b.
bn
En cada paso, restamos múltiplos de una ecuación a las siguientes (empezando por la primera,
siguiendo con la segunda, tercera, etc) para eliminar del resto de las ecuaciones la correspondiente
incógnita, hasta terminar con el sistema triangular superior equivalente
   

b01
x1
u11 u12 . . . u1n
 0 u22 . . . u2n   x2   b0 
    2

abreviadamente, U x = b0 ,
 .. . . . .
..   ..  =  ..  ,
 .
.
.
.  .   . 
0
...
0
unn
xn
b0n
4
que resolvemos por el algoritmo de sustitución regresiva,
xn = b0n /unn ,
para j = n − 1, . . . , 1:
xj = (b0j − uj,j+1 xj+1 − . . . − ujn xn )/ujj .
(2)
Igual que en el ejemplo anterior podemos ver el proceso de eliminación gaussiana como la generación de sistemas equivalentes
Ax = b
→
A(2) x = b(2)
→
...
→
A(n−1) x = b(n−1)
→
U x = b0 ,
donde, A(n) = U , b(n) = b0 y
A(k+1) = Mk A(k) ,
b(k+1) = Mk b(k) ,
k = 1, . . . , n − 1,
A(1) = A,
b(1) = b,
y siendo las matrices A(k) de la forma

A(k)
(k)
a11
0
..
.




=
 0

 .
 ..
0
(k)
(k)
(k)
a12 . . . a1k
(k)
(k)
a22 . . . a2k
..
..
..
.
.
.
(k)
. . . 0 akk
..
..
.
.
(k)
. . . 0 ank
. . . a1n
(k)
. . . a2n
..
.
(k)
. . . akn
..
..
.
.
(k)
. . . ann





,




k = 2, . . . , n
(A(k) tiene nulos sus elementos por debajo de la diagonal en las k − 1 primeras columnas) y Mk es la
identidad pero con los opuestos de los multiplicadores por debajo de la diagonal en su columna k ésima,


1 0 ...
0
0 0 ... 0

..
.. ..
.. 
 0 1 ...
.
. .
. 
 .

 . ... ...

0
0 0 ... 0 
 .


(k)
(k)
1
0 0 ... 0 
 0 ... 0
lk+1,k = ak+1,k /ak,k ,
Mk = 
,
 0 . . . 0 −lk+1,k 1 0 . . . 0 
(k)
(k)

lk+2,k = ak+2,k /ak,k ,
. . .. 
 0 . . . 0 −l

. . 
1
..
..
k+2,k 0

.
.
 ..

..
..
.. . . . .
 .
.
. 0 
(k)
(k)
.
.
.
ln,k = an,k /ak,k .
0 ... 0
−ln,k 0 . . . 0 1
Llegamos pues a que
b0 = Mn−1 . . . M1 b,
U = Mn−1 . . . M1 A,
y por tanto,
−1
A = M1−1 . . . , Mn−1
U,
−1 0
b = M1−1 . . . , Mn−1
b.
5
(3)
Igual que en el caso de matrices 3 × 3, la inversa de una matriz de transformación elemental Mk es
ella misma pero con los elementos que aparecen por debajo de la diagonal cambiados de signo,


1 0 ...
0
0 0 ... 0

..
.. ..
.. 
 0 1 ...
.
. .
. 
 .

.
.
 . .. ..

0
0 0 ... 0 
 .


1
0 0 ... 0 
 0 ... 0
−1
Mk = 
,
 0 . . . 0 lk+1,k 1 0 . . . 0 

. . .. 
 0 ... 0 l
. . 
0
1
k+2,k


 ..

..
..
.. . . . .
 .
.
. 0 
.
.
.
0 ... 0
ln,k 0 . . . 0 1
y razonando como hicimos en el caso de matrices 3 × 3 vemos que


1 0
... 0
.. 
..

.
. 
 l21 1
−1
−1
M1 . . . Mn−1 =  . .
 = L,
.
..
.. 0 
 ..
ln1 . . . ln,n−1 1
matriz triangular inferior con unos en la diagonal , y con los multiplicadores calculados en el proceso
de eliminación gaussiana en sus lugares correspondientes. Por tanto, de (3) deducimos que
Lb0 = b.
A = LU,
Para poder llevar a cabo el proceso de eliminación gaussiana descrito es necesario que los ele(k)
mentos diagonales akk , también llamados pivotes, que vayamos obteniendo sean todos distintos de
cero,
(k)
akk 6= 0,
k = 1, . . . , n.
(De hecho, sólo hace falta que sea cierta la armación anterior hasta k = n − 1.) Si en algún paso
(k)
de la eliminación se obtiene algún akk nulo, sabemos que debemos permutar la ecuación k -ésima
con alguna posterior. Este intercambio de las se denomina pivotaje . En tal caso, lo que obtenemos
es que el producto LU no es igual a la matriz A, sino a ésta tras permutar sus las, esto es,
Lb0 = P b
P A = LU,
(4)
donde la matriz P es la correspondiente matriz de permutación, que se obtiene haciendo sobre la
identidad los mismos cambios de las que se hacen en el proceso de eliminación gaussiana. Observe
que en P , los elementos de cada la (o de cada columna) son todos cero salvo uno de ellos que es
uno. Por tanto, al hacer el producto P T P , dichos unos sólo coincidirán unos con otros cuando una
la de P T coincida con ella misma como columna de P , y por tanto,
P T P = I,
o
(k)
P −1 = P T .
Por otro lado, si algún elemento diagonal akk es nulo, y también son nulos todos los elementos
(k)
(k)
que quedan por debajo del mismo, ak+1,k , . . . , ank , sabemos entonces que la matriz A no es invertible,
6
pues todas las operaciones que hemos hecho hasta ahora no alteran el valor del determinante de A
(det(A) = . . . = det(A(k) )) y A(k) tiene determinante nulo.
Podemos resumir todo lo anterior en el siguiente resultado, al que añadimos un último enunciado
que explicaremos en la sección siguiente.
Teorema 1 Sea A una matriz n × n invertible y b ∈ Rn . Se verican los siguientes enunciados:
1. El proceso de eliminación gaussiana con pivotaje reduce el sistema Ax = b a otro equivalente
U x = b0 , siendo U una matriz triangular superior.
2. Existe una matriz P de permutación de modo que
P A = LU,
con L triangular inferior y diagonal de unos.
3. El vector b0 se puede obtener resolviendo el sistema Lb0 = P b.
4. El costo de obtener la factorización P A = LU es de
n3 − n
3
= O( n3 ) ops,
3
y el costo total de resolver el sistema Ax = b es de
n3 + 3n2 − n
3
= O( n3 ) ops,
3
entendiéndose por op multiplicación o división.
Debemos añadir que el proceso de intercambio de las es también signicativo desde el punto de
vista de la estabilidad numérica. En general, la eliminación gaussiana es inestable numéricamente
si los pivotes son muy pequeños o, equivalentemente, los multiplicadores son muy grandes. Para
evitar esta situación se introducen las estrategias de pivotaje parcial y de pivotaje total:
Pivotaje parcial: En el paso k -ésimo de la eliminación gaussiana, se determina
(k)
ck = máx{|ai,k | : k ≤ i ≤ n},
(5)
y se elige el menor índice ik donde se alcanza el máximo. Posteriormente, se intercambian las
las k e ik y se realiza la eliminación. Conviene observar que en este caso los multiplicadores
verican |mk,i | ≤ 1, i = k + 1, ..., n.
(k)
Pivotaje total: En el paso k -ésimo de la eliminación gaussiana, se determina ck = máx{|ai,j | :
k ≤ i, j ≤ n} y se elige un par de índices (ik , jk ) donde se alcanza el máximo. Posteriormente,
se intercambian las y columnas para que el par (ik , jk ) ocupe la posición (k, k) y se realiza
la eliminación.
Los resultados teóricos indican que el pivotaje total es mejor que el parcial desde el punto de
vista de la propagación de errores de redondeo. Sin embargo, para la mayoría de las matrices que
aparecen en la práctica, el comportamiento del pivotaje parcial es más que aceptable. Puesto que
el coste computacional del pivotaje total es muy superior al del parcial, es este último el que suele
utilizarse en el diseño de los algoritmos de eliminación gaussiana.
En resumen, un algoritmo de amplia aplicabilidad y estable para la eliminación gaussiana debe
incorporar estrategias de pivotaje.
7
1.2. Costo operativo
Aclaramos aquí el último enunciado del teorema anterior. Observe que una vez obtenida la
factorización A = LU (o P A = LU ) de la matriz A, para resolver el sistema Ax = b nos basta con
resolver U x = b0 . En vista de (4), para obtener b0 basta resolver el sistema
Lb0 = b,
(o Lb0 = P b)
(en caso de ser el sistema Lb0 = P b, observe que el producto P b no conlleva multiplicaciones, pues
se trata de reordenar las componentes del vector b). Dado que L es triangular inferior con diagonal
de unos, la resolución de Lb0 = b se realiza con el siguiente algoritmo, conocido como alroritmo
de sustitución progresiva :
b01 = b1 ,
para j = 2, . . . , n,
b0j = bj − (lj1 x1 + · · · + lj,j−1 xj−1 ).
(6)
Su costo en ops es
n(n − 1)
ops.
2
Una vez obtenido b0 , el algoritmo de sustitución regresiva (2) requiere una división más por paso,
el correspondiente a dividir por el elemento diagonal ujj , por tanto su costo es
0 + 1 + 2 + . . . + (n − 1) =
1 + 2 + 3 + ... + n =
n(n + 1)
2
ops.
Así, una vez obtenida la factorización LU de A, el costo de obtener x es n2 ops.
El costo de obtener la factorización LU de A es también fácil de deducir. Basta contar el número
de ops que se requieren en el primer paso de de la eliminación gaussiana,




a11 a12 . . . a1n
a11 a12 . . . a1n
 a21 a22 . . . a2n 
 0 a(2) . . . a(2) 
22
2n 



 ..
.. . .
..  →  ..
..
..  .
..
 .


.
.
.
.
.
.
. 
an1 an2 . . . ann
0
(2)
(2)
an2 . . . ann
Vemos que se deben calcular los n − 1 multiplicadores
l21 = a21 /a11
..
..
.
.
que son n − 1 ops.
ln1 = an1 /a11
A continuación, para cada j = 2, . . . , n, debemos escalar
[a12 , . . . , a1n ]
→
[lj1 · a12 , . . . , lj1 · a1n ],
que son n − 1 ops,
para restar el resultado a la la j -ésima de A, contando desde la segunda columna hasta n. Como
este proceso lo debemos hacer para n − 1 las, el resultado es que el primer paso de la eliminación
gaussiana requiere
(n − 1) + (n − 1)2 ops.
8
El segundo paso será repetir el primero con la submatriz de orden n − 1

 (2)
(2)
a22 . . . a2n
 .. . .
..  .
 .
.
. 
(2)
(2)
an2 . . . ann
Luego costará (n − 2) + (n − 2)2 ops. El tercer paso, el cuarto, etc, consistirá en repetir este proceso
con matrices de orden más pequeño, con lo que vemos que el coste de reducir A a matriz triangular
superior es
n−1
X
j=1
2
(j + j) =
n−1
X
2
j +
j=1
1.3. Comandos de
n−1
X
j=
j=1
(2n − 1)n(n − 1) n(n − 1)
n3 − n
3
+
=
= O( n3 ).
6
2
3
Matlab
Sabemos que para resolver el sistema Ax = b, en Matlab basta ejecutar x=A\b. Si la matriz A no
tiene características especiales de las que posteriormente estudiaremos algunos casos, el operador \
resuelve el sistema Ax = b mediante eliminación gaussiana con pivotaje parcial de las. El comando
lu, proporciona la descomposición LU de una matriz, llevada a cabo por eliminación gaussiana con
pivotaje parcial de las, esto es P A = LU . Debe saber lo siguiente:
El comando [L,U]=lu(A), asociado a la descomposición P A = LU , devuelve en U la matriz U ,
y en L la matriz P T L, pues, teniendo en cuenta que P −1 = P T , de P A = LU se obtiene
A = P T LU . Luego, en general, [L,U]=lu(A) no devuelve en L una matriz triangular inferior.
El comando [L,U,P]=lu(A) devuelve las tres matrices de la descomposición P A = LU .
Otros aspectos a destacar. En general, las rutinas o procedimientos para resolver un sistema
lineal Ax = b, actúan como hemos señalado anterioremente:
1. Se factoriza P A = LU .
2. Se resuelve Lb0 = P b.
3. Se resuelve U x = b0 .
En otros lenguajes de programación (FORTRAN,
lineales sobreescriben A con LU = P A, de la forma

u11 . . . u1,n−1
..
.

.
 l21 . .
 . .
. . un−1,n−1
 ..
ln1 . . . ln−1,n
C, etc) las rutinas para resolver sistemas

u1n
.. 
. 
.
un−1,n 
unn
(los unos de la diagonal de L no se guardan), pues en general los argumentos A, b y x, a diferencia
de Matlab, se pasan por referencia y no por valor (es decir, los parámetros de la función no copían
el valor del argumento, sino que comparten su valor). Así mismo proporcionan un vector entero
(cuyos valores son enteros) con los cambios de las que se han llevado a cabo. El propósito es que si
se debe volver a resolver otro sistema Ay = c con la misma matriz de coecientes, no sea necesario
9
factorizar de nuevo la matriz, que, como hemos visto, es el proceso más costoso (O(n3 /3) ops,
frente a O(n2 ) ops que cuesta resolver Lb0 = b, U x = b0 ).
Si en Matlab se nos presentase esta necesidad de resolver varios sistemas con la misma matriz de
coecientes, debemos ejecutar primero [L,U]=lu(A), y, posteriormente, para cada segundo miembro
b, ejecutar x=U\(L\b). (Observe la disposición de los paréntesis.)
1.4. Normas matriciales y número de condición
Para el análisis matemático de los sistemas de ecuaciones lineales es útil el manejo de normas
matriciales, que desempeñan un papel similar al concepto de módulo en los números reales. La
principal norma matricial es, sin duda, la norma euclídea que, para una matriz A m × n, se dene
como kAk := máx{kAxk : kxk = 1}, donde, para x = [x1 , . . . , xn ]T ∈ Rn , kxk = (x21 + · · · + x2n )1/2
es la norma euclídea estándar en IRn .
Debido a cómo se dene, la norma matricial kAk de una matriz m×n satisface las tres siguientes
propiedades para todo x de Rm y toda matriz B de n las:
1)
2)
3)
kAxk ≤ kAk kxk .
kABk ≤ kAk kBk .
kA + Bk ≤ kAk + kBk .
La primera de estas propiedades es cierta ya que, teniendo en cuenta que x/ kxk es de norma 1, y que
x
x
x
por tanto kA kxk
k ≤ kAk, se tiene que kAxk = kA kxk
kxk k = kA kxk
k kxk ≤ kAk kxk. La segunda
propiedad es cierta porque, para cualquier x de norma unidad y llamando y = Bx, en virtud de la
propiedad anterior se tiene que kABxk = kAyk ≤ kAk kyk = kAk kBxk ≤ kAk kBk kxk = kAk kBk,
de donde, tomando el supremo en todos los x de norma 1 se sigue el resultado. La tercera propiedad
es consecuencia de que ky + zk ≤ kyk + kzk para cualesquiera dos vectores y, z ∈ Rb .
Dado que
√
p
kAxk = (Ax)T (Ax) = xT AT Ax
no es difícil ver, utilizando por ejemplo el teorema de los multiplicadores de Lagrange, que el máximo máx{kAxk2 : kxk = 1} se alcanza en la dirección del autovector v asociado al autovalor λ de
módulo máximo de AT A, esto es, λ = ρ(AT A) y que
p
kAk = ρ(AT A)
Notese que al ser AT A semidenida positiva, todos sus autovalores son no negativos y por tanto
ρ(AT A) es un autovalor. Vea también los ejercicios 38.
Condicionamiento de un sistema de ecuaciones lineales. El condicionamiento de un sistema
de ecuaciones lineales Ax = b puede enfocarse respecto a perturbaciones en el vector b o bien respecto
a perturbaciones en la matriz A. En ambos casos, una misma expresión de la norma matricial de A
sirve ecazmente como número de condición.
Consideremos inicialmente una perturbación b + δb en el segundo miembro de Ax = b, donde A
es invertible y x es la solución del sistema. Sea x + δx la solución del sistema perturbado, esto es
Ax = b,
A(x + δx) = b + δb,
de donde, restando, se obtiene
10
Aδx = δb.
Tomando normas obtenemos que (se supone b no nulo)
y
Por tanto,
b = Ax ⇒ kbk ≤ kAk kxk
⇒
1
kAk
≤
,
kxk
kbk
Aδx = δb ⇒ δx = A−1 δb
⇒
°
°
kδxk ≤ °A−1 ° kδbk .
° kδbk
°
kδxk
≤ kAk °A−1 °
.
kxk
kbk
A tenor de esta acotación de los errores relativos, es lógico denir el número de condición de una
matriz invertible A como
°
°
cond(A) = °A−1 ° kAk .
Puesto que 1 = kIn k ≤ kA−1 k kAk. se tiene que cond(A) ≥ 1.
Un caso en el que se entiende bien el signicado del número de condición se da cuando A es una
matriz 2 × 2 cuyas las son casi proporcionales, como es el caso del sistema
¾
9
x
+
x
=
1,9
1
2
10
,
(7)
x1 + 11
x = 2,1
10 2
cuya solución es x1 = x2 = 1, y donde un sencillo cálculo demuestra que
√
cond(A) = 201 + 20 101 ≥ 400.
Ocurre que al ser las las de A casi proporcionales, las rectas dadas por las ecuaciones del sistema
Ax = b son casi paralelas,
δx1
δx2
δb
por lo que un pequeño desplazamiento δb en una de ellas da lugar a un cambio mucho mayor δx,
en el punto de corte del nuevo par de rectas. Así, por ejemplo, cambiando el segundo miembro
de la segunda ecuación de (7) de 2.1 a 2 (un cambio de magnitud inferior al 5 %) la solución
cambia de x = [1, 1]T a x = [−9, 10]T , esto es un cambio en x unas 250 veces mayor que el cambio
en b, y cambiando b de [1,9, 2,1]T a [2, 2] (un cambio del orden del 5 %) se obtiene como solución
x = [−20, 20]T , que supone un cambio en la solución unas 400 veces mayor que el cambio en b, esto
es, del orden de cond(A) veces mayor.
En el caso de sistemas de mayor dimensión, el signicado del número de condición es algo más
complejo de explicar, pero esencialmente es similar al presentado en el sistema 2 × 2 en (7).
11
Dado que al resolver sistemas lineales Ax = b en el ordenador se comenten errores debido a
que las operaciones se hacen con aritmética de precisión nita, puede intepretarse que la solución
obtenida x + δx es en realidad solución (exacta) del sistema A(x + δx) = b + δb, aunque suele ser
más fácil interpretar la solución obtenida x + δx como solución (exacta) del sistema perturbado
(A + δA)(x + δx) = b. El número de condición de A forma parte de las cotas kδxk / kxk en términos
de kδAk / kAk. Aunque el estudio de este tipo de cotas queda fuera del alcance de este curso, el
lector interesado puede encontrar una buena introducción a este tema en las Lecciones 15 y 16
de [3]. Un estudio algo más avanzado puede encontrarse en las Lecciones 12 a 14 y 22 de [4], o en
las Secciones 2.7 y 3.3 de [2]. Información más exhaustiva puede encontrarse en [1].
El mensaje más simple que podemos extraer de las citadas referencias es que, como criterio
general, se puede decir que si el número de condición de A es grande, deben tomarse con cierta
precaución los resultados de resolver el sistema Ax = b.
Señalemos por último que el comando norm de Matlab, además de calcular la norma de un
vector x, calcula también la norma de una matriz. A su vez, el comando cond calcula el número de
condición de una matriz, pero dado que es un comando costoso, existe también el comando condest
que estima con bastante precisión (y de modo más económico) el número de condición.
2. Problemas sobredeterminados
Introducción. Hay muchas situaciones donde se plantea la obtención de un cierto modelo matemá-
tico lineal que se ajuste a un conjunto de datos dados. Esto conduce usualmente a la resolución de un
sistema de ecuaciones lineales con más ecuaciones que incógnitas, o problemas sobredeterminados ,
y casi siempre incompatibles. Para dichos sistemas se introduce un concepto nuevo de solución,
concepto que coincide con el usual cuando el sistema es compatible. Este concepto nuevo de solución
se denomina solución en el sentido de mínimos cuadrados puesto que busca vectores que optimicen
la norma euclídea del correspondiente vector residual.
2.1. Problemas sobredeterminados: Solución de mínimos cuadrados
Cuando un sistema lineal tiene más ecuaciones que incógnitas es fácil que sea incompatible, esto
es que no posea solución. Por ejemplo, al proceder por el método de eliminación en el sistema


x1 + 2x2 = 3,  f2 ← f2 − 2f1
x1 + 2x2 =
3, 
2x1 + 3x2 = 5,
−→
−x2 = −1,


x1 + 3x2 = 2,
f3 ← f3 − f1
x2 = −1,
vemos que las dos últimas ecuaciones no pueden ser ambas ciertas, luego no hay solución posible.
Por otro lado, si la última ecuación hubiese sido x1 + 3x2 = 4, el sistema con las tres ecuaciones
hubiese sido compatible con solución x1 = x2 = 1. En la práctica es altamente improbabable que
un sistema sobredeterminado sea compatible. Por ello, como vimos en primer curso, es necesario
introducir un nuevo tipo de solución. De hecho, si en Matlab introducimos la matriz A y el vector
12
b,


1 2
A =  2 3 ,
1 3


3
b =  5 ,
2
y ejecutamos x=A\b, obtenemos
x =
3.0000
-0.2727
Qué tipo de resultado es este, cómo se obtiene y cuánto cuesta son las cuestiones que abordamos
en esta seccion. Empezaremos con el tipo de solución que es.
Dada una matriz A real de orden m × n (m ≥ n) y un vector b ∈ Rm , se dice que x̃ ∈ Rn es
una solución en el sentido de mínimos cuadrados del sistema Ax = b si se verica que
kb − Ax̃k ≤ kb − Axk ,
para todo x ∈ Rn ,
o, equivalentemente, si x̃ es un mínimo de la función real de n variables
°
°
n
n
°
°
X
X
°
°
xj A(:, j)° .
x ∈ Rn 7→ f (x) =
(bj − (Ax)j )2 = °b −
°
°
(8)
j=1
j=1
De hecho, la solución proporcionada por Matlab en el ejemplo mostrado es la solución de mínimos
cuadrados del sistema incompatible Ax = b.
Desde un punto de vista geométrico, estamos buscando la mejor aproximación en norma euclídea
al vector b por vectores del subespacio generado por las columnas de A, denotado generalmente como
col(A) o R(A). Como bien sabemos, por el teorema de la mejor aproximación, el vector de col(A) que
menos dista de b es la proyección ortogonal de b sobre col(A), denotada Pcol(A) b. Como este vector
siempre está en col(A) y las columnas de A son un generador de col(A), el sistema Ax̃ = Pcol(A) b es
compatible, y por lo tanto siempre existe la solución de mínimos cuadrados. Notemos sin embargo
que si A no tiene rango máximo, aunque la proyección Pcol(A) b es única, no ocurre lo mismo con
la solución de mínimos cuadrados x̃. Si A no tiene rango máximo existen vectores x ∈ Rn no
nulos con Ax = 0, en cuyo caso si x̃ es solución de mínimos cuadrados también lo es x̃ + x, pues
A(x̃ + x) = Ax̃ = Pcol(A) b.
En esta sección nos centraremos en el caso de que A tiene rango máximo, esto es,
A m × n,
m > n,
rg(A) = n.
Notemos además que si de un vector b restamos su proyección ortogonal sobre un subespacio V ,
PV b, el resultado b − PV b es ortogonal al subespacio V , o, abreviadamente, b − PV b ⊥ V . Si x̃ es
solución de mínimos cuadrados, notemos entonces que
Ax̃ = Pcol(A) b ⇔ b − Ax̃ ⊥ col(A) ⇔ AT (b − Ax̃) = 0 ⇔ AT Ax̃ = AT b.
Resumimos todo lo anterior en el siguiente resultado.
Teorema 2 (Ecuaciones normales de Gauss) Sea A una matriz real de dimensiones m×n y b ∈ IRm .
Las siguientes armaciones son equivalentes:
1. x̃ es una solución en el sentido de mínimos cuadrados del sistema Ax = b.
2. x̃ es solución del sistema AT Ax = AT b (ecuaciones normales de Gauss).
3. b − Ax̃ es ortogonal a col(A).
13
Además, si el rango de A es máximo, rg(A) = n, entonces la solución de mínimos cuadrados es
única.
Nota 1 A las ecuaciones normales de Gauss también se llega sin necesidad de argumentos geomé-
tricos. De hecho, la función f en (8) de la cual la solución de mínimos cuadrados x̃ es un mínimo
es
f (x) = kb − Axk2 = (b−Ax)T (b−Ax) = xT AT Ax−2xT AT b+bT b
⇒
∇f (x) = 2(AT Ax−AT b),
y el mínimo se alcanza allí donde el gradiente se anula.
Las ecuaciones normales de Gauss están peor condicionadas que otros sistemas que también
permiten encontrar la solución de mínimos cuadrados, de hecho, cond(AT A) = cond(A)2 , por lo que
no conviene usarlas en los problemas de mínimos cuadrados. Es más, las técnicas ecientes para
la resolución de los problemas de mínimos cuadrados suelen basarse en transformar las ecuaciones
normales mediante ciertas factorizaciones matriciales que recordamos a continuación.
2.2. Descomposición QR de una matriz
Recordemos el método de ortogonalización de Gram-Schmidt
Teorema 3 (Método de ortogonalización de Gram-Schmidt). Sea {a1 , a2 , . . . , an } un con-
junto de vectores linealmente independientes de IRm . Consideremos los vectores {v1 , v2 , . . . , vn }
obtenidos con el siguiente procedimiento:
1. Tomamos v1 = a1 .
2. Para j = 2, 3, . . . , n,
vj = aj − α1j v1 − α2j v2 − . . . − αj−1j vj−1 ,
donde αij =
viT aj
,
viT vi
i = 1, . . . , j − 1.
(9)
Entonces viT vj = 0 si i 6= j , y
lin{a1 , a2 , . . . , aj } = lin{v1 , v2 , . . . , vj }, para j = 1, 2, . . . , n.
De (9) despejamos aj como
aj = vj + α1j v1 + α2j v2 + · · · + αj−1j vj−1 ,
con lo que si A = [a1 , . . . , an ] es la matriz m × n cuyas columnas son los aj y V = [v1 , . . . , vn ] es la
matriz cuyas columnas son los vj , tenemos la relación

A = V U,
1 α1,2 . . . α1,n−1 α1,n
..
..
..

.
.
.


.
.
.
donde U es la matriz triangular superior U = 
..
..
..


1
αn−1,n
1
14




.


Llamando D = diag(kv1 k , . . . , kvn k), tenemos que
−1
A = V U = V D−1 DU = V
DU = QR,
|D
{z } |{z}
Q
con QT Q = I y R triangular superior,
R
(las columnas de Q no sólo son ortogonales entre sí sino que además tienen norma 1; por eso, QT Q
es la identidad de orden n).
Esta expresión de A como el producto QR se conoce como descomposición QR reducida de
una matriz. En la práctica (ya veremos por qué en la siguiente sección donde estudiaremos las
transformaciones de Householder), siempre se completa Q como [Q, Q0 ], donde Q0 es matriz m ×
(m − n) cuyas columnas son una base ortonormal del ortogonal de col(Q), de modo que [Q, Q0 ] es
matriz m × m ortogonal, pues
¸ ·
¸
· T
· T¸
Q Q QT Q 0
I O
Q
T
=
.
[Q, Q0 ] [Q, Q0 ] =
[Q, Q0 ] =
QT0 Q QT0 Q0
O I
QT0
A su vez, completando R con m − r las de ceros tenemos que
· ¸
R
[Q, Q0 ]
= QR + Q0 O = QR = A.
O
Resumimos lo expuesto en el siguiente resultado.
Proposición 1 (Descomposición QR) Dada una matriz real A, de dimensiones m × n y de
rango n ≤ m, existen matrices Q m × m con sus columnas formando un sistema ortonormal, esto
es, QT Q = I 1 y R de dimensión m × n y de rango n, con sus m − n últimas las nulas, y sus n
primeras las formando una matriz cuadrada triangular superior, tales que A = QR.
Si se conoce una descomposición QR de la matriz A, entonces las soluciones en el sentido de
mínimos cuadrados de Ax = b se pueden calcular resolviendo (por mínimos cuadrados) el sistema
Rx̃ = QT b.
(10)
Ello es debido a que
AT Ax̃ = AT b
⇒
RT QT Q Rx̃ = RT QT b
| {z }
⇒
RT Rx̃ = RT QT b.
=I
Dicho de otro modo, x̃ también es solución de mínimos cuadrados de (10). Llamando R̃ a la matriz n × n invertible formada por las primeras n las de R (recordemos que estamos suponiendo A
de rango máximo) Qn y Qm−n a las matrices formadas por las n primeras y m − n últimas columnas
de Q, respectivamente, esto es
· ¸
R̃
R=
,
Q = [Qn , Qm−n ],
O
1 Una
matriz cuadrada que cumple QT Q = I se denomina ortogonal y, por tanto, sus columnas, al ser ortogonales
entre sí y de norma 1, forman una base ortonormal. Pero recuerde que no hay matrices ortonormales. Vea también
la Nota 2.
15
el sistema (10) se escribe como
· ¸
· T ¸
· T ¸
Qn
Qn b
R̃
x̃ =
b=
.
T
Qm−n
QTm−n b
O
La solución de mínimos cuadrados de este sistema es
x̃ = R̃
−1
· ¸´
³
R̃
⊥ col R =
,
pues Q b − Rx̃ =
T
Qm−n b
O
QTn b,
T
·
(11)
0
¸
con lo cual es la solución de RT Rx̃ = RT QT b, que es el mismo sistema de ecuaciones que AT Ax̃ =
AT b, esto es, las ecuaciones normales del problema de mínimos cuadrados Ax = b.
El uso de la descomposición QR para resolver por mínimos cuadrados el sistema Ax = b, como hemos mencionado, presenta ventajas desde el punto de vista numérico. En la siguiente tabla
mostramos los errores relativos kx̂ − x̃k / kx̃k, donde x̂ se obtuvo resolviendo las ecuaciones normales de Gauss y mediante la descomposición QR. Las matrices A se eligieron aleatoriamente de
dimensiones m × m/4, modicándose su última columna para que cond(A) no fuese pequeño.
m
24
48
96
192
384
768
−12
−11
−10
−08
−06
error Gauss 4,06 × 10
5,76 × 10
3,42 × 10
2,43 × 10
1,70 × 10
1,52 × 10−05
−15
−13
−14
−13
−12
error QR 7,27 × 10
1,02 × 10
2,66 × 10
5,30 × 10
3,75 × 10
1,01 × 10−11
Saque usted sus propias conclusiones.
2.3. Método de Householder para la descomposición QR
Recuerde que una simetría especular es una transformación de Rm en sí mismo que transformaba
cada punto en su simétrico respecto de un hiperplano (subespacio de Rm de dimensión m − 1). Si
dicho hiperplano V tiene por ecuación implícita v T x = 0, para un cierto vector no nulo v de Rm ,
©
ª
V = x ∈ Rm |v T x = 0 ,
la simetría especular en torno a V es
x 7→ (I − 2
vv T
)x.
vT v
Recuerde que, si la ecuación implícita de V es v T x = 0, el ortogonal de V es lin(v) y el de lin(v) es
V:
V ⊥ = lin(v),
lin(v)⊥ = V.
x¡
µ
©
©©
©©V
©
v 6 ¡
¡
¡
¡
¡
@
@
©
©©
©
©
©
@
@
vv T @
(I − 2 T )x @
R
v v
16
Recuerde que la matriz de una simetría especular es ortogonal, pues multiplicando por su traspuesta
se obtiene
(I − 2
vv T T
vv T
vv T
vv T
vv T
vv T vv T
)
(I
−
2
)
=
(I
−
2
)(I
−
2
)
=
I
−
4
+
4
·
,
vT v
vT v
vT v
vT v
vT v
vT v vT v
y observando que v T v es un escalar, se llega a
4
vv T vv T
(vv T )(vv T )
v(v T v)v T
(v T v)vv T
vv T
=
4
=
4
=
4
·
=
4
vT v vT v
(v T v)2
(v T v)2
(v T v)2
vT v
con lo que
vv T T
vv T
)
(I
−
2
) = I.
vT v
vT v
Las simetrías especulares pueden denirse para llevar un vector
 
 
y1
x1
 .. 
 .. 
m
x= . ∈R ,
en otro distinto y =  .  ∈ Rm ,
siempre que
xm
ym
(I − 2
pues
si
para
kxk = kyk ,
kxk = kyk ,
v = x − y,
se tiene que
vv T
)x = y.
vT v
Las transformaciones de Householder son un caso particular de simetrías especulares del tipo anterior, pues sirven para transformar un vector cualquiera x en otro y = ± kxk e1 proporcional al
primer vector coordenado e1 . La correspondiente matriz H la presentamos en el siguiente resultado.
(I − 2
Teorema 4 Sea x ∈ Rm (m > 1) y x 6= 0. La matriz
vv T
I −2 T ,
v v
verica que
½
donde
v = x + δ kxk e1 ,
δ=
sign(x1 ),
1
x1 =
6 0,
x1 = 0.


−δ kxk
 0 


Hx =  ..  .
 . 
0
Pasemos a obtener la factorización QR de una matriz A de dimensión m × n (m ≥ n > 1) y con
rango rg(A) = n. Llamemos


a11


b1 =  ... 
am1
17
a la primera columna de la matriz A. Aplicamos el teorema anterior y se determina una matriz
de Householder H1 (de orden m) de modo que la primera columna de H1 A tenga las componentes
nulas por debajo de la diagonal,



H1 A = A(2) = 

(2)
a11
0
..
.
0
(2)
(2)
a12 . . . a1n
(2)
(2)
a22 . . . a2n
..
..
.
.
(2)
(2)
am2 . . . amn



,

y denotamos Q(1) = H1 .
Ahora nos jamos en la segunda columna de la matriz A(2) a partir de la diagonal, en concreto
en el vector
 (2) 
a22
 .. 
b2 =  .  .
(2)
am2
f2 (de orden m− 1)
Volvemos a aplicar el teorema anterior y obtenemos una matriz de Householder H
f2 b2 tenga las componentes nulas por debajo de la primera. Por tanto si denimos
de modo que H


(2)
(2)
(2)
(2)
a11 a12 a13 . . . a1n

(3)
(3) 
 0 a(3)
a23 . . . a2n 
·
¸
22
T

1 0
(3)
(3) 
(2)
(3)

 0
0
a
.
.
.
a
H2 =
,
tenemos
que
H
A
=
A
=
2
33
3n  ,

f2
0 H
..
..
.. 
 ..
.
.
. 
 .
0
y denotamos
0
(3)
(3)
am3 . . . amn
Q(2) = H2 .
El resto de los pasos son completamente similares.
Teorema 5 Para cualquier matriz A de dimensión m × n con 1 < rg(A) = n ≤ m, el método
¡
¢T
anterior genera una matriz ortogonal Q(= Q(1) · · · Q(m−1) = Q(m−1) · · · Q(1) ) de dimensión m × m
y una matriz R(= A(m) ) de dimensión m × n cuyas m − n últimas las son nulas y cuyas n primeras
forman una matriz triangular superior de rango n, y tales que A = QR.
Nota 2 Una matriz Q cuadrada de orden m se dice que es ortogonal si sus columnas forman
una base ortonormal de Rm . Si escribimos Q por columnas como Q = [q1 , . . . , qm ], entonces Q es
ortogonal si y sólo si, qiT qj = 0 para i 6= j y qiT qi = kqk = 1. Por tanto, se tiene también que Q es
ortogonal si y sólo si
QT Q = I,
o, equivalentemente,
Q−1 = QT .
El costo computacional de obtener la factorización QR por el método de Householder descrito
anteriormente es de
3
(12)
O(2m2 n − n3 ) ops.
18
y el de resolver el problema de mínimos cuadrados Ax = b (sin calcular explícitamente Q) es de
O(mn2 −
n3
)
3
ops.
(13)
Es decir, para matrices cuadradas es aproximadamente el doble que el de resolver Ax = b con el
método de eliminación gaussiana.
3. Matrices de rango deciente: Descomposición en valores
singulares
Introducción. En la sección anterior hemos tratado el caso de sistemas lineales Ax = b siendo A
una matriz con más las que columnas, pero de rango máximo. Tratamos ahora el caso en que el
rango no es máximo. En este caso, la matriz A de coecientes del sistema se dice que es de rango
deciente.
Un ejemplo de dicho sistema es por ejemplo,




1 2 1  
1
1 3 4 x1



  x2  =  3 
2 5 5
 −2 
x3
3 8 9
0
Si procedemos a resolverlo como hacíamos en primero,







1 2 1  
1
−→
1 2 1  
1
 1 3 4  x1
 3  f 2 ← f 2 − f 1  0 1 3  x1
 2

  


  
2 5 5 x2 =  −2  f3 ← f3 − 2f1 0 1 3 x2 =  −4
x3
x3
3 8 9
0
f4 ← f4 − 3f1
0 2 6
−3




1 2 1  
1
 0 1 3  x1
 2 
  

−→ 
0 0 0 x2 =  −6  ,
x3
0 0 0
−7




−→
f3 ← f3 − f2
f4 ← f4 − 2f2
sistema que es claramente incompatible pues las dos últimas ecuaciones son 0x3 = −6 y 0x4 = −7,
que no pueden satisfacerse. Observamos también que la matriz es de rango 2 (menor que su número
de columnas). Esto signica que Ac = 0 tiene innitas soluciones. De hecho si resolvemos el sistema
homogéneo Az = 0, obtemos que las soluciones z son proporcionales a


−5
c =  3 ,
satisface que Ac = 0.
−1
Si introducimos en Matlab la matriz A y el vector b y ejecutamos x=A\b, Matlab devuelve,
Warning: Rank deficient, rank = 2 tol = 9.8504e-15.
19
x =
0
-0.9333
0.8667
Observamos en primer lugar que° Matlab
° nos avisa de que la matriz−15es de rango 2 o, siendo más
°
preciso, que una matriz à con à − A°/ kAk ≤ tol = 9,8504 × 10
tiene rango 2. Es más, el
comando rank de Matlab lo que realmente intenta estimar es el denominado rango ε-aproximado
de A, es decir, el número de valores singulares de A mayores que ε. La ayuda en línea de Matlab
permite conocer el valor por defecto de ε.
La solucíon obtenida es (aproximación a una) solución de mínimos cuadrados, ya que se verica
que AT (b − Ax) = 0 con un cierto error de redondeo. En efecto, ejecutando A'*(b-A*x), Matlab
responde
ans =
1.0e-13 *
-0.0533
-0.1421
-0.1243
Notemos además que la solución x proporcionada por Matlab es una de las muchas posibles, ya
que
¾
Ac = 0,
⇒ AT (b − A(x + λc) = 0, ∀λ ∈ R,
AT (b − Ax) = 0
esto es, tenemos innitas soluciones de mínimos cuadrados de la forma x + λc.
Es estándar en el caso matrices de rango deciente, aceptar como solución la que se conoce como
solución optima , que se dene como aquella solución x∗ en el sentido de mínimos cuadrados tal que
kx∗ k ≤ kx̃k
para toda x̃ solución de mínimos cuadrados de Ax = b.
En el ejemplo anterior, la solución óptima, aproximada a 5 dígitos decimales, es


−0,5238
−0,6190
0,7619
Luego vemos que Matlab no necesariamente proporciona la solución optima en un problema de
mínimos cuadrados.
El cálculo efectivo de la solución óptima pasa por la descomposición en valores singulares de la
matriz A, abreviada SVD del inglés singular value decomposition". Antes de ver cómo se calcula la
solución óptima x∗ , terminamos esta introducción con un resultado de caracterización de la misma.
Teorema 6 Sea A matriz de dimensiones m × n con rg(A) = r < n ≤ m y b ∈ Rn .
1. Si x̃ es una solución de mínimos cuadrados del problema Ax = b, entonces el conjunto de
soluciones de mínimos cuadrados es
{y = x̃ + z|z ∈ Nul(A)},
donde
20
Nul(A) = {z ∈ Rn |Az = 0}.
2. La solución óptima x∗ es la única que satisface que z T x∗ = 0, para todo z ∈ Nul(A) o, lo que
es idéntico, x∗ pertenece al espacio imagen de AT .
Descomposición en valores singulares (SVD). Dada un matriz A ∈ Rm×n (m ≥ n) de rango r
obtenemos los autovalores de la matriz AT A (simétrica semidenida positiva) que podemos suponer
λ1 ≥ . . . ≥ λr > 0 = λr+1 , . . . , λn
y la correspondiente base de autovectores asociados,
{v1 , . . . , vn },
(AT Avj = λj vj ,
j = 1, . . . , n),
que sabemos que puede elegirse ortonormal (vjT vk = 0 si j 6= k , y kvj k = 1, j = 1, . . . , n). Los
valores singulares de la matriz A son
p
σj = λj ,
j = 1, . . . , r.
Los vectores singulares derechos (o por la derecha) son v1 , . . . , vn . Los vectores singulares izquierdos
o por la izquierda son
1
1
u1 = Av1 , . . . , ur = Avr .
σ1
σr
(note que son solamente los correspondientes a autovalores no nulos de AT A). Puede comprobarse
que {u1 , ..., ur } es un sistema ortonormal en Rm . Si dicho sistema se amplía
u1 , . . . , ur , ur+1 , . . . , um
hasta una base ortonormal de todo Rm y formamos las matrices U y V , que por columnas se escriben
U = [u1 , . . . , um ] (m × m),
V = [v1 , . . . , vn ] (n × n),
es fácil ver que para la matriz Σ de dimensión m × n,

σ1 0 . . . 0 0 . . .
. .

.
 0 σ2 . . .. ..
 . .
 ..
.. ... 0 0 . . .

Σ=
 0 . . . 0 σr 0 . . .
 0 ... 0 0 0 ...

 .
..
.. .. . .
 ..
.
.
. .
0 ... 0 0 0 ...
se tiene que AV = U Σ, y, por tanto,

0
.. 
. 

·
¸
0 

Σ1 O

0 = O O
0 

.. 
. 
0
A = U ΣV T .
El siguiente teorema recoge la existencia y unicidad de la factorización SVD.
21
Teorema 7 Para cualquier matriz A de dimensión m × n con (m ≥ n), y de rango r ≤ n, existen
dos matrices ortogonales U de dimensión m × m y V dimensión n × n y otra matriz Σ de dimensión
m × n tales que


σ1 0 . . . 0
·
¸
. 
.

Σ1 O
 0 σ2 . . .. 
T
T
A = U ΣV = U
V ,
donde Σ1 =  . .
,
O O
.. ... 0 
 ..
0 . . . 0 σr
con σ1 ≥ · · · ≥ σr > 0, estando Σ determinada de forma única. Los números σi son necesariamente las raíces cuadradas de los autovalores no nulos de la matriz AT A, y se les denomina valores
singulares de A.
Dada una matriz A de dimensión m × n, de rango r con la siguiente factorización SVD,
·
¸
Σ1 O
A=U
V T,
Σ1 = diag(σ1 , . . . , σr ),
O O
se denomina matriz inversa generalizada de Moore-Penrose (o, simplemente pseudoinversa) de A a
la matriz A+ de dimensiones n × m dada por
· +
¸
Σ O
+
A =V
UT ,
donde Σ+ = Σ−1
1 .
O O
Si la matriz A es cuadrada y no singular, se verica que A+ = A−1 , lo cual justica el nombre
de pseudoinversa. Por otro lado si A es de dimensión m × n con rg(A) = n ≤ m, entonces A+ =
(AT A)−1 At . Es decir, la pseudoinversa permite resolver las ecuaciones normales de Gauss, AT Ax̃ =
AT b, cuando éstas tienen solución única. En el caso de que la solución no sea única se tiene el
siguiente resultado.
Teorema 8 Sean A matriz m × n con (m ≥ n), y b ∈ Rm . Entonces el vector x∗ ∈ Rn es la solución
óptima del problema de mínimos cuadrados asociado al sistema Ax = b si y sólo si x∗ = A+ b.
Nota 3 El método con el que hemos obtenido aquí la SVD no se debe emplear para su cálculo efec-
tivo en el ordenador. Hay otros procedimientos más ecaces (véase por ejemplo Golub & Van Loan,
Matrix Computations (2nd Ed) , John Hopkins University Press, London, 1989) que no veremos este
curso. Nos bastará con saber que el costo computacional es de
O(2m2 n + 4mn2 + 29 n3 ) ops.
(14)
y que, en Matlab, se puede calcular con el comando svd.
En el siguiente gráco mostramos los tiempos de ejecución en segundos que resultan de efectuar
la descomposición QR y de calcular la SVD para matrices aleatorias de orden 2n × n, con n = 80,
160, 320, 640 y 1280. Corresponden a la ejecución de los comandos svd y qr de Matlab sobre una
estación de trabajo SUN Ultra-60 a 450 MHz.
22
Si llamamos tn al tiempo de ejecución de un comando para un valor determinado del número
de columnas n, cada par (n, tn ) está representado en el gráco con un asterisco. Los pares correspondietes a la SVD están unidos con línea de trazos, y los de QR con línea continua. Con ello, nos
hacemos idea de qué hubiera ocurrido de haber probado con valores intermedios.
Dado que las matrices son de orden 2n × n, en virtud de (1214), los costos deben crecer
como n3 . Dado que el gáco está hecho en doble escala logarítmica (comando loglog de Matlab),
los puntos se alinean en torno a rectas de pendiende aproximadamente 3. De hecho, se muestran
los valores de las pendientes resultantes de ajustar sendas rectas por mínimos cuadrados a los
pares (log10 (n), log10 (tn )). Como vemos, dichos valores son aproximidamente 3, pues log10 (n3 ) =
3 log10 (n).
QR vs SVD: A 2nxn
4
10
3
SVD
slope SVD: 3.27
10
slope QR: 2.86
2
seconds
10
mean(SVD./QR): 5.2
1
10
QR
0
10
−1
10
−2
10
1
10
2
3
10
10
4
10
n
También en virtud de (1214), dado que las matrices son de orden 2n×n, el costo de la SVD debe
ser aproximadamente de 41n3 /2 ops, mientras que el de la descomposición QR es de 19n3 /3 ops,
esto es, la SVD debe resultar aproximadamente 3 veces más cara que la factorización QR. Calculando
para cada n los cocientes entre los tiempos de ejecución tn de una y otra descomposición, y tomando
la media, ésta sale de 5,2. El hecho de que no sea un valor cercano a 3 puede ser debido a que el costo
mostrado en (14) es el de una de las posibles técnicas para su cálculo; en todas ellas el costo depende
de los factores m2 n y mn2 , aunque los coecientes que multiplican a estas cantidades son ligeramente
distintos de los mostrados en (14). Nótese también que mientras los puntos correspondientes a la
SVD están relativamente bien alineandos, no ocurre lo mismo con los de la descomposición QR,
pudiendo esto distorsionar el cálculo de la media.
23
4. Cuestiones y problemas
CUESTIONES
Ejercicio 1 Obtenga la factorización LU de la matriz

2
 1
A=
 2
4
4
2
3
6
0
1
2
1

1
0 
.
1 
2
Una vez obtenida la factorización, resuelva el sistema Ax = b donde b = [4, 2, 5, 7]T .
Ejercicio 2 Deduzca que el costo en ops de calcular la inversa de una matriz A de orden n es n3
ops. Recuerde que
n
X
j2 =
j=1
(2n + 1)(n + 1)n
.
6
Ejercicio 3 Si D es una matriz diagonal m × n, razone por qué
kDk =
máx
1≤j≤mı́n(m,n)
|djj | .
Ejercicio 4 Pruebe que si λ es autovalor de la matriz cuadrada A, entonces se tiene que |λ| ≤ kAk.
Encuentre un ejemplo de una matriz A para la que si λ es cualquiera de sus autovalores entonces
|λ| < kAk.
Ejercicio 5 Sea Q de dimensiones m × n y tal que QT Q = I
1. ¾Puede ser n > m? ¾Por qué?
2. Razone por qué kQxk = kxk, para todo vector x de n componentes.
3. Encuentre un argumento (y° un ejemplo)
que muestre que si Q no es cuadrada,
hay
°
° entonces
°
vectores x para los cuales °QT x° = kxk, y otros vectores x para los cuales °QT x° < kxk.
¾Puede este último caso darse si Q es cuadrada?
°
°
4. Pruebe que °QT x° ≤ kxk.
Ejercicio 6 Basándose en el ejercicio anterior, pruebe que si Q es matriz rectangular tal que QT Q =
I , entonces kQk = kQT k = 1.
Ejercicio 7 Basándose en el Ejercicio 5, razone por qué si Q es cuadrada de orden m y QT Q = I ,
entonces para toda matriz A de dimensiones m × n se tiene que kQAk = kAk, y para toda matriz
B de dimensiones k × m se tiene que kBQk = kBk.
p
Ejercicio 8 Pruebe que si A es matriz m × n, entonces kAk = ρ(AT A).
24
Ejercicio 9 Determine la norma euclídea de la matriz
·
2 −1
1
1
¸
.
Ejercicio 10 Encuentre un argumento que muestre que para todo vector x ∈ Rn se tiene que
máx |xj | ≤ kxk .
1≤j≤n
¾Sabría encontrar vectores para los que se da la igualdad en la desigualdad anterior?
Ejercicio 11 Repita el ejercicio anterior pero con la desigualdad siguiente: Para todo x ∈ Rn se
tiene que
kxk ≤
√
n máx |xj | .
1≤j≤n
Ejercicio 12 a) Si A es una matriz m × n y aT1 , . . . , aTm son sus las, razone por qué
kAk ≤
√
m máx kai k .
1≤i≤m
b) Basandose entonces en el Ejercicio 11, concluya entonces que
√
kAk ≤ mn máx |aij | .
1≤i≤m
1≤j≤n
Ejercicio 13 Determine el número de condición de matriz


1
2
1
 0 −1
2 .
1
0 −1
Ejercicio 14 Determine la solución de mínimos cuadrados, vía ecuaciones normales, del sistema
sobredeterminado
Ejercicio 15 Idem con
x1 + x2
−x1 + x2
x1 + x3
x1 + x2
=0
=1
=1
=1







.

3x1 − x2 = 0 
4x1 + 2x2 = 2 .

x2 = 1
Ejercicio 16 Si A es una matriz cuadrada e invertible, pruebe que la solución del problema de
mínimos cuadrados Ax = b, coincide con la solución del sistema lineal Ax = b.
Ejercicio 17 Aplicando el método de Gram-Schmidt, obtenga una factorización QR de la matriz


1 2 0
A =  0 1 0 .
1 4 1
25
Ejercicio 18 Idem con


1
2
0
 0
1
0 
.
A=
 1 −2
2 
2
0 −1
Ejercicio 19 Siendo x el vector x = [2, 0, 1, −2]T , y e1 el primer vector coordenado de R4 , calcule
la matriz de Householder H tal que Hx es proporcional a e1 .
Ejercicio 20 Obtenga una factorización QR de la matriz
·
A=
1 −1
1
0
¸
,
utilizando transformaciones de Householder.
Ejercicio 21 a) Mediante transformaciones de Householder, encuentre la descomposición QR de
la matriz

4
 −3
A=
 0
0
3
4
0
0

5
0 
.
3 
4
b) Resuelva el problema de mímimos cuadrados Ax = b donde A es la matriz del apartado anterior
y b = [0, 0, 9, 4]T .
Ejercicio 22 Calcule el número de condición de una matriz invertible cuyas columnas sean ortogonales entre sí.
Ejercicio 23 Calcule la descomposición en valores singulares de la matriz


1
1 1
0 1 .
A =  −1
1 −1 1
Ejercicio 24 Idem con la matriz


1
2 1
A =  2 −2 2  .
2
1 2
Ejercicio 25 Calcule la SVD de la matriz

1
 5
A=
 5
1
26

5
1 
.
1 
5
Ejercicio 26 Obtenga la SVD de

1
1
A=
1
1
1
1
1
1

1
1
.
1
1
Ejercicio 27 Aplique el resultado del ejercicio anterior para encontrar la solución óptima del problema de mínimos cuadrados Ax = b con b = [1, 2, 3, 4]T .
Ejercicio 28 Repita los dos ejercicios anteriores con

1
0
A=
1
0
0
1
0
1

1
1
,
1
1
 
1
2

b=
3 .
4
Ejercicio 29 Pruebe que si A matriz cuadrada de orden n es invertible, entonces
s
λn (AT A)
,
λ1 (AT A)
cond(A) =
donde λ1 (AT A) y λn (AT A) son, respectivamente, el menor y el mayor de los autovalores de la matriz
AT A.
En general, si A es una matriz rectangular m × n cuyo rango es r = mı́n(m, n), el número de
condición de A se dene como σ1 /σr , donde σ1 , . . . , σr son sus valores singulares.
Ejercicio 30 Pruebe que efectivamente A+ b es la solución óptima del problema de mínimos cuadrados Ax = b.
Ejercicio 31 Muestre que la pseudoinversa generalizada de una matriz A de dimensión n × n
verica que
(AA+ )T = AA+ , (AA+ )2 = AA+ .
Interprete el signicado de las igualdades anteriores desde el punto de vista de la teoría de aplicaciones lineales.
Ejercicio 32 Pruebe que los autovalores de toda matriz ortogonal son de módulo unidad. De-
muestre que λ = −1 es siempre un autovalor de cualquier matriz de Householder. Interprete geométricamente este hecho para las matrices de orden dos.
Ejercicio 33 Considere la matriz


1 1
A =  −1 0  .
0 1
Calcule su descomposición en valores singulares y la solución óptima de Ax = b con b = [1, 2, 3]T .
¾Cúal es el rango de A? ¾y su norma euclídea?.
27
Ejercicio 34 Razone por qué si A = QR es una descomposición de la matriz cuadrada A, entonces
A y RQ tienen los mismos autovalores.
Ejercicio 35 Determine los autovalores y autovectores de la matriz de Householder que lleva
[1, 2, 4, 2]T en [−5, 0, 0, 0]T .
Ejercicio 36 Si A es una matriz m × n, obtenga el costo en ops de su factorización QR reducida
por el método de Gram-Schmidt. Compruebe que el costo de la factorización QR por el método de
Householder es el que se indica en (12).
Ejercicio 37 Determine la inversa generalizada de la matriz

1 0 1
 0 1 0 .
1 0 1

Ejercicio 38 Calcule la descomposición en valores singulares d la matriz de Householder que lleva
el vector [1, −2, 2]T en [−3, 0, 0]T .
PROBLEMAS
Problema 1 Recordamos que el algoritmo de eliminación gaussiana sin pivoteo requiere, para cada
k , encontrar los multiplicadores
(k)
(k)
lik = aik /akk , con i = k + 1, ..., n,
y, a continuación, restar a cada la i posterior a k , la la k -ésima multiplicada por lik .
1. Elabore una función de Matlab que, dada una matriz cuadrada A, devuelva las matrices L
y U de su factorización sin pivoteo A = LU y que use tres ciclos for en su programación. Con
una matriz cualquiera (por ejemplo, una matriz aleatoria obtenida con la orden rand(4)),
compruebe su función viendo si el resultado de efectuar A − L ∗ U es una matriz de ceros o
una matriz cuyos elementos son del orden de precisión de la máquina.
2. Repita el apartado anterior pero, esta vez, procure que el código que implementa la eliminación
gaussiana sin pivoteo efectúe un único ciclo for. Para ello, observe que la multiplicación del
vector columna l ∈ Rp por el vector la a ∈ Rq , da como resultado la siguiente matriz de
dimensiones p × q :




l1 a1 · · · l1 aq
l1
¤ 
£

..  .
..
l ∗ a =  ...  a1 · · · aq =  ...
.
. 
lp a1 · · · lp aq
lp
¾Qué ventajas cree que pueden obtenerse con este estilo de programación?
28
3. Elabore una tabla con los errores relativos que se cometen al resolver un sistema de ecuaciones
lineales con la factorización LU programada como en el punto anterior y con la orden \ de
Matlab. Para ello, elija matrices de modo aleatorio An ∈ Rn×n con n = 10, 20, 40, 80, 160, 320,
(use la orden rand) y tome como vectores bn = An xn donde los vectores xn ∈ Rn×1 también se
eligen de modo aleatorio. Comente, compare y explique la evolución de los errores relativos,
en ambos casos.
4. Modique la función del apartado dos, para diseñar otra función que implemente la factorización asociada a la eliminación con pivoteo parcial de una matriz cuadrada. Con esta función,
repita el apartado anterior. ¾Qué conclusiones podemos sacar?
5. Usando la orden cputime de Matlab, obtenga una tabla con los tiempos de ejecución de la
factorización asociada a la eliminación con pivoteo parcial, utilizando el código del apartado
cuatro y la orden lu de Matlab. Para ello, considere nuevamente matrices aleatorias An ∈
Rn×n , con n = 10, 20, 40, 80, 160, 320; es decir, doble en cada paso la dimensión. ¾Cómo cambia
el tiempo de ejecución de su programa? ¾era previsible esa evolución? ¾por qué la orden de
Matlab es más rápida que su programa?
Problema 2 La matriz de Hilbert de orden n se dene como
µ
Hn :=
1
i+j−1
¶
.
i,j=1,...,n
1. Diseñe dos funciones diferentes de Matlab que proporcionen la matriz de Hilbert de orden
n : una debe usar bucles for y la otra asignaciones vectoriales de Matlab. El argumento de
entrada debe ser n en ambos casos.
2. Obtenga una función de Matlab que proporcione una tabla con los números de condición en
norma euclídea de las n primeras matrices de Hilbert. Aplique dicha función a n = 15.
3. Para n = 5, 10 y 15, calcule los vectores w5 , w10 y w15 formados por las sumas de las las de
la correspondientes matrices de Hilbert. ¾Qué ocurre al resolver con Matlab los sistemas de
ecuaciones lineales
H5 x = w5 , H10 x = w10 , H15 x = w15 ?
Comente y justique las diferencias en precisión observadas en las tres soluciones.
4. Sean x5 , x10 y x15 las soluciones proporcionadas por Matlab en el apartado anterior. Calcule
numéricamente los valores residuales Hi xi − wi . ¾Porqué no es able considerar, como solución
de un sistema Ax = b, un vector cuyo valor residual sea muy pequeño?
Problema 3 Considere el siguiente sistema Ax = b de ecuaciones lineales

x1 + x2 + x3 + x4




 εx1
εx2


εx3



εx4
29
=
=
=
=
=
1
0
0 ,
0
0
ε > 0.
1. ¾Para qué valores de ε tiene el sistema anterior solución única en el sentido de los mínimos
cuadrados? En su caso, obtenga la solución exacta de modo simbólico. Recuerde que si v ∈ Rn
1
es un vector columna no nulo, entonces la matriz I + λvv t es invertible siempre que λ 6= − kvk
2
y la correspondiente inversa viene dada por
(I + λvv t )−1 = I −
λ
vv t .
1 + λv t v
2. Para los valores del parámetro ε = 10−2 , 10−4 , 10−6 y 10−8 , resuelva las ecuaciones normales
de Gauss asociadas al sistema y obtenga los correspondientes errores relativos. ¾Son ables
los resultados obtenidos?
3. Diseñe una función de Matlab que, dada una matriz A, devuelva la factorización QR normalizada obtenida mediante el método de Gram-Schmidt. Use dicha factorización para resolver nuevamente los problemas de mínimos cuadrados del apartado dos. ¾Qué observa? ¾son
mejores estos resultados que los del apartado anterior? ¾le parecen aceptables los errores
relativos obtenidos?
4. Diseñe una función de Matlab que resuelva las ecuaciones normales de Gauss mediante
la orden qr de Matlab, y cuyo argumento de entrada sea el parámetro ε. Compare estos
resultados con los de los apartados anteriores y describa y justique el fenómeno numérico
observado.
5. Resuelva los problemas de mínimos cuadrados que venimos considerando mediante la orden
barra inclinada de Matlab. Justique las similitudes y diferencias de estos nuevos resultados
con los de los apartados anteriores.
Problema 4 Recordamos inicialmente el método de Gramm-Schmidt que, aplicado a una matriz
A de dimensiones m × n, produce una descomposición (reducida) QR. En concreto, escribiendo A
1
por columnas como A = [a1 , ..., an ] (con aj ∈ Rm ), se asignan primero r1,1 := ka1 k y q1 :=
a1 , y
r1,1
posteriormente (para k = 2, ..., n) se realizan las siguientes operaciones
r ←− [q1 , ..., qk−1 ]T ak ,
u ←− ak − [q1 , ..., qk−1 ]T r
rk,k
:
= kuk , rj,k := rj , para j = 1, ..., k − 1
1
qk
:
=
u
rk,k
Aunque se sabe que el procedimiento anterior de Gramm-Schmidt no es generalmente el mejor, hay
veces en la práctica donde su uso es necesario. Por ejemplo, suele utilizarse cuando la matriz A no
se conoce a priori y se va calculando dinámicamente a partir de las columnas de Q.
30
1. Una opción para mejorar la precisión del procedimiento de Gramm-Schmidt es efectuar, en
cada etapa y bajo ciertas condiciones, reortogonalizaciones que mitiguen la posible pérdida
de ortogonalidad numérica de dicho proceso. En concreto, jado previamente un valor umbral
kuk
tol, en cada etapa se calculan inicialmente u y r y, si
≤ tol, se vuelven a calcular u y r
kak k
de la siguiente forma:
u ←− u − [q1 , ..., qk−1 ]T s, con s = [q1 , ..., qk−1 ]u,
r ←− r + s.
Diseñe una función de Matlab que implemente el descrito método de Gramm-Schmidt con
reortonormalización.
2. Para ε = 1, 10−2 , 10−4 , 10−6 , 10−8 , 10−10 , determine el error relativo (en norma euclídea)
cometido al resolver el problema de mínimos cuadrados

x1 + x2 + x3 + x4 = 1




= 0
 εx1
= 0 ,
εx2
ε>0


εx3
= 0



εx4 = 0
utilizando la descomposición QR reducida proporcionada por la función del apartado anterior.
3. Otro procedimiento para mejorar el método de Gramm-Schmidt es el que se conoce como
1
método de Gramm-Schmidt modicado. Se asignan inicialmente r1,1 := ka1 k y q1 :=
a1 y,
r1,1
a continuación, para k = 1, ...n − 1, se realizan las siguientes operaciones:
s ←−
rk,k+j =
ak+j ←−
rk+1,k+1
:
qk+1
:
qkT [ak+1 , ..., an ],
sj , para j = 1, ..., n − k
ak+j − sj qk , para j = 1, ..., n − k
= kak+1 k
1
ak+1 .
=
rk+1,k+1
Diseñe una función de Matlab que implemente este método de Gramm-Schmidt modicado.
4. Repita el apartado dos pero utilizando la descomposición QR reducida obtenida con la función
desarrollada en el apartado tres. ¾Qué conclusiones saca?
Problema 5 Si v y w son dos vectores de m componentes, a la hora de multiplicar una matriz
A de dimensiones m × n por la matriz vwT no es necesario construir está; se puede efectuar como
v(wT A).
1. Elabore una función de Matlab que dados un vector v de m componentes y una matriz A
de dimensiones m × n devuelva el producto
µ
¶
vv T
I −2 T
A
v v
31
sin construir ninguna matriz de rango 1. En la expresión anterior, I es la identidad. Escriba
la función, así como el resultado de aplicar su función a v = [1, 2, 3]T y A = [4, 5, 6]T .
2. Utilizando la función del apartado anterior, elabore otra función de Matlab que dada una
matriz A de dimensiones m×n, devuelva la matriz R de la descomposición QR de A calculada
con el método de Householder.
3. Cuando en la descomposición QR no se dispone de la matriz Q pero se puede calcular R, la
solución de mínimos cuadrados de Ax = b (con A matriz m × n) se puede obtener calculando
la matriz
e = [R, r] , R matriz m × n, r ∈ Rm
R
de la descomposoción QR de la matriz B = [A, b], pues la solución x
e de mínimos cuadrados
de Ax = b lo es de Rx = r. Explique por qué.
4. Sepa o no responder a la pregunta anterior, calcule con ese procedimiento (y la función del
apartado dos) la solución x
e de mínimos cuadrados de Ax = b, donde


 
1 1 1 1
1
 ε 0 0 0 
 1 


 
 , con ε = 10−10 y b =  1  .
0
ε
0
0
A=


 
 0 0 ε 0 
 1 
0 0 0 ε
1
Escriba el valor de x
e1 − 0,25.
5. Modique la función del apartado dos para que también devuelva el factor Q de la descomposición QR. Escriba el valor q33 de Q obtenido al aplicárselo a la matriz del apartado anterior.
Problema 6 Dadas N parejas de datos, (x1 , y1 ), ..., (xN , yN ), se denomina polinomio de ajuste de
grado M , al polinomio (cuando exista) p(x) = c0 +c1 x+· · ·+cM xM cuyos coecientes son la solución
en mínimos cuadrados del sistema de N ecuaciones con M + 1 incógnitas p(x1 ) = y1 , ..., p(xN ) = yN .
1. Diseñe una función en Matlab que proporcione los coecientes del polinomio de ajuste de
grado M de una colección de parejas {(xk , yk ) : k = 1, ..., N } mediante la resolución de
las ecuaciones normales de Gauss y utilizando la orden qr de Matlab. Los argumentos de
entrada deben ser el vector de datos X = [x1 , ..., xN ], el correspondiente vector de datos Y
= [y1 , ..., yN ] y el grado M.
2. Utilizando la función anterior, obtenga los coecientes de la parábola óptima (M = 2) que
ajusta los cuatro puntos (−3, 3), (0, 1), (2, 1) y (4, 3). Asimismo, dibuje en una misma gráca
la parábola y los cuatro puntos obtenidos.
3. Repita el apartado anterior pero con las siguientes parejas de datos:
(−3, 3), (0, 1), (−3, 1), (0, 2).
¾Por qué los resultados obtenidos no son satisfactorios?
32
4. Considere la colección de pares F = {(1, 2), (2, 5), (3, 10), (4, 17), (5, 26)}, la cual se intenta
D
ajustar con una fórmula del tipo y = x+C
. Para ello realice primero el cambio de variables X =
xy, Y = y y posteriormente utilice la función del apartado uno para obtener los coecientes
del correspondiente polinomio de ajuste lineal (M = 1).
1
y el cambio de
5. Repita el apartado anterior pero considerando ahora la fórmula y = Ax+B
1
variables X = x, Y = y . Determine cuál de las dos curvas de ajuste obtenidas es mejor y
explique por qué una de las soluciones es completamente absurda.
Problema 7 Considere la matriz:

1 2 3 4
 5 6 7 8 

A=
 9 10 11 12 
13 14 15 16

1. ¾Es posible realizar la descomposición A = LU sin intercambio de las? Calcule numéricamente una descomposición P A = LU con pivoteo parcial.
£
¤t
2. Considere el vector b= 1 1 1 1 .
Resuelva el sistema Ax = b, directamente con la orden \ de Matlab y con la descomposición
P A = LU obtenida en el apartado anterior. Calcule la norma euclídea de las dos soluciones
y explique el resultado obtenido. Compruebe previamente que ambas soluciones lo son en el
sentido de los mínimos cuadrados.
3. Construya una función de Matlab que devuelva la solución óptima en el sentido de los
mínimos cuadrados. Los argumentos de entrada deben ser la matriz A y el vector b. Puede
emplear la orden svd de Matlab. Calcule la norma euclídea de la solución Ax = b obtenida
con esta función. Compárela con las del apartado dos y explique el resultado.
4. Genere matrices aleatorios An de orden n y vectores aleatorios bn ∈ Rn con n = 40, 80, 160,
320, 640 y calcule los tiempos de ejecución de An \b, usando la orden \ de Matlab y la función
del apartado tres. Con los datos obtenidos, muestre una tabla de n frente al tiempo (escala
logarítmica) y estime de modo aproximado el orden de los dos métodos. ¾Le parece razonable
que el comando \ de Matlab no calcule la solución óptima por defecto?
Referencias
[1] N. J. Higham, Accuracy and Stability of Numerical Algorithms. Second edition.. SIAM, Philadelphia (PA), 2002.
[2] G. H. Golub & C. F. van Loan, Matrix computations. Third edition . Johns Hopkins University
Press, Baltimore, MD, 1996.
[3] G. W. Stewart, Afternotes in Numerical Analaysis . SIAM, Philadelphia (PA), 1996.
[4] L. N. Trefethen & D Bau III, Numerical Linear Algebra . SIAM, Philadelphia (PA), 1997.
[5] C. B. Moler, Numerical Computing with Matlab. SIAM, Philadelphia (PA), 2004.
33
Descargar