determinante.m

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

M
25
字号
function [x]=determinante(A)
%hace el determinante usando la descomposicion LU, pero no guarda L, no
%es necesario para el calculo
p=0;
n=length(A);
for i=1:n-1
    [a,b]=max(abs(A(i:n,i)));
 	% da la posicion del maximo pivote (b) y (a) es su valor
    if b~=1
        p=p+1;%cuando  permuto filas, el det cambia el signo, p indica la cantidad de permutaciones
    end
    if a~=0%significa que el rango no es menor a n
        A([i,b+i-1],i:n)=A([i+b-1,i],i:n); % intercambia la fila del maximo con la i-esima
        filas=i+1:n;
        A(filas,filas)=A(filas,filas)-A(filas,i)*A(i,filas)/A(i,i);%obtiene la U pero no la L, no la necesito
    else 
          break%ya sabes que da cero
    end
end
x=((-1)^p)*prod(diag(A));

        
        
        

⌨️ 快捷键说明

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