Você está na página 1de 25

U N I V E R S I D A D E

UNIGRANRIO
Vá além da sala de aula !

Sistemas Lineares
Núcleo de Educação a Distância U N I V E R S I D A D E
www.unigranrio.com.br UNIGRANRIO
Rua Prof. José de Souza Herdy, 1.160 Vá além da sala de aula !
25 de Agosto – Duque de Caxias - RJ

Reitor
Arody Cordeiro Herdy

Pró-Reitor de Administração Acadêmica


Carlos de Oliveira Varella

Pró-Reitor de Pesquisa e Pós-graduação


Emilio Antonio Francischetti
Pró-Reitora Comunitária
Sônia Regina Mendes

Direção geral: Jeferson Pandolfo Desenvolvimento do material: Leonardo Tunala


Revisão: Laís Sá Desenvolvimento instrucional: Josane Mittmann
Produção editoração gráfica: Magno Dal Magro

Copyright © 2018, Unigranrio


Nenhuma parte deste material poderá ser reproduzida, transmitida e gravada, por qualquer meio eletrônico,
mecânico, por fotocópia e outros, sem a prévia autorização, por escrito, da Unigranrio.
Sumário
Sistemas Lineares
Objetivos ........................................................................................... 04
Introdução ......................................................................................... 05
1. Sistemas Lineares ................................................................. 06
1.1 Métodos Diretos para Sistemas Lineares:
Eliminação Gaussiana ............................................................ 09
1.2 Método Iterativo de Gauss-Seidel ............................................ 19
Síntese ............................................................................................. 24
Referências Bibliográficas .................................................................... 25
Objetivos
Ao final desta unidade de aprendizagem, você será capaz de:

▪▪ Transcrever problemas numéricos em sistemas de equações e matrizes;


▪▪ Solucionar sistemas de equações lineares através de métodos numéricos.

4 Métodos Computacionais em Engenharia


Introdução
Os modelos matemáticos de processos reais são constituídos, em
sua maioria, não de apenas uma equação diferencial isolada, mas de muitas
equações acopladas entre si, ou seja, compartilham entre elas muitas variáveis
dependentes e independentes, bem como condições iniciais e de contorno.

Como a solução dos modelos matemáticos através de métodos matemáticos


pode ser complicada, entram em cena os métodos computacionais. Como no
exemplo do saltador, visto na Unidade 1, existe um intervalo de tempo anterior
a 24 segundos, em que este apresenta variação de sua velocidade de queda
livre; essa fase ou período é chamado de regime transiente ou transitório. Nesse
período transiente, a derivada da função (inclinação da curva) é diferente de
zero, pois ainda existem variações ocorrendo no processo. A partir de 24
segundos em diante, o saltador atinge sua velocidade terminal, alcançando,
assim, o período estacionário, no qual esse processo (queda livre) não apresenta
mais nenhuma variação de condições com o tempo. No período estacionário,
o termo diferencial da equação pode ser “zerado”, e a equação diferencial
transforma-se em uma simples equação algébrica. O mesmo se aplica a um
sistema de equações diferenciais, que, no estado estacionário, transformam-
se em um sistema de equações algébricas.

Nesta unidade, aprenderemos a resolver um sistema de equações


algébricas lineares que podem representar processos no regime ou estado
estacionário. Iniciaremos falando sobre processos estacionários; em seguida,
estudaremos o método de eliminação de Gauss, e finalizaremos esta unidade
estudando o método iterativo de Gauss-Seidel.
1. Sistemas Lineares
Iniciaremos esta unidade falando sobre como surgem os sistemas de
equações. Vamos lá?!

No exemplo do saltador, você percebeu, sem levar em consideração


a simulação computacional, que o problema de determinar a velocidade
terminal no regime estacionário era muito mais simples que usar um método
matemático no regime transiente. Isso porque, no regime transiente, você não
podia fazer dv/dt = 0 e resolver a equação algebricamente, mas deveria manter
o termo diferencial e usar um método matemático. Pois bem, a solução
de modelos matemáticos no período estacionário é mais simples do que a
solução destes no período transiente, pois, no período estacionário, os termos
diferenciais podem ser “zerados”. Vejamos um exemplo:

Imagine um processo de fluxo de produtos, por exemplo, constituído


