Você está na página 1de 28

1 Metodos Diretos para resolucao de sistemas de equacoes lineares 1

Calculo Numerico
Prof. J. A. Salvador - DM-UFSCar

Metodos de Resolucao de Sistemas de Equacoes

1. Exemplo: Considere o sistema de equacoes lineares



x1 + 2x2 + RA = 4

2x1 + x2 + 3x3 = 5

3x3 + x2 = 1

em que RA corresponde ao ultimo algarismo de seu registro academico.


Sera que ele e um sistema possvel e consistente (tem pelo menos uma solucao?
Ele e determinado? Possui uma unica solucao?
Ele e indeterminado? (admite mais de uma solucao?)
Ele e impossvel ou inconsistente? (nao admite solucao?)
Como resolve-lo?
Que metodo aplicar? (Exato ou iterativo?)
Posso provar as condicoes exigidas para aplicacao do metodo com sucesso?

Metodos Diretos: Sistema triangular inferior; Sistema triangular superior; Eli-


minacao de Gauss; Eliminacao de Gauss com pivotamento parcial; Eliminacao
de Gauss com pivotamento total; LU; etc.
Metodos Iterativos: Jacobi-Richardson; Gauss-Seidel

1 Metodos Diretos para resolucao de sistemas de


equacoes lineares

Os metodos diretos teoricamente nos dao a solucao exata de um sistema de equacoes


lineares em um numero finito de passos. Na pratica, as solucoes estarao contami-
nadas pelos erros de arredondamento envolvidos na aritmetica usada. Por meio de
uma sequencia de operacoes elementares os metodos diretos permitem transformar
um sistema linear em outro sistema linear mais facil de resolver e que tera a mesma
solucao que o sistema original.
1 Metodos Diretos para resolucao de sistemas de equacoes lineares 2

1.1 Sistema triangular inferior

2. Exemplo:


x1 = 0

0.6x1 + x2 = 7

0.2x1 + x2 3x3 = 5

Podemos resolve-lo fazendo as respectivas substituicoes de x1 na segunda equacao


e, de x1 e x2 na terceira equacao, obtendo a solucao x = (0, 7, 26)T

Algortmo: Elabore um algoritmo para a resolucao de um sistema linear trian-


gular inferior.
Programacao: Faca um programa do metodo na linguagem que tiver mais afi-
nidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema triangular inferior.

1.2 Sistema triangular superior

3. Exemplo:


5x1 + 2x2 + x3 = 0

0.2x2 + 3.4x2 = 7

13x3 = 5

Neste caso, resolvemos o sistema linear triangular superior fazendo as respectivas


substituicoes de tras-para-frente, substituimos x3 na segunda equacao e, de x2 e x3
na primeira equacao, obtendo a solucao x = (0, 1, 2)T

Algortmo: Elabore um algoritmo para a resolucao de um sistema linear trian-


gular superior;
Programacao: Faca um programa do metodo na linguagem que tiver mais afi-
nidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema triangular superior.

1.3 Metodo de Eliminacao de Gauss

O Metodo de Eliminacao de Gauss, com pivotamento sobre os elementos da diagonal


da matriz dos coeficientes do sistema A, consiste em transformar o sistema dado, por
meio de operacoes elementares sobre as linhas, em um sistema equivalente triangular
1 Metodos Diretos para resolucao de sistemas de equacoes lineares 3

superior, tomando, em cada passo, como pivo, os elementos diferentes de zero da


diagonal da matriz do sistema.
Quando ocorrer do elemento da diagonal que seria usado como pivo ser nulo, fazemos
a operacao elementar de troca de linhas. O pivo e utilizado para serar os outros
elementos da respectiva coluna.
Consideramos a matriz aumentada A|b do sistema Ax = b, isto e, acoplamos o vetor
coluna b dos termos independentes juntamente com a matriz A do sistema, para que
este tambem sofra simultaneamente todas as operacoes elementares de pivotamento,
de forma a obter no final destas operacoes um sistema triangular superior equivalente
ao sistema dado inicialmente. A fazemos a susbstituicao regressiva.

1 2 RA
4. Com a matrix dos coeficientes do sistema do Exemplo 1, temos 2 1 3 tem

0 1 3
determinante nao nulo, det(A) = 2RA 12 6= 0 para RA 6= 12 temos que o sistema
possui uma umica solucao, e e possvel aplicar o Metodo de Eliminacao de Gauss.
Considerando a matriz ampliada do sistema

1 2 0 4 RA
2 1 3 5 L2 L2 2L1

0 1 3 1

1 2 0 4 RA
0 3 3 3 + 2RA L3 L3 + 31 L2

0 1 3 1

1 2 0 4 RA
0 3 3 3 + 2RA

0 0 4 2 + 23 RA
assim, temos que
3
x3 = 12 + 16 RA, x2 = 2
52 RA e x1 = 7 6RA,
Quantas operacoes sao realizadas na aplicacao do Metodo de Eliminacao de Gauss?
Para um sistema linear de ordem n fazemos n i divisoes para obter os multi-
a
plicadores mij = aijii para fazer a operacao elementar de substituir a linha i por
Li Li mij Lj resultando num total de (n i)(n i + 1) multiplicacoes e
(n i)(n i + 1) subtracoes. Acrescentando as operacoes aritmeticas de substi-
tuicao regressiva n i multiplicacoes e n i 1 adicoes, obtemos o numero total
de operacoes:
Divisoes e/ou multiplicacoes: (n i) + (n i)(n i + 1) = (n i)(n i + 2) e n i
Adicoes e/ou subtracoes: (n i)(n i + 1) e n i 1
1 Metodos Diretos para resolucao de sistemas de equacoes lineares 4

Usando as somas
Pn Pn n(n+1) Pn n(n+1)(2n+1)
i=1 1 = n, i=1 i = 2
e i=1 i2 = 6

obtemos o numero total de divisoes e/ou multiplicacoes:


2n3 +3n2 5n n3
Pn Pn
i=1 (n i)(n i + 2) + i=1 (n i) = 6
+ n(n+1)
2
= 3
+ n2 n
3

e o numero total de adicoes e/ou subtracoes:


n3 n n3 n n2 n n3 n2
Pn
+ ni=1 (n i 1) = 5n
P
i=1 (n i)(n i + 1) = 3 3
+ 2
= 3
+ 2
6

Deste modo, para um valor grande de n temos que a quantidade de operacoes


aumenta proporcionalmente a n3 .
Num sistem 3 3 teremos 17 multiplicacoes e 11 adicoes, ou seja, um total de 28
operacoes, ou seja, 33 operacoes.
Obs. O metodo de Gauss-Jordam usa a i-esima equacao para eliminar nao somente
xi das equacoes Li+1 , Li+2 , . . . , Ln como feito no Metodo de eliminacao de Gauss,
mas tambem das equacoes L1 , L2 , . . . , Li1 transformando a Matriz do sistema numa
matriz diagonal atraves de operacoes elementares sobre a matriz ampliada do sis-
tema e a, obtemos a solucao diretamente
ai,n+1(i)
xi = (i)
ai,i

n3 n n3 n2
exigindo 3
+ n2 2
divisoes e multiplicacoes e 3
2
adicoes e multiplicacoes.
Obs. Propagacao dos erros de arredondamento

5. Considere agora o sistema linear


(
0.0001x1 + 1.00x2 = 1.00
1.00x1 + 1.00x2 = 2.00

Usando o Metodo de Eliminacao de Gauss com tres digitos significativos em todas


as operacoes temos como solucao x1 = 0 e x2 = 1.00.
De fato, det(A) e nao nulo, det(A) = 0.99990 6= 0, portanto, o sistema tem uma
unica solucao.
Considerando a matriz ampliada do sistema e aplicando diretamente a Eliminacao
de Gauss
" #
0.000100 1.00 1.00 1.00
L2 L2 + 0.0001 L1
1.00 1.00 2.00
" #
0.000100 1.00 1.00
0.00 10000 10000
assim, temos que x1 = 0.000 e x2 = 1.000.
1 Metodos Diretos para resolucao de sistemas de equacoes lineares 5

Entretanto, a solucao deste sistema e x1 = 1.0010 e x2 = 0.99990.


A propagacao dos erros de arredondamento ocorre principalmente quando multipli-
camos um numero muito grande por outro que ja contem um erro de arredonda-
mento.
De fato, se x tem um erro de arredondamento , ele pode ser escrito como
x=x+
E se multiplicarmos por um numero s teremos s x = s x + s
e o erro sera s . Assim, se s for muito grande, este erro podera ser muito maior do
que o original.
No metodo de Eliminacao de Gauss, efetuamos varios produtos com os multiplica-
dores
(
(k) aij k)
mij = (k)
aii

o que nos indica que e conveniente que sejam todos menores do que 1 em modulo, ou
seja, o pivo deve ser o elemento de maior valor absoluto da coluna considerada. Para
isso, basta trocarmos as linhas das equacoes do sistema caso necessario. Este pro-
cedimento e chamado de Metodo de Eliminacao de Gauss com Pivotamento
parcial.
No sistema anterior, fazendo o pivotamento parcial teremos como solucao x1 = 1.00
e x2 = 1.00 que e mais proxima da solucao atual.

6. Considere o sistema linear


(
16x1 + 5.00x2 = 21.00
3.00x1 + 2.50x2 = 5.50

Usando o Metodo de Eliminacao de Gauss com dois digitos significativos em todas


as operacoes temos como solucao x1 = 1.00 e x2 = 0.94.
De fato, det(A) e nao nulo, det(A) = 73 6= 0, portanto, o sistema tem uma unica
solucao.
Considerando a matriz ampliada do sistema e aplicando diretamente a Eliminacao
de Gauss
" #
16. 5.0 21. 3.0
L2 L2 + 16. L1 L2 + 0.19L1
3.0 2.5 5.5
3
Aproximamos o multiplicador 16
= 0.1875 0.19 que tambem usamos no calculo
do termo independente.
" #
16. 5.0 21.
0.0 1.6 1.5
1 Metodos Diretos para resolucao de sistemas de equacoes lineares 6

1.5
x2 = 1.6
= 0.9375 0.94 e
215.00.94 214.7 16.3
x1 = 16.
= 16.
= 16
= 1.0.
Entretanto, a solucao deste sistema e x1 = 1.0 e x2 = 1.0.

Algortmo: Elabore um algoritmo para a resolucao de um sistema de equacoes


lineares pelos metodos de eliminacao.
Programacao: Faca um programa dos metodos na linguagem que tiver mais
afinidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema de equacoes lineares.

7. Exemplo. Se um sistema possui a Matriz de Hilbert como a matriz de coeficientes,


ou seja a matriz cujas entradas sao

1
hij =
i+j1

e nao utilizarmos o pivotamento parcial podera levar a uma solucao completamente


errada. Verifique!

1.4 Metodo da decomposicao LU

O Metodo de Decomposicao LU utilizado no calculo da solucao de um sistema linear


(ou de uma matriz inversa) consiste em transformarmos a matriz A no produto de
duas matrizes triangulares, uma inferior e outra superior respectivamente. Neste
caso, teremos tres sistemas de equacoes lineares para serem resolvidos e consequen-
temente dois sistemas de equacoes triangulares: inferior e superior em cada um
deles.
Quando e possvel determinar a solucao pelo Metodo da Decomposicao LU? No caso
do exemplo 1 e possivel? Neste caso determine-a.
Quando usamos o Metodo de Decomposicao LU no calculo da solucao de um sistema
linear (ou da matriz inversa), transformamos a matriz A no produto de duas matrizes
triangulares, inferior e superior respectivamente. Neste caso, teremos tres sistemas
de equacoes lineares para serem resolvidos e consequentemente dois sistemas de
equacoes triangulares inferiores e superiores em cada um deles.
Como det(A) = 2RA 12 6= 0 e os determinantes das submatrizes sao 6= 0 temos
h i
det( 1 ) = 1 6= 0
" #
1 2
det( ) = 3 6= 0
2 1
1 Metodos Diretos para resolucao de sistemas de equacoes lineares 7

Podemos decompor a matriz A do sistema como LU .



1 2 RA 1 0 0 1 2 RA
2 1 3 = L21 1 0 * 0 U22 U23

0 1 3 L31 L32 1 0 0 U33


Na decomposicao da matriz A no produto de uma matriz triangular inferior L com
todos elementos da diagonal iguais a 1 por uma matriz triangular superior cuja
primeira linha da matriz U e exatamente igual a primeira linha da matriz A do
sistema.
a
De fato, a primeira linha de U fazemos Uj1 = L1j 11
, para j = 2, 3 e como L11 = 1
temos Uj1 = Aj1 para todo j = 1, 2, 3, ou seja, a primeira linha de U coincide com
a primeria linha de A.
aj1
Para calcular a primeira coluna de L fazemos Lj1 = u11
, para j = 2, 3.
Assim, calcula-se a segunda linha de U e em seguida a segunda coluna de L, e assim
sucessivamente vamos calculando intercaladamente os calculos da linha de U e da
coluna da L.

8. Verifique que e possvel e calcule a solucao do sistema linear



5x1 + 2x2 = x3 = 0

3x1 + x2 + 4x3 = 7

x1 + x2 + 3x3 = 5

pelo Metodo da decomposicao LU . Observamos inicialmente que a matriz dos coe-


ficientes A satisfaz det(A) =, det(A1 ) = 5 6= 0, det(A2 ) = 1 6= 0, logo A satisfaz
as condicoes do metodo.
Resolvendo Ly = b obtemos y = (0, 7, 26)T .
Resolvendo U x = y, obtemos x = (0, 1, 2)T .

Algortmo: Elabore um algoritmo para a resolucao de um sistema de equacoes


lineares pelo metodo da decomposicao LU ;
Programacao: Faca um programa do metodo LU na linguagem que tiver mais
afinidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema de equacoes lineares.
2 Metodos iterativos 8

2 Metodos iterativos

Podemos resolver um sistema de equacoes lineares Ax = b, utilizando para isto,


metodos iterativos, os quais consistem em determinar uma sequencia de solucoes
aproximadas, em que cada solucao obtida depende da solucao anterior pela aplicacao
do mesmo procedimento.
Para construir um metodo iterativo para resolucao de sistemas de equacoes lineares,
escrevemos o sistema de equacoes lineares Ax = b na forma equivalente x = Hx + g.
Esta forma equivalente sera detalhada no Metodo iterativo de Jacobi-Richardson
conforme segue.

2.1 Metodo de Jacobi-Richardson

De uma maneira geral, obtida a forma equivalente x = Hx + g, a partir de uma


solucao aproximada inicial x(0) , determinamos a sequencia de solucoes aproximadas
considerando o processo iterativo:
x(1) = Hx(0) + g
x(2) = Hx(1) + g
..
.
x(k+1) = Hx(k) + g
Neste caso, temos obtemos a matrix H = (hij ), i, j = 1, 2, 3, . . . , n chamada de
matriz iterativa e o vetor g = (gi ), ij = 1, 2, 3, . . . , n.
(0) (0) (0) (0)
Assim, a partir de uma solucao aproximada inicial x(0) = [x1 , x2 , x3 , . . . , xn ]T ,
para a solucao exata x = [x1 , x2 , x3 , . . . , xn ]T , do sistema Ax = b, determina-se uma
sequencia de vetores
x(0) , x(1) , x(2) , . . . , x(k)
e espera-se que seja convergente para a solucao x isto e,
x(k) x
Para o entendimento dos metodos iterativos e da analise da convergencia, vamos
apresentar algumas definicoes e resultados sobre norma de vetores e de matrizes.
Definimos a Norma de um vetor do R como uma aplicacao de um espaco vetorial V
em R.
k.k :V R
que a cada vetor x Rn associa um numero real k x k R satisfazendo as seguintes
propriedades:
2 Metodos iterativos 9

a) k x k 0, x V e k x k = 0 x = 0;
b) k x k = || k x k , R, x V ;
c) k x + y k k x k + k y k, x, y V .
Exemplo de normas no Rn .
p
k x k2 = x21 + x22 + + x2n
A norma 2 de um vetor x representa a distancia euclidiana do ponto x a origem.
k x k1 = |x1 | + |x2 | + + |xn |
k x k = max{|x1 |, |x2 |, . . . , |xn |}
A norma de uma matriz satisfaz as mesmas propriedades da norma de um vetor.

