SISTEMA DE EQUAÇÕES ALGÉBRICAS LINEARES - DCA

Propaganda
SISTEMA DE EQUAÇÕES ALGÉBRICAS LINEARES
Introdução
São inúmeros os problemas de engenharia onde se recai na
solução de um sistema de equações lineares.
Como exemplos, podemos citar:
• O cálculo de esforços em problemas de estática;
• O cálculo de tensões e correntes em um circuito elétrico
composto por elementos lineares;
• O balanço de massa em sistemas físicos lineares;
• A solução de equações diferenciais lineares por métodos
numéricos como elementos finitos e diferenças finitas,
etc.
Formulação
Forma geral:
a11 x1 + a12 x2 + ... + a1n x n = b1
a 21 x2 + a 22 x2 + ... + a 2n x n = b2
a 31 x1 + a 32 x2 + ... + a 3n x n = b3
M
M
M
M
a n1 x1 + a n2 x 2 + ... + a nn x n = bn
onde a e b são constantes e n é o número de equações.
Representação Matricial
 a11 a12 ... a1n  x1   b1 
   

...
a
a
a
 b2 
 21
22
2 n  x2 
 .
. .. .  .  =  . 
   

.
.
.  .   . 
 .
   
a
 n1 an 2 ... ann  xn   bn 
Ax = b
Classificação dos Sistemas
2 x1 + x 2 = 6
Incompatível. Ex.: 4 x + 2 x = 18
2
 1
Determinado - solução única

- Compatível Indeterminado - diversas soluções.
Homogêneo (b = 0)

Métodos de Solução
Classificam-se, numericamente, em Diretos e Iterativos.
Os métodos mais comuns são:
Método de Gauss

− Diretos Método da Eliminação de Jordan
Fatoração LU e Choleski

Método de Jacobi
− Iterativos 
Método de Gauss − Seidel
Método da Triangulação de Gauss
Principio do método:
• Dado um sistema linear Ax = b, obter, através de
transformações elementares um sistema equivalente, Tx = c,
onde T é uma matriz triangular superior.
• Em seguida calculam-se os elementos do vetor x através de um
processo de substituição reversa.
Transformações Elementares
• Troca da ordem das equações;
• Multiplicação de uma equação por um real não nulo;
• Substituição de uma equação por uma combinação linear dela
mesma com uma outra;
Substituição Reversa
Dado um sistema na forma triangular superior:
1
  x1  b1( n −1) 

0 1
 M 
≠
0
M


   

M 0 O
⋅ M  = M 


   
M
M
M
O
M


   
(
n
−
1
)
0 0 L 0 1  xn  bn 
A última equação permite determinar diretamente:
x n = bn( n −1 )
A penúltima equação fica:
x n −1 + a n( −n1−,1n) ⋅ x n = bn( −n1−1 )
x n −1 = bn( −n1−1 ) − a n( −n1−,1n) ⋅ x n
∴
Generalizando, tem-se:
xj = b
( n −1 )
j
−
n
∑a
k = j +1
( n −1 )
jk
xk
Triangulação
Exemplo:
2 3 − 1  x1   5 
 2 x1 + 3 x2 − x3 = 5


   
4 x1 + 4 x2 − 3x3 = 3 ⇔ 4 4 − 3  x2  =  3  ⇔ A.x = b
2 x − 3x + x = −1
2 − 3 1   x3  − 1
2
3
 1
1º Etapa:
• Escreve-se a matriz aumentada do sistema (B = [A | b] ):
B( 0 )
2 3 − 1 5 
= 4 4 − 3 3 
2 − 3 1 − 1
(0)
• Tomando-se o elemento da diagonal principal, a11 ,
como pivô, encontra-se os multiplicadores para as
segunda e terceira linhas.
m
(0)
21
(0)
a 21
4
= − ( 0 ) = − = −2
2
a11
m
(0)
31
(0)
a31
2
= − ( 0 ) = − = −1
2
a11
• Substituem-se as segunda e terceira linhas pela seguinte
combinação linear entre cada uma delas e a primeira
linha:

[2 3 − 1 5]
L1(1) = L1( 0)
 (1)
(0) (0)
(0)
 L2 = m21 L1 + L2 ⇒ [− 4 − 6 2 − 10] + [4 4 − 3 3]
 L(1) = m ( 0 ) L( 0 ) + L( 0 )
[− 2 − 3 1 − 5] + [2 − 3 1 − 1]
31 1
3
 3