de duas equações diferenciais lineares acopladas através das variáveis x1 e x2
(fluxo do produto 1 e fluxo do produto 2, respectivamente). Essas variáveis
podem, por exemplo, ser função da capacidade de um veículo ou o diâmetro
de uma tubulação, caracterizando a presença de relações algébricas no modelo.
O sistema de equações diferenciais para esse processo hipotético é o seguinte:

dx1
= 2 x1 + x2 - 9
dt
dx2
= 5 x1 - x2 - 5
dt
Observe que as duas variáveis dependentes aparecem em ambas as
equações diferenciais; por isso dizemos que as equações estão acopladas.
Em razão da presença dos termos diferenciais, essas equações também
representam o período transiente, que é o período em que ainda ocorrem
variações de fluxo de produto, por exemplo, no caso hipotético em que
esperamos uma tubulação “encher” completamente. Em algumas aplicações
de engenharia, nem sempre estamos interessados nesse período, e temos, sim,
maior interesse em determinar o valor dos fluxos somente quando o processo
atingir o período ou estado estacionário, ou seja, quando os termos diferenciais
estiverem “zerados”. Nesse período, as equações ficam:

6 Métodos Computacionais em Engenharia


0 = 2 x1 + x2 - 9 ou 2 x1 + x2 = 9
= x1 - x2 - 5
0 5= 5 x1 - x2 5

Observe que, agora, as equações se tornaram um simples sistema de


equações lineares. A solução desse modelo no período ou regime estacionário
pode ser obtida facilmente através do método gráfico. Esse método consiste
basicamente na construção das retas que representam essas equações em um
gráfico e posterior determinação do ponto de cruzamento entre elas. O ponto de
cruzamento, então, é a solução do sistema, ou seja, esse é o ponto onde os valores
de x1 e x2 satisfazem as duas equações ao mesmo tempo. As retas lineares que
representam essas equações ficam na forma y = ax + b. Para representar as
equações nessa forma, basta simplesmente isolar uma das variáveis nas duas
equações; nesse caso, podemos isolar x2 , assim ficamos com:

x2
= - 2 x1 + 9
x2 = 5 x1 - 5

O Gráfico 1 contém as duas retas acima e a solução do sistema.

20

15

10

X2 5

-5

-10
-1 0 1 2 3 4 5
X1

Gráfico 1: Gráfico das funções, em que a solução dos sistemas é em x1 = 2 e x2 = 5. Fonte: Do autor.

Métodos Computacionais em Engenharia 7


A solução sem a construção do gráfico também é possível, bastando
igualar uma equação com a outra, e resolvendo para uma das variáveis, do
seguinte modo:
14
-2 x1 + 9= 5 x1 - 5 ⇒ 7 x1= 14 ⇒ x1= = 2
7
Tão logo conhecemos x1, podemos levar esse valor a qualquer uma das
equações de origem para determinarmos x2, do seguinte modo:

x=
2 - 2 x1 + 9 ⇒ x=
2 - 2(2) + 9 ⇒ x=
2 5

Observe que, substituindo os valores de x1 e x2 nas duas equações


originais, podemos verificar a prova real de que esses valores são a solução do
sistema, pois satisfazem as duas equações ao mesmo tempo:

2(2) + 5 = 9
5(2) - 5 = 5

O Octave possui funções nativas para a solução de sistemas de


equações lineares. No Octave, podemos resolver o sistema acima por meio
das seguintes etapas:

Primeiramente, criamos a matriz de coeficientes (A) e a matriz de cargas


(B), como mostrado no Quadro 1; depois, usamos o comando com barra
invertida, logo abaixo:

>> A = [ 2 1; 5 -1];
>> B = [ 9 ; 5];
>> X = A \ B
X =

2
5

Quadro 1: Matriz de coeficientes e de cargas do sistema linear em questão. Fonte: Do autor.

8 Métodos Computacionais em Engenharia


Observe que os coeficientes são os valores que multiplicam as variáveis
nas duas equações, e as cargas são os valores que estão do lado direito da
igualdade. Nesse caso, a barra invertida (\) é o comando do Octave para
resolver o sistema. Perceba que a resposta x1= 2 e x2= 5 é de cima para baixo,
pois os coeficientes foram inseridos nas matrizes da esquerda para a direita e
são relacionadas ao x1 e x2, respectivamente. No MATLAB, os comandos são
os mesmos para resolver esse sistema de equações.

