Octave - Decomposição LU

Publicado por Daniel Moreira dos Santos (última atualização em 10/07/2010)

[ Hits: 20.598 ]

Homepage: http://www.danielmoreira.wordpress.com

Download decomLU.m




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.

  



Esconder código-fonte

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)



Scripts recomendados

Teste de hardware e outros

Matriz de Hilbert e resolução de sistemas lineares

Octave - Método de Euler para solução de EDO

Numero Primo

Octave - Calcular raiz pelo método de Newton


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts