MÉTODOS DE DECOMPOSIÇÃO
A fatoração LU de uma matriz A surge da necessidade de resolver um conjunto de sistemas do tipo Ax = b1, Ax = b2, Ax = b3 e assim por diante. Evidentemente, poderíamos resolver cada um desses sistemas escalonando a matriz completa [A b] correspondente até sua forma escalonada reduzida mas, computacionalmente, o escalonamento é um processo muito demorado e, como se não bastasse, imagine que tivéssemos centenas ou milhares de b’s para resolver. Você ficaria escalonando sistema por sistema?
A fatoração LU surge para resolver esse problema. Basicamente, supondo-se que A seja uma matriz mxn que pode ser escalonada até sua forma reduzida sem trocar linhas, a Álgebra Linear nos diz que ela pode ser escrita na forma A = LU, onde L é uma matriz triangular inferior mxm cuja diagonal principal possui apenas 1’s e U é uma matriz triangular superior mxn que nada mais é do que a própria forma escalonada reduzida de A.
Exemplo método decomposição LU em linguagem de programação C 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)
MÉTODO DE GAUSS-SEIDEL
O método de Gauss-Seidel é um método iterativo para resolução de sistemas de equações lineares. O