Documentos de Académico
Documentos de Profesional
Documentos de Cultura
40 Practicas LeccionE
40 Practicas LeccionE
on E
E.1.
Consideremos el sistema Lx = B con L una matriz triangular inferior, es decir que verifica
lij = 0 para j > i lo que significa que nuestro sistema toma la forma:
l11 x1
= b1
l21 x1 + l22 x2
..
..
.
.
= b2
..
.
ln1 x1 + ln2 x2 + . . .
+ lnn xn = bn
..
1
lkk
bk
k1
X
j=1
xj
lkj
lkk
Pr
actica a Con la orden type e_sp obtenemos el listado de la funcion Mt\e_sp.m definida en el
libro [6], pag 163, y que permite resolver un sistema cuadrado, regular y triangular inferior
en el que se dan como datos la matriz regular L y el vector B. Como ejemplo de aplicacion
de dicha funcion resolvemos el sistema de ecuaciones
x1
= 1
2x1 + 3x2
= 2
x1 + 2x2 + 3x3 = 4
31
LECCION
DIRECTOS
32
= 7
x1 x2
= 4.1
E.2.
28x1
= 7
34x1 26.2x2
= 4.1
Consideramos ahora el sistema U x = B con U una matriz triangular superior, es decir que
verifica sij = 0 si i > j. La regla de sustitucion regresiva consiste en despejar de abajo hacia arriba
de forma analoga a la anterior con lo que obtenemos que la u
nica solucion x = (x1 , . . . , xn ) del
sistema U x = B esta dado por la regla:
n
X
ukj
1
xj
xk =
bk
u kk
ukk
j=k+1
Pr
actica b Con la orden type e_sr obtener y estudiar el listado de la funcion Mt\e_sr.m definida en el libro [6], pag 165, que resuelve mediante la regla de sustitucion regresiva un
sistema cuadrado, regular y triangular superior, a partir de los datos: U la matriz del sistema
y B el vector de los terminos independientes. Probar la eficacia del programa resolviendo los
sistemas:
x1 + 4x2 + 5x3 = 1
3x2 + 2x3 = 2 ;
3x3 = 6
E.3.
3x1 x2 + 2x3 = 12
7x2 + 7x3 = 21
21x3 = 42
M
etodos exactos para sistemas generales
Antes de comenzar a describir los metodos de resolucion de sistemas generales vamos a recordar
E.3. METODOS
EXACTOS PARA SISTEMAS GENERALES
33
a
11
a21
a31
a12 a13 b1
a22 a23 b2
a32 a33 b1
34
LECCION
DIRECTOS
a
a
a
b
11 12 13 1
1
0 0
F1 = a21 /a11 1 0
a31 /a11 0 1
El proceso realizado corresponde a lo que se denomina utilizar a11 como pivote. En el siguiente
paso, supuesto a22 6= 0, utilizando a22 como pivote conseguimos:
a
a
a
b
11 12 13 1
0
0
F2 (A ) = 0 a22 a23 b02 ;
0
0 a0033 b001
1 0 0
F2 = a 1 0
b c 1
Triangular inferior
Ux = z
Triangular superior
E.3. METODOS
EXACTOS PARA SISTEMAS GENERALES
35
y donde P A = LU .
El coste operativo de resolver un sistema utilizando la factorizacion LU es el mismo que en la
eliminacion gaussiana pero tiene la ventaja de que una vez conseguida la factorizacion P A = LU
la podemos emplear en todos aquellos sistemas Ax = B que tengan la misma matriz A. Un ejemplo
de esta situacion es el calculo de la inversa.
Factorizaci
on de Cholesky
Triangular inferior
Lx = z
Triangular superior
De solucion z = Qt B
Rx = z
Triangular superior
LECCION
DIRECTOS
36
obtenemos como respuesta x = (0, 1.5) de lo que podemos observar que Matlab solo nos da
una de las soluciones.
Pr
actica d
Consideramos el sistema
r1 : x y
= 0
r2 : x + y
= 0
r3
: 2x + y = 1
(E.1)
Con el listado
x=-0.5:0.05:1.5; y1=x; y2=-x; y3=1-2*x;
a1= 0.2857;
a2= 0.1429;
plot(x,y1,r,x,y2,b,x,y3,g,a1,a2,+)
obtenemos la representacion grafica de las rectas r1 , r2 y r3 que definen el sistema (E.1).
De esta representacion observamos que el sistema es incompatible ya que no hay interseccion com
un a las tres rectas. Sin embargo, si resolvemos el sistema por Matlab, es decir, si
ejecutamos
A=[1 -1; 1 1; 2 1], b=[0 0 1].
a=A\b;
obtenemos como u
nica solucion a = (a1,a2) = (0.2857; 0.1429). Que significa esto?:
Del sistema AX = b dado en (E.1) obtenemos At Ax = At b multiplicando ambos miembros
por la traspuesta de A. Para este nuevo sistema se verifica que su matriz asociada, At A, es
regular. En efecto, At A es claramente cuadrada y verifica que Ker At A = Ker A = 0.
La igualdad Ker At A = Ker A es general y facil de probar: Claramente Ker At A
t
t
t
Ker
A y ahora si x Ker A A entonces x (A Ax) = 0 lo que implica que ||Ax||2 =
xt At Ax = 0 y por tanto que Ax = 0 y x Ker A.
En consecuencia, At Ax = At b posee una u
nica solucion de la que podemos comprobar con el
listado c=(A.*A)\(A.*b) que coincide con a.
Ademas, para todo vector z se tiene z t (At AcAt b) = 0 y por tanto que A(z) es perpendicular
a Ac b para todo z de donde
||Ay b||2 = ||Ac b + A(y c)||2 = ||Ac b||2 + ||A(y c)||2
(E.2)
E.4. METODO
DIRECTO PARA SISTEMAS TRIDIAGONALES
37
Calcular c = (At A)1 At b. La aplicacion cuya matriz es (At A)1 At recibe el nombre de
pseudo-inversa de A y esta implementada en Matlab con el comando pinv(A).
Ejecutar A\b o pinv(A)*b en Matlab.
Como observacion final a esta practica y a esta exposicion decir que si la transformacion
TA : E F no es inyectiva entonces la transformacion que TA induce en el cociente de forma
natural, T A : E/ Ker TA F , es inyectiva con lo que todo lo anterior es directamente aplicable
a T A y por tanto podemos afirmar:
El sistema At Ax = At b es siempre compatible y su conjunto de soluciones es una variedad
afn de direccion Ker A.
El sistema Ax = b siempre es compatible en el sentido de los mnimos cuadrados y su
conjunto de soluciones es una variedad afn de direccion Ker A.
Pr
actica dd Matlab tambien cuenta con la posibilidad de resolver de forma exacta o simb
olica
un sistema de ecuaciones.
Como ejemplo resolvemos simb
olicamente y numericamente los siguientes sistemas lineales
4 3 3
x
0
6 1 9 x2 = 9
2 5 6
x3
5
2 1 3
x
0
4 2 1 x2 = 0
6 3 2
x3
0
con el listado
E.4.
M
etodo directo para sistemas tridiagonales
38
LECCION
DIRECTOS
B1 C1
A2 B2 C2
A3 B3 C3
.. ..
.
.
Ai
..
Bi
..
.
Ci
..
.
An
..
.
Bn
x1
x2
x3
..
. =
xi
..
.
xn
d1
d2
d3
..
.
di
..
.
dn
B10 C1
d01
B20
C2
d02
B30 C3
..
.
d03
..
.
..
Bi0
Ci
..
.
..
d0i
..
.
Bn0 d0n
donde los elementos Bi0 , d0i y, por tanto, la solucion es facilmente calculable utilizando el
siguiente algoritmo:
a) Definimos las variables Bi0 , d0i , i = 1, . . . , n por igualdades
B10 = B1 ;
d01 = d1 ;
Bi0 = Bi rCi1 ;
d0i = di rd0i1 ;
i = 2, . . . , n
0 .
donde r es la variable auxiliar Ai /Bi1
d0n
Bn0
d0i Ci xi+1
Bi0
para i = n 1, . . . , 2, 1.
2. Que lo anterior no es directamente aplicable si uno de los elementos diagonales, pongamos
Bi0 es cero, en cuyo caso la ecuacion i-esima tomara la forma Ci xi+1 = d0i . Pero entonces, la
E.4. METODO
DIRECTO PARA SISTEMAS TRIDIAGONALES
39
incognita xi+1 se obtendra de forma automatica por la igualdad xi+1 = d0i /Ci con lo que el
sistema quedara reducido a un sistema de orden n 1 en las variables {x1 , . . . , xd
i+1 , . . . , xn }
que es tridiagonal y por tanto resoluble mediante el anterior algoritmo o reducible a un
sistema tridiagonal de orden estrictamente inferior y por tanto tambien resoluble mediante
una ligera modificacion del algoritmo descrito en el punto anterior (ver la practica eg).
Pr
actica e Ejecutar el comando type e_trid con el fin de estudiar el listado de dicho archivo y
comprobar que corresponde a la implementaci
on del algoritmo descrito en el punto 1 anterior.
Vamos ahora a utilizar la funcion citada para resolver el sistema tridiagonal
2.1x1
x1
x2
2.2x2 +
x2
x3
= 1.6
3.1x3 +
x3
x4
= 2.1
2x4 = 1.2
LECCION
DIRECTOS
40
E.5.
Estabilidad
Pr
actica h Consideramos la matriz y los vectores siguientes (el ejemplo presente de mal condicionamiento o de inestabilidad es debido a R. S. Wilson):
10 7
7
A=
5
;
6 10 9
5 9 10
32
23
;
b=
33
31
32.1
22.9
c=
33.1
30.9
Con el listado
A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10]; det(A) b=[32 23 33 31].;
c=[32.1 22.9 33.1 30.9].; x=A\b, y=A\c,
obtenemos que A es una matriz simetrica de determinante 1 para la que las soluciones a los
sistema Ax = b, Ay = c son respectivamente x = (1, 1, 1, 1) y y = (9.2; 12.6; 4.5; 1.1).
Con ello observamos que a pesar de estar b y c separados u
nicamente por una decima en
cada una de sus componentes se verifica que x e y est
an separados en 13.6 unidades en
una de sus componentes lo que significa que los errores relativos se han multiplicado, con la
norma infinito, por un factor del orden de 4300!. Con la norma 2 los errores relativos se han
multiplicado por un factor 1352.
El condicionamiento de sistemas de ecuaciones lineales trata de explicar por que se produce
este fenomeno. Las relaciones
kbk = kAxk kAkkxk
kx yk
kxk
kA1 b
A1 ck
kbk/kAk
kA1 kkAk
(E.3)
kb ck
kbk
(E.4)
nos dicen que el parametro que mide el factor de propagacion de los errores relativos de la
solucion viene dado por el n
umero
cond(A) = kA1 kkAk,
a dicho n
umero se le denomina n
umero de condici
on de la matriz invertible A.
Matlab permite el calculo directo del n
umero de condicion, con la norma 2, de una matriz
invertible A con el comando cond(A). En nuestro ejemplo resulta cond(A)=2984. Una estimacion del n
umero 1/cond(A) se consigue con el comando rcond(A), este comando tiene la
ventaja de que se computa con muchas menos operaciones.
E.5. ESTABILIDAD
41
(E.5)
(E.6)
V =
0.2086
0.7603
0.2716 0.5520
1
, para D = (dij ).
mni |dii |
2. M (A) = V (M (D)).
3. M (A1 ) = V (m(D)).
maxi |dii |
4. cond(A) =
mni |dii |
Ahora, es claro que (0, 0, 0, 1)t M (D) y (1, 0, 0, 0)t m(D) de modo que v1 = V (:, 4) =
(0.5286, 0.3803, 0.5520, 0.5209)t y v2 = 101 V (:, 1) = 101 (0.5016, 0.8304, 0.2086, 0.1237)t
son elementos de M (A) y M (A1 ) respectivamente. Todo lo anterior lo podemos llevar al
ordenador con el listado:
A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10]
[V,D]=eig(A); x=V(:,4); v2=0.1*V(:,1);
b=A*x; c=b-v2; rb=norm(b-c)/norm(b); y=A\c;
rx=norm(x-y)/norm(x); factor=rx/rb; resultados=[x,y,b,c]
fprintf(....x....\t ....y....\t ....b....\t ....c....\t\n)
fprintf(%f\t %f\t %f\t %f\t\n,resultados.),
disp(factor de propagaci
on y n
umero de condici
on)
factor, condic=cond(A)
LECCION
DIRECTOS
42
Los vectores b = (16.0096, 11.5176, 16.7180, 15.7781)t y c = (15.9595, 11.6007, 16.6971, 15.7905)t
tienen la propiedad de que las soluciones x e y de los sistemas Ax = b y Ay = c verifican la
igualdad (E.6).
Pr
actica j Veamos ahora como se procede al calculo de vectores v1 M (A) y v2 M (A1 )
cuando A es una matriz regular general que para fijar ideas supondremos que es la matriz de
Vandermonde del vector (1, 2, 3.5, 5).
Ahora A no es simetrica pero en cualquier caso s lo es At A; en consecuencia, At A es ortogonalmente diagonalizable y de esto se deduce que existe una descomposicion
A = U DV t
con D una matriz diagonal de valores no negativos y U, V ortogonales (ver [3], pag. 264)
Se llama descomposici
on en valores singulares de la matriz A a cualesquiera de las descomt
posiciones A = U DV en que D es una matriz diagonal y U, V ortogonales.
Es importante observar:
La matriz D es u
nica, salvo permutaci
on en los elementos de la diagonal, ya que los
2
elementos diagonales de D coinciden con los valores propios de At A.
Las afirmaciones 12) de la practica anterior siguen siendo ciertas ahora para A = U DV t
una descomposicion en valores singulares. Ademas del hecho de ser A1 = V D1 U t una
descomposicion de A1 en valores singulares se deduce que la afirmacion 3) de la practica
anterior es cierta a condicion de poner M (A1 ) = U (m(D)).
Matlab cuenta con un comando, svd, que permite el calculo de una descomposicion en valores
singulares. Lo aplicamos ahora al calculo de los vectores v1 , v2 con el listado:
A=vander([1 2 3.5 5]);
%A es la matriz de vandermonde de (1 2 3.5 5)
[U,D,V]=svd(A), x=V(:,1);
v2=0.1*U(:,4); b=A*x; c=b-v2;
rb=norm(b-c)/norm(b); y=A\c; rx=norm(x-y)/norm(x); factor=rx/rb;
resultados=[x,y,b,c] fprintf(....x....\t ....y....\t ....b....\t
....c....\t\n)
fprintf(%f\t %f\t %f\t %f\t\n,resultados.),
display(factor de propagaci
on y n
umero de condici
on)
factor, condic=cond(A)
Los vectores b = (1.2375, 8.7417, 44.5976, 127.5692)t y c = (1.1859, 8.8174, 44.5586, 127.5781)t
tienen la propiedad de que las soluciones x e y de los sistemas Ax = b y Ay = verifican la
igualdad (E.6).
E.6.
Ejercicios
Pr
actica p Sean los n
umeros complejos p = 4 + 1.5i, q = 2 0.5i, r = 6 + 2i y s = 8 + 2.5i. Se
pide resolver el sistema
E.6. EJERCICIOS
43
px1 + qx2
= 5
= 0
1)
x + 3x2 + 2x3 = 0
1
3)
Pr
actica r
= 0 ;
2x1 x3
3x1 + 3x2 + x3 = 0
= 4
x + 2x2 + 4x3
1
;
2)
= 1
4x1 x2 + x3
= 8
x1 + x2 + x4
2x + x x + x
1
2
3
4
4)
3x1 + x2 x3 + 7x4
= 2
= 1
= 0
= 3
x1
x2
x1 +
x2
x3
x3
= 3
Pr
actica s
= 11
x4
+ x5 =
x4
x5 =
x2 + x3
x2 + 3x3 x4
x x
3
5
x4 + x5
5x1 + x6
x1 + 2x2
= 6
= 1
= 3
= 1
= 1
= 0
LECCION
DIRECTOS
44
1 2 1
1 2 1
..
.. ..
.
.
.
1 2
x1
x2
x3 =
..
.
xn
..
.
Se pide:
1. Comprobar que el vector x =
1
n+1 (1, 2, . . . , n)
es la u
nica solucion del sistema anterior.
kxyk
kxk
= cond(H10 )
kbck
kbk
Pr
actica v Para n = 3 hasta n = 20 se pide calcular el n
umero de condicion de la matriz de
Hilbert Hn de orden n y representar en una grafica el resultado obtenido.
Pr
actica w Para n = 3, 7, 11, 15, 19, 23 resolver el sistema de ecuaciones Hn x = b para b =
Hn (1, 1, . . . , 1) y Hn la matriz de Hilbert. La solucion debe ser el vector cuyas componentes
son todas iguales a 1; sin embargo, comprobar como para valores peque
nos de n la solucion
en exacta y como se va perdiendo precision para dimensiones mas grandes.
(Apartado puntuable con 0.2 puntos) Obtener una grafica que represente para cada n =
1, . . . , 20 la distancia con la solucion exacta.
Pr
actica puntuable x (0.4 puntos) Demostrar que una matriz tridiagonal con diagonal dominante (ver la practica fu) puede escribirse como el producto de dos matrices del tipo
(factorizacion de Crout):
L=
l11
...
...
l21
l22
...
l32
l33
...
...
...
...
...
lnn1
0 ;
...
lnn
U=
u11 u12
...
u22 u23 . . .
u33 . . .
...
...
...
...
...
unn