B(1)
2 3 − 1 5 
= 0 − 2 − 1 − 7
0 − 6 2 − 6
2º Etapa:
(0)
• Toma-se agora o elemento da diagonal principal, a22 ,
como pivô e encontra-se o multiplicador para a terceira
linha com relação à segunda.
(1)
32
m
(1)
a32
−6
= − (1) = −
= −3
a22
−2
• A nova terceira linha é dada por:

[2 3 − 1 5]
L1( 2 ) = L1(1)

[0 − 2 − 1 − 7]
L(22 ) = L(21)
⇒

 L( 2) = m (1) L(1) + L(1) [0 6 3 21] + [0 − 6 2 − 6]
32 2
3
 3
B( 2 )
2 3 − 1 5 
= 0 − 2 − 1 − 7
0 0
5 15 
Procedendo a substituição reversa obtêm-se a solução do
sistema triangular superior representado pela matriz aumentada B(2):
B( 2 )
2 3 − 1 5 
2 x1 + 3x2 − x3 = 5
 x1  1

= 0 − 2 − 1 − 7 ⇔  − 2 x2 − x3 = −7 ⇒  x2  = 2

0 0
 x3  3
5 15 
5 x3 = 15

Esta é também a solução do sistema original, dado
inicialmente.
Uma forma prática e compacta de realizar a triangulação é através
da construção de tabelas.
Linha
Multiplicador
4
5
6
Vetor b Transformação
− 4 2 = −2
2
4
3
4
−1
−3
5
3
− 2 2 = −1
2
−3
1
−1
0
−2
−1
−6
2
−7
−6
→ 2 L1 + L2
→ −1L1 + L3
15
→ −3 L4 + L5
1
2
3
Matriz A
− (− 6 − 2 ) = −3 0
0 5
Técnicas para Aprimorar a Solução
Essas técnicas são úteis não apenas para o método da
triangulação, mas também para métodos similares.
1. Uso de mais dígitos significativos (dupla precisão);
2. Pivotamento: Identificar se existem pivôs de pequeno valor e
trocar linhas e/ou colunas de forma a ter os elementos da
diagonal diferentes de zero e de maior valor absoluto. Isto
minimiza o erro de arredondamento.
3. Escalonamento: Minimiza o erro de arredondamento. Uma
matriz triangular cujos elementos da diagonal principal são
diferentes da unidade, pode ter cada uma de suas linhas
divididas pelo seu respectivo elemento na diagonal principal.
Obs.: Em alguns problemas é necessário um estudo de
condicionamento da matriz e um processo de otimização da solução
se faz necessário.
Método de Jordan
Dado um sistema, o Método de Jordan consiste em obter,
através de transformações elementares, um sistema equivalente cuja
matriz A seja diagonal.
 x1 + x2 + 2 x3 = 4
1 1 2   x1   4 

2 x1 − x2 − x3 = 0 ⇔ 2 − 1 − 1  x2  =  0  ⇔ A.x = b

Ex.:
 x − x − x = −1
1 − 1 − 1  x3  − 1
 1 2 3
Lin
1
2
3
4
5
6
7
8
9
Multiplic.
2
= −2
1
1
− = −1
1
−
1 1
=
−3 3
−2
2
−
=−
−3
3
Matriz A
1
2
1
1
2
−1 −1
−1 −1
1
0
1
−3
2
−5
0
−2
−3
13
= −1
13
1
0
−5
−
= 15
13
0 −3
−5
0
13
−
−
10
11
1
12
0
0
0
0 −3
0
13
Vet. b
Transformação
4
0
−1
4
−8
−5
43
−8
13
→ L1
→ −2 L1 + L2
→ −1L1 + L3
→ (1 3)L5 + L4
→ L5
→ (− 2 3)L5 + L6
→ −1L9 + L7
0
1
−3
13
13
→ L9
0
→ 15L9 + L8
Cálculo de Determinantes
Uma maneira simples de calcular o determinante de uma
matriz A consiste em encontrar uma matriz B, triangular ou
diagonal, que seja obtida a partir de A, através de transformações
elementares.
Demonstra-se que, se A e B são equivalentes, então:
det( A ) = det( B )
Ex.:
2 3 − 1 → L1
A = 4 4 − 3 → L2 − 2 L1 ⇒
2 − 3 1  → L3 − 3L2
2 3 − 1 → L1
A = 0 − 2 − 1 → L2
⇒
0 − 6 2  → L3 − 3L2
2 3 − 1
B = 0 − 2 − 1
0 0
5 
⇒
det( A) = det( B) = 2 ⋅ (−2) ⋅ 5 = −20
det( A) = det( B) = 2 ⋅ (−2) ⋅ 5 = −20
Método da Fatoração LU
Seja a matriz A dada abaixo, que deve ser fatorada em duas
matrizes triangulares, uma superior e a outra, inferior.
 a11
 a
 21
