You are on page 1of 15

Primera Parte

Parte a:
Tenemos el sistema:
1
1
1
]
1




2 1 1
1 10 10
1 10 10
5 5
5 5
A
;
1
1
1
]
1

3
2
1
x
x
x
x
; 1
1
1
]
1

1
10 . 2
10 . 2
5
5
b
Para la resolucin de este problema utilizamos el mtodo directo de eliminacin
gaussiana sin pivoteo resuelto mediante un programa en matlab. Primero realizamos la
escalerizacin del sistema ! posteriormente la sustitucin "acia atr#s $bac%&ard
substitucion'.
(l algoritmo para la resolucin gaussiana consiste en ir generando trminos
nulos a partir de la propiedad de )ue la solucin del sistema original es la misma luego
de realizar combinaciones lineales de entre sus *ilas.
+onsideramos la matriz del sistema ,aumentado-
1
1
1
]
1




1 2 1 1
10 . 2 1 10 10
10 . 2 1 10 10
5 5 5
5 5 5
M
.
.a eliminacin se realiza en n/1 pasos
1 .... 2 1 n k
. (n el paso % los
elementos
' $k
ij
a
con
k j i >
son trans*ormados de la siguiente *orma:
' $ ' $ ' 1 $
' $
' $

k
kj ik
k
ij
k
ik
k
kk
k
ik
ik
a m a a
a
a
m
+

n k k i ..... 2 1 + +

n k k j ..... 2 1 + +
0l *inal del algoritmo )ueda escalerizado lo cual nos permite utilizar el
algoritmo de sustitucin "acia atr#s.
(l algoritmo para sustitucin hacia atrs se realiza luego de "aber escalerizado
el sistema ! "aber realizado la multiplicacin de la matriz escalerizada $1' por la
matriz $el vector' $2'. (l resultado c Ux es de la *orma
n n nn
n n n n n n n
n n
n n
c x U
c x U x U
c x U x U
c x U x U x U


+ +
+ + +
1 1 1 1 1
2 2 2 22
1 1 2 12 1 11
.........
.........
Por lo )ue obtenemos el termino genrico
i
x
de la siguiente *orma:
ii
ik
n
i k
k i
i
U
U x b
x

+

1
; con
1 ..... 1 n n i
Todo estos algoritmos aplicados a lengua3e matlab )ueda traducido de la
siguiente manera:
function X=prob1a(A,b)
if (det(A)~=0),
n=length(b);
%Escalerizo
A1=A b!;
for "=1#n,
if A1(",")==0,
$c,i$c!=$a%(abs(A1("#n,")));
i$c=i$c&"'1;
au%=A1(",#);
A1(",#)=A1(i$c,#);
A1(i$c,#)=au%;
end
for i="&1#n,
A1(i,"#n&1)=A1(i,"#n&1)'A1(i,")(A1(","))A1(","#n&1);
end
end
% *ustitu+o hacia atras
b1=A1(#,n&1);
%=zeros(n,1);
%(n)=b1(n)(A1(n,n);
for "=n'1#'1#1,
%(")=(b1(")'A1(","&1#n))%("&1#n))(A1(",");
end
else
disp(,-a $atriz no es in.ertible, por lo tanto no es escalerizable,)
disp(,el siste$a no tiene solucion,)
end
X=%;
(l resultado de el sistema resuelto por el cdigo anterior dio

,
_

0000 . 0
0000 . 2
0000 . 1
x
Parte b:
1
1
1
]
1




2 1 1
1 10 10
1 10 10
5 5
5 5
A
;
1
1
1
]
1

3
2
1
x
x
x
x
;
1
1
1
]
1

1
10 . 2
10 . 2
5
5
b
4ealizacin de el primer paso de eliminacin 5auseana ! pivoteo completo
usando aritmtica de punto *lotante de tres d6gitos.
Para ello implementamos el siguiente algoritmo:
Pivoteo completo sobre A:
1' +onstruimos 7 la matriz ampliada de 0:
1
1
1
]
1




1 2 1 1
10 . 2 1 10 10
10 . 2 1 10 10
5 5 5
5 5 5
M
2' (legimos r ! s los m6nimos enteros para los cuales
' $ ' $
ma8
k
ij
k
rs
a a

n j i k

)ue en la matriz 0 resulta ser
2
33
a
.
3' Por lo tanto 3 s r entonces intercambiamos la *ila 1 por la *ila 3 ! la
columna 1 por la 3 $pivoteamos 7'.
.a matriz luego del pivoteo )ueda:
$a partir de a)u6 utilizaremos la aritmtica de punto *lotante de tres d6gitos'
1
1
1
]
1




