Académique Documents
Professionnel Documents
Culture Documents
ndice
Factorizacin LU
Refinamiento iterativo
A los nmeros aij se les denomina coeficientes del sistema y a los bi trminos
independientes.
3/140
2 3
x1
6 7
6x 7
x D 6 ::2 7
4:5
xn
b1
6 7
6b 7
y b D 6 ::2 7 ;
4 : 5
xm
4/140
m = n de ecuaciones lineales:
Casos posibles de sistemas
m=n
m=n
m=n
rango(A) = m = n
rango(A) = m = n
m=n
rango(A) < m = n
rango(A) = m = n
rango(A) < m = n
1a
1b
1a
m>n
1b
m>n
m>n
rango(A) = n < m
rango(A) = n < m
m>n
m>n
m>n
rango(A) = n < m
2a
2b
2a
2b
m<n
m<n
rango(A) = m < n
m<n
rango(A) = m < n
rango(A) = m < n
3a
3a
m<n
m<n
m<n
3b
3b
5/101
5/140
2. ker.A/ D ;.
DI
7/140
Cada una de las ecuaciones que componen el sistema representa una recta
en el espacio eucldeo de dimensin dos.
x2
a11 x 1 + a12 x 2 = b1
a21 x 1 + a22 x 2 = b2
x1
Fig 9.2
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
9/140
a11
a21
a12
a22
Simplificadamente,
y matemtico deModel:
la figura en el
Physicaladoptamos
Model: el modelo fsico Mathematical
que se esquematiza un tiristor o un transistor montado en una placa disipadora
de calor.
aire
Q1
Qc
Tw
R2
Q3
Tp
Q2
R3
a
Q4
R4
a
Q5
R5
a
temperatura exterior Ta
11/140
Q1 D
Tp /
Tw /
1
.Tp
R4
1
Q2 D
.Tw
R5
Q4 D
Ta /
Qc D Q1 C Q3
Ta /
Q1 D Q2 C Q4
Ta /
Como hay siete ecuaciones, reagrupando las ecuaciones para aislar las incgnitas
se llega al siguiente sistema:
R1 Q1 Tc C T9
R2 Q2 Tp C Tw
R3 Q3 Tc
R4 Q4 Tp
R 5 Q2 T w
Q1 C Q3
Q1 Q2 Q4
0
0
Ta
Ta
Ta
Qc
0:
D
D
D
D
D
D
D
1
0
1
0
0
0
0
1
1
0
1
0
0
0
Q1
0
17 6Q2 7
07 6Q3 7
07 6Q4 7
76 7
15 4 Tc 5
0
Tp
0
Tw
0
6 0 7
6 Ta 7
6 Ta 7
6 T7
4 a5
Qc
0
0
200
0
0
300
0
-1
0
0
50
0
0
1
0
0
0
0
100
0
0
-1
-1
0
-1
0
0
0
0
1
-1
0
-1
0
0
0
0
1
0
0
-1
0
0
b=[0;0;-50;-50;-50;25;0]
b =
0
0
-50
-50
-50
25
0
>> x=A\b
x =
1.0e+003 *
0.00535714285714
0.00089285714286
0.01964285714286
0.00446428571429
1.03214285714286
0.49642857142857
0.31785714285714
14/140
ndice
Factorizacin LU
Refinamiento iterativo
16/140
n
9
a11x1 C a12x2 C C a1nxn D b1 >
>
>
=
a21x1 C a22x2 C C a2nxn D b2
:::
:::
:::
::: > Ax D b
>
>
an1x1 C an2x2 C C annxn D bn ;
9
=
U x D b0:
17/140
i D 1; : : : ; n;
18/140
19/140
2
9
2
2:
Etapa 1
i D 2; : : : ; n:
aO ij
aO i1
;
aO 11
aO ij
ri aO 1j ;
i D 2; : : : ; nI j D 2; : : : ; n C 1:
4=2 D
4=2 D
0=2 D
2
2
0:
22/140
en la 2a fila:
en la 3a fila:
en la 4a fila:
aO 21
aO 22
aO 23
aO 24
aO 25
aO 31
aO 32
aO 33
aO 34
aO 35
aO 41
aO 42
aO 43
aO 44
aO 45
0
aO 22
aO 23
aO 24
aO 25
0
aO 32
aO 33
aO 34
aO 35
0
aO 42
aO 43
aO 44
aO 45
r2 aO 12
r2 aO 13
r2 aO 14
r2 aO 15
D
D
D
D
2
3
7
9
r3 aO 12
r3 aO 13
r3 aO 14
r3 aO 15
D
D
D
D
r3 aO 12
r4 aO 13
r4 aO 14
r4 aO 15
D
D
D
D
C
C
C
C
21
20
24
22
D
D
D
D
0
3
1
5I
1
2
8
2
21
20
24
22
D
D
D
D
1
2
0
2I
3
12
1
2
01
00
04
02
D
D
D
D
3
12
1
2:
23/140
b 1 , resultado de transformar A,
b es:
La nueva matriz A
2
3
2
0
b1 D 6
A
40
0
1
0
1
3
0
3
2
12
4
1
0
1
2
57
:
25
2
En efecto,
1
6 2
L1b
AD4
2
0
0
1
0
0
0
0
1
0
32
0
07 6
05 4
1
2
4
4
0
1
2
1
3
0
3
2
12
4
7
8
1
3 2
2
2
97 6 0
D
25 4 0
2
0
1
0
1
3
0
3
2
12
4
1
0
1
3
2
57
.
25
2
24/140
Su inversa es
3
0
6 27
7
D6
4 25
0
2
L1 1
2 3
1
607
7
y e1 D 6
405 :
0
1 0
6
6 2 1
D6
4 2 0
0 0
0
0
1
0
e T1 , donde
0
7
07
7:
05
1
b 1 D L1 A.
b
En resumen, A
25/140
Etapa 2
1
Comprobemos si algn coeficiente de la columna 2 por debajo de aO 22
no es 0:
b 1 por la permutacin
A
3
0 0 0
7
0 0 17
7:
0 1 05
1 0 0
27/140
b 0 , es:
Recapitulemos: la matriz con la que vamos a operar a continuacin, A
1
b 0 D P 1 L1 A:
b
A
1
1
aO i2
ri D 10 ;
aO 22
i D 3; 4:
aO ij1
aO ij1
1
ri aO 2j
;
i D 3; 4I j D 3; : : : ; 5:
28/140
1
1
r3 D aO 32
=aO 22
D 1=3 y
1
1
r4 D aO 42
=aO 22
D
1
aO 42
10
aO 43
10
aO 44
10
aO 45
0
10
aO 43
10
aO 44
10
aO 45
0:
b 0 resultante:
A
1
0
1
r3 aO 23
D
10
D
r3 aO 24
10
D
r3 aO 25
0
1
r4 aO 23
D
0
1
r4 aO 24
D
0
1
r4 aO 25
D
2 C
0 C
2
1
3
1
3
1
3
12 D
1 D
2 D
2
1=3
8=3I
3
1
5
0 12 D
01 D
02 D
3
1
5:
Al ser r4 D 0, los clculos para adaptar la cuarta fila podran haberse evitado.
29/140
0
1
1=3
0
0
0
1
0
b 2 D L2 P 1 L1 A;
b
A
3
0
7
07
7:
05
1
30/140
Etapa 3
2
es distinto de cero, luego procedemos
El coeficiente de la diagonal principal aO 33
a calcular el multiplicador r4:
2
2
r4 D aO 43
=aO 33
D 3=2:
aO ij2
aO ij2
2
ri aO 3j
;
i D 4I j D 4; 5:
31/140
0
2
aO 44
2
aO 45
2
r4 aO 34
D
2
r4 aO 35
D
1
5 C
3
2
3
2
31 D 1=2
38 D
1:
b una serie
A este resultado se ha llegado despus de aplicar a la matriz inicial A
de transformaciones; concretamente:
donde
b 3 D L3 L2 P 1 L1 A;
b
A
2
1
6
60
L3 D 6
40
0
0
1
0
0
0
0
1
3=2
0
7
07
7:
05
1
En el ejemplo,
2
2
6
60
6
40
0
1
3
0
0
0
12
2
0
32 3 2
3
4
x1
2
76 7 6
7
17 6x27 6
27
76 7 D 6
7:
1=35 4x35 4 8=35
1=2
x4
1
34/140
2;
8=3
. 2/.1=3/
D
2
1;
. 1/. 2/
. 12/. 1/
3
D 4:
3
7
47
7:
15
2
36/140
Pivotacin
39/140
41/140
Partial Pivoting
Rows completed in
forward elimination.
La pivotacin
es lapivot
estrategia
parai.e.,minimizar
putstotal
the largest
element onptima
the diagonal,
nd ip sucherrores.
42/140
Algoritmo
Resolucin de Ax D b
Transformacin de la Matriz Aumentada Ajb
for i D 1 to n 1
Determinar ndice p 2 fi; i C 1; : : : ; ng tal que ja.p; i /j D mKaxi j n ja.j; i /j.
Intercambiar filas p e i .
for j D i C 1 to n
D a.j; i /=a.i; i /
for k D i C 1 to n C 1
a.j; k/
a.j; k/ a.i; k/
end
end
end
Sustitucin Inversa.
for j D n to01
1
n
X
@b.j /
x.j /
a.j; k/ x.k/A a.j; j /
end
kDj C1
43/140
function [x]=Gauss(A,b)
% Solucin de Ax=b mediante eliminacin de Gauss
n=size(A,1); x=zeros(n,1);
for i=1:n-1
% Transformacin matriz A en n-1 etapas
[p maxk]=max(abs(A(i:n,i)));
maxk=maxk+i-1;
if i~=maxk
A([i maxk],:)=A([maxk i],:);
b([i maxk]) =b([maxk i]);
end
j=i+1:n;
A(j,i)=A(j,i)/A(i,i);
A(j,j)=A(j,j)-A(j,i)*A(i,j);
b(j)=b(j)-b(i)*A(j,i);
end
for i=n:-1:1
% Sustitucin inversa
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);
end
end
44/140
45/140
46/140
47/140
6
6
AD6
4
Ojo, verifiquemos:
2
2
2
0
1
3
1=3
0
0
12
2
3=2
3
4
7
17
7:
1=35
1=2
2, 2, 1=3 y 3=2.
>> I=eye(4); L1=I; L2=I; L3=I;
>> L1(2:3,1)=[-2 2]; L2(3,2)=1/3; L3(4,3)=3/2; P=I([1 4 3 2],:);
>> U=[2 1 0 4;0 -3 -12 -1;0 0 2 1/3; 0 0 0 1/2];
>> L=L1*P*L2*L3; L*U, A
ans =
2
1
0
4
-4
-2
3
-7
4
1
-2
8
0
-3
-12
-1
A =
2
1
0
4
-4
-2
3
-7
4
1
-2
8
0
-3
-12
-1
48/140
::
::
:: ::
0 2
:: ! :: ::
0 2
0 2
2 2
:: ::
2 2
2 2
2
::
2
2
50/140
i /.n
i / C .n
i /.n
i C 1/ D .n
i /.n
i C 2/
multiplicaciones y divisiones y
.n
i /.n
i C 1/
sumas y restas.
51/140
En n
.n
i /.n
i D1
i C 2/ D .n C 2n/
n 1
X
i D1
D .n2 C 2n/.n
1/
.n
1/n.2n
C
6
2n3 C 3n2 5n
D
6
2.n C 1/
n 1
X
iD1
2.n C 1/
iC
.n
n 1
X
i2
i D1
1/n
2
1/
multiplicaciones y divisiones y
n 1
X
.n
i D1
i /.n
i C 1/ D .n C n/
n 1
X
iD1
D .n2 C n/.n
C
D
.n
n3
1
1/
1/n.2n
6
.2n C 1/
n 1
X
i D1
.2n C 1/
iC
.n
n 1
X
i2
i D1
1/n
2
1/
n
3
sumas y restas.
52/140
1/
n 1
X
..n
i D1
n2 C n
i / C 1/ D
2
multiplicaciones y divisiones y
n 1
X
i D1
..n
1/ C 1/ D
n2
n
2
sumas y restas.
53/140
5n
n2 C n
n3 C 2n2
C
D
2
3
multiplicaciones y divisiones y
n3
n
3
n2
n
2
2n3 C 3n2
D
6
5n
sumas y restas.
Aunque la cantidad n3=3 puede parecer muy grande, recordemos las frmulas de
Cramer para la solucin de sistemas:
2
3
a11 a1i 1 b1 a1iC1 a1n
6
7
det.B i /
6a21 a2i 1 b2 a2i C1 a2n 7
; donde B i D 6 ::
xi D
:::
:::
:::
::: 7 :
4 :
5
det.A/
an1 ani 1 bn ani C1 ann
55/140
Mtodo de Gauss-Jordan
0
::
:
6
7
6
7
6 i
i 7
i D 6ai C1 i =ai i 7
6
7
::
4
5
:
i
ani
=aii i
fila i C 1
i e Ti ;
2 3
0
6 ::: 7
6 7
6 7
y e i D 617
6:7
4 :: 5
0
fila i :
56/140
Tn
D I;
D Tn
1 T 2T 1:
Condicionamiento de sistemas
59/140
0;66
3;34
xO 1
4
b xO D bO !
A
D
:
1;99 10;01 xO 2
12
60/140
0;042 C 0;062
q
32 C 142
0,0050:
Por lo que respecta al vector solucin, ese cambio relativo en la norma eucldea
es
q
.1 0;993/2 C .1 0;9968/2
kxk2
q
D
0;0054:
kxk2
2
2
1 C1
61/140
0;042 C 0;062
q
42 C 122
D 0,0057;
52 C 12
2
1 C1
D 3,6055:
x2
x2
x1
x1
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.
63/140
De las igualdades
A.x C x/ D b C b
y Ax D b;
(2)
65/140
Definicin Sea k k 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:
66/140
Ax
68/140
Comparemos la solucin de
Ax D b
y .A C A/.x C x/ D b:
A 1A.x C x/
69/140
70/140
n .A/
, donde n y 1 son, respectivamente, los valores singulares mayor y
1 .A/
menor de la matriz A.
mKax ji .A/j
, si A es simtrica.
5. 2 .A/ D i
mKn ji .A/j
4. 2 .A/ D
6. 2 .A T A/ D 22 .A/.
71/140
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/:
72/140
0;10 0;05
;
0;04 0;08
0,66
3,34
bD
A
;
1,99 10,01
El de
cuya inversa es
b
A
250,25
D
49,75
83,5
;
16,5
b D kAk
b 1 kA
b 1 k1 D 13,35 300 D 4.005: tres rdenes de magnitud
es 1.A/
superior.
73/140
ai i D 0,1 2 i 100:
74/140
Su inversa es
6
6
4
6
6
6
4
2
1
7
7
2
7
::: ::: 7 :
7
1 25
1
4 . 2/n
2
. 2/n
::
1
:
::
:::
:
1
1
2
7
7
7:
5
75/140
77/140
Si se tiene el sistema
x1 C x2 D 2
1;0001x1 C x2 D 2;0001
2
Ax D
2;0001
2
D
2;0001
1
1
1
1;0001 1 3;00001
:
2;0001
0;0001
D
2
0;0001
1
xa D
1
1
D
3;0001
2
:
2;0001
which is 2.0001.
Figure 2.2 helps to clarify how there can be a small backward error and large forward
error at the same time. Even though the approximate root (1, 3.0001) is relatively far
from the exact root (1, 1), it nearly lies on both lines. This is possible because the two lines
are almost parallel. If the lines are far from parallel, the forward and backward errors will
be closer in magnitude.
La figura aclara cmo puede haber un error pequeo hacia atrs y uno grande
hacia delante al mismo tiempo.
y
1
2
1
Figure 2.2 The geometry behind Example 2.11. System (2.17) is represented by
the lines x2 = 2 x1 and x2 = 2.0001 1.0001x1 , which intersect at (1,1). The point
( 1, 3.0001) nearly misses lying on both lines and being a solution. The differences
between the lines is exaggerated in the gurethey are actually much closer.
is dened to be
||r||
,
El nmero de condicin 1.A/ D 40:004;0001.
||b||
and the relative forward error is
||x xa ||
.
||x||
79/140
kx
xak
.
kxk
krk
.
kbk
Para el sistema anterior, con normas infinito, el error relativo hacia atrs es
0;0001
0;00005 D 0;005 %
2;0001
y el error relativo hacia adelante
2;0001
D 2;0001 200 %:
1
80/140
D 2;0001=.0;0001=2;0001/ D 40004;0001:
81/140
ndice
Eliminacin de Gauss
Factorizacin LU
Refinamiento iterativo
83/140
84/140
ndice
Eliminacin de Gauss
Factorizacin LU
Refinamiento iterativo
Factorizacin LU
y Ly D b:
86/140
1 L1 P 1 A
D U:
87/140
89/140
l11 0 0
l21 l22 0
l31 l32 l33
1 u12 u13
0 1 u23 ;
0 0
1
l11 D a11
l21 D a21
l31 D a31 I
2a fila de U :
2a col. de L:
2a fila de U :
3a col. de L:
! li 2 D a i 2
li1 u12 ; i D 2; 3I
! u2j D .a2j
! li 3 D a i 3
i 1
X
j D1
lij uj i ; i D 3:
90/140
ukj D @akj
pD1
k 1
X
pD1
i D 1; 2; : : : ; n;
j > 1;
lkp upj A
i k;
lkk ;
j > k:
91/140
a.i; k/
k
X1
l.i; p/u.p; k/
pD1
end
for i D k C 1 0
to n
u.k; i /
end
end
@a.k; i /
k
X1
pD1
l.k; p/u.p; i /A
l.k; k/
92/140
93/140
94/140
Factorizar
da como resultado
3
2
10 10 20
420 25 405
30 50 61
2
32
3
10
1 1 2
LU D 420 5 5 4 1 05 :
30 20 1
1
As:
>> A=[10 10 20;20 25 40;30 50 61];
>> [L,U]=Crout_1(A)
L =
10
0
0
20
5
0
30
20
1
U =
1
1
2
0
1
0
0
0
1
>>
95/140
96/140
Obsrvese que el clculo de l33 conlleva la prdida de tres dgitos por redondeo:
el valor que debera obtenerse es 5,922.
97/140
Pivotacin
98/140
a.i; k/
k
X1
l.i; p/u.p; k/
pD1
end
Determinar ndice p 2 fk; k C 1; : : : ; ng tal que ja.p; i /j D mKaxi j n ja.j; i /j.
Intercambiar filas p y k.
for i D k C 1 0
to n
1
k
X1
@a.k; i /
u.k; i /
l.k; p/u.p; i /A l.k; k/
pD1
end
end
function [L U p]=CroutP(a)
% Factorizacin LU por Crout con pivotacin
n=size(a,1); p=1:n;
for k=1:n
i=k:n; a(i,k)=a(i,k)-a(i,1:k-1)*a(1:k-1,k);
[r,m]=max(abs(a(k:n,k))); m=m+k-1;
if a(m,k)==0, continue, end
if k~=m, a([k m],:)=a([m k],:); p([k m])=p([m k]); end
i=k+1:n; a(k,i)=(a(k,i)-a(k,1:k-1)*a(1:k-1,i))/a(k,k);
end
L=tril(a,0); U=triu(a,1)+eye(n,n);
end
99/140
Si se factoriza la matriz
2
3
10 10 20
420 25 405 ;
30 50 61
al final de este proceso, el vector IPVT./, que indica las pivotaciones realizadas,
es 3, 2, 1T .
>> A=[10 10 20;20 25 40;30 50 61];
>> [L U p]=CroutP(A)
L =
30.0000
0
0
20.0000
-8.3333
0
10.0000
-6.6667
0.2000
U =
1.0000
1.6667
2.0333
0
1.0000
0.0800
p =
3
2
1
100/140
101/140
1 0 0
l21 1 0
l31 l32 1
operando:
1a fila de U :
u11 D a11
u12 D a12
u13 D a13 I
1a col. de L:
2a fila de U :
2a col. de L:
3a fila de U :
! u2j D a2j
! li 2 D .ai 2
l21 u1j ; j D 2; 3I
li1 u12 /=u22 ; i D 3I
! u3j D a3j
j 1
X
i D1
l3i uij ; j D 3:
102/140
li k D @aik
pD1
k 1
X
pD1
j D 1; 2; : : : ; n;
j > 1;
1
lip upk A
j k;
ukk ;
i > k:
103/140
El algoritmo de Crout para factorizar una matriz regular A nn en la forma L1U
es el que sigue.
u.k; j /
a.k; j /
k 1
X
l.k; p/u.p; j /
pD1
end
for i D k C 10to n
l.i; k/
end
end
@a.i; k/
k 1
X
pD1
u.k; k/
104/140
function [L,U]=Croutl1u(a)
% Factorizacin L1U por Crout
n=size(a,1);
for k=1:n-1
i=k+1:n;
a(i,k)=a(i,k)/a(k,k);
a(i,i)=a(i,i)-a(i,k)*a(k,i);
end
L=tril(a,-1)+eye(n,n); U=triu(a);
Su implementacin en Matlab:
function [L U p]=CroutP1(a)
% Factorizacin L1U por Crout con pivotacin; muy compacto
n=size(a,1); p=1:n;
for k=1:n-1
[r,m]=max(abs(a(k:n,k)));
m=m+k-1;
if a(m,k)==0, continue, end
if k~=m, a([k m],:)=a([m k],:); p([k m])=p([m k]); end
i=k+1:n; a(i,k)=a(i,k)/a(k,k);
j=k+1:n; a(i,j)=a(i,j)-a(i,k)*a(k,j);
end
L=tril(a,-1)+eye(n,n); U=triu(a);
end
106/140
0
0
1.0000
61.0000
-0.6667
0.2000
107/140
0
0
1.0000
61.0000
-0.6667
0.2000
108/140
109/140
Matlab y la factorizacin LU
110/140
111/140
ndice
Eliminacin de Gauss
Factorizacin LU
Refinamiento iterativo
114/140
2. Resolviendo Ay D b, obteniendo y.
3. Calculando x D y C ..vT y/=.1
vT z//z.
115/140
3
2
15
4
En este caso
3
0
u D 4 05
2
2 3
0
y v D 415 ;
0
uvT .
116/140
Por ltimo,
3
2
3 2 3
1
3=2
7
vT y
2
4 1=25 D 4 45 :
z D 4 25 C
xDyC
T
1 v z
1 1=2
2
1=2
0
117/140
ndice
Eliminacin de Gauss
Factorizacin LU
Refinamiento iterativo
Refinamiento iterativo
Ax 0 D r 0;
120/140
B=A;
% En B est A perturbada un poquito
B(6,1)=B(6,1)+1.e-06;
pause
x1=B\b
% Veamos la nueva solucin; difiere bastante
pause
xex=ones(n,1);
norm(xex-x1,2)
norm(xex-x,2)
pause
% Calculemos cunto
% Como magnitud calculemos la norma 2 de la desviaci.
res=b-A*x1;
x1=x1+B\res
norm(xex-x1,2)
pause
res=b-A*x1;
format long
x1=x1+B\res
norm(xex-x1,2)
pause
res=b-A*x1;
x1=x1+B\res
norm(xex-x1,2)
121/140
ndice
Eliminacin de Gauss
Factorizacin LU
Refinamiento iterativo
123/140
D
D
D
D
D
D
d11
l21d11
l31d11
2
l21
d11 C d22
l31l21d11 C l32d22
2
2
l31
d11 C l32
d22 C d33:
124/140
a.i; k/
end
end
@a.i; k/
k 1
X
pD1
d.k/
Factorizacin de Cholesky
127/140
Lema Las submatrices principales de una matriz definida positiva son definidas positivas.
Teorema Si A es una matriz definida positiva de orden n, tiene una descomposicin de la forma LDM T , siendo todos los coeficientes de la matriz
diagonal D positivos.
128/140
D
D
D
D
D
D
2
g11
g11g12
g11g13
2
2
g12
C g22
g12g13 C g22g23
2
2
2
g13
C g23
C g33
:
129/140
a.i; i/
i 1
X
g 2 .k; i/
kD1
for j D i C 1 to n
g.i; j /
a.i; j /
i 1
X
kD1
end
end
g.k; i/g.k; j /
!
g.i; i/
130/140
La factorizacin de
2
5 1
6
6 1 2
6
4 2 0
0 0
2
0
4
1
3
0
7
07
7!
15
3
0 1 3];
0
0
0.5669
1.6366
0
0
0.5669
1.6366
131/140
132/140
Para utilizar esta operacin con un ejemplo de los que estamos manejando,
habra que hacer algo parecido a lo que sigue.
>> A=[5 1 -2 0;1 2 0 0;-2 0 4 1;0 0 1 3];
>> b=[1;5;14;15];
>> G=chol(A)
G =
2.2361
0.4472
-0.8944
0
0
1.3416
0.2981
0
0
0
1.7638
0.5669
0
0
0
1.6366
>> x=G\(G\b)
x =
1.0000
2.0000
3.0000
4.0000
133/140
ai i D 0 ) aij D aj i D 0; j D 1; : : : ; n:
Pivotacin
135/140
a.i; i/
i 1
X
g 2 .k; i/
kD1
for j D i C 1 to n
g.i; j /
a.i; j /
i 1
X
kD1
end
end
end
g.k; i/g.k; j /
!
g.i; i/
136/140
Casi todos los cdigos modernos utilizan alguna variedad de matriz bidiagonal
B en bloques, aunque todava se usan mucho rutinas que implementan algn
mtodo en el que esa matriz es tridiagonal (T ).
137/140
Estrategia
Operaciones
PAP T D LT LT
O.n3=3/
PAP T D LT LT
O.n3=6/
1/ compara.
138/140
if k+s <= n
rho = max(rho,max(max(abs(A(k+s:n,k+s:n)))));
end
else
% Nothing to do, lambda=0
s = 1; D(k,k) = A(k,k);
end
k = k + s;
if k == n, D(n,n) = A(n,n); break, end
end
if nargout >= 3, P = eye(n); P = P(pp,:); end
rho = rho/normA;
139/140
0.2000
0.3333
1.0000
-1.0000
-0.3333
-0.2000
0.3333
1.0000
-1.0000
-0.3333
-0.2000
-0.1429
1.0000
-1.0000
-0.3333
-0.2000
-0.1429
-0.1111
0
0
0
1.0000
-0.6667
0.6222
0
0
0
0
1.0000
0
0
0
0
0
0
1.0000
0
0
0
1.7415
0
0
0
0
0
0
-0.8256
1.9264
0
0
0
0
1.9264
0.1284
>> eig(A)
ans =
-1.5708
-1.5705
-1.4438
0.7080
1.5622
1.5708
0
1
0
0
0
0
140/140