Norma induzida: Uma norma de matriz a dita induzida por uma norma de vetor
se ela e definida como
k Ax k.
k A k. = maxx6=0
k x k.

Seja A uma matriz quadrada n n temos:.


a) k A k = max1in |aij | : norma linha.
b) k A k1 = max1jn |aij | : norma coluna.
qP
n 2
c) k A kE = i,j=1 aij : norma euclidiana.

(k) (k) (k) (k)


Dizemos que uma sequencia de vetores x(k) = [x1 , x2 , x3 , . . . , xn ]T Rn con-
verge para um vetor x = [x1 , x2 , x3 , . . . , xn ]T Rn se

k xk x k 0 quando k

Quando estamos utilizando um metodo iterativo a a partir de uma solucao inicial


obtemos uma sequencia de vetores, e o problema e quando parar? que criterio
utilizar?
Processo de parada para metodos iterativos:
O processo de parada para um metodo iterativo e decidido quando o erro relativo e
menor do que uma tolerancia  dada.
||xk xk1 ||
||xk ||
<
Exemplo: Considere a matriz ampliada de uma sistema linear

10 1 2 0 6

1 11 1 3 25

2 1 10 1 11

0 3 1 8 15
2 Metodos iterativos 10

Partindo de uma aproximacao inicial da solucao x(0) = [0, 0, 0, 0] obtemos