9 9 9 1
9 9 9 1
1 1 1 1
10 . 200 0 10 . 100 0 10 . 100 0 10 . 100 0
10 . 200 0 10 . 100 0 10 . 100 0 10 . 100 0
10 . 100 0 10 . 100 0 10 . 100 0 10 . 200 0
M
9' 4ealizamos el primer paso de eliminacin gaussiana. :allamos el multiplicador
correspondiente a la *ila 2
0
1
1
11
21
21
10 . 500 0
10 . 200 0
10 . 100 0

a
a
m

5' .uego a cada componente de la *ila 2 le aplicamos j j j
a m a a
1 21 2 2
;
! es a)u6
donde surgen problemas:
0 1 0 1
21
10 . 000 0 10 . 200 0 ; 10 . 500 0 10 . 100 0 a
0 1 0 9
22
10 . 500 0 10 . 100 0 ; 10 . 500 0 10 . 100 0

a )ue en realidad
corresponde al valor
0
22
10 . 50001 0 a pero debido a la representacin de P<
de 3 d6gitos se pierde in*ormacin
0
10 . 00001 0 .
0 1 0 9
23
10 . 500 0 10 . 100 0 ; 10 . 500 0 10 . 100 0

a
ocurriendo algo
similar a la operacin anterior.
0 1 0 9
29
10 . 500 0 10 . 100 0 ; 10 . 500 0 10 . 200 0

a

7 )ueda
1
1
1
]
1


9 9 9 1
0 0 0 0
1 1 1 1
10 . 200 0 10 . 100 0 10 . 100 0 10 . 100 0
10 . 500 0 10 . 500 0 10 . 500 0 10 . 000 0
10 . 100 0 10 . 100 0 10 . 100 0 10 . 200 0
M
=' :icimos lo mismo con la *ila 3
1
1
1
]
1



0 0 0 0
0 0 0 0
1 1 1 1
10 . 500 0 10 . 500 0 10 . 500 0 10 . 000 0
10 . 500 0 10 . 500 0 10 . 500 0 10 . 000 0
10 . 100 0 10 . 100 0 10 . 100 0 10 . 200 0
M
>tra vez perdemos in*ormacin debido a la representacin del punto *lotante.
(ste mtodo puede llegar a *allar debido a )ue la representacin del punto *lotante del
de 3 d6gitos puede no ser su*iciente para operaciones )ue se mane3en con operandos de
una d*erencia de ordenes ma!or o igual a 9.

Parte 1 c:
Tenemos )ue
1
1
1
]
1




2 1 1
1 10 10
1 10 10
5 5
5 5
A
;
1
1
1
]
1

3
2
1
x
x
x
x
;
1
1
1
]
1

1
10 . 2
10 . 2
5
5
b
?amos a realizar el escalado ! el e)uilibrado del sistema b Ax .
.uego de*inimos
1 2
@ AD D A
donde
1
D
2
D
son matrices diagonales entonces

,
_

3
2
1
1
0 0
0 0
0 0

,
_

3
2
1
2
0 0
0 0
0 0

D
.
.uego
b D b
2
@

x D x
1
@
Para escalar la matriz 0 multiplicamos 0 por A1 ! obtenemos
1
A

,
_

,
_



5
5 5
5 5
1 1
10 0 0
0 1 0
0 0 1
2 1 1
1 10 10
1 10 10
AD A

,
_



5
5 5 5
5 5 5
1
10 . 2 1 1
10 10 10
10 10 10
A
0"ora e)uilibramos la matriz:
1
A
para "allar 0@
1 2 1 2
B A D AD D A

,
_

,
_

,
_



5
3 3 3
5
2
5
2
5
2
5
1
5
1
5
1
5
5 5 5
5 5 5
3
2
1
10 . 2
10 10 10
10 10 10
10 . 2 1 1
10 10 10
10 10 10
.
0 0
0 0
0 0
@


A
Por la de*inicin de e)uilibrado para toda *ila
1
1

n j
ij
a max

n i ..... 2 1
{ }
5
1
5
1
5
1
5
1
10 10 10 10

