Documentos de Académico
Documentos de Profesional
Documentos de Cultura
9 Metododegauss 120310010726 Phpapp02 PDF
9 Metododegauss 120310010726 Phpapp02 PDF
4.3
Mtodo de Gauss
4x1 + 2x 2 + 5x 3 =
18.00
2x1 + 5x 2 + 8x 3 =
27.30
2x1 + 4x 2 + 3x 3 =
16.20
Solucin: Se define la matriz aumentada A | B para transformar simultneamente A y B:
4 2 5 18.00
A | B = 2 5 8 27.30
2 4 3 16.20
Las transformaciones sucesivas de la matriz aumentada se describen en los siguientes cuadros
Dividir fila 1 para 4
1.0000
2.0000
2.0000
1.2500
1.3750
0.5000
4.5000
4.5750
7.2000
4.5000
4.5750
-6.5250
4.5000
4.5750
1.8000
66
La matriz de los coeficientes ha sido transformada a la forma triangular superior
De este sistema se obtiene la solucin mediante una sustitucin directa comenzando por el final:
x 3 = 1.8
x2 =
4.575 1.375(1.8) =
2.1
x1 =
4.5 0.5(2.1) 1.25(1.8) =
1.2
a1,1
a2,1
=
A |B
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,n a1,n+ 1
a2,n a2,n+ 1
. . . .
...
...
an,n an,n+ 1
1
0
...
0
a1,2
1
...
...
...
1 a1,2
1
0
... ...
0
0
0
0
0
0
... a1,n 2
... a2,n 2
...
...
1
...
0
...
0
a1,n1
a1,n
a2,n1
a2,n
...
...
an 2,n1 an 2,n
1
an1,n
0
1
a1,n a1,n+ 1
a2,n a2,n+ 1
...
...
1 an,n+ 1
Para facilitar la notacin
a1,n+ 1
a2,n+ 1
...
an 2,n+ 1
an1,n+ 1
an,n+ 1
xn an, n+ 1
xn1 an1, n+ 1 an1, n xn
xn 2 an 2, n+ 1 (an 2, n1xn1 an 2, n xn )
. . . etc
Con la formulacin del mtodo anterior (Gauss-Jordan) modificando el ndice de las filas para
reducir solamente debajo de la diagonal y con la formulacin para resolver el sistema triangular
resultante, se define el algoritmo para el mtodo de Gauss:
67
ALGORITMO BSICO DE GAUSS
a: matriz aumentada del sistema de n ecuaciones lineales
Para e = 1, 2, . . ., n
Para j=e, e+1, ..., n+1
a e,j a e,j / a e,e
Fin
Para i=e+1, e+2, n
Para j=e, e+1, ..., n+1
ai,j ai,j ai,e a e,j
Fin
Fin
Fin
xn an, n+ 1
%Matriz aumentada
%Normalizar la fila e
%Reducir otras filas
68
4.3.4 Estrategia de pivoteo
Al examinar la eficiencia de los mtodos directos para resolver sistemas de ecuaciones lineales
se observa que la operacin de multiplicacin est en la seccin crtica del algoritmo con
3
eficiencia O(n ).
Formulacin del mtodo de Gauss:
Etapa e = 1, 2, . . ., n
Normalizar la fila e:
a e, j a e, j / a e, e ,
a e, e 0
a i, j a i, j a i, e a e, j ,
Etapa e:
Columna e
Transformaciones
Fila e
Tansformaciones
1 a1,2
0
1
... ...
0
0
... ...
0
0
0
0
... a1,e
... a2,e
...
...
... a e,e
...
...
... an1,e
... an,e
... a1,n
... a2,n
...
...
... a e,n
...
...
... an1,n
... an,n
a1,n+ 1
a2,n+ 1
...
a e,n+ 1
...
an1,n+ 1
an,n+ 1
69
4.3.5 Instrumentacin computacional del mtodo de Gauss con pivoteo
La siguiente instrumentacin en MATLAB del mtodo de eliminacin de Gauss incluye la
formulacin descrita y la estrategia de pivoteo parcial vista anteriormente, en notacin matricial
compacta de MATLAB. En esta instrumentacin final se incluye un chequeo del divisor para
prevenir el caso de que el sistema sea singular aunque, por los errores de redondeo, no sea
exactamente igual a cero. Tambin se verifica que sea una matriz cuadrada.
function x=gauss(a,b)
[n,m]=size(a);
if n~=m
x=[ ];
return;
end
a=[a,b];
for e=1:n
[z, p]=max(abs(a(e:n,e)));
p=p+e-1;
t=a(e,e:n+1);
a(e,e:n+1)=a(p,e:n+1);
a(p,e:n+1)=t;
if abs(a(e,e))<1.0e-10
x=[ ];
return;
end
a(e,e:n+1)=a(e,e:n+1)/a(e,e);
for i=e+1:n
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);
end
end
x(n,1)=a(n,n+1);
for i=n-1:-1:1
x(i,1)=a(i,n+1)-a(i,i+1:n)*x(i+1:n,1);
end
%Matriz aumentada
%Pivoteo por filas
%Intercambio de filas
%Normalizar la fila e
%Reducir otras filas
Ejemplo. Desde la ventana de comandos de MATLAB, use la funcin Gauss para resolver el
sistema:
2 3 7 x1 3
2 5 6 x =
2 5
8 9 4 x 3 8
Escriba en la ventana de comandos de MATLAB
>> a=[2, 3, 7; -2, 5, 6; 8, 9, 4];
>> b=[3; 5; 8];
>> x=gauss(a,b)
x=
-0.0556
0.9150
0.0523
Matriz de coeficientes
Vector de constantes
Llamada a la funcin
Solucin calculada
70
4.3.6 Funciones de MATLAB para sistemas de ecuaciones lineales
MATLAB tiene un soporte muy potente para resolver sistemas de ecuaciones lineales.
Sugerimos entrar al sistema de ayuda de MATLAB y revisar la amplia informacin relacionada
con este tema.
La forma ms simple de resolver un sistema lineal, si la matriz de coeficientes es cuadrada y nosingular, es usando la definicin de inversa de una matriz MATLAB.
Ejemplo. Resuelva el ejemplo anterior con la funcin inv de MATLAB
>> a=[2, 3, 7; -2, 5, 6; 8, 9, 4];
>> b=[3; 5; 8];
>> x=inv(a)*b
x=
-0.0556
0.9150
0.0523
Matriz de coeficientes
Vector de constantes
Invertir la matriz de coeficientes
Solucin calculada por MATLAB
Una forma ms general para resolver sistemas lineales, incluyendo sistemas singulares se
puede hacer con la funcin rref de MATLAB. Esta funcin reduce una matriz a su forma
escalonada con 1s en la diagonal.
Ejemplo. Resuelva el ejemplo anterior con la funcin rref de MATLAB
>> a=[2 3 7;-2 5 6;8 9 4];
>> b=[3;5;8];
>> a=[a, b];
>> c=rref(a)
c=
1.0000
0
0 -0.0556
0 1.0000
0 0.9150
0
0 1.0000 0.0523
Matriz aumentada
71
4.3.8 Instrumentacin computacional para clculo del determinante
function d=determinante(a)
%Determinante de una matriz cuadrada
%Mediante reduccin a una matriz triangular
%El determinante es el producto de los pivotes
[n,m]=size(a);
if n~=m
%La matriz debe ser cuadrada
d=0;
return
end
signo=1;
%cambios de fila
d=1;
for e=1:n
[z, p]=max(abs(a(e:n,e)));
%Pivoteo por filas
p=p+e-1;
t=a(e,e:n);
%Intercambio de filas
a(e,e:n)=a(p,e:n);
a(p,e:n)=t;
if e~=p
%Cambio de fila = cambio de signo
signo=signo*(-1);
end
if abs(a(e,e))<1.0e-10
%Divisor cercano a 0: matriz singular
d=0;
return;
end
d=d*a(e,e);
%Multiplicacin de pivotes
a(e,e:n)=a(e,e:n)/a(e,e);
%Normalizar la fila e
for i=e+1:n
%Reducir otras filas
a(i,e:n)=a(i,e:n)-a(i,e)*a(e,e:n);
end
end
d=d*signo;
%Determinante
Ejemplo
>> a=[5 3 7; 2 9 8; 5 8 2]
a=
5 3 7
2 9 8
5 8 2
>> d=determinante(a)
d=
-325