1.1 Métodos Diretos para Sistemas Lineares: Eliminação Gaussiana


A Eliminação de Gauss é um método computacional para a solução
de um sistema de equações lineares. Esse método é dividido em duas etapas:
a eliminação progressiva e a substituição progressiva. Antes de estudarmos o
método, vamos analisar a forma geral de um sistema de equações lineares,
como o representado a seguir:

a11 x1 + a12 x2 + a13 x3 + ... + a1n xn =b1


a21 x1 + a22 x2 + a23 x3 + ... + a2 n xn =b2
...
...

an1 x1 + an 2 x2 + an 3 x3 + ... + ann xn =bn

Esse sistema de n equações e n incógnitas pode ser escrito na forma de


uma matriz contendo n linhas e n+1 colunas com todos os coeficientes a e b.

a11 a12 a13 ... a1n b1


a21 a22 a23 ... a2 n b2
...
...
...
...
...
...

an1 an 2 an 3 ... ann bn


As variáveis (x) não entram nessa matriz e é a partir dela que iniciamos
a etapa de eliminação progressiva. O objetivo da etapa de eliminação progressiva
é criar uma matriz triangular superior, ou seja, uma matriz que contenha

Métodos Computacionais em Engenharia 9


valores diferentes de zero somente nos elementos da diagonal principal e
nos elementos acima desta. Isso é feito por meio de operações matemáticas
específicas entre todas as equações com a equação de pivô, de modo a eliminar
variáveis. Vejamos, agora, como funciona o método.

A etapa de eliminação é iniciada com a seleção da equação de pivô,


que normalmente é a primeira equação. Logo depois, selecionamos o
coeficiente de pivô, que é simplesmente a razão entre o primeiro coeficiente
de qualquer uma das equações e o primeiro coeficiente da equação de
pivô. Por exemplo, vamos eliminar a variável x1 da segunda equação, para
isso fazemos o coeficiente de pivô entre o primeiro elemento da segunda
equação e o primeiro elemento da equação de pivô, assim o coeficiente fica
a21/a11. Logo depois, multiplicamos esse coeficiente por todos os elementos
da equação de pivô, e assim temos:

a21 a a a a
a11 x1 + 21 a12 x2 + 21 a13 x3 + ... + 21 a1n xn = 21 b1
a11 a11 a11 a11 a11

Posteriormente, subtraímos essa equação da segunda equação, e assim


teremos:

 a21   a  a
 a22 - a12  x2 + ... +  a2 n - 21 a1n  xn =b2 - 21 b1
 a11   a11  a11

Observe que o primeiro termo, contendo x1, foi eliminado (cortado)


da segunda equação. Observe, também, que a operação matemática entre
os coeficientes originais, ligados a x2 até xn, produzem novos coeficientes, por
exemplo: a22 - (a21/a11)a12 = a’22. A segunda equação fica, agora, desta forma:

a '22 x2 + a '23 x3 + ... + a '2 n xn =


b '2

Essa operação é repetida para todas as equações em relação à primeira


equação (a equação de pivô), cancelando a variável x1 de todas elas. O próximo
passo da eliminação progressiva é eliminar a variável x2. Nesse próximo
passo, a equação de pivô torna-se a segunda equação, e a mesma operação

10 Métodos Computacionais em Engenharia


matemática deve ser feita entre todas as equações com relação à segunda
equação (a nova equação de pivô). Esse novo procedimento elimina a variável
x2 de todas as equações, produzindo novos coeficientes. O resultado é o
conjunto de equações abaixo, representado na forma geral:
a11 x1 + a12 x2 + a13 x3 + ... + a1n xn =b1
a '22 x2 + a '23 x3 + ... + a '2 n xn =
b '2
a ''33 x3 + ... + a ''3n xn =
b ''3

...
...
( n −1)
ann xn = bn( n −1)
O mesmo conjunto de equações pode ser representado pela matriz
triangular superior abaixo:
a11 a12 a13 ... a1n b1
0 a22 a 23' ... a 2' n b '2
0 0 a 33'' ... a 3'' n b ''3
...
...
...
...
...

( n −1) ( n −1)
0 0 0 ... ann bn
Observe que a última equação está com todas as variáveis eliminadas
com exceção de xn. Agora, é possível iniciar a etapa de substituição progressiva
que começa pela determinação da variável xn até a determinação da primeira x1.
O valor de xn pode ser facilmente obtido pela simples divisão dos coeficientes.
Acompanhe na equação abaixo:

