Está en la página 1de 2

%Factorizacin LU bsica clear all n=input('Digite el tamao de la matriz: '); % Se llena L y U con ceros L=zeros(n);U=zeros(n); % Lectura de la matriz A for

i=1:n for j=1:n fprintf('Digite la componente (%i',i); fprintf(',%i)\n',j); A(i,j)=input('A(i,j)= '); end end %Lectura del vector b for i=1:n fprintf('Digite la componente (%i)\n',i); b(i)=input('b(i)= '); end b=b'; % Escogencia de L(k,k) U(k,k) opcion=input('0 para pedir L(k,k) 1 para U(k,K): '); if opcion==0 for k=1:n fprintf('Digite la componente (%i',k); fprintf(',%i)\n',k); L(k,k)=input('L(k,k)= '); end else for k=1:n fprintf('Digite la componente (%i',k); fprintf(',%i)\n',k); U(k,k)=input('U(k,k)= '); end end %Proceso de calculo de L y U for k=1:n suma=0; for s=1:(k-1) suma=suma+ L(k,s)*U(s,k); end if opcion==0 U(k,k)=(A(k,k)-suma)/L(k,k); else L(k,k)=(A(k,k)-suma)/U(k,k); 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 for i=k+1:n suma=0; for s=1:(k-1) suma=suma+L(i,s)*U(s,k); end L(i,k)=(A(i,k)-suma)/U(k,k); end disp(L); disp(U); % Sustitucion progresiva para Z(i) for i=1:n suma=0; for j=1:(i-1) suma= suma+L(i,j)*Z(j); end Z(i)=(b(i)-suma)/L(i,i); end % Sustitucion regresiva para X(i) for i=n:-1:1 suma=0; for j=i+1:n suma= suma+U(i,j)*X(j); end X(i)=(Z(i)-suma)/U(i,i); end end disp(X);

También podría gustarte