Octave - Decomposição LU

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

[ Hits: 20.568 ]

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

Matriz de Hilbert e resolução de sistemas lineares

Script em Bath "DOS" para Upload e Download de arquivos usando o SSH

Octave - Método de Gauss-Legendre

Cálculo da raiz de uma função pelo Método da Bisseção - Octave

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