Académique Documents
Professionnel Documents
Culture Documents
Laboratorio 3
Eliminación Gaussiana
Métodos Numéricos para ingenierı́a
1 Eliminación Gaussiana
Sea A ∈ Rn×n una matriz cuadrada no singular, x ∈ Rn , b ∈ Rn , considere el sistema de ecuaciones:
Ax = b
Este sistema se puede resolver mediante el algoritmo de eliminación gaussiana. A continuación se muestra
el pseudo código del algoritmo de eliminación gaussiana con sustitución regresiva, cuando la solución del
sistema existe y es única.
Universidad Austral de Chile Independencia 631 Tel: +56 63 2221500 Valdivia Chile
Facultad de Ciencias de la Ingenierı́a
Centro de Docencia de Ciencias Básicas para Ingenierı́a
2 Actividades
Considere la matriz A ∈ Rn×n definida como:
13, si i = j,
−4, si |i − j| = 1,
1, si |i − j| = 3,
(ai,j )i,j=1,...,n = −1, si |i − j| = 5,
2, si |i − j| = 7.
−3, si |i − j| = 9.
0, En otro caso
1. Programe una rutina que genere la matriz A para n dado. Pruebe para n = 5 y n = 10.
Universidad Austral de Chile Independencia 631 Tel: +56 63 2221500 Valdivia Chile
Facultad de Ciencias de la Ingenierı́a
Centro de Docencia de Ciencias Básicas para Ingenierı́a
Solución:
1. La función que genera la matriz A es:
f u n c t i o n [ a , tiempo ]=A( n )
tic ;
a=z e r o s ( n , n ) ;
f o r i =1:n
f o r j =1:n
i f i==j
a ( i , j )=13;
e l s e i f abs ( i −j )==1
a ( i , j )=−4;
e l s e i f abs ( i −j )==3
a ( i , j )=1;
e l s e i f abs ( i −j )==5
a ( i , j )=−1;
e l s e i f abs ( i −j )==7
a ( i , j )=2;
e l s e i f abs ( i −j )==9
a ( i , j )=−3;
end
end
end
tiempo=t o c ;
>> A( 5 )
ans =
13 −4 0 1 0
−4 13 −4 0 1
0 −4 13 −4 0
1 0 −4 13 −4
0 1 0 −4 13
>> A( 1 0 )
ans =
13 −4 0 1 0 −1 0 2 0 −3
−4 13 −4 0 1 0 −1 0 2 0
0 −4 13 −4 0 1 0 −1 0 2
1 0 −4 13 −4 0 1 0 −1 0
0 1 0 −4 13 −4 0 1 0 −1
−1 0 1 0 −4 13 −4 0 1 0
0 −1 0 1 0 −4 13 −4 0 1
2 0 −1 0 1 0 −4 13 −4 0
0 2 0 −1 0 1 0 −4 13 −4
−3 0 2 0 −1 0 1 0 −4 13
Universidad Austral de Chile Independencia 631 Tel: +56 63 2221500 Valdivia Chile
Facultad de Ciencias de la Ingenierı́a
Centro de Docencia de Ciencias Básicas para Ingenierı́a
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% E l i m i n a c i n gaussiana %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f o r i =1:n−1
i f A( i , i )==0
f o r k=i +1:n−1
i f A( k , i )˜= 0
p=k ;
break
end
end
A=CambiarFila (A, i , p ) ;
end
f o r h=i +1:n−1
A( h , : ) =A( i , : ) ∗ A( h , i ) /A( i , i )∗−1+A( h , : ) ;
end
end
f o r i=n−1: −1:1
x ( i )=(A( i , n)−A( i , [ 1 : n −1])∗ x ( [ 1 : n − 1 ] ) ) /A( i , i ) ;
end
tiempo=t o c ;
A10=A( 1 0 ) ;
A20=A( 2 0 ) ;
A100=A( 1 0 0 ) ;
b10=o n e s ( 1 0 , 1 ) ;
b20=o n e s ( 2 0 , 1 ) ;
b100=o n e s ( 1 0 0 , 1 ) ;
[ x10Gauss , t 1 0 ]= Gauss ( A10 , b10 ) ;
[ x20Gauss , t 2 0 ]= Gauss ( A20 , b20 ) ;
[ x100Gauss , t 1 0 0 ]= Gauss ( A100 , b100 ) ;
x10Real=A10\ b10 ;
x20Real=A20\ b20 ;
x100Real=A10\ b100 ;
e r 1 0=norm ( x10Real−x10Gauss ) ;
e r 2 0=norm ( x20Real−x20Gauss ) ;
e r 1 0 0=norm ( x100Real−x100Gauss ) ;
Universidad Austral de Chile Independencia 631 Tel: +56 63 2221500 Valdivia Chile
Facultad de Ciencias de la Ingenierı́a
Centro de Docencia de Ciencias Básicas para Ingenierı́a
Notemos que en la ejecución del script el er10, er20 y er100 son del orden 10−16 , además t10 = 0.0020001,
t20 = 0.0090008 y t100 = 0.21301
Anexo
A continuación se muestra la función cambiar fila, que es utilizada en la implementación del algorı́tmo de
eliminación Gaussiana.
f u n c t i o n A=CambiarFila (A, i , j )
%Cambiar l a f i l a i por l a j
aux=A( i , : ) ;
A( i , : ) =A( j , : ) ;
A( j , : ) = aux ;
Universidad Austral de Chile Independencia 631 Tel: +56 63 2221500 Valdivia Chile