Sei sulla pagina 1di 64

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales

Mtodos Matemticos de Especialidad


Ingeniera Elctrica

Fundamentos de lgebra
lineal numrica
Jos Luis de la Fuente OConnor
jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es

Clase_alg_line_nu_2012.pdf
1/64

ndice
Operaciones con matrices
 Producto de una matriz por un vector
 Producto de dos matrices
Frmula de Strassen

Normas

 Vectoriales
 Matriciales

Condicionamiento de sistemas de
ecuaciones
2/64

Las operaciones numricas de vectores y matrices:


productos de vectores por matrices y de dos matrices,
el clculo de normas de vectores y matrices,
la evaluacin del condicionamiento de sistemas de ecuaciones
lineales,
son fundamentales en los mtodos y algoritmos que estamos
estudiando y analizando en este curso.
Conocer cmo operan en un ordenador y optimizarlas es esencial

3/64

Operaciones con matrices


Producto de una matriz por un vector
Comencemos por y D Ax, donde A 2 Rmn y x 2 Rn.
Cada coeficiente del vector y se obtiene mediate esta frmula:
n

yi D

j D1

aij  xj :

Esta operacin se puede interpretar como:


Combinar linealmente los vectores columna de A;
Una serie de productos interiores de los vectores fila de A y el
propio x.
4/64

Para ser factible, se debe cumplir que las dimensiones


m  n  n  1 D m  1:
Un algoritmo para llevar a cabo las operaciones numricas tendra,
ms o menos, esta forma:

 P RODUCTO y D Ax

Hacer y D 0
for i D 1 to m
for j D 1 to n
y.i / D y.i / C a.i; j /x.j /
end
end
5/64

En Matlab este producto sera fcilmente obtenible tecleando

>> y=A*x
Programando el algoritmo anterior con el juego de instrucciones de
Matlab sera:
[m n]=size(A);
y=zeros(m,1);
for i=1:m
for j=1:n
y(i)=y(i)+A(i,j)*x(j);
end
end
En este script (o guin) de operaciones a realizar, el bucle en
j materializa el producto interior de la fila i de A por el vector
x.
6/64

Tambin se podra hacer algo un poco ms sofisticado como lo que


sigue.

function y = MatVecF(A,x)
[m n] = size(A);
y = zeros(m,1);
for i=1:m
y(i) = A(i,:)*x;
end
ste sera el algoritmo en su versin por filas: una sucesin de
productos interiores: los vectores fila de A, A(i,:), por el vector x.
7/64

El algoritmo por columnas materializa que la operacin Ax es


equivalente a efectuar una combinacin lineal de los vectores
columna de A. Por ejemplo,
2 3
2
3


1 2
17C28
7
y D Ax D 43 45
D 43  7 C 4  85
8
5 6
57C68
2 3
2 3 2 3
1
2
23
D 7 435 C 8 445 D 4535 :
5
6
83

function y = MatVecC(A,x)
[m n] = size(A);
y = zeros(m,1);
Codificado para Matlab:
for j=1:n
y = y + A(:,j)*x(j);
end

8/64

La operacin Ax conlleva O.mn/ multiplicaciones y sumas/restas.


El que esta forma de operar consuma ms o menos tiempo de
ordenador depender de cmo se almacena en l la matriz A.
Si la matriz se guarda por columnas (lo habitual), esa operacin
requerir menos tiempo que la versin por filas, pues los
coeficientes a los que aqu accede estn contiguos en la memoria.

9/64

Para realizar la operacin y T D x T A, en vez de y D Ax, los


programas anteriores se convertiran en los que siguen.
function y=VecMatF(x,A)
%
[m n] = size(A);
y = zeros(1,n);
for j=1:m
y = y+x(j)*A(j,:);
end

function y=VecMatC(x,A)
%
[m n] = size(A);
y = zeros(1,n);
for j=1:n
y(j) = y(j)+x*A(:,j);
end

10/64

Producto de dos matrices


Si A 2 Rmr y B 2 Rrn son dos matrices, su producto,
C 2 Rmn D AB, se calcula mediante esta frmula:
r
i

cij D

ai k  bkj ;