x(1) = [0.6, 2.2727, 1.1000, 1.8750]T e E1 = 1 obtemos:
|x(2) x(1 |
x(2) = [1.0473, 1.7159, 0.8052, 0.8852]T e E2 = |x(1) |
= 0.57684
x(3) = [0.9326, 2.053, 1.050493, 1.1309]T e E3 = 0.16420
x(4) = [1.0152, 1.9537, 0.9681, 0.9739]T e E4 = 0.080360
x(5) = [0.9890, 2.0114, 1.0103, 1.0214]T e E5 = 0.028686
x(6) = [1.0032, 1.9922, 0.9945, 0.9944]T e E6 = 0.013553
x(7) = [0.9981, 2.0023, 1.0020, 1.0036]T e E7 = 0.0050442 < 102
x(8) = [1.0006, 1.9987, 0.9990, 0.9989]T e E8 = 0.0023515
x(9) = [0.9997, 2.0004, 1.0004, 1.0006]T e E9 = 0.0011058
x(10) = [1.0001, 1.9998, 0.9998, 0.9998]T e E10 = 0.000466 < 103

9. Convergencia de metodos iterativos


Fato: Um metodo iterativo para o sistema linear Ax = b converge se
||I A|| < 1.
para qualquer norma consistente.
Dado um sistema linear Ax = b, podemos escreve-lo na forma
x = (I A)x + b
Assim, a solucao x de Ax = b e a mesma solucao de x = (I A)x + b.
Assim, se x(k) x temos que o erro cometido ao pararmos na k-esima iteracao pode
ser escrito como

e(k) = x x(k)
e x x(k) = (I A)(x x(k1)
e(k) = (I A)e(k1)
e(k1) = (I A)e(k2) = e(k) = (I A)2 e(k2)
..
.
e(k) = (I A)k e0)

em que e(0) e o erro inicial.


Tomando as normas consistentes e usando ||AB|| ||A||||B|| temos que

||(I A)k e(0) || ||I A)||k ||e(0) ||

