Métodos iterativos para resolver sistemas lineares
Suponha que queremos resolver um problema do tipo , em que é uma matriz real e é um vetor em . Matematicamente, se estamos interessados em encontrar , podemos apenas calcular a inversa de , caso exista. Se sim . Apesar de ser fácil de calcular, esse procedimento precisa fazer operações, o que pode ser muito custoso quando aumenta. Nesse caso, precisamos de alternativas mais palatáveis para resolver esse problema, principalmente para grande. Utilizamos métodos iterativos para ajudar!
De forma geral, vamos querer reescrever o problema da forma: em que são matrizes. Se conseguirmos expressar dessa forma, estaremos interessados nos pontos fixos do operador .
Teorema: O processo iterativo satisfaz o seguinte: Para todo valor inicial , a sequência converge para o ponto fixo se, e somente se, , em que é o raio espectral da matriz , isto é, o maior autovalor em módulo.
Uma demonstração desse resultado pode ser encontrado no livro de Richard L.Burden Numerical Analysis (página 457).
Corolário: Se para qualquer norma matricial induzida (induzida por uma norma vetorial), então a iteração anterior converge para o ponto fixo do operador para qualquer chute inicial . Esse resultado é uma consequência de para todo norma natural .
- Método de Jacobi
- Método de Gauss-Seidel
- Método Successive Over-Relaxation (SOR)
- Método Gradiente Conjugado
Teorema: Se é diagonalmente estritamente dominante, então para qualquer escolha de , os métodos de Jacobi e Gauss-Seidel convergem.
Método de Jacobi
Esse método é derivado resolvendo a th equação de para (dado que )
Assim, geramos iterativamente,
Vamos escrever em formato matricial. Observe que
e sendo e as matrizes triangulares superiores e inferiores, e a matriz diagonal de ,
Assim, o procedimento Jacobi pode ser sumarizado da seguinte forma:
- Sejam as entradas as matrizes e com uma aproximação inicial . Defina uma tolerância para o critério de parada.
- Realize a iteração até o critério de parada.
- Lembre de pré-calcular as matrizes e .
Observação: Na notação do livro, troca-se e por e para não aparecer o sinal na expressão acima.
Acelerar a convergência: Colocar o máximo possível acelera a convergência do método.
Método de Gauss-Seidel
Observe que quando iteramos o processo no método de Jacobi, fixamos e fazemos a operação . Por esse motivo, podemos utilizar os valores já calculados para atualizar o valor de . Assim
Essa simples modificação gerou o método de Gauss-Seidel. Para obter essa equação em formato matricial, precisamos de
Note que para cada linha , estamos tomando todas as colunas no lado esquerdo. No lado direito é o contrário. Assim,
O processo iterativo é similar ao Método de Jordan.
Teorema (Stein-Rosenberg): Se para cada e , para cada , então uma, e somente uma, das afirmações vale:
(i) ;
(ii) ;
(iii) ;
(iv) ,
em que e são as matrizes dos métodos de Jacobi e Gauss-Seidel.
Convergência
Seja o sistema com solução e o método iterativo com . Assim se , o método converge para a solução com os seguintes limites no erro:
(i) .
(ii) .
Assim, percebemos que a convergência depende de (isso é verdade porque para todo , existe uma norma matricial natural tal que .
Método Successive Over-Relaxation (SOR)
Baseada na análise de convergência da última seção, estamos interessados em minimizar de maneira geral. Para isso introduz-se o SOR.
O vetor resíduo é dado por , em que é uma aproximação para a solução de . Seja
o vetor resíduo para . Em particular, o método de Gauss-Seidel pode ser reescrito de forma a
Para isso, a ideia será escolher de forma a acelerar a convergência e
- Se , o método é sob-relaxamento.
- Se , o método é sobre-relaxamento.
Em formato iterativo,
que em formato matricial se reduz a
Teorema (Kahan): Se para todo , então o método converge somente se . Esse resultado pode ser obtido calculando o raio espectral da matriz da iteração SOR.
Teorema (Ostrowski-Reich): Se é matriz positiva definida e , então o método SOR converge para todo .
Por fim, é importante destacar que para minimizarmos o raio espectral, a escolha ótima de é dada por
em que é a matriz de iteração de Jacobi.