kD1
para todo 1  i  m y 1  j  n. El algoritmo es el que sigue.

 P RODUCTO C D AB

Hacer C D 0
for j D 1 to n
for i D 1 to m
for k D 1 to r
c.i; j / D c.i; j / C a.i; k/  b.k; j /
end
end
end

11/64

a (i)
is a row vector,
a columnde
vector.
Cada
coeficiente
cij , esb(j)
el isresultado
un producto interior:
i

i
j

j
cij

En Matlab:

a'(i )

b( j )

cij

function C = MatMatInt(A,B)
% view of the matrixmatrix product is easier to
The inner product
[m r] = size(A);
use for hand calculations.
[r n] = size(B);
C = zeros(m,n);
for j=1:n
for i=1:m
C(i,j) = A(i,:)*B(:,j);
end
end
NMM: A Review of Linear Algebra

page 45

12/64

AB
= C j de

c(j)C= es
Abel(j)resultado de
Ahora bien, cada
columna
la matriz
multiplicar
la matriz A por el vector columna j -simo de B como
c(j) and b(j) are column vectors.
indica la figura.
i

=
r
A

En Matlab:

b( j )

c( j )

function C = MatMatVec(A,B)
The column view %of the matrixmatrix product AB = C is
helpful because it [m
shows
relationship between the columns of
r] =thesize(A);
A and the columns
[r ofn]C=. size(B);
C = zeros(m,n);
for j=1:n
C(:,j) = A*B(:,j);
end
13/64

Por ltimo, la matriz C tambin se puede ver como el resultado de


sumar r matrices de rango uno, cada una resultado del producto
exterior de dos vectores.
Recordemos que el producto exterior de u y v es
3
2 3
2
u1
u1 v1 u1 v2    u1 vn
6 u2 7
6 u2 v1 u2 v2    u2 vn 7
T
6
7
7:
uv D 4 : 5 v1v2    vn D 6
:
:
:
:
4
:
: : 5
:
:
:
um
um v1 um v2    um vn
Segn esto,

C D AB D

A.W; k/B.k; W/:


kD1
14/64

En Matlab:

function C = MatMatExte(A,B)
%
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for k=1:r
C = C + A(:,k)*B(k,:);
end

15/64

Todos estos mtodos realizan O.mnr/ multiplicaciones y


sumas/restas.
Como en el caso de los productos de matrices por vectores, el
procedimiento ms adecuado para programarlo en ordenador
depender de cmo se almacenan en l las matrices.
Lo ms habitual es que el ms eficaz sea el que denominbamos
MatMatVec.

16/64

Frmula de Strassen para multiplicar matrices


Se usa para multiplicar dos matrices cuadradas y de dimensin 2p ,
A y B. Se basa en una reordenacin inteligente de los clculos
convencionales.
Si A y B son bloques 2  2, el producto es





C 11 C 12
A 11 A 12 B 11 B 12
D
C 21 C 22
A 21 A 22 B 21 B 22


A 11B 11 C A 12B 21 A 11B 12 C A 12B 22
D
:
A 21B 11 C A 22B 21 A 21B 12 C A 22B 22

Esta operacin necesita 8 multiplicaciones y 4 sumas en su forma


tradicional.
17/64

Strassen reagrupa las operaciones de tal manera que slo se


necesiten 7 multiplicaciones y 18 sumas; as:
P1
P2
P3
P4
P5
P6
P7
C 11
C 12
C 21
C 22

D
D
D
D
D
D
D
D
D
D
D

.A 11 C A 22/.B 11 C B 22/
.A 21 C A 22/B 11
A 11.B 12 B 22/
A 22.B 21 B 11/
.A 11 C A 12/B 22
.A 21 A 11/.B 11 C B 12/
.A 12 A 22/.B 21 C B 22/
P1 C P4 P5 C P7
P3 C P5
P2 C P4
P1 C P3 P2 C P6
18/64

Generalizando, si las 7 multiplicaciones son de matrices m  m,


como las submatrices son m=2  m=2, se requieren


7 2
9
7 3
m multiplicaciones C
m .m 2/ C m2 sumas:
8
8
2
La operacin natural requerira m3 multiplicaciones y
m2.m 1/ sumas.
Para un dimensin m suficientemente grande, el procedimiento de
Strassen reduce las operaciones por un factor de alrededor
de 7/8.
19/64