bn( )
n −1
xn = ( n −1)
ann
Após a determinação de xn, inicia-se a determinação das outras
variáveis por meio da seguinte fórmula:
n
bi(i -1) - ∑ aij(i -1) xj
j = i +1
xi = para i n - 1, n - 2, …,1
aii(i -1)

Métodos Computacionais em Engenharia 11


Observe que o índice i começa por n-1, ou seja, para o caso de 10
variáveis (x10), essa fórmula inicia os cálculos pela variável x9.

Importante

Fique atento à substituição correta dos índices i e j, para usar a fórmula da substituição
progressiva,. Para o cálculo da variável x1, o índice i = 1 e o índice j vão desde j = i + 1 = 2
até n. Vejamos como fica a fórmula de x1 para 3 equações (n = 3):
3 3
b (1-1)
1 - ∑a
j=1+1
(1-1)
1jxj 1 b - ∑ a1 j xj
j=
2 b ( a x + a13 x3 )
1 12 2
x1 = (1-1)
= =
a 11 a11 a11

Observe que b(1-1) não significa que b1 esteja elevado a zero, e sim que este é o coeficiente
b1 da primeira equação de pivô que não sofreu modificação pela eliminação progressiva. A
fórmula para x2 fica:
3 3
b(2-1)
2 - ∑a
j=2 +1
(2-1)
2j xj '
2 b - ∑ a2' j xj
j=3
' '
b −a x
x2 = (2-1)
= '
2
'
23 3
=
a 22 a22 22 a

Pratique para outros valores de n.

Bem, depois de toda essa demonstração teórica, nada como um


exemplo prático para entendermos melhor as etapas da eliminação de Gauss.
Vamos considerar como exemplo o sistema de equações abaixo:

x1 + 3 x2 - 2 x3 =
-13
3 x1 - 2 x2 + x3 =
18
4 x1 + x2 - 3 x3 =
-5

Nossa equação de pivô será a primeira equação. Iniciaremos a


eliminação da variável x1 da segunda equação: o coeficiente de pivô é (3/1) e a

12 Métodos Computacionais em Engenharia


primeira equação (equação de pivô) deve ser multiplicada por esse coeficiente;
dessa forma, substituindo e resolvendo, temos:
3 3 3
( ) x1 + ( )3 x2 - (31)2 x3 = - ( )13
1 1 1
3 9 6 39
( ) x1 + ( ) x2 + (- ) x3 = (- )
1 1 1 1
Subtraindo essa equação da segunda equação e a resolvendo, teremos:

3 9 6 39
(3 - ) x1 + (-2 - ) x2 + (1- (- )) x3 =
18 - (- )
1 1 1 1
-11x2 + 7 x3 = 57
Portanto, a segunda equação está, agora, com a variável x1 eliminada.
Vamos, agora, eliminar a variável x1 da terceira equação; então, o coeficiente
de pivô é, agora, (4/1). Para isso, repetimos a mesma operação matemática
para a terceira equação em relação à primeira e, resolvendo, ficamos com:

4 4 4 4
( ) x1 + ( )3 x2 - ( )2 x3 = - ( )13
1 1 1 1
4 12 8 52
( ) x1 + ( ) x2 + (- ) x3 = (- )
1 1 1 1
4 12 8 52
(4 - ) x1 + (1- ) x2 + (-3 - (- )) x3 = - 5 - (- )
1 1 1 1
-11x2 + 5 x3 = 47
Portanto, a terceira equação está, agora, com a variável x1 eliminada.
Para finalizarmos, precisamos eliminar a variável x2 da terceira equação para que
a segunda equação se torne a equação de pivô. Então, nesse caso, o coeficiente
de pivô para a terceira equação em relação à segunda é (-11/-11)=1. Subtraindo
a segunda equação (multiplicada por esse novo coeficiente de pivô) da terceira
equação, ficamos com a equação abaixo:

-2x 3 = -10

Métodos Computacionais em Engenharia 13


A matriz triangular superior obtida para esse exemplo fica da
seguinte forma:
1 3 -2 -13 
0 -11 7 57 
 
0 0 -2 -10 

Dessa forma, a primeira substituição já pode ser executada assim:


-2x 3 = -10 ⇒ x 3 = 5
Devemos proceder, agora, a substituição progressiva para as outras
variáveis desde a segunda x2 até a primeira x1. De acordo com a fórmula, a
segunda variável fica:
b2' − a23
'
.x3 57 − (7.5)
x2 = = = −2
a22 −11
E, finalmente, a primeira variável fica:
b1 - (a12 .x2 + a13 .x3 ) -13 - (3.(-2) + (-2.5))
=x1 = = 3
a11 1

Observe que os valores das variáveis são obtidos em apenas duas


etapas. É claro que, para tornar-se um expert em eliminação de Gauss, é
preciso muito treino. O estudante que quiser se aperfeiçoar pode criar seus
próprios problemas e treinar, usando, para isso, as funções nativas do Octave
para saber previamente as respostas corretas. Um procedimento passo a passo
da eliminação de Gauss encontra-se no Quadro 2.

a
>>= [1 3 − 2; 3 − 2 1; 4 1 − 3] ;
> b= [ − 13; 18; − 5] ; >> ab= [ a b] ;
>> ab
= ( 3,:) ab ( 3,:) − ( ab ( 3,1) / ab (1,1) ) * ab (1,:) ;
>> ab
= ( 2,:) ab ( 2,:) − ( ab ( 2,1) / ab (1,1) ) * ab (1,:) ;
>> ab
= ( 3,:) ab ( 3,:) − ( ab ( 3, 2 ) / ab ( 2, 2 ) ) * ab ( 2,:)
ab =

14 Métodos Computacionais em Engenharia


1 3 −2 −13
0 − 11 7 57
0 0 −2 −10
>> a = ab (: ,1: 3) ;
>> b = ab (: , 4 ) ;
>> x = zeros (1, n ) ;
x =
0 0 0
>> x ( 3) = b ( 3) / a ( 3,3)
x =
x0
>> =( 2 ) 0 ( b ( 25) − a ( 2,3) * x ( 3) ) / a ( 2, 2 )
x =
0 −2 5
x (1)
>> = ( b (1) )
− ( a (1, 2 ) * x ( 2 ) + a (1,3) * x ( 3) ) / a (1,1)
x =
3 −2 5

Quadro 2: Eliminação de Gauss detalhada no modo calculadora do Octave. Fonte: Do autor.

Com algum esforço, você pode perceber, no Quadro 2, que os índices se


alternam de forma padronizada. A habilidade de identificar esses padrões é muito
conveniente aos programadores de métodos computacionais. Os programadores
podem, identificando esses padrões, criar códigos que automatizam as etapas do
método. Um exemplo desse tipo de código está no Quadro 3.

1- %%% Eliminação de Gauss ingenua


2- clear all %% limpa todas as variáveis antes de começar
3-
4- a = [1 3 -2; 3 -2 1; 4 1 -3]; %% cria a matriz de coeficientes
5- b = [ -13; 18; -5]; %% cria o vetor de cargas
6- n = size(a,1); %% calcula o número de linhas na matriz a

Métodos Computacionais em Engenharia 15


7- ab = [a b]; %% junta as matrizes a & b
8-
9- %% etapa de eliminação progressiva
10- for j=1:n-1
11- for i=n:-1:1
12- if i > j
13- ab(i,:) = ab(i,:) - (ab(i,j)/ab(j,j))*ab(j,:);
14- end
15- end
16- end
17- ab %% mostra a matriz ab na linha de comando
18-
19- a = ab(: ,1:n); %% separa a matriz ab em duas matrizes novamente
20- b = ab(: , n+1);
21-
22- x = zeros(n,1) %% inicia o vetor solução x
23-
24- %% etapa de substituição progressiva
25- for i=n:-1:1
26- x(i) = (b(i) - sum(a(i,:)*x))/a(i,i);
27- end
28- x %% mostra a resposta na linha de comando
29.

Quadro 3: Código para a eliminação de Gauss (ingênua). Fonte: Do autor.

O estudante atento percebeu que a eliminação de Gauss possui


uma limitação. Esse método, da forma como foi mostrado, não previne
eventuais divisões por zero, sendo, por isso, chamado de eliminação de
Gauss ingênua. Por exemplo, observe o sistema de equações abaixo. O que
há de diferente nele?
2 x2 + 3 x3 =− 10
4 x1 − 6 x2 + 7 x3 =− 22
2 x1 + 3 x2 − 6 x3 =
33
A diferença em relação ao primeiro exemplo é que, nesse caso, o
coeficiente a11 da primeira equação é zero, ou seja, o coeficiente de pivô, já na