e como
||I A)k < 1
2 Metodos iterativos 11

a convergencia do metodo e garantida, pois

||ek || ||x x(k) || 0

Fato: Um metodo iterativo converge se e somente se o maxni=1 |i | < 1, em que |i |


sao os autovalores da matriz I A.
Exemplo:
Considere o sistema linear

10.00x1 + 2.00x2 + 1.00x3 = 7.00

1.00x1 + 5.00x2 + 1.00x3 = 8.0

2.00x1 + 3.00x2 + 10.00x3 = 6.0

Usando o Metodo de Jacobi-Richardson com  < 102


Solucao: Testamos inicialmente a condicao de convergencia pelo criterio das linhas

para garantir a existencia da solucao do sistema.


|a12 | + |a13 | = |2| + |1| < |10| = |a11 |

|a21 | + |a23 | = |1| + |1| < |5| = |a22 |

|a13 | + |a23 | = |2| + |3| < |10| = |a33 |

Isto nos garante a convergencia pelo Metodo de Jacobi-Richardson.


Tambem podemos dividir as equacoes pelo elemento da diagonal principal, ja que a
matriz do sistema e diagonalmente dominante. Assim, obtemos o sistema de iteracao
fica


x1 + 0.200x2 + 0.100x3 = 0.700

0.2x1 + x2 + 0.2x3 = 1.6

0.2x1 + 0.3x2 + x3 = 0.6

A, ao aplicamos o criterio das linhas, vemos que



|a12 | + |a13 | = |0.2| + |0.1| = 0.3 < 1

|a21 | + |a23 | = |0.2| + |0.2| = 0.4 < 1


|a31 | + |a32 | = |0.2| + |0.3| = 0.5 < 1
P3
e, max1i3 j=1,j6=i |aij | = 0.5 < 1.
Ou, aplicando o criterio das colunas, vemos que
2 Metodos iterativos 12



|a21 | + |a31 | = |0.2| + |0.2| = 0.4 < 1

|a12 | + |a32 | = |0.2| + |0.3| = 0.5 < 1


|a13 | + |a23 | = |0.1| + |0.2| = 0.3 < 1

max1j3 3i=1,i6=j |aij | = 0.5 < 1 o que nos garante a convergencia do metodo de
P

Jacobi-Richardson.
Aplicando as iteracoes sucessivas em

k+1
k k
x1 = 0.2x2 0.100x3 + 0.700

xk+1
2 = 0.2xk1 0.2xk3 1.6

k+1
x3 = 0.2xk1 0.3xk2 + 0.6
Podemos elaborar uma tabela contendo os numeros das iteracoes e os respectivas
aproximacoes da solucao:
Tabela: Numero de iteracoes (n) e solucoes aproximadas

n 0 1 2 3 4
x1 0.7 0.96 0.978 0.9994 0.9979
x2 1.6 1.86 1.98 1.9888 1.9996
x3 0.6 0.94 0.966 0.9984 0.9968

O sistema tem como solucao x1 = 0.9979 e x2 = 1.9996 e x3 = 0.9978, pois


x(1) x(0) = [0.26, 0.26, 0.34]T

||x(1) x(0) || 0.34


E1 = = 0.183 > 102
||x(1) || 1.86

x(2) x(1) = [0.0178, 0.12, 0.026]T

||x(2) x(1) || 0.12


E2 = (2)
= 0.061 > 102
||x || 1.98

x(3) x(2) = [0.0214, 0.0108, 0.032400, ]T

||x(3) x(2) || 0.0324


E3 = (3)
= .016291 > 102
||x || 1.9888

x(4) x(3) = [0.0015, 0.01108, 0.0016]T

||x(4) x(3) || 0.0108


E4 = (4)
= 0.0054 < 102
||x || 1.9996
2 Metodos iterativos 13

Algortmo: Elabore um algoritmo para a resolucao de um sistema de equacoes


lineares pelo metodo de Jacobi-richardson;
Programacao: Faca um programa dos metodos na linguagem que tiver mais
afinidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema de equacoes lineares pelo metodo de Jacobi-richardson.
2 Metodos iterativos 14

2.2 Metodo de Gauss-Seidel

O metodo de Gauss-Seidel e um metodo iterativo de deslocamentos sucessivos.


De fato, dado um sistema linear Ax = b, podemos rescreve-lo na forma
x = (L + I + U )x + b
E a solucao x de Ax = b e a mesma solucao de x = (L + I + U )x + b .
Assim,
(L + I)x = U x + b
e x = (L + I)U x + (L + I)(1) b
ou seja
x = Hx + g
fazendo
x(k+1) = (L + I)1 U x(k) + (L + I)1 b

em que
H = (L + I)1 U
e a matriz de iteracao e
g = (L + I)1 b .
Observe que multiplicando ambos os membros da equacao anterior por L+I obtemos

(L + I)x(k+1) = U x(k) + b

e assim, podemos calcular

x(k+1) = Lx(k+1) + U x(k) + b

sem a necessidade de calcular a inversa de L + I.


Observemos que o Metodo de Gauss-Seidel difere do metodo de Jacobi-Richardson
(k)
por utilizar em cada passo de xi os valores mais recentes das demais componentes
(k) (k)
xi1 , xi2 , ....

10. Exemplo: Dado o sistema:


4x + y + z = 6