Si se aplica recursivamente la idea y se van dividiendo las


submatrices en cuatro bloques, cada unos de estos en otros cuatro
y as sucesivamente, el procedimiento mejorar en mucho el nmero
total de operaciones a realizar.
El orden de las matrices de menor tamao al que se puede llegar
debe ser nmi n D 16, pues con bloques ms reducidos el nmero de
operaciones que se realiza en mayor que el ordinario.

20/64

En Matlab, para matrices n  n, con n D 2p .


function C = strass(A,B)
% Calcula C=AxB mediante la frmula de Strassen
%
A,B matrices n x n; n potencia de 2.
%
n = length(A);
if n-2^(log2(n))~=0, error(n no es pot. de 2); end
if n <= 16
C = A*B;
else
m = n/2; u = 1:m; v = m+1:n;
P1 = strass(A(u,u)+A(v,v),B(u,u)+B(v,v));
P2 = strass(A(v,u)+A(v,v),B(u,u));
P3 = strass(A(u,u),B(u,v)-B(v,v));
P4 = strass(A(v,v),B(v,u)-B(u,u));
P5 = strass(A(u,u)+A(u,v),B(v,v));
P6 = strass(A(v,u)-A(u,u),B(u,u) + B(u,v));
P7 = strass(A(u,v)-A(v,v),B(v,u)+B(v,v));
C = [P1+P4-P5+P7 P3+P5; P2+P4 P1+P3-P2+P6];
end
21/64

Ejecutar el programa TiemposAxB:


>> TiemposAxB(256)
Error en Int: 7.105427e-014
Error en Exte: 1.705303e-013
Error en Vec: 1.705303e-013
Error en Strass: 7.531753e-013
Tiempos: Int: 0.374; Exte: 0.827; Vec: 0.016; Strass: 0.109; Matlab: 0.000
>> TiemposAxB(512)
Error en Int: 1.136868e-013
Error en Exte: 3.694822e-013
Error en Vec: 3.694822e-013
Error en Strass: 3.041123e-012
Tiempos: Int: 1.607; Exte: 2.730; Vec: 0.172; Strass: 0.640; Matlab: 0.062
>> TiemposAxB(1024)
Error en Int: 2.273737e-013
Error en Exte: 1.136868e-012
Error en Vec: 1.136868e-012
Error en Strass: 1.324452e-011
Tiempos: Int: 15.413; Exte: 32.479; Vec: 1.950; Strass: 4.524; Matlab: 0.390
>> TiemposAxB(2048)
Error en Int: 4.547474e-013
Error en Exte: 3.183231e-012
Error en Vec: 3.183231e-012
Error en Strass: 7.071321e-011
Tiempos: Int: 221.178; Exte: 265.826; Vec: 17.207; Strass: 37.596; Matlab: 6.068

Al doblar el tamao, los tiempos se multiplican  por 23.

22/64

ndice
Operaciones con matrices
 Producto de una matriz por un vector
 Producto de dos matrices
Frmula de Strassen

Normas

 Vectoriales
 Matriciales

Condicionamiento de sistemas de ecuaciones


23/64

Normas
Vectoriales
Si en un espacio vectorial E sobre el cuerpo K (R o C) se define
una norma vectorial como una aplicacin k  k W E ! R que
verifica

1) kvk D 0 H) v D 0 y x 0 H) kxk > 0;

2) kvk D jjkvk para 2 K y v 2 E;

3) ku C vk  kuk C kvk 8u; v 2 E;


se dice que E es un espacio vectorial normado.

24/64

ku

vk  kuk

La condicin ku C vk  kuk C kvk se conoce como regla del


tringulo.
v
uCv
u

Figura 3.1: Representacin grfica

Es una generalizacin del hecho de que un lado de un tringulo no


n
En
el
espacio
vectorial
K
, para 1  p < 1, se tiene
puede ser mayor que la suma de los otros dos (figura).


kxkp D jx1 jp C    C
Una variante tambin til de esta regla es la siguiente:

normas pkvk
de Hlder.
Casos particulares l
ku denominadas
vk  kuk
:
p D 2:

25/64

En el espacio vectorial Kn, para 1  p < 1, se tiene la familia de


normas

1=p
kxkp D jx1jp C    C jxnjp
;
denominadas normas p de Hlder.

Casos particulares muy utilizados corresponden a p D 1 y p D 2:


n

kxk1 D

jxi j
iD1

kxk2 D

jx1j2 C    C jxnj2 :

Esta ltima se denomina en Rn norma eucldea.

26/64

Tambin es una norma en Kn la dada por

kxk1 D mKax jxi j :


1in

Estas normas cumplen, cualquiera que sea x 2 Kn, que


kxk1  kxk2  kxk1  nkxk1 :

27/64

Si el conjunto fx 2 R2 W kxk  1g es la bola cerrada unidad en


R2, su
para las
vectoriales
1, bola
2, 1,
y p son
estas.
Siforma
el conjunto
fx normas
2 R2 W kxk
 1g es la
cerrada
unidad
en
R2, su forma para las normas vectoriales 1, 2, 1, y p son estas.
x11 D
=
kxk

x22 D
=
kxk

2
i
2

i=1

|xijx
| ij

iD1

q
2 2
|x11|j22+C|xjx
2 | 2=
jx
j DxT xx T x

q


x1
max
kxk
D1i2
mKax|xjx
=
i| i j
1i2

1/p
p 1=p
+C|xjx
p
< p)
< 1/
2 | 2 j , (1 ;.1

pp

xpp D
= jx
|x11|j
kxk

28/63

28/64

En el espacio C 0; 1, de funciones continuas del intervalo 0; 1 en


C, son normas las dadas por
#1=p
"Z
1
jf .t /jp dt
kf kp D
0

kf k1 D mKax jf .t /j :
t 20;1

En un espacio vectorial normado se define la distancia entre dos


elementos u y v mediante

d.u; v/ D ku

vk :

Esta definicin convierte a cualquier espacio vectorial normado


en un espacio mtrico.
29/64

En un espacio eucldeo n-dimensional, expresado Rn o En (espacio


de Hilbert de dimensin finita), el ngulo entre dos vectores x e y
es
!
xT y

 D arc cos

donde

xT y
D
;
kxkkyk
para cualesquiera x e y.

kxkkyk

1    1;

Vectores ortogonales
x T y D 0;

 D =2;

 D 0:
30/64

Vectores alineados
x T y D kxkkyk;

 D 0;

 D 1:

 D ;

D

Vectores opuestos
xT y D

kxkkyk;

1:

ngulo agudo
x T y > 0;

 < =2;

 > 0:

 > =2;

 < 0:

ngulo obtuso
x T y < 0;

31/64

Normas matriciales
Una norma matricial es una norma vectorial compatible con el
producto.
Se define formalmente sobre Rmn como una aplicacin
k  k W Rmn ! R que cumple:

1) kAk D 0 H) A D 0
2) kAk D jj  kAk

3) kA C Bk  kAk C kBk

4) kABk  kAk  kBk

32/64

Existen normas sobre el espacio Rmn que no son normas


matriciales pues no cumplen la propiedad 4. As, si se define
kAk D mKax jaij j ;
1i;j n

h i
se satisfacen 1), 2) y 3); sin embargo, tomando A D B D 11 11 , es
fcil ver que kABk D 2 > kAk  kBk D 1, por lo que no se
cumple 4).

33/64

Definicin Una norma matricial k  k sobre Rmn se dice consistente con una norma vectorial k  k0 sobre Rn
cuando para cada matriz A y cada vector x se cumple
que
kAxk0  kAk  kxk0 :
Se demuestra que para toda norma matricial es posible construir
una norma vectorial consistente. Recprocamente, a toda norma
vectorial sobre Rn se le puede asociar una norma matricial
consistente.

34/64

Una norma matricial consistente con una cierta norma vectorial


k  k se construye mediante la definicin

kAxk
kAk D sup
:
0x 2Rn kxk

Esta norma matricial se dice inducida por la norma vectorial.


La norma matricial inducida por la norma eucldea de Rn es la
norma espectral, norma eucldea o norma 2:
"
#1=2
q
T T
x A Ax
T
kAk2 D sup
D

