RE:Algoritmo de gauss jordan en java
Publicado por
Dave (1 intervención) el 17/11/2006 02:28:03
Hola, que tal, por aca solo tengo el algoritmo de eliminacion Gaussiana con Factorizacion L*U. pero codificado para MATLAB, Si te sirve aca te lo envio es un scrip:
__________________________________________________________
%Eliminacion Gauss simple
clc;clear;
disp('Eliminacion Gauss simple')
disp('usando factorizacio L*U de Crout')
%Los datos se almacenan en el archivo datos.m
%como matriz ampliada en la variable a
datos;
disp('matriz original')
disp(a)
an=a;
%valores iniciales descomposicion lu crout
%la respuesta se almacena en las matrices
%low y upp
low(:,1)=a(:,1);
upp(1,:)=a(1,1:m)/a(1,1);
% eliminacion hacia adelante
for i=1:m-1
for j=i+1:m
fprintf('\n eliminacion fila %g columna %g \n',j,i)
a(j,:)=a(j,:)-a(i,:)*a(j,i)/a(i,i);
disp(a)
pause
end
%descomposicion lu crout
low(i+1:m,i+1)=a(i+1:m,i+1);
upp(i+1,i:m)=a(i+1,i:m)/(a(i+1,i+1));
end
% sustitucion hacia atras
%la respuesta se almacena en x
x(m)=a(m,m)/a(m,m);%(m,m+1)
for k=m-1:-1:1
s=0;
for p=k+1:m
s=s+a(k,p)*x(p);
end
x(k)=(a(k,m)-s)/a(k,k);%(k,m+1)
end
% presentacion de resultados
disp('matrices lu');
disp('matriz inferior(L) =');disp(low);
disp('matriz superior(U) = ');disp(upp);
disp('solucion del sistema AX=B');
disp(x)
___________________________________________________________________
y el scrip donde se guardan los datos, (datos.m), modificas de acuerdo a la matriz q quieras hallar.:
___________________________________________________________________
%Los datos se ingresan en la variable a
%como matriz ampliada
a=[2 4 -1 -2;4 0 2 1;1 3 -2 0;3 2 0 5];
%Calculos adicionales
[m,n]=size(a);
b=a(:,n);
____________________________________________________________________
Vale, espero te sirvan..! Saludos.!