Octave - Decomposição LU

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

[ Hits: 20.569 ]

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

Octave - Método de Gauss-Legendre

Octave - Calcular raiz pelo método Regula-Falsi

CobWeb Plot em Octave

Octave - Calcular raiz pelo método de Newton

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


  

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