16 Métodos Computacionais em Engenharia


primeira etapa, inviabiliza completamente o método, pois qualquer número
dividido por zero é igual a infinito, e assim o sistema fica sem solução. O
mesmo problema também ocorre para coeficientes muito próximos de zero,
gerando erros de arredondamento (CHAPRA, 2013). A solução para esse
inconveniente é simples e eficaz, consistindo na mera troca da primeira
equação (equação de pivô) por outra equação dentro do mesmo sistema,
cujo primeiro coeficiente seja o maior de todos (em módulo) no sistema em
questão (QUARTERONI; & SALERI, 2007). Assim, o sistema de equações
deve ficar da seguinte forma:
4 x1 − 6 x2 + 7 x3 =− 22
2 x2 + 3 x3 =− 10
2 x1 + 3 x2 − 6 x3 =
33

Esse sistema pode, agora, ser resolvido normalmente por meio da


eliminação de Gauss, pois a nova equação de pivô não possui seu coeficiente
a11 “zerado” e é, agora, 4 (quatro), o maior dos valores. Essa técnica é chamada
de pivotamento parcial e é eficaz para a grande maioria dos casos.

O código abaixo (Quadro 4) possui um controlador de fluxo (if ), que


faz o pivotamento parcial (entre as linhas 10 e 15), caso seja necessário.

1- %%% Eliminação de Gauss com pivotamento parcial


2- clear all %% limpa todas as variáveis antes de começar
3-
4- a = [0, 2, 3; 4, -6, 7; 2, 3, -6]; %% cria a matriz de coeficientes
5- b = [-10 ; -22 ; 33];
6- n = size(a,1); %% calcula o número de linhas na matriz a
7- ab = [a b]; %% junta as matrizes a & b
8-
9- %% pivotamento parcial
10- if ab(1,1) == 0 %% verifica se a11 é igual a zero
11- ag = ab; %% cria uma matriz temporária (ag) para a troca de linhas
12- [valor, indx] = max(abs(ag(:,1)));%% encontra o valor máximo
13- ab(1,:) = ag(indx,:); %% faz a troca de linhas

Métodos Computacionais em Engenharia 17


14- ab(indx,:) = ag(1,:);
15- else
16- end
17-
18- %% etapa de eliminação progressiva
19- for j=1:n-1
20- for i=n:-1:1
21- if i > j
22- ab(i,:) = ab(i,:) - (ab(i,j)/ab(j,j))*ab(j,:);
23- end
24- end
25- end
26- ab %% mostra a matriz ab na linha de comando
27-
28- a = ab(: ,1:n); %% separa a matriz ab em duas matrizes novamente
29- b = ab(: , n+1);
30-
31- x = zeros(n,1) %% inicia o vetor solução x
32-
33- %% etapa de substituição progressiva
34- for i=n:-1:1
35- x(i) = (b(i) - sum(a(i,:)*x))/a(i,i);
36- end
37- x %% mostra a resposta na linha de comando

Quadro 4: Eliminação de Gauss com pivotamento parcial. Fonte: Do autor.

Automatizar o pivotamento parcial, bem como qualquer outro


método, é mais simples quando dispomos de experiência com a linguagem
computacional com a qual trabalhamos. A construção de códigos de
procedimentos automatizados para qualquer método deve ser realizada com
perspicácia e paciência, executando-se vários testes na linha de comando,
inicialmente com problemas simplificados para o desenvolvimento do código
e, posteriormente, realizando testes para problemas mais complexos.

18 Métodos Computacionais em Engenharia


Saiba Mais
Além da eliminação de Gauss como vimos, esse método ainda pode ser
abordado por diferentes estratégias. Aprenda mais sobre a solução de
sistemas de equações lineares lendo esta monografia.
Assista agora

A eliminação de Gauss, como percebemos, é um procedimento


que envolve apenas cálculos aritméticos na etapa de eliminação progressiva,
bem como na etapa de substituição progressiva. O próximo método a
ser estudado é o método iterativo de Gauss-Seidel, que requer alguma
habilidade de manipulação algébrica para isolar as variáveis, ainda que seja de
desenvolvimento mais simples. Vamos estudá-lo?

