Tamanho atual da fonte:

Resolução de sistemas lineares: Método de Jacobi - vídeo aula

Introdução

O método de Jacobi é uma simplicação do algorítmo de valores próprios de Jacobi, sendo ele formulado pelo matemático alemão Carl Gustav Jakob Jacobi no final do século XVIII.

Para resolução de sistemas lineares com poucas dimensões, dificilmente usa-se métodos iterativos, uma vez que eles levam maior tempo para obter uma aproximação do real valor se comparados com os métódos diretos, como por exemplo a eliminação gaussiana.

Entretanto, para sistemas grandes, como os que encontramos ao fazermos a análise de determinados circuitos ou na resolução de equações diferenciais parciais, essas técnicas iterativas tornam-se mais eficientes.



Conteúdo

Suponha que queremos achar a solução de um sistema linear de três variáveis:

$$ \begin{cases}a_{11}x_1 + a_{12}x_2 + a_{13}x_3 = b_1 \\ a_{21}x_1 + a_{22}x_2 + a_{23}x_3 = b_2 \\ a_{31}x_1 + a_{32}x_2 + a_{33}x_3 = b_3 \end{cases} $$
Podemos tomar como primeiro passo isolar cada uma das incógnitas na sua linha correspondente: $$ \begin{cases}x_1 =\frac{b_1 -a_{12}x_2 - a_{13}x_3}{a_{11}} \\ x_2 =\frac{b_2 -a_{21}x_1 - a_{23}x_3}{a_{22}} \\ x_3 =\frac{b_3 -a_{31}x_1 - a_{32}x_2}{a_{33}} \end{cases} $$ Em seguida, escrevemos na forma matricial:
$$\begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} \frac{-a_{12}x_2 - a_{13}x_3}{a_{11}} + \frac{b_1}{a_{11}} \\ \frac{-a_{21}x_1 - a_{23}x_3}{a_{22}} + \frac{b_2}{a_{22}} \\ \frac{-a_{31}x_1 - a_{32}x_2}{a_{33}} + \frac{b_3}{a_{33}} \end{bmatrix} $$
Por fim, escrevemos o resultado obtido na forma operações matriciais:
$$ \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 0 & \frac{-a_{12}}{a_{11}} & \frac{-a_{13}}{a_{11}} \\ \frac{-a_{21}}{a_{22}} & 0 & \frac{-a_{23}}{a_{22}} \\ \frac{-a_{31}}{a_{33}} & \frac{-a_{32}}{a_{33}} & 0 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} + \begin{bmatrix} \frac{b_{1}}{a_{11}} \\ \frac{b_{2}}{a_{22}} \\ \frac{b_{3}}{a_{33}} \end{bmatrix}. $$
Chamaremos a matriz que multiplica o vetor $x$ de matriz de iteração $B$, e o vetor do lado direito que se soma ao resultado do produto chamaremos de $d$, obtendo: $$ x = Bx + d. $$ Observe que temos $x$ dos dois lados, indicando que se obtém $x$ a partir de outro $x$, o que caracteriza um processo iterativo.

Esse processo iterativo da obtenção de uma solução $x$ para o sistema a partir de uma solução obtida anteriormente é denominado Método iterativo de Jacobi. A matriz $B$ é chamada de matriz de iteração porque é ela quem define o processo iterativo.

Iniciamos com um chute inicial $x^{(0)}$ para a solução do sistema. A partir dele, vamos iterando e obtendo novas soluções. Desde que o processo seja convergente, a cada iteração obtemos uma solução que se aproxima cada vez mais da solução exata. Sabemos que:

$$ x^{(1)} = Bx^{(0)} + d, $$ ou, generalizando para uma iteração $k$, obtemos que: $$ x^{(k+1)} = Bx^{(k)} + d. $$

Exemplo 1

Resolva o sistema linear de forma que o erro seja menor ou igual a $0.05$:

$$ \begin{cases} 10x_{1} + 2x_{2} + x_{3} = 7 \\ x_{1} + 5x_{2} + x_{3} = -8 \\ 2x_{1} + 3x_{2} + 10x_{3} = 6 \end{cases}$$
Isolando a variável $x_i$ na linha $i$, teremos:
$$ \begin{cases} x_{1} = -\frac{2}{10}x_{2} - \frac{1}{10}x_{3} + \frac{7}{10} \\ x_{2} = -\frac{1}{5}x_{1} -\frac{1}{5}x_{3} -\frac{8}{5} \\ x_{3} =- \frac{2}{10}x_{1} - \frac{3}{10}x_{2} + \frac{6}{10} \end{cases} $$
Em seguida, escrevemos as matrizes $B$ e $d$ do processo iterativo:
$$ B = \begin{bmatrix}0 & -0.2 & -0.1 \\ -0.2 & 0 & -0.2 \\ -0.2 & -0.3 & 0 \end{bmatrix}, $$ $$\space d = \begin{bmatrix}0.7 \\ -1.6 \\ 0.6 \end{bmatrix}. $$ Feito isso, nós daremos um chute inicial para o $k = 0$, sendo esse chute, o vetor $\space x^{(k)} = x^{(0)} = \begin{bmatrix}0.7 \\ -1.6 \\ 0.6 \end{bmatrix}$

