Considere o seguinte sistema de equações lineares:
Caso haja convergência garantida, resolva o sistema dado pelo método iterativo de Gauss-Seidel com x^{(0)}=\left(x_{1}^{(0)}, x_{2}^{(0)}, x_{3}^{(0)}\right)^{t}=(0.1,0.2,0.5)^{t} \mathrm{e} \varepsilon=0.01.
Passo 1
O que o enunciado pede e o que já foi dado.
Pede-se usar o método iterativo de Gauss–Seidel para resolver o sistema linear
com vetor inicial \,x^{(0)}=(0{,}1,\,0{,}2,\,0{,}5)^t e tolerância \varepsilon=0{,}01.
Informação essencial fornecida:
Matriz A e vetor b do sistema (listados acima).
Inicial x^{(0)}=(0{,}1,0{,}2,0{,}5)^t.
Critério de parada pedido: \varepsilon=0{,}01 (vamos interpretar isto de forma usual como tolerância para o erro — vou explicar as opções na resolução).]
Passo 2
Breve aula prática: o que é Gauss–Seidel e as fórmulas usadas aqui.
Ideia do método: para [A x=b) escrevemos cada equação isolando a incógnita da linha correspondente e atualizamos as componentes de x uma a uma, usando imediata e sucessivamente os valores já atualizados (isso é o que diferencia Gauss–Seidel de Jacobi).
Observação didática: sempre verifique o sinal do coeficiente diagonal antes de isolar; aqui as expressões já foram arrumadas para dividir por 9\] e \(3, mantendo tudo consistente.
Critério de parada (explicação): há duas escolhas comuns
parar quando \|x^{(k+1)} - x^{(k)}\|_\infty < \varepsilon (diferença entre iterações),
ou parar quando \|r^{(k)}\| < \varepsilon (resíduo r^{(k)} = b-Ax^{(k)}).
Vou adotar a forma padrão pedida na maioria dos exercícios: parar quando a diferença entre iterações (norma infinito) for menor que \varepsilon=0{,}01. Se preferir a outra forma, dá para adaptar fácil.]
Passo 3
Convergência: verificar se Gauss–Seidel converge neste caso (importante antes de iterar).
Um critério simples e suficiente: se A for estritamente diagonalmente dominante por linhas (ou simétrica definida positiva), a convergência é garantida. Vamos checar a dominância linha a linha:
Linha 1: |a_{11}| = 9 e soma das outras |5|+|6|=11 → 9<11 (não domina).
Linha 2: |a_{22}| = 3 e soma |2|+|1|=3 → 3=3 (não estritamente domina).
Linha 3: |a_{33}| = 3 e soma |-1|+|1|=2 → 3>2 (esta linha domina).
Conclusão: A matriz não é estritamente diagonalmente dominante por linhas, logo esse critério simples NÃO garante convergência.
Mas não acabou: Gauss–Seidel converge se o raio espectral da matriz de iteração G_{GS} for menor que 1. Vamos formar explicitamente a matriz de iteração e avaliar o raio espectral (isso prova convergência rigorosamente).
Escrevendo A = D + L + U ( D diagonal, L estritamente triangular inferior, U estritamente triangular superior). Para este A:
Como D+L é triangular inferior, para obter G_{GS} basta resolver alguns sistemas triangulares coluna a coluna. Fazendo esses cálculos obtemos (mostro o resultado):
(Se quiser, dá para conferir resolvendo (D+L)X=U coluna a coluna; eu já resolvi isso nos bastidores.)
Como a primeira coluna de G_{GS} é zero, os autovalores de G_{GS} são \lambda=0 e as raízes do polinômio quadrático vindo do bloco 2\times2 formado pelas linhas/colunas 2 e 3. O polinômio característico reduz-se a
Conclusão importante e motivadora: apesar de A não ser estritamente diagonalmente dominante, a matriz de iteração tem raio espectral menor que 1. Assim o método de Gauss–Seidel CONVERGE para qualquer inicial, em particular para o x^{(0)} dado.]
Passo 4
Aplicando o método: fórmulas de iteração e algumas iterações demonstrativas.
Observação: vemos um comportamento oscilante, típico de matrizes com autovalor negativo dominante; porém as oscilações vão diminuindo em amplitude porque \rho(G_{GS})\!<\!1.
Passo 5
Atalho inteligente: resolvendo o sistema exatamente para saber aonde o método converge (isso é permitido para checar a solução final e para saber quando parar).
Vamos resolver o sistema por eliminação direta (é rápido e dá a solução real que a iteração tende a alcançar).
A partir das equações, pode-se obter (substituições simples)x_3=x_2,\qquad x_1=2-2x_2.Substituindo em (1) dá 29x_2=29, logo x_2=1. Assimx_1=0,\qquad x_2=1,\qquad x_3=1.
Portanto a solução exata éx^\ast=(0,\,1,\,1)^t.
Como Gauss–Seidel converge, os iterados x^{(k)} tendem para x^\ast. Para saber quantas iterações são necessárias até que a norma infinito da diferença entre iterações caia abaixo de \varepsilon, podemos usar o fato de que o erro se reduz aproximadamente por um fator \rho(G_{GS}) a cada iteração (para erros grandes essa é uma boa estimativa assintótica). Uma estimativa prática é:
\|e^{(k)}\|_\infty \le C\,\rho(G_{GS})^k,
onde e^{(k)}=x^{(k)}-x^\ast e C é proporcional ao erro inicial \|e^{(0)}\|_\infty. Usando uma estimativa simples com C\approx\|e^{(0)}\|_\infty (que dá uma boa ideia do número de iterações necessárias):
Queremos 0{,}8\cdot\rho^{k}<0{,}01. Com \rho\approx0{,}9192 temosk\gtrsim\frac{\ln(0{,}01/0{,}8)}{\ln(0{,}9192)}\approx\frac{\ln(0{,}0125)}{\ln(0{,}9192)}\approx52.
Interpretação: serão necessárias da ordem de 50 a 55 iterações para que o erro \|x^{(k)}-x^\ast\|_\infty fique abaixo de 0{,}01. Se a condição de parada for \|x^{(k+1)}-x^{(k)}\|_\infty<0{,}01, o número de iterações será da mesma ordem.
Conclusão prática: o método converge e a solução alvo é x^\ast=(0,1,1)^t. Para atingir a tolerância \varepsilon=0{,}01 é razoável executar cerca de 52 iterações (pode-se parar assim que \|x^{(k+1)}-x^{(k)}\|_\infty<0{,}01 for atingido; na prática isso acontecerá por volta desse número).
Passo 6
Resumo final, motivação e encorajamento (curto e direto).
O Gauss–Seidel converge para a solução exata x^\ast=(0,1,1)^t no caso dado porque o raio espectral da matriz de iteração é \rho(G_{GS})\approx0{,}9192<1.
Com o inicial dado x^{(0)}=(0{,}1,0{,}2,0{,}5)^t e \varepsilon=0{,}01, estima-se que serão necessárias cerca de 52 iterações para que a norma infinito da diferença entre iterações fique abaixo de 0{,}01.
Se precisar, eu posso calcular e listar as iterações até a iteração que realmente cumpre \|x^{(k+1)}-x^{(k)}\|_\infty<0{,}01; só avisar que eu executo as ~52 iterações e apresento a tabela.