Octave - Decomposição LU
Em álgebra linear, a decomposição LU é uma forma de fatoração de uma matriz A não singular como o produto de uma matriz triangular inferior L e uma matriz triangular superior U, isto é A=LU.
Às vezes se deve pré-multiplicar a matriz a ser decomposta por uma matriz de permutação. Esta decomposição se usa em análise numérica para resolver sistemas de equações (mais eficientemente) ou encontrar as matrizes inversas.
Às vezes se deve pré-multiplicar a matriz a ser decomposta por uma matriz de permutação. Esta decomposição se usa em análise numérica para resolver sistemas de equações (mais eficientemente) ou encontrar as matrizes inversas.
Descrição
Em álgebra linear, a decomposição LU é uma forma de fatoração de uma matriz A não singular como o produto de uma matriz triangular inferior L e uma matriz triangular superior U, isto é A=LU.
Às vezes se deve pré-multiplicar a matriz a ser decomposta por uma matriz de permutação. Esta decomposição se usa em análise numérica para resolver sistemas de equações (mais eficientemente) ou encontrar as matrizes inversas.
Às vezes se deve pré-multiplicar a matriz a ser decomposta por uma matriz de permutação. Esta decomposição se usa em análise numérica para resolver sistemas de equações (mais eficientemente) ou encontrar as matrizes inversas.
function [A, Det, Pivot] = decomLU(n, A) % n, A = ordem e matriz a ser decomposta %A, Det, Pivot = matriz decomposta A = U+L-I, determinante, pivôs for i=1:n Pivot(i) =i; end Det = 1; for j=1:n-1 p = j; Amax = abs(A(j,j)); for k=j+1:n if abs(A(k,j))>Amax Amax = abs(A(k,j)); p =k; end end if p~=j for k=1:n t = A(j,k); A(j,k) = A(p,k); A(p,k) = t; end m = Pivot(j); Pivot(j)=Pivot(p); Pivot(p)=m; Det = -Det; end Det = Det*A(j,j); if abs(A(j,j))~=0 r = 1/A(j,j); for i=j+1:n Mult = A(i,j)*r; A(i,j) = Mult; for k=j+1:n A(i,k) = A(i,k)-Mult*A(j,k); end end end end Det = Det*A(n,n)