trisinnorm.m

来自「programas matlab metodos numericos」· M 代码 · 共 24 行

M
24
字号
function [x,y,L]=trisinnorm(A)
%en x devuelve la matriz triangulada pero desordenada, en la ultima columna
%esta el orden; y en cambio devuelve la matriz triangulada en orden, L
%devuelve la matriz L
n=size(A); %tama駉 de la matrix
c=min(n);
orden=(1:n(1))';
A=[A orden];
for i=1:c-1 % busca la matriz U y el vector L*v (la ultima columna) 
	[a,b]=max(abs(A(i:n(1),i)));
   if a~=0
   % da la posicion del maximo pivote (b) y (a) es su valor
	A([i,b+i-1],i:n(2)+1)=A([i+b-1,i],i:n(2)+1); % intercambia la fila del maximo con la i-esima
    filas=i+1:n(1);
    A(filas,i)=A(filas,i)/A(i,i);%obtiene la L
    A(filas,filas:n(2))=A(filas,filas:n(2))-A(filas,i)*A(i,filas:n(2));%obtiene la U 
   end
end
L=tril(A,-1)+eye(n(1),n(2)+1);
A=triu(A);
x=A;
[a,orden]=sort(A(:,n(2)+1));
y=A([orden],1:n(2));
% resolucion del sistema

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?