Pular para o conteúdo

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.
Daniel Moreira dos Santos danielms
Hits: 21.421 Categoria: Outros Subcategoria: Portugol
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.
Download decomLU.m Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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)


O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Função Fatorial Recursiva em Fortran 95

Algoritmo para calcular a tabuada

Octave - Sistemas lineares por Jacobi

Octave - Método de Runge-Kutta

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

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.