"Este método pertenece al sistema de factorización LU, el sistema de factorización por Método de Crout afirma como L es una matriz de tipo triangular inferior con:
Mientras que U es de tipo triangular superior con":
El método denominado como Factorización de Matrices de Crout, es un método perteneciente al sistema de Descomposición LU, en el cual la matriz triangular superior U tiene los elementos de su diagonal principal igual a 1. A partir de este método es posible encontrar una posible solución a un sistema de ecuaciones de tipo lineal.
Para lograr el desarrollo del método es necesario observar una serie de parámetros que logran ser indispensables al momento de dar solución al sistema planteado:
Pseucodigo
function LUcrout
clc
clear
format short
disp(' ');
disp(' FACTORIZACION LU CROUT: ');
disp(' ');
disp(' METODO UTILIZADO PARA SOLUCIONAR UN SISTEMA DE ECUACIONES LINEALES ');
disp(' BASADO EN LA FACTORIZACION LU DE LA MATRIZ DE COEFICIENTES ');
disp(' RELACIONADA AL SISTEMA. PARA ESTE METODO DE FACTORIZACION ');
disp(' DIRECTA DE MATRICES, SE UTILIZA COMO FUNDAMENTO QUE LOS VALORES ');
disp(' DE LA DIAGONAL DE LA MATRIZ U, SON TODOS UNO (1). ');
disp(' ');
A=input(' INGRESE LA MATRIZ DE COEFICIENTES A= ');
b=input(' INGRESE LA MATRIZ DE TERMINOS INDEPENDIENTES b= ');
[n,m]=size(A);
Ab=[A,b];
fprintf('\n LA MATRIZ AUMENTADA Ab ES = \n');
disp(' ');
disp(Ab);
if n==m
for k=1:n
U(k,k)=1;
suma=0;
for p=1:k-1
suma=suma+L(k,p)*U(p,k);
end
L(k,k)=(A(k,k)-suma);
for i=k+1:n
suma=0;
for r=1:k-1
suma=suma+L(i,r)*U(r,k);
end
L(i,k)=(A(i,k)-suma);
end
for j=k+1:n
suma=0;
for s=1:k-1
suma=suma+L(k,s)*U(s,j);
end
U(k,j)=(A(k,j)-suma)/L(k,k);
end
end
detu=1;
detl=1;
for i=1:n
detl=detl*L(i,i);
end
detA=detl*detu;
disp(' ');
disp(' EL DETERMINANTE DE LA MATRIZ L ES IGUAL A: ');
disp(' ');
fprintf(' %g \n',detl);
disp(' ');
disp(' EL DETERMINANTE DE LA MATRIZ A: ');
disp(' ');
fprintf(' %g \n',detA);
if detA~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*y(p,1);
end
y(i,1)=(b(i)-suma)/L(i,i);
end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma+U(i,p)*x(p);
end
x(i)=(y(i)-suma)/U(i,i);
end
else
disp(' ');
disp('EL DETERMINANTE DE LA MATRIZ A ES IGUAL A CERO - EL SISTEMA TIENE INFINITAS SOLUCIONES O NO TIENE SOLUCIÓN')
disp(' ');
end
end
disp(' ');
fprintf('\n LA MATRIZ Ab AL FINAL DEL PROCESO ES IGUAL A: \n')
disp(' ');
fprintf('\n Ab= \n');
disp(' ');
disp(Ab)
fprintf('\n LA MATRIZ L CALCULADA ES IGUAL A: \n')
disp(' ');
fprintf('\n L= \n');
disp(' ');
disp(L)
disp(' ');
fprintf('\n LA MATRIZ U CALCULADA ES IGUAL A: \n')
disp(' ');
fprintf('\n U= \n');
disp(' ');
disp(U)
disp(' ');
fprintf('\n EL VECTOR Y CALCULADO ES IGUAL A: \n')
disp(' ');
fprintf('\n Y= \n');
disp(' ');
disp(y)
fprintf('\n\n\n EL VERTOR SOLICION ES IGUAL A :\n');
x=x';
B=A*x;
disp(x);
fprintf('\n EL PRODUCTO ENTRE LA MATRIZ A Y EL VECTOR SOLUCION DA COMO RESULTADO EL VECTOR b \n');
disp(B);
fprintf('\n CUYA DIFERENCIA CON EL VECTOR b HORIGINAL ES DE \n');
D=b-B;
disp(D);
return
end