x + 6y + z = 8

2x + y + 8z = 11

a) Verificar a convergencia usando o criterio de Sassenfeld.


2 Metodos iterativos 15

b) Resolver pelo Metodo de Gauss-Seidel (com 3 iteracoes a partir do vetor


nulo).

11. Exemplo: Calcular u2 , u3 , u4 e u5 resolvendo a equacao de diferencas

un+2 + un+1 + un = n

com as condicoes de contorno u1 = 0 e u6 = 1


Criterios de Convergencia
A matriz dos coeficientes do sistema linear deve ser estritamente diagonalmente
dominante.
Demonstracao identica a do Metodo de Jacobi-Richardson usando o erro relativo.
Criterio de Sassenfeld
Escrevemos a matrix de iteracao do Metodo de Gauss-Seidel, (L + I)1 U = B.
Observe que se a matriz de iteracao do metodo de Gauss-seidel B = (L + I 1 )U
tiver norma menor do que 1 o metodo converge. Consideramos
y = Bx y = (L + I 1 ) U x
(L + I)y = U x
y = Ly U x
Lembremos que
||Bx|| k||x||

com k < 1 temos uma condicao suficiente para garantir a convergencia.


Queremos calcular a ||Bx|| . Como ||Bx|| = ||y || com ||y || = max1in |yi |
temos que o vetor y e obtido do vetor x a partir de



y1 = a11 x1 + a12 x2 + a13 x3 + + a11 xn

y 2 = a y 1 + a x 2 + a x 3 + + a x n

21 22 23 21
.
..



yn = an1 y1 + an2 y2 + an3 y3 + + an,n1 yn1

Assim, podemos escrever


n
X n
X n
X
|y1 | = | a1j xj | |a1j | |xj | | |a1j | maxj |xj |
j=2 j=2 j=2

n
X
= |a1j | ||x|| = 1 ||x||
j=2
2 Metodos iterativos 16

Pn
em que 1 = j=2 |a1j |.
Portanto, temos que
|y1 | 1 ||x||

E,

n
X n
X
|y2 | = |a21 y1 + a2j xj | |a21 | |y1 | + |a2j | |xj |
j=3 j=3

n
X n
X
|a21 | 1 ||x|| + |a2j | maxj |xj | |a21 | 1 ||x|| + |a2j | ||x||
j=3 j=3

n
X
|a21 | |a2j | ||x|| = 2 ||x||

= 1 +
j=3
Pn
em que 2 = |a21 | 1 + j=3 |a2j |.
Assim, temos que
|yi | i ||x||inf ty

em que as constantes
i1
X n
X
i = |aij | j + |aij |.
j=1 j=i+1

E, se
= max1in i < 1 a sequ?ncia xk gerada pelo metodo iterativo de Gauss-Seidel
converge.
E,
||Bx|| = ||y|| = max1n |yi | max1n i ||x||

Portanto, temos que

|y1 | 1 ||x||

No metodo de Gauss-Seidel

(L + I)x(k+1) = U x(k) + b

e, podemos calcular
x(k+1) = Lx(k+1) + U x(k) + b

sem necessidade de calcular a inversa de L + I.


Escrevendo a matrix de iteracao, (L + I)U
2 Metodos iterativos 17

1. Criterio das linhas

12. Exemplo: Dado o sistema



9x + 2y + 2z = 5

x + 3y =4

x + y + 3z = 3

Calcule a solucao testando os criterios de convergencia e resolva utilizando os


metodos de Jacobi-Richardson e de Gauss-Seidel

9 2 2
A= 1 3 0

1 1 3

5
b= 4

3

2 2 5
x = 9y 9z
9
y = 13 x + 43

z = 13 x 31 y + 1

a) Metodo de Jacobi-Richardson


2 2 5
x = 9y 9z
9
y = 13 x + 43

z = 13 x 31 y + 1

Na forma matricial
5
x 0 29 29 x 9
1 4
y = 3 0 0 y + 3
1 1
z 3
3 0 z 1

0
(0)
Dado uma aproximacao inicial x = 0

0
temos

59 0.55556
x(1) = 43 = 1.3333

1 1
|x(1) x(0) |
E1 = |x(1) |
= 1 > 10(2)
Entao calculamos
2 Metodos iterativos 18

5
x(2) 0 29 2
9
x(1) 9
(2) 1 (1) 4
y = 3 0 0 y + 3
1
z (2) 3
31 0 z (1) 1
(2)
x 0 29 2
9
5
9
5
9
1
0 43 + 34
(2)
y = 3 0

1
z (2) 3
31 0 1 1

x(2) 0.55556 0.55556 0.62963
(2)
y = 1.3333 + 1.3333 = 1.51849

z (2) 1 1 0.37038
E2 = 0.39195 > 101

0.81069
Da mesma forma, obtemos: x3 = 1.54318 com E3 = 0.11446 > 101

1.54318

0.83539
x4 = 1.60353 com E4 = 0.051974 < 101 portanto, a solucao aproximada

0.21538
com  < 101 e x4 .

a) Metodo de Gauss-Seidel
Dado o sistema Ax = b por

9x + 2y + 2z = 5

x + 3y =4

x + y + 3z = 3

Vemos que a matriz dos coeficientes e diagonalmente dominante e agora vamos testar
o criterio de Sassenfeld:

|a12 |+|a13 |
1 =

|a11|
= |2|+|2|
|9|
= 49 < 1
|a21 |1 +|a23 |
2 = |a22 |
= |1|+|0|
|3|
= 13 < 1
|a21 |1 +|a31 |
= |1|+|1|

3 = = 23 < 1

|a33 | |3|

2
Assim, max1i3 i = 3
< 1 o metodo de Gauss-Seidel converge.
Escrevendo o sistema
x
(1)
= 29 y (0) 29 z (0) 5
9
y (1) = 13 x(1) + 43

= 13 x(1) 13 y (1) + 1
(1)
z

Comecando tambem com a aproximacao inicial x(0) = [0, 0, 0]T temos


2 Metodos iterativos 19


x
(1)
= 29 y (0) 92 z (0) 59 = 95 = 0.55556
y (1) = 13 x(1) + 43 = 13 0.55556 + 43 = 1.1481

= 13 x(1) 13 y (1) + 1 = 31 0.55556 13 1.1481 + 1 = 1.5679
(1)
z
|X (1) X (0) | 1.5679
com E1 = |X (1) |
= 1.5679
=1