max dividimos la *ila 1 por el m#8imo
( ) 1 1 1 C maximo fila
{ }
5
2
5
2
5
2
5
2
10 10 10 10 max dividimos la *ila 2 por el m#8imo
( ) 1 1 1 C maximo fila
{ }
3 3 3 3
max
dividimos la *ila 3 por el m#8imo
( )
5
10 . 2 1 1 C

maximo fila
5
1
10
5
2
10
1
3

b D b
2
@

,
_

,
_

,
_

1
2
2
1
10 . 2
10 . 2
1 0 0
0 10 0
0 0 10
5
5
5
5

0 pesar )ue mostramos los c#lculos a mano $para e)uilibrar 0'; implementamos
una *uncin e)uili la cual le ingresas una matriz cual)uiera ! te la devuelve e)uilibrada.
function A=e/uili(0)
n $!=size(0);
for i=1#n
$=$a%(0(i,#));
A(i,#)=(0(i,#))($;
end

Aespus de "allar 0@ D@ ! A1 los ingresamos como datos en la siguiente
*uncin la cual realiza el pivoteo completo ! la eliminacin 5aussiana.
function X=pi.(a,b,d1)
if (det(a)~=0),
n=length(b);
A1=a b!;
.=1#n!;
%1i.oteo co$pleto + eli$inacion gaussiana
for "=1#n,
%1i.oteo co$pleto
$c,col!=$a%(abs(A1("#n,")));
$c,fil!=$a%(abs(A1(","#n)));
col=col&"'1;
fil=fil&"'1;
au%=A1(","#n&1);
A1(","#n&1)=A1(fil,"#n&1);
A1(fil,"#n&1)=au%;
au%2=A1("#n,");
A1("#n,")=A1("#n,col);
A1("#n,col)=au%2;
au%3=.(1,");
.(1,")=.(1,col);
.(1,col)=au%3;
%Eli$inacion gaussiana
for i="&1#n,
A1(i,"#n&1)=chop(A1(i,"#n&1)'A1(i,")(A1(","))A1(","#n&1),3);

end

end
% *ustitucion hacia atras
b1=A1(#,n&1);
%=zeros(n,1);
if A1(n,n)==0
%(n)=0;
else
%(n)=chop( b1(n)(A1(n,n),3 );
end
for "=n'1#'1#1,
%(")=chop( (b1(")'A1(","&1#n))%("&1#n))(A1(","),3 );
end
else
disp(,-a $atriz no es in.ertible,el siste$a no tiene solucion,)
end

.=.,
disp(,El .ector . indica el subindice de cada % del .ector soluci4n,)

X=d1)%;
Segunda Parte
Parte a:
Aada la matriz

,
_

1 1
1 1
A
vamos a "allar sus valores ! vectores propios.
(n una matriz cuando tenemos )ue v v A . . se de*ine a como su valor
propio asociado a el vector propio
v
. .os valores propios se pueden "allar como
( ) 0 . det I A
los vectores propios asociado a
i

se obtienen de sustituir el valor


propio en ( )( ) 0 . X I A
i

.
(n matlab se puede obtener los valores ! vectores propios a travs del comando
eig con el cual se obtiene una matriz diagonal D con los valores propios ! otra matriz P
con los vectores propios asociados a j

correspondiente a j
v
donde 3 es el numero de
columna de la matriz.

,
_

n
n
D

0 ........ 0 0
0 ........ 0 0
........
0 0 ........ 0
0 0 ....... 0
1
2
1

( )
n n
v v v v P
1 2 1
.......

Para ello elaboramos el cdigo:


A=[1 1;1 1];
[Pa,Da]=eig(A)
Aonde Pa es la matriz de vectores propios ! Da la matriz diagonal de valores
propios de A.
(l programa devuelve:

,
_

11E=55 0.F0F10=FE 11E=55 0.F0F10=FE /


11E=55 0.F0F10=FE 11E=55 0.F0F10=FE
Pa

,
_

2 0
0 0
Da
0)u6 vemos )ue los vectores propios entregados por el comando eig no son
cmodos para traba3ar esto se debe a )ue el comando eig devuelve a los vectores con
norma 1 !

,
_

2
1
2
1
2
1
2
1
Pa
si observamos bien cada componente de cada vector tiene el mismo mdulo por lo
tanto ser6a conveniente traba3ar con los componentes de cada vector de mdulo 1
obtenido de dividir a cada componente por un escalar en este caso
2
1
. :a! )ue ver
si es l6cito realizar esta operacin.
Tenemos )ue
( ) ( ) { } V
b
F0F10 0.F0F100. .F0F10 0.F0F10/0
donde ? es la base
de vectores propios por lo tanto cual)uier combinacin lineal de estos vectores
pertenece a ?. 0dem#s podemos elegir otra base de vectores propios conveniente.
Tomamos la misma base ! la dividimos entre
2
1
lo )ue nos )ueda

,
_

1 1
1 1
Pa
!
adem#s el sistema

'

0 1 1
0 1 1
sigue siendo un sistema compatible determinado por
lo tanto el con3unto
( ) ( ) { } 1 1 1 1 sigue siendo una base de ?. (ntonces
( ) ( ) { } V
b
1 1 1 1
Parte b:
Ge de*ini
E
10 ; ' 2 $

+ rand A B donde le suma a 0 valores aleatorios del
orden m#8imo de
E
10

. :allamos sus valores ! vectores propios ! los comparamos


con los de 0. 1tilizamos de nuevo la *uncin eig.
A=[1 1;1 1];
[Pa,Da]=eig(A)
for k=1:5,
[Pa,Da]=eig(A);
B=A+rand(2)*10^-;
[P!,D!]=eig(B);
Pa
P!
Da
D!

end
.uego de probar varias veces notamos )ue el orden de la di*erencia es mu!
pe)ueHo $del orden de
E
10

'.
Parte c:
Teniendo 8 calculamos x B b . ! luego llamamos 2nuevoIDJb suponiendo
)ue no "ubiese problema de redondeo se puede concluir )ue 2nuevo I 8 si luego a b lo
perturbamos el resultado de 2nuevo se va a alterar.
Tenemos )ue calcular la cota de error relativo de 2nuevo si suponemos )ue la
( )
E
10

b norm ! D es e8acto.
0dem#s tenemos )ue la cota de error relativo es
( )

b
b
B cond
Xnuevo
Xnuevo
.
tambin sabemos )ue la

1
. ' $ B B B cond

( )
E
10

b norm b
+on los datos )ue contamos sin suponer un valor de 8 la cota de error relativo
nos )ueda en *uncin de
b
por lo tanto tomamos algunos valores de 8 para poder
obtener algKn dato e8perimental.
0 continuacin se muestra el cdigo para "allar la cota de error relativo en
7atlab tomando

,
_

1
1
x
:
A=[1 1;1 1];
B=A + rand(2)*10^-8;
x=[1;1]
b=B*x;
Xnuevo=B\b;
B1=inv(B);
coerr=cond (B!in") * (10^-8) # nor$(b!in")
+on

,
_

1
1
x
como supuesto ! corriendo varias veces el programa vemos )ue la
cota de error relativo de 2nuevo varia notoriamente !a )ue obtuvimos valores entre 1 !
100. $.os distintos valores se deben a )ue D se obtiene de una *uncin aleatoria por eso
los valores di*erentes se obtienen e3ecutando el programa varias veces'.
Parte d:
Tenemos las mismas "iptesis )ue la ,parte c- pero suponiendo adem#s )ue D
tiene un error del orden
mach