.A
A/ D max .A/;
max
Tx
x
0x 2Rn
donde  designa un valor propio de A y  un valor singular.
35/64

Las normas matriciales inducidas ms usadas son


m

kAk1 D mKax

1j n

jaij j (columnas) y
iD1
n

kAk1 D mKax

1i m

jaij j (filas) :
j D1

Si k  k es la norma inducida por una cierta norma vectorial y k  k0


es una norma matricial cualquiera consistente con esa norma
vectorial, se cumple, para toda matriz A, que kAk  kAk0.
36/64

Un ejemplo importante de norma matricial es la norma de


Frobenius, definida como:

2 D traza.A T A/;
aij

kAk2F D
1i;j n

donde la traza de una matriz A de orden n es


La norma de Frobenius cumple que

Pn

iD1 ai i .

kABkF  kAkF  kBkF :


La norma espectral y la norma de Frobenius cumplen que

kAk2  kAkF :

37/64

Ejemplo
El efecto que produce aplicar la transformacin lineal basada en la
matriz
 
1 2
AD
0 2
sobre la bola unidad definida a partir de las normas k  k1, k  k2 y
k  k1 en R2, se representa en la figura que sigue.

38/64

[2, 2]T
[0, 1]T
norma11
norma

norma22
norma

norma1

norma

[1, 0]T

A1 = 4
[1, 0]T

A2 2,9208

A = 3

La aplicacin transforma el vector e 1 D 1; 0T en s mismo y


e 2 D 0; 1T en 2; 2T .
T

La aplicacin transforma el vector e 1 D 1; 0 en s mismo y

39/6

39/64

e 2 D 0; 1T en 2; 2T .

40/64

Tomando la norma 1, el vector unitario que ms se amplifica al


aplicarle la transformacin es 0; 1T (o 0; 1T ), que pasa a ser
2; 2T . Su factor de amplificacin, en trminos de la norma 1, es 4.
Tomando la norma 2, el vector unitario que ms se amplifica es el
que se representa en la figura con una recta discontinua. El factor
de amplificacin es 2;9208.
Para la norma 1, igualmente, el vector unitario que ms se
amplifica es el que se representa tambin con la recta discontinua:
1; 1T , que pasa a transformarse en 3; 2T . El factor de
amplificacin correspondiente es en este caso 3 ya que


1; 1T D 1
1


3; 2T D 3:
1

u
41/64

ndice
Operaciones con matrices
 Producto de una matriz por un vector
 Producto de dos matrices
Frmula de Strassen

Normas

 Vectoriales
 Matriciales

Condicionamiento de sistemas
42/64

Condicionamiento de sistemas
En un sentido general se dice que un problema o un algoritmo est
bien condicionado si pequeas perturbaciones en los parmetros
que lo definen producen pequeos cambios en los resultados.

43/64

Como ejemplo consideremos una carga sujeta a una superficie firme


mediante un cable o una barra de hierro.
Aumentando la carga en pequeas cantidades, el cable sufre
unos pequeos estiramientos proporcionales a los incrementos de
esa carga.
Alcanzado el umbral de la zona de fluencia del material del
cable, incrementos muy pequeos de la carga suponen,
proporcionalmente, grandes estiramientos del cable.
Antes de este umbral, el problema estiramiento/carga se puede
decir que est bien condicionado; en la zona de fluencia el
problema est mal condicionado.

44/64

El condicionamiento de un sistema de ecuaciones lineales Ax D b


lo caracterizar la sensibilidad del vector solucin x a pequeos
cambios, tanto en el trmino de la derecha b, como en los
coeficientes que definen la matriz A.
Como sabemos, el ordenador o mquina que resuelve Ax D b, al
no trabajar ms que con una precisin determinada, resolver una
aproximacin

.A C A/x D b C b:
Si el algoritmo utilizado es estable y el sistema tambin, el
resultado obtenido debe ser muy parecido al real.
Si el sistema est mal condicionado, sin embargo, o el algoritmo
no es numricamente estable, la solucin puede diferir
sustancialmente de la real.
45/64