1.2 Método Iterativo de Gauss-Seidel


O método de Gauss-Seidel é iterativo, ou seja, envolve repetição dos
cálculos com a necessidade do cálculo de erros iterativos e um critério de
parada baseado em um valor de tolerância. Vamos direto a um exemplo.

Dado o sistema de equações lineares abaixo:


3 x1 - 2 x2 - 1,5 x3 = 4,5
2 x1 + 5 x2 - 2 x3 =
- 21
1,5 x1 - 3 x2 + 4 x3 =
32
Vamos determinar os valores de x1, x2 e x3. Em primeiro lugar, isole as
três variáveis das três equações e formule as equações abaixo:
4,5 + 2 x2 + 1,5 x3
x1 =
3
-21 - 2 x1 + 2 x3
x2 =
5
32 - 1,5 x1 + 3 x2
x3 =
4
Depois, atribua valores iniciais nulos a x2 e x3 (ou quaisquer valores
iniciais). Depois, inicie os cálculos de x1, x2 e x3 a partir das equações acima,
e simplesmente repita os cálculos com os novos valores de x1, x2 e x3 obtidos.

Métodos Computacionais em Engenharia 19


Fazendo x2 = 0 e x3= 0, vamos à primeira iteração:

4,5 + 2(0) + 1,5(0)


=x1= 1,5
3
-21 - 2(1,5) + 2(0)
=x2 = - 4,8
5
32 - 1,5(1,5) + (-4,8)
=x3 = 3,8375
4

Em seguida, vamos à segunda iteração:

4,5 + 2(-4,8) + 1,5(3,8375)


x1 = 0, 2188
3
-21 - 2(0, 2188) + 2(3,8375)
x2 = - 2, 7525
5
32 - 1,5(0, 2188) + (-2, 7525)
x3 = 5,8536
4

Vamos para à terceira iteração:

4,5 + 2 ( −2, 7525 ) + 1,5 ( 5,8536 )


x1 = 2,5918
3
−21 − 2 ( 2,5918 ) + 2 ( 5,8536 )
x2 = = −2,8953
5
32 − 1,5 ( 2,5918 ) + ( −2,8953)
x3 = 4,8566
4

E, finalmente, vamos para a quarta iteração:

4,5 + 2 ( −2,8953) + 1,5 ( 4,8566 )


x1 = 1,9981
3
−21 − 2 (1,9981) + 2 ( 4,8566 )
x2 = = − 3, 0566
5
32 − 1,5 (1,9981) + ( −3, 0566 )
x3 = 4,9583
4

20 Métodos Computacionais em Engenharia


Observe que, na quarta iteração, os valores já se aproximam da
resposta, que é x1=2, x2=-3 e x3=5. O Quadro 5 contém os comandos para o
método iterativo de Gauss-Seidel no Octave; execute os comandos na ordem
em que estão mostrados.
>> x 2 = 0
>> x3 = 0
>>=x1 (4.5 + 2* x 2 + 1.5* x3) / 3
>> x 2
= (-21 - 2* x1 + 2* x3) / 5
>> x3
= (32 - 1.5* x1 + 3* x 2) / 4
Quadro 5: Comandos para executar o método de Gauss-Seidel no Octave. Fonte: do autor.

Depois da primeira execução das linhas de comando acima, recupere


os três últimos comandos com a tecla direcional para cima do teclado (seta),
um de cada vez, teclando enter após cada vez, ou seja, recupere primeiro a
equação de x1 e tecle enter, depois a equação de x2 e tecle enter e depois
a equação de x3 e tecle enter. Repita esSe procedimento e observe que os
valores vão se aproximando de x1=2, x2=-3 e x3=5.

Importante
Isolar uma variável de uma equação algébrica não é difícil, desde que tenhamos o
conhecimento de algumas regras básicas. Por exemplo, vamos isolar x da equação abaixo:
ax 2 + aby - c =
0
Considere a, b e c como sendo constantes nessa equação. Para isolar x, precisamos manter o
termo contendo x do lado esquerdo da equação e passarmos todos os outros termos para o
lado direito, lembrando que eLes terão seus sinais invertidos, assim:
ax 2
= - aby + c
Logo depois, devemos passar o coeficiente de x2 –nesse caso, a constante a – para o lado
direito, mas devemos estar atentos ao fato de que esse coeficiente passa para o outro lado
dividindo todos os termos, da seguinte forma:
-aby + c
x2 =
a

