Você está na página 1de 8

1

UNIVERSIDADE FEDERAL DO CEARÁ


CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECÂNICA
ENGENHARIA DE ENERGIAS RENOVÁVEIS

Mariellen de Oliveira Holanda - 358475

Patrick Teixeira Lima - 360081

Trabalho 01 – Resolução de sistema de equações 10x10 pelo método de Jacobi e método de Gauss-
Seidel

Fortaleza, 2017
2

Introdução
O método numérico, ou análise numérica, é um conjunto de ferramentas que são utilizadas para
a solução de problemas matemáticos obtendo soluções aproximadas para os mesmos. São
utilizados em problemas que não possuem solução analítica, portanto precisam ser resolvido
numericamente, ou seja, a partir de um valor inicial, soluções aproximadas são geradas de
forma que o erro entre um interação e outra seja cada vez menor.
O método de Gauss- Seidel e o método de Jacobi são bastante semelhantes. Nos dois métodos
busca-se isolar em cada equação uma variável e aplicar as restantes valores iniciais propostos,
chegando assim a uma próxima aproximação melhor que a anterior. A diferença entre estes
dois métodos, é que no método de Gauss-Seidel após a primeira aproximação feita, utiliza-se
este valor na próxima interação. Isso faz com que na maioria dos casos o método de Gauss-
Seidel convirja de forma mais rápida que o método de Jacobi.
Vejamos o seguintes exemplos:

Método de Jacobi.
Temos o seguinte sistema:

Primeiro, isolamos em cada equação uma variável, chegando no seguinte formato:

Admitindo como valores iniciais o vetor (0,0,0,0) aplica-se esses valores como condições
iniciais, de forma a melhorá-los aproximando-os da solução correta.

Assim se obtém o seguinte vetor (3,2 , 3,933 , 1,9 , 5,33), onde esses valores são utilizados
para a próxima interação, e assim sucessivamente. Obtendo o valor aproximado para o sistema.
3

Método de Gauss-Seidel.
Retomando ao sistema anterior:

Primeiramente isolamos em cada equação uma incógnita.

Tendo o vetor (0,0,0,0) como inicial calcula-se o valor de 𝑥1 .

Este valor de 𝑥1 já é utilizado para o cálculo de 𝑥2 , e o de 𝑥2 em 𝑥3 .

Chegando ao seguinte vetor: (3,2 , 4,36 , -1,41 , 4,78)


A seguintes interações se dão da mesma forma e utilizado esses valores.
Assim o resultado converge par ao seguinte vetor:

Desenvolvimento

O programa utilizado para o desenvolvimento do método de Jacobi e método de Gauss-Seidel


para a resolução de sistemas 10x10 foi o MatLab.
Nos dois métodos os valores iniciais adotado para a solução do sistema foi “zero” para as 10
variáveis. Além disso, preferimos utilizar a aproximação da solução por tolerância e erro. Visto
que se escolhêssemos um valor de interações muito baixo, o modelo poderia não convergir para
a solução do sistema.

Método de Jacobi:
Primeiramente é pedido ao usuário que forneça os valores dos coeficientes das variáveis e o
valor do termo da matriz b no seguinte formato.
Exemplo:
[2𝑥1 + 3𝑥2 + 4𝑥3 = 5] → [2 3 4 5]

Esse procedimento é feito paras as 10 linhas do sistema.


4

Em seguida, definimos a tolerância k de 0,0001 e definimos os erros iniciais (apenas para entrar
no laço).
Dentro do laço “while” (seguindo as condições de o erro ser maior que a tolerância) calculamos
os novos valores das variáveis após isolar uma para cada equação. Os valores das variáveis do
lado direito são os mesmos para toda a interação (os novos valores obtidos são utilizados apenas
na interação seguinte, obedecendo assim o método de Jacobi);
O erro foi definido seguindo a seguinte equação:

Além disso, os valores obtidos foram gravados em novas variáveis para serem utilizados na
próxima interação.
5

No momento que o erro se torna menor que a tolerância as interações são interrompidas (sai do
laço) e os valores obtidos são mostrados ao usuário.

Método de Gauss-Seidel:
De forma semelhante ao método de Jacobi, é pedido ao usuário que forneça os valores dos
coeficientes das variáveis e o valor do termo da matriz b no mesmo formato mostrado
anteriormente,
[2𝑥1 + 3𝑥2 + 4𝑥3 = 5] → [2 3 4 5]
Definimos a tolerância de 0,0001 e o erros iniciais.

Em seguida o programa entra no laço “while” enquanto o erro for maior que a tolerância.
Dentro do laço é necessário armazenar em novas variáveis o valores da interação anterior (no
caso da primeira interação, os valores iniciais) para o posterior cálculo do erro.
Isolamos as variáveis (uma para cada equação) de forma que o cálculo da variável seguinte já
o utilize o valor que foi calculado anteriormente, obedecendo ao método de Gauss-Seidel.
O erro é calculado obedecendo a mesma fórmula que foi utilizada no método de Jacobi.
6

No momento que o erro for menor que a tolerância, o programa sai do laço e mostra o usuário
quais valores foram obtidos.

O seguinte sistema foi utilizado para comparação dos dois métodos.


50 2 5 7 3 4 11 8 7 3 𝑥1 810
2 46 5 1 7 1 4 3 9 14 𝑥 2 1005
3 6 71 11 5 3 1 15 21 6 𝑥3 1647
1 2 6 69 4 5 10 21 13 7 𝑥 4 1908
6 2 1 5 89 8 24 22 16 5 𝑥5 2658
* 𝑥 =
3 8 7 1 16 48 1 2 4 6 6 1305
5 5 2 4 17 6 46 4 1 2 𝑥7 1347
6 1 7 6 12 3 2 42 1 4 𝑥 8 1338
8 4 3 9 2 1 1 2 31 1 𝑥9 981
[11 8 7 15 1 4 1 1 1 49 ] [ 𝑥10 ] [ 1659]

Onde as raízes dessa são as seguinte:


𝑥1 0
𝑥2 3
𝑥3 6
𝑥4 9
𝑥5 12
𝑥6 = 15
𝑥7 18
𝑥8 21
𝑥9 24
[𝑥10 ] [27]
Obs.: O sistema foi criado respeitando o critério do elemento da diagonal principal ser maior
ou igual a soma dos outros elementos da equação.
7

Os resultados obtidos através do MatLab foram os seguintes:

Método de Jacobi:
8

Método de Gauss-Seidel:

Conclusão
O método que convergiu de forma mais rápida para o resultado foi o de Gauss Seidel, como já
era esperado, já que utiliza os valores da variável anterior no cálculo da próxima variável na
mesma interação. Porém isso não garante que isso acontecerá para todo e qualquer sistema de
10x10.

Você também pode gostar