Escolar Documentos
Profissional Documentos
Cultura Documentos
Faculdade de Computação
Sistemas lineares
2020/2
Sumário
1 Sistemas lineares
Sistema linear
Forma matricial
1 1 1 1
x
1 −1 −1y = 1
2 3 −4 z 9
O sistema
x +y =6
(
x −y =2
admite como solução x = 4 e y = 2 (sistema possível).
Como nenhum outro par de valores x e y satisfaz o problema, então o
sistema acima é sistema possível e determinado (SPD).
Já o sistema
x +y =1
(
2x + 2y = 2
admite infinitas soluções do tipo (x , 1 − x )t , ou seja, basta escolher um
valor real de x e tomar y = 1 − x .
Exemplos de soluções são (0, 1)t , (1, 0)t , (1/2, 1/2)t , (π, 1 − π)t ,
(100, −99)t , etc.
Logo o sistema acima é possível e indeterminado (SPI).
x +y =1
(
x +y =4
não admite solução.
Não é possível determinar valores de x e y de modo que
simultaneamente x + y = 1 e x + y = 4.
Logo o sistema acima é impossível (SI).
Sistema homogêneo
Um sistema é homogêneo se possui o lado direito (termo independente)
nulo, ou seja, temos Ax = 0.
x +y =0
(
2x + 3y = 0
é homogêneo. Note que x = 0 e y = 0 são valores de x , y que satisfazem
ambas as equações do sistema simultaneamente.
Observações importantes
Embora para os exemplos vistos, considerou-se duas equações lineares e
duas variáveis, a classificação de sistemas é válida no caso geral m × n.
Neste curso serão discutidos métodos numéricos para a resolução de
sistemas lineares n × n – i.e. número de equações igual ao número de
variáveis.
Uma breve discussão teórica para o caso geral m × n pode ser
encontrada em (RUGGIERO; LOPES, 1996).
Sistemas triangulares
Sistema triangular inferior
Um sistema Ax = b é triangular inferior quando todas as entradas da
matriz n × n de coeficientes acima da diagonal principal são nulas, ou seja,
aij = 0, i < j, ∀i = 1, . . . , n − 1, ∀j = 1, . . . , n
Logo,
0 0
a11
a a22
21
A = a31 a32 a33
0
an1 an2 an3 ann
Possibilidade de resolução de forma direta.
aij = 0, i > j, ∀i = 1, . . . , n, ∀j = 1, . . . , n − 1
Logo,
a11 a12 a13 a1n
0 a
22 a23 a2n
A= a33 a3n
0 0 ann
Possibilidade de resolução de forma retroativa.
Solução retroativa
4x3 − 5x4 = 3
4x3 − 5 · 1 = 3
x3 = 2
x2 + x3 − 2x4 = −1
x2 + 2 − 2 · 1 = −1
x2 = −1
No caso geral:
x [ n ]= b [ n ]/ a [ n ][ n ]
para k = n -1 : 1
s = 0
para j = k +1 at é n
s = s + a [ k ][ j ]* x [ j ]
x [ k ] = ( b [ k ] - s ) / a [ k ][ k ]
x1 + x2 = 6
(
x1 − x2 = 2
e
2x1 + 2x2 = 12
(
2x2 = 4
possuem a mesma solução (4, 2)t
Note que o segundo sistema é triangular superior.
Métodos numéricos
Princípio:
Transformação do sistema linear a ser resolvido em um sistema linear
triangular superior equivalente;
Resolução do sistema linear triangular de forma retroativa.
Etapa 1
Deve-se eliminar x1 das equações i = 2, 3, . . . , n.
Para isto, da i-ésima equação subtrai-se a 1a. equação multiplicada
por um multiplicador
(0)
ai1
mi1 = (0)
, i = 2, . . . , n ,
a11
(0)
onde o termo a11 ̸= 0 é denominado pivô para esta etapa.
Ao final, obtém-se
(1) (1) (1) (1)
a11 a12 ... a1n b1
(1) (1) (1)
0 a22 ... a2n b2
A |b =
(1) (1)
.. .. .. .. ..
.
. . . .
(1) (1) (1)
0 an2 . . . ann bn
(1) (0)
a1j = a1j , j = 1, . . . , n
(1) (0)
b1 = b1 .
Para as linhas i = 2, . . . , n:
(1)
ai1 = 0,
(1) (0) (0)
aij = aij − mi1 a1j , j = 2, . . . , n
(1) (0) (0)
bi = bi − mi1 b1 .
Etapa 2
(1)
Existe ao menos um elemento ai2 ̸= 0, para i = 2, . . . , n. Caso
contrário, det(A(1) ) = 0, o que leva a det(A) = 0, contrariando a
hipótese inicial.
Logo, é possível reescrever a matriz A(1) |b(1) de forma que o novo
(1)
pivô, a22 , seja não nulo (troca-se a segunda linha por outra linha
abaixo da mesma, caso necessário).
Elimina-se x2 das equações i = 3, . . . , n, subtraindo-se da i-ésima
linha da matriz aumentada a 2a. linha multiplicada por
(1)
aai2
mi2 = (1)
, i = 3, . . . , n.
a22
(2) (1)
aij = aij , i = 1, 2 e j = 1, . . . , n
(2) (1)
bi = bi , i = 1, 2.
Para as linhas i = 3, . . . , n:
(2)
ai2 = 0,
(2) (1) (1)
aij = aij − mi2 a2j , j = 3, . . . , n
(2) (1) (1)
bi = bi − mi2 b2 .
GBC051 Comp. Cient. Otim. 2020/2 31 / 120
(n−1) (n−1) (n−1) (n−1) (n−1)
a11 a12 a13 ... a1n b1
(n−1) (n−1) (n−1) (n−1)
0 a22 a23 ... a2n b2
(n−1) (n−1) (n−1)
A(n−1) |b(n−1) = 0 0
a33 ... a3n b3 .
.. .. .. .. .. ..
. . . . . .
(n−1) (n−1)
0 0 0 . . . ann bn
(0) (0) (0) (0)
3 2 4 1
a11 a12 a13 b1
A(0) |b(0) = (0) (0) (0) (0) = 1 1 2 2
a21 a22 a23 b2
(0)
a31
(0)
a32
(0)
a33
(0)
b3 4 3 −2 3
Dados:
(0)
Pivô: a11 = 3 m21 = 1/3 m31 = 4/3
Operações:
L2 ← L2 − m21 L1 L3 ← L3 − m31 L1
(1) (1) (1) (1)
3 2 4 1
a11 a12 a13 b1
A(1) |b(1) = 0 1/3 2/3 5/3 =
0
(1) (1) (1)
a22 a23 b2
0 1/3 −22/3 5/3 0
(1)
a32
(1)
a33
(1)
b3
Dados:
(1) 1/3
Pivô: a22 = 1/3 m32 = =1
1/3
Operação:
L3 ← L3 − m32 L2
3 2 4 1
0 0 −8 0
Logo, resolver Ax = b é equivalente a resolver o sistema
3x1 + 3x2 + x3 = 7
2x1 + 2x2 − x3 = 3
x1 − x2 + 5x3 = 5
3 3 1 7
A(0) |b(0) = 2 2 −1 3
1 −1 5 5
3 3 1 7
A (1) (1)
|b = 0 0 −5/3 −5/3
0 −2 14/3 8/3
(1)
O elemento a22 = 0. Neste caso, é necessário permutar as linhas L2 e
L3 da matriz para prosseguir.
Após a permutação, obtém-se a matriz aumentada
3 3 1 7
0 0 −5/3 −5/3
Como o sistema já está na forma triangular superior, pode-se fazer a
solução retroativa imediatamente, o que resulta na solução
x∗ = (1, 1, 1)t .
// Solu ç ã o retroativa
x [ n ]= b [ n ]/ a [ n ][ n ]
para k = n -1 : 1
s = 0
para j = k +1 : n
s = s + a [ k ][ j ]* x [ j ]
x [ k ] = ( b [ k ] - s ) / a [ k ][ k ]
Estratégias de pivotamento
3 2 1 −1 5
0 1 0 3 6
A (1) (1)
|b =
0 −3 −5 7 7
0 2 4 0 15
Para etapa k = 2:
Escolher novo pivô:
(1) (1)
max |ai2 | = |a32 | = 3
i=2,3,4
(1)
Logo, pivô é a32 = −3, encontrado na linha i = 3.
3 2 1 −1 5
0 −3 −5 7 7
A (1) (1)
|b = .
0 1 0 3 6
0 2 4 0 15
Os multiplicadores são
1 2
m32 = = −1/3 m42 = = −2/3 .
−3 −3
O módulo dos multiplicadores é sempre menor que 1, o que evita a
ampliação de erros de arredondamento.
0, 0002x1 + 2x2 = 5
(
2x1 + 2x2 = 6
Considerando-se aritmética de 3 dígitos, e a princípio sem usar o
pivotamento parcial:
!
0, 2 × 10−3 0, 2 × 1010, 5 × 101
A(0) |b(0) =
0, 2 × 101 0, 2 × 10 0, 6 × 101
1
Na etapa 1:
−3 0, 2 × 101 (1)
Pivô: 0, 2 × 10 m21 = = 0, 1 × 105
a21 = 0
0, 2 × 10−3
Logo,
!
0, 2 × 10−3 0, 2 × 101 0, 5 × 101
A(1) |b(1) =
0 −0, 2 × 105 −0, 5 × 105
2 × 0 + 2 × 2, 5 = 5 ̸= 6 .
Fatoração LU
1 0 0
u u12 u13 u1n
11
0
ℓ
21 1 u22 u23 u2n
LU =
ℓ31 ℓ32
0 un−1,n
ℓn1 ℓn2 ℓn,n−1 1 0 0 unn
Ly = b .
A resolução deste sistema é direta (matriz triangular inferior com
diagonal unitária) e fornece as componentes y1 , . . . , yn do vetor
coluna y.
Agora, basta resolver de forma retroativa o sistema
Ux = y ,
uma vez que U é matriz triangular superior, e obter a solução do
sistema original, x.
GBC051 Comp. Cient. Otim. 2020/2 49 / 120
Considerações
ou seja,
u1j = a1j , j = 1, 2, . . . , n .
ai1
ℓi1 = , i = 2, . . . , n .
u11
ou seja,
(0)
Supondo-se a11 ̸= 0, os multiplicadores da etapa 1 são:
(0) (0)
a21 a31
m21 = (0)
m31 = (0)
a11 a11
(1) (0)
a1j = a1j para j = 1, 2, 3
(1) (0) (0)
aij = aij − mi1 a1j para i = 2, 3 e j = 1, 2, 3
1 0 0
M(0) = −m21 1 0
−m31 0 1
(1)
Supondo-se agora que o o novo pivô a22 ̸= 0, define-se o
multiplicador
(1)
a32
m32 = (1)
.
a22
Para eliminar x2 da linha 3, multiplica-se a linha 2 por m32 e
subtrai-se o resultado da linha 3, de modo que:
(2) (1)
a1j = a1j para j = 1, 2, 3
(2) (1)
a2j = a2j para j = 2, 3
(2) (1) (1)
a3j = a3j − m32 a2j para j = 2, 3
1 0 0
M(1) = 0 1 0
0 −m32 1
Do processo anterior,
1 0 0 1 0 0
−1 −1
M (0)
= m21 1 0 e M(1) = 0 1 0
m31 0 1 0 m32 1
(exercício), então
1 0 0
−1 −1
M (0)
M (1)
= m21 1 0
m31 m32 1
(exercício).
Exemplo
Neste caso,
3 2 4
A(0) = 1 1 2
4 3 2
Dados iniciais:
(0) (0)
(0) a21 1 a31 4
Pivô: a11 =3 m21 = = m31 = =
(0)
a11 3 (0)
a11 3
L1 ← L1 L2 ← L2 − m12 L1 L3 ← L3 − m13 L1 ,
obtém-se
3 2 4
0 1/3 −10/3
(1) (1)
Dado que agora a21 e a31 são nulos, podem-se armazenar os
multiplicadores m21 e m31 nestas posições:
3 42
A (1)
= 1/3 1/3 2/3
Para a etapa 2:
(1)
(1) a32 1/3
Pivô: a22 = 1/3 m32 = = =1
(1)
a22 1/3
Fazendo-se
L1 ← L1 L2 ← L2 L3 ← L3 − m32 L2 :
3 2 4
4/3 1 −4
Logo, os fatores L e U são:
1 0 0 3 2 4
4/3 1 1 0 0 −4
GBC051 Comp. Cient. Otim. 2020/2 66 / 120
Resolução do sistema
Resolvendo-se Ly = b:
=1
y
1
1/3y1 + y2 =2
4/3y + y + y = 3
1 2 3
Pivotamento parcial
0 1 0 3 1 4
P = 0 0 1 e A = 1 5 9
1 0 0 2 6 5
Fazendo-se a multiplicação:
0 1 0 3 1 4 1 5 9
PA = 0 0 11 5 9 = 2 6 5
1 0 0 2 6 5 3 1 4
A′ x = b′ ⇒ PAx = Pb ⇒ LUx = Pb .
Assim, resolvem-se os sistemas:
1 Ly = Pb
2 Ux = y
Neste caso,
3 −4 1
A (0)
= 1 2 2
4 0 −3
(0)
Etapa 1: permutam-se as linhas 1 e 3, pois o pivô é A31 = 4.
4 0 −3 0 0 1
3 −4 1 1 0 0
4 0
−3
A(1) = 1/4 2 11/4
3/4 −4 13/4
4 0 1 0 0
−3
′(1)
A = 3/4 −4 13/4 , P(1) = 0 0 1 e A′(1) = P(1) A(1)
1/4 2 11/4 0 1 0
4 0
−3
A(2) = 3/4 −4 13/4
1 0 0 4 0
−3
L = 3/4 1 0 e 0 −4 13/4 .
0 0 1 3 −4 1 4 0 −3
A′ = PA = 1 0 01 2 2 = 3 −4 1
0 1 0 4 0 −3 1 2 2
pk = i, i = 1, . . . , n ,
40 y [1] = c [1]
41 para k = 2 : n
42 s = 0
43 para j = 1 : k -1
44 s = s + a [ k ][ j ]* y [ j ]
45 y[k] = c[k] - s
46
47 // Sistema Ux = y
48 x [ n ]= b [ n ]/ a [ n ][ n ]
49 para k = n -1 : 1
50 s = 0
51 para j = k +1 : n
52 s = s + a [ k ][ j ]* x [ j ]
53 x [ k ] = ( b [ k ] - s ) / a [ k ][ k ]
Avaliação de erros
No sistema Ax = b, onde
a11 a12 a1n x1 b1
a21 a22 a2n x2 b2
A= , x = , b = ,
an1 an2 ann xn bm
o erro da solução é dado por e = x − x̄.
Procedimento para determinação do erro:
1 Determinar b̄ = Ax̄;
2 Estimar o resíduo, dado por r = b − b̄ = b − Ax̄.
Temos que
r = b − b̄ = Ax − Ax̄ = A (x − x̄) = Ae .
Verifica-se que:
▶ O resíduo não é o erro, apenas uma estimativa do mesmo;
▶ Quanto menor for o resíduo, menor será o erro.
−0, 0002
−0, 0010
Vê-se pelo resíduo que a precisão alcançada não foi satisfatória.
Ax(1) = b ⇒
A x (0)
+δ (0)
=b⇒
Ax(0) + Aδ (0) = b ⇒
Aδ (0) = b − Ax(0) ⇒
Aδ (0) = r(0)
Retornando-se ao exemplo,
1, 5 5, 4 3, 3 −0, 0002
δ1
4, 2 2, 3 4, 5δ2 = −0, 0006 ,
2, 7 5, 7 7, 8 δ3 −0, 0010
o vetor de correção encontrado é δ (0) = (0, 0000, 0, 0001, 0, 0002)t .
Desta forma, a solução melhorada será dada por
3, 1252
−1, 1916
cujo novo resíduo é dado por
0, 0000
0, 0000
Aδ (1) = r(1)
Acha-se assim, sempre uma solução melhorada e com resíduo
tendendo a zero.
Métodos iterativos
Funcionamento
lim x(k) = α
k→∞
Vantagem
Menos suscetíveis ao acúmulo de erros de arredondamento do que
métodos diretos, como o método de eliminação de Gauss.
Critério de parada:
d (k)
dr(k) = (k) < ε
maxi xi
10x1 + 2x2 + x3 = 7
x1 + 5x2 + x3 = −8
2x1 + 3x2 + 10x3 = 6
Determinação de C e g:
0 7/10
−1/5 −1/10
C = −1/5 0 −1/5 e g = −8/5 .
0, 96
0, 94
▶ A partir dos valores obtidos,
(1) (0) (1) (0) (1) (0)
x1 − x1 = 0, 26 x2 − x2 = 0, 26 x3 − x3 = 0, 34
d (1) 0, 34
dr(1) = = ≈ 0, 1828 > ε
max (|0, 96|, | − 1, 86|, |0, 94|) 1, 86
Prosseguindo:
0, 978
0, 12
x (2)
= Cx (1)
+ g = −1, 98 dr(2) = = 0, 0606 > ε ,
1, 98
0, 966
0, 9994
0, 0324
x(3) = Cx(2) + g = −1, 9888 dr(3) = = 0, 0163 < ε .
1, 9888
0, 9984
Logo, a solução aproximada x̄ do sistema por Gauss-Jacobi é
0, 9994
0, 9984
Observação
Embora se considerou x(0) = g, a escolha é arbitrária, pois a convergência
ou não do método independe da aproximação inicial escolhida.
GBC051 Comp. Cient. Otim. 2020/2 96 / 120
Método de Gauss-Seidel
1
(k+1) (k) (k)
x1 = b1 − a12 x2 − a13 x3 − · · · − a1n xn(k)
a 11
1
(k+1) (k+1) (k)
= b2 − a21 x1 (k)
− a23 x3 − · · · − a2n xn
x2
a
22
1
(k+1) (k+1) (k+1) (k)
x 3 = b3 − a31 x1 − a32 x2 − a34 x4 − ··· − a3n xn(k)
a33
.. ..
. .
1
(k+1) (k+1) (k+1)
(k+1)
=
xn
bn − an1 x1 − an2 x2 − · · · − an,n−1 xn−1
a
nn
5x1 + x2 + x3 = 5
3x1 + 4x2 + x3 = 6
3x1 + 3x2 + 6x3 = 0
Iteração k = 0:
(1)
x1 = 1 − 0 − 0 = 1
(1)
x2 = 1, 5 − 0, 75 × 1 − 0 = 0, 75
(1)
= −0, 5 × 1 − 0, 5 × 0, 75 = −0, 875 .
x3
Portanto, x(1) = (1, 0, 75, −0, 875)t .
Diferença:
(1) (0) (1) (0) (1) (0)
x1 − x1 = 1 x2 − x2 = 0, 75 x3 − x3 = 0, 875
d (1)
dr(1) = =1>ε
max (|1|, |0, 75|, | − 0, 875|)
d (2) 0, 2
dr(2) = = ≈ 0, 1951 > ε
max (|1, 025|, |0, 95|, | − 0, 9875|) 1, 025
Prosseguindo:
1, 0075
−0, 9993
1, 0075
x̄ = x(3) = 0, 9912 .
−0, 9993
A=L+D+R
onde:
▶ L: Matriz triangular inferior com diagonal nula (contém todos os
elementos aij de A abaixo da diagonal, e entradas restantes nulas);
▶ D: Matriz diagonal com dii = aii ̸= 0, i = 1, . . . , n;
▶ R: Matriz triangular superior com diagonal nula (contém todos os
elementos aij de A acima da diagonal, e entradas restantes nulas).
Portanto, obtém-se, no sistema original,
Ax = b ⇒ (L + D + R)x = b .
Dx = b − Lx − Rx .
0 0
a /a
21 22
L1 = a31 /a33 a32 /a33 ,
an1 /ann an2 /ann an,n−1 /ann 0
0 a12 /a11 a13 /a11
a1n /a11
a23 /a22 a2n /a22
R1 = .
an−1,n /an−1,n−1
0 0
De Ax = b:
D(L1 + I + R1 )x = b ⇔
(L1 + I + R1 )x = D−1 b ⇔
x = −L1 x − R1 x + D−1 b .
Logo,
Critério de Sassenfeld
n
1
β1 =
X
· |a1j | ,
|a11 | j=2
i−1 n
1
βi = |aij | · βj + |aij | , i = 2, . . . , n ,
X X
·
|aii | j=1 j=i+1
M = max βi
1≤i≤n
−0, 1x1 − 0, 2x2 + x3 + 0, 2x4 = 1
0, 4x1 + 1, 2x2 + 0, 8x3 + 4x4 = −10
1
β1 = (1 + 0, 2 + 0, 2) = 0, 7 ,
2
1
β2 = (0, 6 × 0, 7 + 0, 6 + 0, 3) = 0, 44 ,
3
1
β3 = (0, 1 × 0, 7 + 0, 2 × 0, 44 + 0, 2) = 0, 358 ,
1
1
β4 = (0, 4 × 0, 7 + 1, 2 × 0, 44 + 0, 8 × 0, 358) = 0, 2736 .
4
Logo,
j=1,j̸=i
Exercícios I
3, 0 −1, 0 1, 0 5, 0
x1
0, 5 2, 0 1, 0x2 = −0, 5
4, 0 −2, 0 6, 0 x3 12, 0
5 Considere o sistema dado por
2, 0x + 5, 0y = −3, 0
(
3, 0x + 1, 0y = 2, 0
Exercícios III
6 O sistema dado por
5 2 −2 1
x1
3 3 −1x2 = 0 .
1 2 5 x3 0
5 1 2 0
x3
−2 5 2x1 = 1 .
−1 3 3 x2 0
Exercícios V
1 1 1
A = 2 1 −1 .
3 2 0
10 Aplique analítica e graficamente os métodos de Gauss-Jacobi e
Gauss-Seidel no sistema:
2x1 + 5x2 = −3
(
3x1 + x2 = 2
3, 1 −1, 3 1, 2 5, 5
x1
0, 5 2, 2 1, 1x2 = 0, 77 .
4, 2 −2, 0 6, 0 x3 13
12 Refinamento do item anterior:
1 Calcule o resíduo da solução obtida.
2 É necessário resolver um sistema linear para obter o vetor de correção.
Mostre que é possível empregar Gauss-Seidel para resolver tal sistema.
3 Calcule uma iteração do método de Gauss-Seidel, partindo da
aproximação inicial (0, 0, 0)t e obtenha uma nova solução para o
sistema dado.
Referências