martes, 1 de enero de 2008

Metodo de Gauss-Jordan

Este método utiliza las mismas técnicas de eliminación Gaussiana (incluyendo el pivoteo), pero con el objetivo de finalizar con una matriz de la siguiente forma:

donde es la matriz identidad de .


Para lograr esto, se usa la técnica del pivoteo con la única diferencia que el pivote se usa para hacer ceros hacia abajo y hacia arriba.

Ejemplo 1: Usar el método de Gauss-Jordan para resolver el siguiente sistema:


Solución. Comenzamos con la matriz aumentada:


Procedemos a hacer el primer pivoteo, y para ello, intercambiamos los renglones 1 y 2:


y haciendo ceros debajo del pivote, obtenemos:


~

Ahora, para colocar adecuadamente el segundo pivote intercambiamos los renglones 2 y 3:


Para hacer ceros arriba del pivote 1.25, multiplicamos el renglón 2 por y se lo sumamos al renglón 1; para hacer ceros debajo del mismo pivote, multiplicamos al mismo renglón 2 por y se lo sumamos al renglón 3 . Todo esto nos da:


Ahora procedemos a hacer ceros arriba del pivote 0.09 . Para ello, multiplicamos el renglón 3 por y se lo sumamos al renglón 2; igualmente multiplicamos el renglón 3 por y se lo sumamos al renglón 1. Todo esto nos da:


Finalmente para hacer los 1’s ( unos ) en la diagonal principal, multiplicamos los renglones 1 , 2, y 3 por y , respectivamente. Obtenemos entonces la matriz final:


La cual nos da la solución del sistema de ecuaciones:



Ejemplo 2. Usar el método de Gauss-Jordan para resolver el siguiente sistema:


Solución. Escribimos la matriz aumentada del sistema:


Observamos que el primer elemento pivote está bien colocado y por lo tanto no hay necesidad de intercambiar renglones. Por lo tanto hacemos ceros debajo del pivote ; para ello, multiplicamos el renglón 1 por 0.4 y se lo sumamos al renglón 2, y también multiplicamos el mismo renglón 1 por –0.5 y se lo sumamos al renglón 3. Esto nos da la siguiente matriz:


Para elegir el segundo elemento pivote, debemos escoger el elemento mayor (con valor absoluto) entre y , el cual obviamente es éste último. Por lo tanto, debemos intercambiar el renglón 2 y el renglón 3. Tenemos entonces:


Procedemos a hacer ceros arriba y abajo de nuestro segundo elemento pivote; para ello, multiplicamos el renglón 2 por 0.5 y lo sumamos al renglón 1, y también multiplicamos el mismo renglón 2 por y lo sumamos al renglón 3. Esto nos da:


Nuestro tercer elemento pivote es . Para hacer ceros arriba de este elemento, multiplicamos el renglón 3 por y lo sumamos al renglón 2, y también multiplicamos el mismo renglón 3 por y lo sumamos al renglón 1. Esto nos da:


Finalmente, hacemos los 1’s (unos) en la diagonal, multiplicando el renglón 2 por y el renglón 3 por . Esto nos da la matriz final:


Por lo tanto, la solución del sistema de ecuaciones es:







Codificacion en Matlab

El programa se desarrollara en Matlab implementando el algoritmo en una funcion.
El codigo fuente a continuación:

function respuesta=gauss(a,b)
%%---obtener la solcuion de un sistema de ecuaciones por el metod de gauss
%%------------------------------------------------------------------------
% a= matriz cuadrada con los coefcientes del sistema
% b= los coeficientes de las igualdades de las ecuaciones del sistema
%***************************************************************************
variables=length(a);
for i=1:variables
aux=1/a(i,i);
%*******Convirtiendo en 1 el elemnto de la matriz identidad******
b(i)=b(i)*aux;
for j=1:variables
a(i,j)=a(i,j)*aux;
end

%//*******eliminando las filas precedentes******************
for j=1:i-1
aux=-1*a(j,i);
b(j)=b(j)+b(i)*aux;
for k=1:variables
a(j,k)=a(j,k)+aux*a(i,k);
end
end
%//*******eliminando las filas posteriores******************
for j=i+1:variables
aux=-1*a(j,i);
b(j)=b(j)+b(i)*aux;
for k=1:variables
a(j,k)=a(j,k)+aux*a(i,k);
end
end

end
disp(a);
respuesta=b;


DIAGRAMA DE FLUJO

8 comentarios:

Anónimo dijo...

Hola Osquitar te escribimos desde Bucaramanga Colombia, nos salvaste de un cero.
Diana
Fredy
Darwing

Luis Miguel Galarcio dijo...

que hubo oscar hey viejito de verdad gracias.............

Unknown dijo...

Genial tu blog, de casualidad lo encontre y te admiro algun dia quiero llegar ser como tu jejejej
echale ganas
Saludos

Anónimo dijo...

q pasa si a(i,i) es cero...

Anónimo dijo...

Yo trate de correr el prgrama pero no jala, me marca un error en 'a', espero me puedan ayudar.
mi correo es isaiaskontiki@hotmail.com

Anónimo dijo...

hola soy javier de tabasco y quisiera que me hicieras el metodo de gauss y el de gauss jordan en turbo pascal,porfa

Anónimo dijo...

me puedes hacer el metodo de gauss y el de gauss jordan en turtbo pascal?

Anónimo dijo...

SE agradece =D, muy bueno tu blogg