A = L ⋅U =  M

 an 1
Sendo
l11
l21
0
l22
M
ln 2
0
0
O M
L lnn








L=



l n1


U=



u11 u12 L u1n 
0 u 22 L u 2 n 

M
M O M 

0
0 L u nn 
M
L
L
a12
a 22
M
an 2
L a 1n 
L a2 n 

O M 

L a nn 
Efetuando o produto L ⋅U e igualando os elementos da matriz
produto aos elementos correspondentes em A, armam-se n2
equações, envolvendo os elementos de L e de U.
Observa-se, entretanto, que cada uma das matrizes triangulares
n2 − n
+ n elementos desconhecidos, definindo um total de
possui
2
n2+n incógnitas, número esse maior que o número de equações.
Isso significa que infinitas matrizes L e U são soluções do
problema de fatoração.
Para contornar o problema de que o número de incógnitas é
maior que o número de equações, costuma-se atribuir valores aos
elementos da diagonal de uma das matrizes triangulares.
Apresentamos a seguir a solução proposta por Banachiwitcz.
A fim de simplificar os cálculos, atribuem-se:
lii = 1,
i = 1,L, n
Com isso, fica definida a 1ª linha da matriz U, de acordo com
as equações abaixo:
a11 = 1 ⋅ u11
a = 1 ⋅ u
 12
12

 M
a1 n = 1 ⋅ u1 n

Uma vez definido o valor de u11, pode-se então calcular toda a
1ª coluna da matriz L, através das equações definidas pelo produto
das linhas de L pela primeira coluna de U:
l11 = 1
l = a u
 21
21
11

M

ln 1 = an1 u11

Multiplicando a 2ª linha de L pela 2ª coluna de U, de acordo
com:
u 22 = a 22 − l 21u 12
Analogamente, multiplicando as linhas restantes de L pela 2ª
coluna de U, determinam-se os elementos restantes da 2ª coluna de
L, i. e., os elementos situados abaixo de l22 = 1, de acordo com:
la =
1
(ai 2 − li1u12 ),
u22
i = 3,L, n
Notar que os elementos da 2ª coluna de L não dependem dos
elementos da 2ª linha de U, exceto do elemento da diagonal, u22.
Aplicação à solução de sistemas de equações lineares:
Seja o sistema:
Ax = b
Fatorando a matriz A = L ⋅U, tem-se:
L⋅(Ux) = b
Definindo
Ux = y
tem-se:
Ly = b
que é um sistema triangular, podendo ser resolvido por substituição
direta, para encontrar y.
Em seguida, resolve-se outro sistema
triangular:
Ux = y
através de substituição reversa, para finalmente encontrar o vetor x.
Ex.: Resolver o sistema abaixo, através do método da fatoração LU:
8 − 1  x1  27 
− 3 5
 2 − 1 5 0   x  15 

⋅ 2 =  
 10 − 5 0 5   x3   20

    
2 − 1 1   x4   9 
4
As matrizes L e U serão armazenadas no mesmo espaço de
memória reservado para a matriz A. Assim, após o 1º passo, tem-se:
A ( 1)
5
8 − 1
 −3
 −2 3 −1 5

0

=
− 10 3 − 5 0
5


2 −1 1 
−4 3
Em seguida, calculam-se:
u 22 = a 22 − l 21u 12 = 7 3

( I )u 23 = a 23 − l 21u 13 = 31 3
u = a − l u = − 2 3
24
21 14
 24
1

[a 32 − l 31 u 12 ] = 5
l
=
32

u

22
( II )
l = 1 [a − l u ] = 26 7
 42 u 22 42 41 13
Com isso, fica definida:
A(2)
5
8
−1 
 −3
 − 2 3 7 3 31 3 − 2 3

=
− 10 3
5
0
5 


1 
 − 4 3 26 7 − 1
Notar que, nesse estágio dos cálculos (e, desde o princípio),
existe um elemento nulo na diagonal. Isso não se constitui um
obstáculo para a continuidade do processo de fatoração.
A
determinação da 3ª linha de U e da 3ª coluna de L é feita através das
equações:
u 33 = a 33 − l 31u 13 − l 32 u 23 = −25
u 34 = a 34 − l 31 u 14 − l 32 u 24 = 5
l 43 =
1
[a 43 − l 41 u 13 − l 42 u 23 ] = 201 175
u 33
Dessa forma, a matriz A modificada, após o 3º passo da
fatoração, fica:
A (3)
5
8
−1 
 −3