Métodos Computacionais em Engenharia 21


A expressão acima é equivalente a:
-aby c
=x2 +
a a
Sendo assim, podemos desenvolvê-la ainda mais, pois a/a = 1. Assim, resolvendo, temos:
c
x2
= - by +
a
O expoente de x (2) deve igualmente passar para o lado direito, lembrando que este deve
operar sobre todos os termos e também que passa invertido, da seguinte forma:
1
 c 2
=x  - by + 
 a
A expressão acima é equivalente a:
c
=x 2 -by +
a
que é a solução.

O método iterativo de Gauss-Seidel implementado no Octave está


entre os códigos mais simples. Veja o Quadro 6.
1- %%% método iterativo de Gauss-Seidel
2- clear all %% limpa todas as variáveis antes de começar
3-
4- x = [0 0 0]
5-
6- for i=1:100
7-
8- x(1) = (4.5 + 2*x(2) + 1.5*x(3))/3;
9- x(2) = (-21 -2*x(1) + 2*x(3))/5;
10- x(3) = (32 - 1.5*x(1) + 3*x(2))/4;
11-
12- end
13- x %% mostra a resposta na linha de comando
14-

Quadro 6: Código em Octave para o método de Gauss-Seidel. Fonte: Do autor.

22 Métodos Computacionais em Engenharia


Observe o código acima. O que está faltando? Isso mesmo, está
faltando o critério de parada. Insira você mesmo o critério de parada, usando
qualquer uma das variáveis para o cálculo dos erros iterativos. Modifique ou
melhore o código se você julgar necessário. Faça do seu jeito!

Saiba Mais
O método de Gauss-Seidel possui aprimoramentos que o tornam mais
eficiente para solucionar sistemas de equações lineares. Acesse o
link indicado e aprenda mais sobre métodos iterativos de solução de
sistemas lineares. Assista agora

Assim, finalizamos o método iterativo de Gauss-Seidel. E então, o


que achou?

Métodos Computacionais em Engenharia 23


Síntese
Nesta unidade, aprendemos que um sistema de equações diferenciais
no estado estacionário gera um sistema de equações algébricas. Os sistemas
de equações podem ser lineares ou não lineares. Existem dois métodos muito
usados para a solução de um sistema de equações lineares: a eliminação de
Gauss e o método iterativo de Gauss-Seidel. A eliminação de Gauss pode
encontrar a resposta em duas etapas, as quais são a eliminação progressiva
e a posterior substituição progressiva, podendo, ainda, ser complementada
por um pivotamento parcial para evitar divisões por zero; já o método
iterativo de Gauss-Seidel é executado por um simples rearranjo algébrico
inicial e posterior substituição iterativa dos novos valores obtidos nas
equações geradas, sendo um método mais simples que a eliminação de
Gauss e mais fácil de ser implementado em uma linguagem computacional.

E então, o que você achou desses métodos? Faça sua própria análise
e discorra sobre as vantagens e desvantagens de cada um deles, pois ainda
há muito o que discutir.

24 Métodos Computacionais em Engenharia


Referências Bibliográficas
CHAPRA, Steven C. Métodos numéricos aplicados com Matlab para
engenheiros e cientistas. 3 ed. São Paulo: Mcgraw Hill, 2013.

LIMA, Carlos Cleoton Xaxá Da Silva. Estudo dos métodos numéricos


que realizam fatoração LU na matriz dos coeficientes para resolução de
sistemas de equações lineares. Disponível em: www2.ufersa.edu.br/portal/
view/uploads/setores/232/TCC%20CARLOS%20-%20final_3.pdf. Acesso
em: 11 mar. 2018.

QUARTERONI, A.; SALERI, F. Cálculo científico com MATLAB e Octave.


Milano: Springer, 2007.

SOUZA, Luiz Fernando Spillere. Estudo de métodos iterativos não


estacionários de resolução de grandes sistemas lineares esparsos.
Disponível em: https://projetos.inf.ufsc.br/arquivos_projetos/projeto_287/
TCC_LuizFernando.pdf. Acesso em: 11 mar. 2018.

Métodos Computacionais em Engenharia 25

Você também pode gostar