

function [ ret ] = pivoteo_total ()
A=matrizA;
B=vectorb;
%n=length(B)
[m n]=size(A);
mat=[A B]

if m=n 

if det(A)~=0

 for i=1:n
    marcas(i,1)=i; %vecttor que nos permite obtener la posicion de las variables despues del cambio
 end

 for c=1:n-1
    mayor=abs(mat(c,c)); %asigna el primer valor como numero mayor
    fm=c; %asigna la fila c como la fila que tiene el numero mayor
    cm=c; %asigna la columna c como la columna que tiene el numero mayor
    for f=c:n
        for j=c:n
            if abs(mat(f,j))>mayor %se compara para encontrar el numero mayor
                mayor=abs(mat(f,j)); %cambio de numero mayor
                fm=f; %cambio de fila
                cm=j; %cambio de columna
            end
        end
    end
    mayor;
    fm;
    cm;
    
    if fm~=c
        aux=mat(fm,:); %para poder intercambiar las variables, se utilizara una variable auxiliar
        mat(fm,:)=mat(c,:);
        mat(c,:)=aux;
    end
    
    if cm~=c
        aux=mat(:,cm);
        mat(:,cm)=mat(:,c);
        mat(:,c)=aux;
        aux=marcas(cm,1); %para poder intercambiar las variables, se utiliza una variables auxiliar
        marcas(cm,1)=marcas(c,1); 
        marcas(c,1)=aux;
    end
     
    for f=c+1:n
        multiplicador=mat(f,c)/mat(c,c); %formula para hallar el multiplicador
        for i=1:n+1
            mat(f,i)=mat(f,i)-multiplicador*mat(c,i); %formula para volver los valores debajo de la diagonal en ceros
        end
        mat;
    end
	mat
 end

 disp('Matriz triangular superior:')
 disp(mat)
        
 for i=n:-1:1
     suma=0;
     for s=i+1:n
        suma=suma+mat(i,s)*x(s,1);
     end
     x(i,1)=(mat(i,n+1)-suma)/mat(i,i); %formula de la sustitucion regresiva y solucion de las variables
 end


 

 disp('Soluciones para la matriz: ')
 disp(x)
 disp('orden de las varaiables Xn')
 disp(marcas)

else
	disp('el sistema no es cuadrado y no tiene unica solucion')
end

	else
		disp('el sistema no es cuadrado y no tiene unica solucion')
	end

endfunction