Ejemplo Consideremos los dos sistemas de ecuaciones lineales



   
8 5 x1
3
Ax D b !
D
4 10 x2
14
y

   
4
0;66 3;34 xO 1
cx
O D bO !
D
:
A
12
1;99 10;01 xO 2
La solucin de ambos es el vector 1; 1T .

Si introducimos una perturbacin b D 0,04; 0,06T en el


trmino independiente del primer sistema, su solucin pasar a ser
0,993; 0,9968T .
El cambio relativo en la norma eucldea del vector b es
kbk2
D
kbk2

0;042 C 0;062
q

32 C 142

 0,0050:

46/64

Por lo que respecta al vector solucin, ese cambio relativo en la


norma eucldea es
kxk2
D
kxk2

.1

0;993/2 C .1
q

12 C 12

0;9968/2

 0;0054:

Como se puede ver, un pequeo cambio en el vector b induce un


cambio pequeo en el vector solucin.
Introduciendo el mismo cambio, bO D 0,04; 0,06T , en el
O su
vector en el trmino independiente del segundo sistema, b,
solucin pasa a ser 6; 0T .

47/64

Es decir, un cambio relativo en la norma eucldea de bO igual a


q

0;042 C 0;062
q

42 C 122

D 0,0057;

produce un cambio en el vector solucin igual a:


q

52 C 12
12 C 12

D 3,6055:

Evidentemente, el segundo sistema es mucho ms sensible a


cambios en el trmino independiente que el primero.

48/64

x2

x2

(a)

x1

(b)

x1

La figura representa el primero y el segundo sistema.


Como se puede apreciar, las dos rectas que representan las
ecuaciones del primer sistema se cortan ntidamente en el punto
1; 1T .
En el caso del segundo sistema, aun usando una resolucin
grfica mayor, apenas se diferencian las dos rectas y mucho
menos dnde se cortan.
49/64

Estudiemos cmo cuantificar la sensibilidad de Ax D b a pequeas


modificaciones tanto en el trmino independiente como en los
elementos de la matriz de coeficientes.
Analicemos en primer lugar el caso de una modificacin b del
trmino independiente.
Veamos cmo se relaciona la solucin de

con la de

A.x C x/ D b C b
Ax D b:

Designemos por k  k cualquier norma vectorial y su norma matricial


consistente correspondiente.
50/64

De las igualdades
A.x C x/ D b C b

y Ax D b;

se obtiene, restando y despejando x, que

x D A 1b:
De la definicin de norma matricial consistente con una norma
vectorial se tiene que
kxk  kA 1k kbk

(1)

y que kbk  kAk kxk o, lo que es lo mismo, que


kAk
1

:
kxk
kbk

(2)
51/64

Combinando (1) y (2) se deduce que el error relativo, kxk=kxk,


de la solucin del sistema Ax D b al modificar el trmino
independiente de b a b C b es
kxk
1 kbk
 kAk kA k
:
kxk
kbk

Definicin Sea kk una norma matricial consistente con


una norma vectorial. Asociado a esa norma, el nmero
de condicin de una matriz invertible A, .A/, es:

.A/ D kAk kA 1k:


52/64

Si los datos de un sistema Ax D b son exactos con la precisin de


la mquina, el error relativo de la solucin cumple que
jjx  xjj

jjxjj

 .A/:

El concepto de nmero de condicin de una matriz se generaliza a


cualquier matriz A (no necesariamente cuadrada) de rango
completo mediante la expresin

.A/ D kAk kA k;

donde A es la matriz pseudoinversa de la matriz A.


El nmero de condicin de una matriz A es un indicador del error
de amplificacin que produce en un vector x el someterlo a la
transformacin que define dicha matriz A.
53/64

Concretamente, si la esfera unidad se somete a esa transformacin,


el nmero de condicin 2, asociado a la norma eucldea, ser igual
al cociente de las longitudes de los semiejes mayor y menor del
hiperelipsoide resultante de esa transformacin.

{x}

{Ax}

54/64

Estudiemos ahora la sensibilidad de un sistema de ecuaciones a


pequeas perturbaciones en los coeficientes de la matriz.
Comparemos la solucin de

Ax D b

.A C A/.x C x/ D b:

De la segunda igualdad, como Ax D b, haciendo


