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