x
(2)
= 29 y (1) 29 z (1) 59 = 29 1.1481 92 1.5679 59 95 = 0.46227
y (2) = 13 x(2) + 43 = 13 (0.46227) + 43 = 1.4874

= 31 x(2) 31 y (2) + 1 = 13 0.46227 31 1.4874 + 1 = 0.35010
(2)
z

|X (2) X (2) | 1.2178


com E2 = |X (2) |
= 1.4874
= 0.81874
Asssim sucessivamente. ( Conferir as contas!)

Algortmo: Elabore um algoritmo para a resolucao de um sistema de equacoes


lineares pelo metodo de Gauss-Seidel;
Programacao: Faca um programa dos metodos na linguagem que tiver mais
afinidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema de equacoes lineares pelo metodo de Gauss-Seidel.
3 Sistemas nao lineares 20

3 Sistemas nao lineares

Seja F : Rn Rn uma funcao vetorial contnua e diferenciavel, ou seja,

F (x1 , x2 , . . . , xn ) = [f1 (x1 , x2 , . . . , xn ), f2 (x1 , x2 , . . . , xn ), . . . , fn (x1 , x2 , . . . , xn )]

em que fi : Rn R, i = 1, 2, . . . , n sao funcoes reais nao lineares contnuas e


diferenciaveis.
Determinar a raz x = (x1 , x2 , . . . , xn ) de F (x) consiste em resolver o sistema nao
linear

f1 (x1 , x2 , . . . , xn ) = 0

f2 (x1 , x2 , . . . , xn ) = 0

..


.

fn (x1 , x2 , . . . , xn ) = 0

Exemplo: Determinar a solucao do sistema de equacoes