Observação: esse chute poderia ser um outro vetor qualquer, por exemplo: $x^{(0)} = \begin{bmatrix}0 \\ 0 \\ 0 \end{bmatrix}$

Agora já podemos iniciar o processo iterativo $x^{(k+1)} = Bx^{(k)} + d$: $$ x^{(1)} = Bx^{(0)} + d. $$ Iteração 1:
$$ \begin{aligned} x^{(1)} &= \begin{bmatrix}0 & -0.2 & -0.1 \\ -0.2 & 0 & -0.2 \\ -0.2 & -0.3 & 0 \end{bmatrix} \begin{bmatrix} 0.7 \\ -1.6 \\ 0.6 \end{bmatrix} + \begin{bmatrix} 0.7 \\ -1.6 \\ 0.6 \end{bmatrix} \\ &= \begin{bmatrix} (-0.2)(-1.6) + (-0.1)0.6 + 0.7 \\ (-0.2)0.7 + (-0.2)0.6 - 1.6 \\ (-0.2)0.7 + (-0.3)0.6 + 0.6 \end{bmatrix} \\ &= \begin{bmatrix} 0.96 \\ -1.86 \\ 0.94 \end{bmatrix}. \end{aligned} $$
Agora podemos fazer o cálculo do erro para vermos o quão próximo estamos do erro que queremos obter. Para isso, consideraremos a norma linha dos vetores para o cálculo do erro relativo. (Para entender o cálculo da normal linha, veja a seção "Critérios de Convergência") $$ \begin{aligned} E_r &= \frac{\left|x^{(1)}-x^{(0)}\right|_L }{\left|x^{(1)}\right|_L}\\ & = \frac{0.34}{1.86} = 0.1828. \end{aligned} $$ Como $0.1828 > 0.05$, que é o erro que queremos obter, o precesso iterativo continua.

Prosseguindo as iterações, nós teremos:

Iteração 2: $$x^{(2)} = Bx^{(1)} + d$$
$$ \begin{aligned} x^{(2)} &= \begin{bmatrix}0 & -0.2 & -0.1 \\ -0.2 & 0 & -0.2 \\ -0.2 & -0.3 & 0 \end{bmatrix} \begin{bmatrix} 0.96 \\ -1.86 \\ 0.94 \end{bmatrix} + \begin{bmatrix} 0.7 \\ -1.6 \\ 0.6 \end{bmatrix} \\ &= \begin{bmatrix}0.978 \\ -1.98 \\ 0.966 \end{bmatrix}. \end{aligned} $$
O erro relativo é:
$$ \begin{aligned} E_r &= \frac{\left|\begin{bmatrix}0.978 \\ -1.98 \\ 0.966 \end{bmatrix} - \begin{bmatrix} 0.96 \\ -1.86 \\ 0.94 \end{bmatrix}\right|_L }{\left|\begin{bmatrix}0.978 \\ -1.98 \\ 0.966 \end{bmatrix}\right|_L}\\ &= \frac{0.12}{1.98} = 0.0606. \end{aligned} $$
Iteração 3:
$$ \begin{aligned} x^{(3)} &= Bx^{(2)} + d \\ &= \begin{bmatrix}0 & -0.2 & -0.1 \\ -0.2 & 0 & -0.2 \\ -0.2 & -0.3 & 0 \end{bmatrix} \begin{bmatrix} 0.978 \\ -1.98 \\ 0.966 \end{bmatrix} + \begin{bmatrix} 0.7 \\ -1.6 \\ 0.6 \end{bmatrix} \\ &= \begin{bmatrix}0.9994 \\ -1.9888 \\ 0.9984 \end{bmatrix} \\ \end{aligned} $$
Com um erro relativo igual a $$ Er = \frac{0.0324}{1.9888} = 0.0163, $$ que é menor que $0.05$, satisfazendo a condição imposta pelo enunciado da questão. Então, a solução $x$ do sistema linear acima, com erro menor que $0.05$, obtida pelo método de Jacobi, é $$ x = \begin{bmatrix}0.9994 \\ -1.9888 \\ 0.9984 \end{bmatrix}. $$

Algoritmo para implementação computacional

Implementação Scilab

Exercícios - Método de Jacobi

Enunciado

Gentelella - Bootstrap Admin Template by Colorlib
Extension for Yii framework 2 by Yiister