x D A 1A.x C x/ resulta, despreciando el producto
A  x, que

kxk  kA 1k kAk kxk:

55/64

Expresin que tambin se puede escribir como

kxk
kAk
1
 kA k kAk
:
kxk
kAk
As pues, el error relativo que resulta de perturbar ligeramente los
coeficientes de la matriz del sistema Ax D b est tambin acotado
en trminos del nmero de condicin de la matriz A.

El nmero de condicin de una matriz


expresa lo cerca que esa matriz est de
la singularidad
56/64

Teorema Para toda matriz A de rango completo:


1. Su nmero de condicin .A/  1.
2. .A/ D .A /.

3. .A/ D .A/ para todo escalar 0.


 .A/
4. 2.A/ D n
, donde n y 1 son, respectivamente, los valores singu1.A/
lares mayor y menor de la matriz A.
mKax ji .A/j
, si A es simtrica.
5. 2.A/ D i
mKn ji .A/j
i

6. 2.A T A/ D 22.A/.

7. Su nmero 2.A/ D 1 si la matriz es la identidad o se trata de una


matriz ortogonal.
8. Su nmero de condicin 2.A/ es invariante frente a transformaciones
ortogonales.
57/64

Las matrices con nmeros de condicin pequeos prximos a la


unidad, se dicen bien condicionadas; las que tienen nmeros de
condicin altos, mal condicionadas.
Los distintos nmeros de condicin de una matriz A 2 Rnn
asociados con las normas matriciales ms habituales cumplen que:

2.A/=n  1.A/  n 2.A/I


1.A/=n  2.A/  n 1.A/I
1.A/=n2  1.A/  n2 1.A/:

58/64

Volvamos al ejemplo que utilizbamos para concretar estos


conceptos. La matriz


8 5
;
AD
4 10
cuya inversa es


0;10 0;05
A 1D
;
0;04 0;08
tiene un nmero de condicin
1.A/ D kAk1 kA 1k1 D 15  0,14 D 2,1.

59/64



c D 0,66 3,34 ;
A
1,99 10,01

El de
cuya inversa es
c
A


250,25
D
49,75

83,5
;
16,5

c D kAk
c kA
c 1 k D 13,35  300 D 4.005: tres rdenes de
es 1.A/
1
1
magnitud superior.

60/64

Un error que se comete con frecuencia es asimilar el concepto de


nmero de condicin de una matriz con el de su determinante y
que, en ese sentido, a mayor determinante, mayor nmero de
condicin; nada ms lejos de la realidad.
Ejemplo 1
Sea A una matriz diagonal de orden 100 definida por
a11 D 1I

ai i D 0,1 2  i  100:

De esta matriz, kAk2 D 1 y kA 1k2 D 10.


El nmero de condicin 2.A/ D 10. Por el contrario, su
determinante es det.A/ D 1  .0; 1/99 D 10 99.

61/64

Ejemplo 2
Sea A una matriz bidiagonal de la forma
2
3
1 2
6 1 2
7
6
7
6
7
1 2
6
7:
:
:
6
:: :: 7
6
7
4
1 25
1

Su inversa es

2
6
6
6
6
4

2
1

n 1

4    . 2/
2
. 2/n
::
1
::
:::
1

27

7
7:
7
5

62/64

Las diversas normas son:


kAk1 D kAk1 D 3 y kA 1k1 D kA 1k1 D 1C2C4C  C2n
Los nmeros de condicin de A son:

1.A/ D 1.A/  3  2n:

Su determinante en cambio es 1.

63/64

Clculo del nmero de condicin


Calcular directamente el nmero de condicin de una matriz es una
tarea numrica muy costosa: O.n3/.
No obstante, como .A/ es un buen diagnstico de las
implicaciones que el uso de esa matriz puede comportar en un
proceso numrico, se puede realizar una estimacin de su orden de
magnitud.
Existen diversos buenos algoritmos para estimar el nmero de
condicin de una matriz en O.n2/ operaciones.
En Matlab lo estiman condest y rcond; lo calcula
exactamente cond.

Siempre que se usa el operador n, Matlab usa rcond para


comprobar la condicin de la matriz afectada.
64/64

Potrebbero piacerti anche