martes, 17 de septiembre de 2013

Método de Gauss-Jordan en Matlab (en forma de funció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;

viernes, 13 de septiembre de 2013

Factor LU de matriz-- en Matlab

function [L,U]= factorlu (A)
n=length(A);
U=A;
L=eye(n);
for p=1:n
    for q = p+1:n
        L(q,p)=U(q,p)/U(p,p);
        U(q,p:n)=U(q,p:n)-U(p,p:n)*L(q,p);
    end
end
ejecutando la funcion
>> A = [1 2 2; 4 4 2; 2 6 4];
>> [L,U]=factorlu(A)

L =

    1.0000         0         0
    4.0000    1.0000         0
    2.0000   -0.5000    1.0000


U =

     1     2     2
     0    -4    -6
     0     0    -3