clear clc Q=input('introduzca la matriz= '); b=input('introduzca el vector solucion'); n=input('introduzca el numero de digitos con el cual desea trabajar= '); L=eye(size(Q)); N=size(Q,2)% Numero de columnas F=size(Q,1);%numero de filas de Q, esto me va a decir cuantas operaciones de triangulacion voy a hacer A=chop([Q b'],n) r=1:F%este vector lo voy a utilizar como base para permutar las filas P=zeros(F-1,F)%cada fila de esta matriz va a guardar la permutacion de cada paso % FORMA 1 for j=1:F-1 %es decir, para cada etapa de la triangulacion D=A(j:F,j:N+1) %extraigo la submatriz, con la cual voy a trabajar t=size(D,1) [aij,i]=max(abs(D(:,1)))% con esto identifico cual es el numero de mayor modulo y su indice en la columna j-esima %con esto miro las permutaciones generales pro=r(i+j-1) r(i+j-1)=r(j) r(j)=pro %permutacion de la matriz D per=1:t per(1)=i per(i)=1 D=D(per,:) if j>1 L(j:F,j-1)=L(per+j-1,j-1) end L(j+1:F,j)=chop(D(2:t,1)/D(1,1),n) for k=2:t D(k,:)=chop(-chop(D(k,1)/D(1,1),n).*D(1,:)+D(k,:),n) end A(j:F,j:N+1)=D P(j,:)=r % r=1:F end U1=A L % % % FORMA 2 % A=[Q b'] % R=zeros(F-1,F) % for j=1:F-1 % [c,i]=sort(-abs(A(j:F,j)))%cuidado con esto, explicar bien... % A=A([1:(j-1) (j-1+i)'],:) % for k=j+1:F % A(k,:)=-(A(k,j)/A(j,j)).*A(j,:)+A(k,:) % end % R(j,:)=[1:(j-1) (j-1+i)'] % end % U2=A(:,1:N) % U1=A(:,1:N) % % % %SOLUCION % x=zeros(1,N) % for g=0:N-1 % i=N-g % x(i)=(-x(i+1:N)*U2(i,i+1:N)'+A(i,N+1))/A(i,i) % end % x' % y=Q\b' % b=A(:,N+1) % h=U2\b % [L,U,P]=lu(Q) % % % % % %