Sunteți pe pagina 1din 5

UNIVERSIDAD CENTRAL DE VENEZUELA

FACULTAD DE CIENCIAS

ESCUELA DE COMPUTACION

CALCULO CIENTIFICO (6109)


SEMESTRE II-2013
TALLER 6 - Sistemas de ecuaciones lineales (S.E.L.) y condicionamiento.

MATLAB
[L,U,P] = lu(A): Encuentra la factorizacion LU de una permutacion de la matriz
A. Es decir, PA=LU.
tic; instrucciones; toc: Calcula el tiempo de CPU requerido para ejecutar el
conjunto de instrucciones.
det(A): Obtiene el determinante de la matriz A.
inv(A): Si A es no singular, el comando inv(A) genera la matriz inversa de A.
ones(n,m): Genera una matriz de orden n por m, con todos sus elementos iguales a
uno.
cond(A,p): Determina el n
umero de condicion de la matriz A, en la norma subordinada p.
U=triu(A): Obtiene la matriz triangular superior de A.

Aspecto Te
oricos
Existen diferentes metodos para obtener el vector x R, tal que:
Ax = b,

(1)

donde A Rnn es una matriz no singular y b Rn un vector no nulo dado. Algunos de


estos metodos directos se describen a continuacion:
1. Regla de Cramer: cada componente de vector solucion viene dado por la formula:
xi =

det([a1 , a2 , . . . , ai1 , b, ai+1 , . . . , an ])


det(A)

con i = 1, 2, . . . , n,

donde ak representa la k-esima columna de la matriz A y det(A) representa el determinante de la matriz A.


2. Inversa de la matriz: es bien conocido que la solucion exacta de (1) viene dada por
x = A1 b,
siempre y cuando A sea no singular.

3. Factorizacion P A = LU : Se resuelven dos sistemas triangulares a saber Ly = P b y


luego U x = y.
Por otro lado, sabemos que puede ocurrir que el problema (1) se encuentre mal condicionado, es decir, peque
nas variaciones en la matriz de coeficientes A y/o en el vector
independiente b pueden generar grandes variaciones en el vector solucion x. Una medida
que nos ayuda a determinar si (1) se encuentra mal condionado es el n
umero de condicion
de A, denotado por cond(A) y definido como
condp (A) = kAkp kA1 kp ,
donde k.kp es la norma inducida p. Este valor posee ciertas propiedades de interes
condp (A) 1

condp (AB) = condp (A)condp (B)

condp (A) = condp (AT )

condp (A) = condp (A), 6= 0


condp (AT A) = condp (A)2

Si A es ortogonal entonces condp (A) =


1

1
condp (A)

p
= min kABk
,
kAkp

B singular

Esta u
ltima propiedad nos indica que el inverso multiplicativo del n
umero de condicion
de A es igual a la distancia relativa de A a la matriz B no invertible mas cercana.

Parte Practica
1. El objetivo del siguiente ejercicio es comparar, en cuanto a tiempo de CPU, ciertos
metodos directos para resolver sistemas de ecuaciones lineales (SEL). Programe los
metodos enunciados en la seccion anterior. Use dichos metodos para resolver Ax = b
donde A Rnn es aleatoria y b = (1, 1, , 1)t con b Rn . Emplee los valores de n
indicados en la siguiente Tabla.

n
100
200
300
400
2. Considere los SEL Bx = d

1.0000
2.0000
B=
1.0000
2.0000

Tiempo de CPU
Cramer Inversa P A = LU

y Qx = d, donde:
2.0000
4.0001
2.0020
4.0001

1.0000
2.0020
2.0040
4.0000

2.0000

4.0000
c=

4.0000
4.0000

6.0000
12.0021

9.0060
14.0001

0.3717 0.6015
0.6015
0.3717
1.9465
0.6015 0.3717 0.3717 0.6015

Q=
0.6015 0.3717 0.3717 0.6015 d = 0.4595
0.3717 0.6015 0.6015 0.3717
0

Para ambos sistemas , se tiene que solucion exacta es el vector x = [1 1 1 1]t .