por lo tanto la cota de error relativo de 2nuevo es


( )
( )

,
_

b
b
B
B
B
B
B cond
B cond
Xnuevo
Xnuevo

.
1
tenemos como dato )ue
mach
B

$o sea el error de D es del orden de


mach

'
A=[1 1;1 1];
B=A + rand(2)*10^-;
"=[1;1]
!=B*";
#n$e%o=B&!;
B1=in%(B);
'o(err=('ond(B,inf))((1-'ond(B,inf))* (e*+)nor,(B,inf))))* ((e*+)nor,(B,inf))
+(10^-) ) nor,(!,inf))
+on

,
_

1
1
x
como supuesto ! corriendo varias veces el programa vemos )ue la
cota de error relativo de 2nuevo no varia significativamente.
Parte e y f:
0"ora tenemos

,
_

1
1
x
! ( )
E
10 . 2 1

rand b vamos a calcular 1000 veces el
valor de 2nuevoIDJ$$D;8 'L b ' )ue es variable debido a )ue b es obtenido de una
*uncin aleatoria. 0 su vez gra*icamos realizamos las gra*icas de las 1000 di*erencias de
$2nuevo M 8' "allados ! la gra*ica de la variacin de 2nuevo
A=[1 1;1 1];
B=A + rand(2)*10^-;
"=[1 ;1];
,=[ ];
-=[ ];
for i=1:1000
d!=rand(1,2)*10^-;
#n$e%o=B&((B*")+ (d!.));
-(:,i)=#n$e%o;
, = [,, #n$e%o - "];
end
*/o((0,0,.r*.)
0o/d on
*/o( (,(2,:),,(1,:))
0o/d off
*a$+e;
*/o( (-(2,:),-(1,:))
0o/d on
*/o((1,1,.r*.)
0o/d off
(l programa calcula los 1000 valores $2nuevo M 8' ! 2nuevo ! los gra*ica en
*uncin de sus coordenadas. (n la primera gr#*ica aHadimos el punto $00' para mostrar
)ue pasa por el. 4ealizamos lo mismo en la segunda pero en el punto $11'.
-25 -20 -15 -10 -5 0 5 10 15 20 25
-30
-20
-10
0
10
20
30
-3 -2 -1 0 1 2 3 4 5
-3
-2
-1
0
1
2
3
4
5
.os valores de + b b var6an en un cuadrado de lado de
E
10

2nuevo var6a pr#cticamente en una l6nea )ue pasa por [ ]


N
1 1 ! con
pendiente /1 debido a:
b Bx
b b b x B + + ' $
b x B b Bx x B Bx + + . 1'
los valores propios de B son mu! cercanos a los de Acon una di*erencia del orden
O E
10 10

o por lo )ue tomamos a los de A)ue son ( ) 1 1
1
v ( ) 1 1
2
v
con valores propios
0
1

!
2
2


respectivamente.
{ }
2 1
v v *orman una base ortogonal de vectores
propios en esa base tomamos
b x
:
2'
' 1 1 $ ' 1 1 $ b a x +
3'
' 1 1 $ ' 1 1 $ d c b +
Gustitu!o 2' ! 3' en 1':

[ ] ' 1 1 $ ' 1 1 $ ' 1 1 $ ' 1 1 $ d c b a B + +


' 1 1 $ ' 1 1 $ ' 1 1 $ ' 1 1 $ d c bB aB + +
por propiedad
i i i
v Bv
entonces
' 1 1 $ ' 1 1 $
1
B
! tambin

' 1 1 $ ' 1 1 $
2
B

' 1 1 $ ' 1 1 $ ' 1 1 $ ' 1 1 $
2 1
d c b a + +
c a
1


0
1

d b
2


2
2

por propiedad triangular
E
10

b
E
10 ' 1 1 $ . ' 1 1 $ . ' 1 1 $ ' 1 1 $

+ + d c d c b
E
10

+d c

E
10

c

E
10

d
c a
1


E
1
10
0


a
es grande
E
2
2
10
2

d
d b

b es c"ico
' 1 1 $ ' 1 1 $ b a x +
se desprecia en la direccin de $11'
! x var6a en la direccin de $/11'
2 I$11' en la base cannica
(n la base { }
2 1
v v


' 1 1 $ ' 1 1 $ ' 1 1 $ +
1 +

1 1 2

1 +

0 1
' 1 0 $ X
en la base { }
2 1
v v
' 1 1 $ ' 1 1 $ ' 1 1 $ 1 ' 1 1 $ 0 b a x x + + + + ' 1 1 $ 1 ' 1 1 $ + a

' 1 1 $ 1
en la direccin de
2
v
x x + se mantiene *i3o en 1
en las coordenadas cannicas x x + siempre pasa por $11'

! en la direccin de
1
v
x x + var6a segKn
a
por lo )ue se *orma una
recta )ue pasa por el $11' ; esa recta esta en la direccin
1
v
por lo )ue
tiene pendiente /1 !a )ue
1
v
es el vector $/11'.
Parte g:
(n esta parte gra*icaremos
( ) ( ) ( ) N.N x Xnuevo norm b norm plot
A=[1 1;1 1];
B=A + rand(2)*10^-;
"=[1 ;1];
for i=1:1000
d!=rand(1,2)*10^-;
#n$e%o=B&((B*")+ (d!.));
*/o((nor,(d!),nor,(#n$e%o-"),.r1.)
0o/d on
end
0 0.2 0.4 0.6 0.8 1 1.2 1.4
x 10
-8
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2

You might also like