(
sen(x1 ) + x2 = 0
x21 + x22 1 = 0

equivale a determinar o vetor solucao x = (x1 , x2 ) de F (x) = F (x1 , x2 ) = 0 em que

" # " #
f1 (x1 , x2 ) sen(x1 ) + x2
F (x1 , x2 ) = =
f2 (x1 , x2 ) x21 + x22 1

3.1 Metodo iterativo linear para sistemas nao lineares

Considerando inicialmente um sistema de 2 equacoes nao lineares e duas incognitas


(
f1 (x1 , x2 ) = 0
f2 (x1 , x2 ) = 0

Para encontrar uma aproximacao para o vetor solucao x = (x1 , x2 ), um primeiro


passo e escrever o sistema na forma:
(
x1 = f (x1 , x2 )
x2 = g(x1 , x2 )

Se x = (x1 , x2 ) e uma solucao do sistema nao linear, podemos comecar a procura


(0) (0)
de uma solucao aproximada a partir de uma solucao inicial (x1 , x2 ) e iniciar o
3 Sistemas nao lineares 21

processo iterativo fazendo:


( (k+1) (k) (k)
x1 = f (x1 , x2 )
(k+1) (k) (k)
x2 = g(x1 , x2 )

A convergencia do metodo iterativo e linear e so ocorre se:


(0) (0)
a) Uma aproximacao inicial (x1 , x2 ) pertence a uma vizinhanca V da raz (x1 , x2 );
b) As funcoes de iteracao f (x1 , x2 ) e g(x1 , x2 ) e suas derivadas parciais de primeira
ordem sao contnuas numa vizinhanca V da raz (x1 , x2 );
c) As relacoes
| f (x
x1
1 ,x2 )
| + | f (x
x2
1 ,x2 )
| k1 < 1
g(x1 ,x2 ) g(x1 ,x2 )
| x1 | + | x2 | k2 < 1

Para obtermos uma solucao com um determinada precisao  devemos calcular o erro
relativo para todas as componentes do vetor solucao.
Exemplo: (
f (x1 , x2 ) = 0.2x1 + 0.2x1 x2 x1 + 0.6 = 0
g(x1 , x2 ) = 0.4x1 + 0.1x1 x22 x2 + 0.5 = 0

Para encontrar uma aproximacao para o vetor solucao x = (x1 , x2 ), escrevemos o


sistema na forma: (
x1 = 0.2x21 + 0.2x1 x2 + 0.6
x2 = 0.4x1 + 0.1x1 x22 + 0.5

(0) (0)
Consideramos uma aproximacao inicial X (0) = (x1 , x2 ) = (0.9, 1.1) e supomos
que ele esteja numa vizinhanca V da solucao. No caso de funcoes de duas variaveis
poderamos plotar seus os graficos e verificar a regiao em que elas se interceptam.
Verificamos que numa vizinhanca V da solucao as derivadas parciais de f e g sao
contnuas e

| f (x
x1
1 ,x2 )
| + | f (x
x2
1 ,x2 )
|=
= |0.4x1 | + |0.2x2 | + |0.2x1 | = 0.4(0.9) + 0.2(1.1) + 0.2(0.9) = 0.76 < 1
| g(x 1 ,x2 )
x1
| + | g(x 1 ,x2 )
x2
|=
2 2
= |0.4| + |0.1x2 | + |0.2x1 x2 | = 0.4 + 0.1(1.1) + |0.2(0.9)(1.2) = 0.719 < 1

Assim, fazendo as iteracoes obtemos X (1) = (x(1) , y (1) )


( (1)
x1 = 0.2(0.9)2 + 0.2(0.9)(1.1) + 0.6 = 0.96
(1)
x2 = 0.4(0.9) + 0.1(0.9)(1.1)2 + 0.5 = 0.9689
3 Sistemas nao lineares 22

Calculo do Erro E1 usando a norma do maximo () temos:

|X (1) X (0) | 0.131100


(1)
= = 0.13531 > 102
|X | 0.9689

Calculo de X (2) = (x(2) , y (2) )


( (2)
x1 = 0.2(0.96)2 + 0.2(0.96)(0.9689) + 0.6 = 0.97035
(2)
x2 = 0.4(0.9703) + 0.1(0.9703)(0.9689)2 + 0.5 = 0.97921

Calculo do Erro E2 :

|X (2) X (1) | 0.96 0.9


= > 102
|X(2)| 0.96

(1) (0)
|x2 x2 | 0.9689 1.1
(1)
= > 102
|x2 | 0.9689

o processo deve ser continuado ate que todas as aproximacoes tenham erro menor
do que a tolerancia.

( (3)
x1 = 0.2(0.9703)2 + 0.2(0.9703)(0.97921) + 0.6 = 0.97832
(3)
x2 = 0.4(0.9703) + 0.1(0.9703)(0.97921)2 + 0.5 = 0.98116

Calculo do Erro E3 :
|X (3) X (2) |
0.007 < 102
|X (3) |

Assim, podemos considerar a solucao aproximada (0.97832, 0.98116)

3.2 Metodo de Newton

Considerando inicialmente um sistema de 2 equacoes nao lineares e duas incognitas


(
f1 (x1 , x2 ) = 0
f2 (x1 , x2 ) = 0

e queremos encontrar o vetor solucao vetor solucao x = (x1 , x2 ) tal que F (x) =
F (x1 , x2 ) = 0 em que " #
f1 (x1 , x2 )
F (x1 , x2 ) =
f2 (x1 , x2 )

(0) (0)
Seja uma aproximacao inicial x(0) = (x1 , x2 ) para a solucao x = (x1 , x2 ) .
3 Sistemas nao lineares 23

Sendo f1 (x1 , x2 ) e f2 (x1 , x2 ) diferenciaveis numa regiao D R2 , podemos expand-


las em uma Serie de Taylor em torno do ponto x(0) ate a derivada de primeira ordem
temos
(0) (0) (0) (0)
(0) (0) f1 (x1 ,x2 ) (0) f (x1 ,x2 ) (0)
f1 (x1 , x2 ) = f1 (x1 , x2 ) +

x1
(x1 x1 ) + 1 x 2
(x2 x2 )

(0) (0) (0) (0)


(0) (0) f2 (x1 ,x2 ) (0) f2 (x1 ,x2 ) (0)
f2 (x1 , x2 ) = f2 (x1 , x2 ) + (x1 x1 ) + (x2 x2 )

x1 x2

e igualando a zero a aproximacao linear das funcoes obtemos um sistema linear:


(0) (0) (0) (0)
(0) (0) f1 (x1 ,x2 ) (0) f1 (x1 ,x2 ) (0)
f1 (x1 , x2 ) +

x1
(x1 x1 ) + x2
(x2 x2 ) = 0

(0) (0) (0) (0)


(0) (0) f2 (x1 ,x2 ) (0) f2 (x1 ,x2 ) (0)
f2 (x1 , x2 ) + (x1 x1 ) + (x2 x2 ) = 0

x1 x2

(1) (1)
A solucao deste sistema linear nos da uma nova aproximacao x(1) = (x1 , x2 ) para
a solucao x = (x1 , x2 ) .
Escrevendo o sistema na forma matricial temos
(0) (0) (0) (0)
" # " #
f1 (x1 ,x2 ) f1 (x1 ,x2 ) (0) (0) (0)
x1 x2
(x 1 x 1 ) f (x
1 1 , x2 )
(0) (0)
f2 (x1 ,x2 )
(0) (0)
f2 (x1 ,x2 )
(0) = (0) (0)
(x2 x2 ) f2 (x1 , x2 )
x1 x2

Escrevendo a matriz Jacobiana de F (x1 , x2 ) = (f1 (x1 , x2 ), f2 (x1 , x2 ))


(0) (0) (0) (0)

f1 (x1 ,x2 ) f1 (x1 ,x2 )
(0) (0) x1 x2
J(x1 , x2 ) = (0) (0)
f2 (x1 ,x2 )
(0) (0)
f2 (x1 ,x2 )

x1 x2

obtemos o sistema
" (0)
# " (0) (0)
#
(0) (0) (x1 x1 ) f1 (x1 , x2 )
J(x1 , x2 ) (0) = (0) (0)
(x2 x2 ) f2 (x1 , x2 )

Resolvendo o sistema linear obtido, obtemos uma nova solucao aproximada x(1) =
(1) (1)
(x1 , x2 ),
(1) (1)
Desenvolvendo novamente as funcoes f1 (x1 , x2 ) e f2 (x1 , x2 ) em torno de (x1 , x2 )
obtemos um novo sistema
" (1)
# " (1) (1)
#
(1) (1) (x1 x1 ) f1 (x1 , x2 )
J(x1 , x2 ) (1) = (1) (1)
(x2 x2 ) f2 (x1 , x2 )

(2) (2)
que resolvido nos da nova aproximacao (x1 , x2 ) e assim sucessivamente.
3 Sistemas nao lineares 24

O criterio de parada e usando uma tolerancia  e dada por:

(i+1) (i) (i+1) (i)


|x1 x1 | |x2 x2 |
(i+1)
< e (i+1)
<
|x1 | |x2 |

Considerando inicialmente um sistema de 2 equacoes nao lineares e duas incognitas


(
f1 (x1 , x2 ) = 0
f2 (x1 , x2 ) = 0

e queremos encontrar o vetor solucao x = (x1 , x2 ) tal que F (x) = F (x1 , x2 ) = 0 em


que " #
f1 (x1 , x2 )
F (x1 , x2 ) =
f2 (x1 , x2 )

(0) (0)
Seja uma aproximacao inicial x(0) = (x1 , x2 ) para a solucao x = (x1 , x2 ) .
Sendo f1 (x1 , x2 ) e f2 (x1 , x2 ) diferenciaveis numa regiao D R2 , podemos expand-
las em uma Serie de Taylor em torno do ponto x(0) ate a derivada de primeira ordem
temos
(0) (0) (0) (0)
(0) (0) f1 (x1 ,x2 ) (0) f1 (x1 ,x2 ) (0)


f 1 (x 1 , x2 ) = f 1 (x 1 , x2 ) + x1
(x 1 x 1 ) + x2
(x2 x2 )

(0) (0) (0) (0)


(0) (0) f2 (x1 ,x2 ) (0) f2 (x1 ,x2 ) (0)
f2 (x1 , x2 ) = f2 (x1 , x2 ) + (x1 x1 ) + (x2 x2 )

x1 x2

e igualando a zero temos o sistema linear:


(0) (0) (0) (0)
(0) (0) f1 (x1 ,x2 ) (0) f1 (x1 ,x2 ) (0)
f1 (x1 , x2 ) +

x1
(x1 x1 ) + x2
(x2 x2 ) = 0

(0) (0) (0) (0)


(0) (0) f2 (x1 ,x2 ) (0) f2 (x1 ,x2 ) (0)
f2 (x1 , x2 ) + (x1 x1 ) + (x2 x2 ) = 0

x1 x2

(1) (1)
A solucao deste sistema linear nos da uma nova aproximacao x(1) = (x1 , x2 ) para
a solucao x = (x1 , x2 ) .
Escrevendo o sistema na forma matricial temos
(0) (0) (0) (0)
" # " #
f1 (x1 ,x2 ) f1 (x1 ,x2 ) (0) (0) (0)
x1 x2
(x 1 x 1 ) f 1 (x 1 , x2 )
(0) (0)
f2 (x1 ,x2 )
(0) (0)
f2 (x1 ,x2 )
(0) = (0) (0)
(x2 x2 ) f2 (x1 , x2 )
x1 x2

Escrevendo a matriz Jacobiana de F (x1 , x2 ) = (f1 (x1 , x2 ), f2 (x1 , x2 ))


3 Sistemas nao lineares 25

(0) (0) (0) (0)



f1 (x1 ,x2 ) f1 (x1 ,x2 )
(0) (0) x1 x2
J(x1 , x2 ) = (0) (0)
f2 (x1 ,x2 )
(0) (0)
f2 (x1 ,x2 )

x1 x2

temos " # " #


(0) (0) (0)
(0) (0) (x1 x1 ) f1 (x1 , x2 )
J(x1 , x2 ) (0) = (0) (0)
(x2 x2 ) f2 (x1 , x2 )

Resolvendo o sistema linear obtido obtemos uma nova solucao aproximada x(1) =
(1) (1)
(x1 , x2 ),
(1) (1)
Desenvolvendo as funcoes f1 (x1 , x2 ) e f2 (x1 , x2 ) em torno de (x1 , x2 ) obtemos um
novo sistema

" (1)
# " (1) (1)
#
(1) (1) (x1 x1 ) f1 (x1 , x2 )
J(x1 , x2 ) (1) = (1) (1)
(x2 x2 ) f2 (x1 , x2 )

(2) (2)
que resolvido nos da nova aproximacao (x1 , x2 ) e assim sucessivamente.
O criterio de parada e usando uma tolerancia  para cada uma das componentes do
vetor solucao aproximada, neste caso, dada por:

(i+1) (i) (i+1) (i)


|x1 x1 | |x2 x2 |
(i+1)
< e (i+1)
<
|x1 | |x2 |

Exemplo: Considere o sistema de 2 equacoes nao lineares e duas incognitas


(
x2 + y 2 = 2
x2 y 2 = 1

e queremos encontrar o vetor solucao x = (x1 , x2 )


Considerando uma aproximacao inicial (1.2, 0.7) temos

f gy gfy
( (1)
x1 = 1.2 fx gy fy gx
= 1.2250
(1) gfx f gy
x2 = 0.7 fx gy fy gx
= 0.7071

Calculo do Erro E1 :
(1) (0)
|x1 x1 | 1.2250 1.2
(1)
= 0.02 > 103
|x1 | 1.2250

(1) (0)
|x2 x2 | 0.7071 0.7
(1)
= 0.01 > 103
|x2 | 0.7071
4 Problemas 26

( (2)
x1 = 1.2253
(2)
x2 = 0.7070

Calculo do Erro E2 :
(2) (1)
|x1 x1 | 1.2253 1.223
(2)
= 0.0002 < 103
|x1 | 1.2253

(2) (1)
|x2 x2 | 0.7070 0.7071
(2)
= = 0.0001 < 103
|x2 | 0.7070

o processo deve ser continuado ate que todas as aproximacoes tenham erro menor
do que a tolerancia.

Algortmo: Elabore um algoritmo para a resolucao de um sistema de equacoes


nao ineares pelo metodo de Newton;
Programacao: Faca um programa dos metodos na linguagem que tiver mais
afinidade e aplique para resolver um problema de encontrar a solucao numerica
de um sistema de equacoes nao lineares pelo metodo de Newton.

4 Problemas
0) O texto sobre sistemas de equacoes tem alguns erros de digitacao ou de calculo.
Confira e dentre eles, encontre dois erros e indicando a pagina e escrevendo
corretamente os fatos ou resultados.
1) Considere a matriz

2.1 0.6 1.1
M = 3.2 4.7 0.8

3.1 6.5 4.1

1.1) Calcule as normas (norma linha, norma coluna, norma euclidiana) de


M:
1.2) Verifique se M e singular.
2) Resolva os seguintes sistemas lineares Ax = b utilizandos todos os metodos
possveis (Eliminacao de Gauss, eliminacao de Gauss com pivotamento par-
cial, eliminacao de Gauss com pivotamento total, decomposicao LU , Jacobi-
Richardson, Gauss-Seidel), justificando se podem ou nao ser aplicados.
4 Problemas 27

2.1)

8 6 2 28
A = 4 11 7 e b = 40

4 7 6 33

2.2)

1 4 1 7
A = 1 6 1 e b = 13

2 1 2 5

2.3)

4 1 1 3
A= 1 4 1 e b= 0

1 1 5 4

2.4)

10 2 1 14
A= 1 5 1 e b = 11

2 3 10 8

3) Resolva os sistemas nao lineares pelo Metodo de Newton com erro relativo
 < 102
3.1)
(
2x3 y = 1
x2 y = 1

3.2) (
2x3 y = 1
x2 y = 1

4) Considere as correntes i1 , i2 e i3 relacionadas pelo sistema linear obtido apli-


cando a Lei de Kirchoff (a soma das diferencas de potencial em qualquer circuito
fechado e zero) a um circuito com resistencias e baterias dado por

6i1 + 10(i1 i2 ) + 4(i1 i3 ) 26 = 0

5i2 + 5i2 + 5(i2 i3 ) + 10(i2 i1 ) = 0

11i3 + 4(i3 i1 ) + 5(i3 i2 ) 7 =0

4.1) E possvel aplicar o Metodo de Gauss-Seidel com convergencia asse-


gurada? Justifique.
4.2) Caso possvel, obtenha a solucao com erro relativo  < 102
Estude as referencias basicas da disciplina
4 Problemas 28

Obs. Um software online para trabalhar com matrizes e o matrix se encontra


em https://matrixcalc.org/it/