−2 3 7 3
31 3
− 2 3

=
− 10 3
5
− 25
5 


1 
 − 4 3 26 7 201 175
Finalmente, o elemento u44 é determinado através de:
u 44 = a 44 − l 41u 14 − l 42 u 34 = − 126 35
A matriz A fatorada, contendo os elementos de U, bem como
os elementos de L abaixo da diagonal, fica:
A ( 4)
−1 
5
8
 −3
−2 3 7 3

31
3
−
2
3

=
− 10 3

5
− 25
5


 − 4 3 26 7 201 175 − 126 35
Resolvendo Ly = b, através de substituição direta, obtém-se:
 27 
 33 

y=
 − 55 


− 504 35 
Resolvendo agora Ux = y, através de substituição reversa,
determina-se:
 1
2
x= 
3
 
4 
Métodos Iterativos
Introdução
Considere o sistema de equações lineares Ax = b, cuja solução
é o vetor x*.
Esta solução deve ser obtida como o limite para o qual
converge a sequência {x (1) , L , x (t ) , L}.
Tal sequência é gerada a partir de uma aproximação inicial x(0)
e obedece a uma regra preestabelecida.
Esse procedimento caracteriza os métodos iterativos.
Forma Geral
Os métodos iterativos para solução de sistemas lineares
apresentam a seguinte forma geral:
x = Cx + d
onde C é uma matriz (n
X
n) e d um vetor (n
X
1). Assim, partindo
de uma aproximação de x, digamos x(t), pode-se obter uma melhor
aproximação x(t+1), através de:
x ( t + 1) = Cx ( t ) + d
Método de Jacobi
Utilizando a equação de iteração e as matrizes C e d definidas
em anteriormente, define-se o método de Jacobi através dos
seguintes passos:
a) Estima-se uma aproximação inicial x(0) para x;
b) Geram-se aproximações sucessivas x(t), a partir da equação de
iteração, até que:
max x i( t
i
+1 )
− xi( t ) < ε
onde ε é a tolerância predefinida.
Um critério adicional de parada pode ser ainda introduzido, baseado
no estabelecimento de um número máximo admissível de iterações.
Note que:

 b1
b2
K
d = 
a
a
22
 11


a12


0
−

Ax = b
a11
 

⇒
x = Cx + d  
− a21
0
C
=

a

22
 M
M


an1
an 2

−
−


ann
 ann

bn 

ann 
a1n 
a11 

a2 n 
L −
a22 
O
M 

L
0 

L −
Método de Gauss-Seidel
Esse método utiliza sempre as últimas atualizações de cada
variável, na equação de iteração.
( t +1)
i
x
n
 i −1

( t +1)
= d i + ∑ cik xk − ∑ cik xk( t ) 
k =i +1
 k =1

Em geral, esse procedimento acelera a convergência do
sistema.
O método é adequado para sistemas com um número elevado
de equações e atendendo a condição da matriz A ser diagonalmente
dominante.
Isto se aplica, por exemplo, a sistemas de equações lineares
gerados quando da aplicação do método das diferenças finitas ou no
cálculo de splines.
Uma das variações do método é o chamado método da sobrerelaxação, com equação iterativa mostrada abaixo:
x (k +1) = λ x G(k-+S1) + (1 - λ )x (k)
onde λ ( 0 < λ < 1 ) é um fator peso com finalidade de acelerar a
convergência.
Convergência dos métodos iterativos
Seja o sistema:
x = Cx + d
Subtraindo dessa equação a equação de iteração, fica:
(
x (t +1) − x = C x (t ) − x
)
Definindo-se o erro da k-ésima iteração com:
e( t ) = x ( t ) − x
tem-se
e ( t +1) = Ce ( t )
Teorema: Partindo da equação anterior, demonstra-se que:
n
A condição
∑C
i =1
ij
≤ L < 1 , j = 1, L , n é suficiente para que
x (t +1) = Cxt + d convirja. Como consequência, o critério definido por
n
aii > ∑ aij , i = 1, L , n garante a convergência.
j =1
j ≠i
A desigualdade apresentada no teorema, define o “critério das
linhas” e a matriz que satisfaz a esse critério é conhecida como
“diagonal dominante”.
Download