Cambie el vector c a e
c = [6.0001, 12.0021, 9.0060, 13.9999]t y el vector d a
de = [1.9466, 0, 0.4596, 0]t y calcule el error relativo.
Resuelva los sistemas Be
x=e
c y Qe
x = de y en ambos casos calcule el error relativo
de la solucion.
Que observa en relacion a las soluciones obtenidas en ambos sistemas.?
Emplee la siguiente cota del error relativo para la soluon de Ax = b para justificar
el comportamiento observado de manera formal:
kb ebkp
kx x
ekp
condp (A)
kxkp
kbkp
3. Considere las siguientes proposiciones (ambas verdaderas):
det(A) = 0 si y solo si A es singular.

1
condp (A)

p
,
= min kABk
kAkp

B singular

Teniendo en cuenta estas verdades, responda las siguientes preguntas:


(a) Si det(A) es un n
umero cercano a cero, entonces la matriz A esta cerca de ser
singular?
(b) Si det(A) es significativamente mayor que 0, entonces la matriz A es no singular?
(c) Si cond(A) es un n
umero muy grande, entonces la matriz A esta cerca de ser
singular?
(d) Si |det(A)| es significativamente mayor que 0, entonces cond(A) debe ser un
valor peque
no?
(e) Si det(A) es un valor peque
no, entonces cond(A) tiene que ser un valor grande?
Ahora bien, considere la siguientes matrices

107
107
2 107
A = 107
7
2 10
107

 7

1
10
1

1 B=
1014 1021
1

y complete la siguiente tabla para corroborar o refutar sus respuestas. Asuma que
los calculos para la matriz A se realizan en una aritmetica de 14 dgitos de mantisa.

det(?)
k ? k
k[?]1 k
cond (?)
4. Considere el SEL Ax = b, con A Rnn . Recuerde que el n
umero de condicion de la
matriz A viene dada por la siguiente expresion:
condp (A) = kAkp kA1 kp ,
donde p es la norma subordinada seleccionada. En la expresion anterior se necesita
de kA1 k con lo cual se podra pensar que se requiere de A1 . Ahora bien, el calculo
de A1 es de un costo computacional mucho mayor que resolver el SEL. En vista que
para obtener el n
umero de condicion se requiere la norma de la inversa y no la inversa
propiamente dicha, surgen los llamados Estimadores de la norma de la inversa.
Uno de gran utilidad fue propuesto Cline y otros1 . Este algoritmo estima el valor
kT 1 k donde T es una matriz triangular superior. A continuacion se presenta el
pseudocodigo de este algoritmo:

Algoritmo 1 An estimate for the condition number of a matrix


1: Dado U Rnn triangular superior
2: w Rn : w = (1/|u11 |, 1/|u22 |, , 1/|unn |)t
3: p Rn : p = (0, 0, , 0)t
4: for j = n, n 1, , 1 do
5:
ypj = (1 pj )/ujj
6:
ymj = (1 pj )/ujj
7:
for i = j 1, j 2, , 1 do
8:
ppi = pi + uij ypj
9:
pmi = pi + uij ymj
10:
end for
P
P
11:
if wj |1 pj | + j1
wj |1 + pj | + j1
i=1 wi |ppi |
i=1 wi |pmi | then
12:
yj = ypj
13:
pi = ppi con i = 1, 2, j 1
14:
else
15:
yj = ymj
16:
pi = pmi con i = 1, 2, j 1
17:
end if
18: end for
19: cond(U ) kyk kU k
1

K. Cline, C.B. Moler, G. W. Stewart and J. H. Wilkinson. An estimate for the condition number of a
matrix. SIAM J Numer Anal. 1979

Genere matrices de orden n con las siguientes funciones: H=hilb(n) y R=rand(n).


Luego use la instruccion triu para obtener la triangular superior de H y R respectivamente. Denote estas matrices por Hs y Rs .
Use la rutina cU=Econd(U) que implementa el Algoritmo descrito, para hallar
un estimado del n
umero de condicion en norma infinito de Hs y Rs .
Use la funcion cond(A,inf) que provee MATLAB, para hallar Cond (Hs ) y
Cond (Rs )
Complete la siguiente Tabla para los valores de n indicados.
n
Cond
estimador

Hs
50 100 200

Rs
100 200 300

Grupo Docente de Calculo Cientfico I / Realizado por M. Monsalve

S-ar putea să vă placă și