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 + -
显示快捷键?