Você está na página 1de 20

2 SISTEMAS DE EQUAÇÕES LINEARES

2.1 Introdução

A solução de sistemas lineares é uma ferramenta matemática muito importante na


engenharia. Normalmente os problemas não-lineares são solucionados por ferramentas
lineares.
As fontes mais comuns de problemas de equações lineares algébricas aplicados à
engenharia incluem:

a) aproximação de equações diferenciais ou integrais contínuas através de sistemas


discretas e finitos;
b) linearização local de sistemas de equações não lineares;
c) ajuste de curvas em dados.

2.2 Representação do Sistema Linear

Um sistema linear é um conjunto de n equações lineares do tipo:

a11 x1 + a12 x 2 + a13 x 3 + .......... ..a1n x n = b1


a x + a x + a x + .......... ..a x = b


21 1 22 2 23 3 2n n 2

.......... .......... .......... .......... .......... .......... ......


.......... .......... .......... .......... .......... .......... ......

a n1 x1 + a n 2 x 2 + a n 3 x 3 + .......... ..a nn x n = bn

Este sistema pode ser representado através de uma representação matricial da forma:

Αx = b

onde:
A – matriz de coeficientes de ordem n × n
x – vetor de incógnitas de ordem n ×1
b – vetor independente de ordem n ×1

Os tipos de solução do sistema dependem da matriz A:

A não-singular ⇒ { solução única

1
 i n if n i t sa os l u ç õ e s
A singular ⇒ 
 s i s t e imn ca o m epl a t í v

2.3 Métodos de Solução

2.3.1 Métodos Diretos – Fornece solução “exata” após um número finito de operações.
Solução assegurada para matriz de coeficientes não-singular.

 R ge r ad e C r a m e r
 I n v e dr sa Mã o a tAr i z

M é t oD d i or se  t o s
 E l i mi n a çd ãe Go a u s s
 F a t o rL a Uç ã o

2.3.2 Métodos Iterativos – Processo de aproximação iterativa da solução. A convergência


é assegurada sob certas condições.

2
  G − Ja au cs os b i
 
 E s i t o a G s c − Sai oeu ni s d ás e r l
  S o ab ç r ãe or e l a x

M éI t eo rd a o t si v o  G s r Ca do in e j nu t g e a d o
  G r Ba di co i oe n tj eu g a d
 N − Eã so i t oa sc i o n á r
  G r i ac do E in es dj nt u ao t g be aBi ld i oz a
  e . t. c

2.3.3 Regra Cramer

A solução de cada componente do vetor de incógnitas é dado pela relação de dois


determinantes:

∆i
xi =

onde:

∆ = determinante da matriz A

∆i = determinante da matriz A com a iésima coluna substituída pelo vetor independente b.

Exemplo da ordem de grandeza do tempo de solução para um sistema de ordem 20.



xi = i

Operações necessárias:
a) Cálculo de 21 determinantes, cada um de ordem 20.

O determinante de uma matriz Α é definido como uma soma de termos a1−a 2 −a 3− ......
a n − onde o símbolo – representa subscritos de permutações de 1 a n. No exemplo a soma

3
tem 20! termos cada qual requerendo 19 multiplicações. Assim, a soluções do sistema
requer 21 x 20! x 19 multiplicações, além de um número 21 x 20! de somas que será
desconsiderado.

Seja um computador com capacidade de 2000 Mflops.

2.000.000.000 operações por segundo.

Tempo de Solução:

21 x 20! x19
= 15604,55 anos
2.000 .000 .000 x3600 x 24 x360

Strang 1993 - “If world be cvazy to solve equation this way”.

O método de Cramer também possui pouca estabilidade numérica. [Highan]. (erros de


arredondamento excessivos). (forward estability)

2.3.4 Inversão da Matriz A

A solução do sistema linear pode ser dada por:

x= A −1 b

Entretanto, na grande maioria de problemas práticos é desnecessário e mesmo


desaconselháveis o cálculo da matriz inversa A −1 .
Veja o que acontece neste exemplo simples com uma equação:
7 x = 21
A melhor maneira de obter a solução é por divisão,
21
x= =3
7
O uso da matriz inversa levaria a (precisão 6 dígitos) :
( )
x = 7 −1 ( 21 )
b
x = ( 0,142857 )( 21) = 2,99997

A inversa requer mais aritmética (uma divisão e uma multiplicação em vez de uma só
divisão), além de produzir uma resposta menos exata.

2.3.5 Eliminação de Gauss


Composta de duas etapas básicas:
1. Eliminação direta de variáveis
2. Substituição inversa

4
Ax=b A x = b

Eliminação de variáveis (triangularizações)

U x = b’
U x = b’

Números de operações necessárias para obter soluções, considerando a matriz A cheia.

a) Solução por Inversão

x= A −1 b

1. Obtenção da matriz inversa utilizando um algoritmo eficiente de matriz cheia

n 3 operações (produto)

2. Obtenção de x pelo produto de Α−1 com b

n 2 operação (produto)

b) Solução por eliminação de Grauss


1. Redução triângulos
Ux=b

U
b n3
x = ~ 3
operações de produção
0

2. Substituição Inversa.

5
η2
operações de produto
2

Exemplo Numérico

3 2 4   x1  1 
1 1 2 
 x  2
   2 =  
4
 3 −2 3
 x 3   

Α ( 0)

Estágio 1
pivô a11 = 3

Multiplicadores
Μ 21 = 1
3
Μ 31 = 4
3

3 2 4  1
   x1   
2 . x 
0 3 1   2 = 5 
 1 − 223   x 3   53
 0 3 3   3 
Α ( 1)

Estágio 2

Pivô a 22 = 1
3
1
Multiplicador Μ 23 = 3 =1
1
3
3 2 4  x1   1 
0 1 2  x   5 
 3 3  2  =  3
0 0 − 8  x 3   0 
 

6
Substituição Inversa

. –8 x 3 = 0 x3 = 0
1 x +2 x =5 x2 =5
3 2 3 3 3
3 x1 + 2 x 2 + 4 x 3 = 1 x1 = −3

2.3.6 Estratégia de Pivoteamento

(a) Evitar pivôs nulos


(b) Evitar pivôs próximos de zero (multiplicadores elevado,
ampliação de erros de arredondamento)

Exemplo:

Usando aritmética de 3 dígitos

 0,0 0 x01 +2 2 x 2 = 5

 2 x1 + 2 x 2 = 6

0.2 x10 −3 0.2 x10 1   x1  0.5 x10 1 


 1    =  1
 0,2 x10 2.2 x10 1   x 2  0.6 x10 

pivô 0.2 x 10 −3
0.2 x10 1
multiplicadores −3
= 1x10 4 = 0.1x10 5
0.2 x10

0.2 x10 −3 0.2 x10 1   x1   0.5 x10 1 


   =  5
 0 − 0.2 x10 5   x 2  − 0.5 x10 

( )( )
a 22 = 0.2 x10 1 − 0.1x10 5 0.2 x10 1 = −0.2 x10 5
b2 = 0.6 x10 −0.5 x10 x0.1x10
1 1 5
= −0.5 x10 5

0 
x =  Não satisfaz o sistema
2.5

Com pivoteamento

7
 0.2 x10 1 0.2 x10 1   x1  0.6 x10 1 
 −3    =  1
0.2 x10 0.2 x10 1   x 2  0.5 x10 

0.2 x10 −3
pivô 0.2 x10 1 mult. = 0.1x10 −3
0.2 x10 1

0.2 x10 1 0.2 x10 1   x1  0.6 x10 1 


 
0.2 x10 1 
 x  = 0.5 x10 1 
 0  2  

0.2 x10 1 −0.2 x10 1 x 0.1x10 −3 = 0.2 x10 1 x 2 = 2,5


Solução de sistema
0.5 x10 −0.1x10
1 −3
x 0.6 x10 −0.5 x10
1 1 x1 = 0,5

Resumindo: Pivoteamento parcial consiste em adotar como pivô no passo (K) da


eliminação de Grauss o maior elemento (em valor absoluto) na parte não reduzido da
coluna. As linhas contendo esses elementos devem ser intercambiadas.

OBS: Seja x* a solução calculada de Ax=b e x a solução exata (teórica). Como os


elementos de x não são números representados numa aritmética de ponto flutuante, deve
haver diferença com relação a x * . Normalmente utiliza-se as seguintes medidas para
auferir esta diferença.

Erro: e = x - x*
Resíduo: r = || b – A x * || (dependente de escala, multiplicando-se A e b
por uma constante α , o resíduo também vai
ser multiplidado por α )

b − Ax *
Resíduo relativo:
A x*

Da teoria de matrizes sabemos que, sendo A não singular e se uma medida acima é nula, a
outra também o será, mas ambos não são necessariamente igualmente pequeno.

2.3.7 Fatoração LU

Ax = b A = LU
L – triangular inferior
U – triangular superior

Vamos observar o exemplo introdutório

8
Pivo = 3
3 2 4
(0) 
Α 1 1 2 mult. Μ 21 = 1
 3

4 3 2

Μ 31 =4
3

3 2 4 
 
Α ( 1)  0 1 2  pivo = 1 mult. Μ 32 = 1
 13 − 223  3
 0 3 3 

3 2 4 
Α ( 2) 0 1 2 
 3 3
 0 0 − 8

Observe que a matriz Α ( 1) pode ser obtida de Α ( 0 ) pré-multiplicado-a por uma matriz
conveniente, no caso:

 1 0 0
 
 1 0 0 1
 − 3 1 0
Μ1 = 
− Μ21 1 0
 − 4 

− Μ31 0 1
  3 0 1 
=
Da mesma forma a matriz Α ( 2 ) é obtida pré-multiplicando-a por:

9
1 0 0 1 0
0
Μ( 2 ) = 0 1 0 = 0 1 0
0 − Μ32 1 0 −1 0

Assim ,
Α( 2 ) = Μ2 Μ1 Α( 0 )

Α( 2 ) é uma matriz triângular sup erior .


Α( 0 ) = Μ1−1 Μ−1 ( 0)
2 Α
−1 −1 a ( 2)  a1n 
( 2)
 1 0 0 1 0 0  11 
( 0) 
Α = − Μ21 1 0 0 1 0  ( 2)
a 22  
 
− Μ31 0 1 0 − Μ32 1  ( 2) 
 0 a nn 
 

a ( 2)  a1n 
( 2)
 1 0 0 1 0 0  11 
( 0) 
Α = Μ21 1 0 0 1 0  ( 2)
a 22  
 ( 2) 
 Μ3 0 1 0 Μ32 1   0 a nn 
 

a ( 2)  a1n 
( 2)
 1 0 0  11 
Α( 0 ) = Μ21 0  ( 2)
1 a 22  
 ( 2) 
Μ31 Μ32 0  0 a nn 
 

Α( 0 ) = L U

10
A matriz L é uma matriz triangular inferior, pois é resultante do produto de matrizes
triangulares inferiores elementares.

A decomposição LU não é única..

Seja D uma matriz diagonal não-singular qualquer, então:

L = LD é triangular inferior
U = D −1 U é triangular superior
A = LU = L DD −1 U = L U

De modo que L U também é uma decomposição LU. Isto sugere a possibilidade de


se normalizar as decomposições LU.

Seja a transformação A= LDU

Onde: L é triangular inferior unitário (diagonal)


D é diagonal
U triangular superior unitária (diagonal)

Pode-se mostrar que a decomposição LDU de uma matriz A é única, se suas submatrizes
principais guias Α[1] , Α[ 2 ] ,......., Α[ n −1] são todas não-singulares.

 a11 a12 .......... ... a1 n −1 a1n 


a a 22 .......... .. a 2 n −1 a 2n 
 21 
Α ........ .......... .......... ... ........ ...... 
a n −11 a n −12 .......... .... a n −1 n −1 a n −1 n 
 
 an1
 an 2 .......... .. an n −1 an n  

isto garante pivôs não nulos.


Α = L1 D1 U 1 Α = L2 D2 U 2
L1 D1 U 1 = L2 D 2 U 2

L1−1 existe
U 2−1 existe
D1−1 existe
L1 Triang . inf erior unitário
U 2 Triang .Superior unitário
D1−1 L1−1 L1 D1 U 1 U 2−1 = D1−1 L1−1 D 2 U 2 U 2−1
U 1 U 2−1 = D1−1 L1−1 L 2 D 2 → triang . sup erior unitário

11
Produto de 2 matrizes triang. sup. unitário resulta matriz triang sup. unitário. Isto força o
segundo membro da equação a ser diagonal, já que é triangular inferior ⇒ Identidade.

U 1 U 2−1 = I U 1 =U 2 da mesma forma pode-se chegar L1 =L 2 e D1 =D 2 .

Diferentes decomposições LU:

Α =( LD ) U =L U → onde: U é triângular superior unitário – Decomposição de


Crout
Α=L ( DU ) =LU → onde: L é triângular superior unitário – Decomposição de
Doolittle

Se A for simétrica:
Α= LDL T
1 1
se D > 0 D= 2 D 2
 1  1 
2   D 2U  = L L t →Decomposiç
A =
 LD   ão de Cholesky
  

Algoritmo para Decomposição de Crout

A =L U → U é triangular superior com diagonal unitária

mim { i , j }
a i j = ∑k =1 li k u k j i, j =1,..... n

Como u11 =1 :
a i1 =l i1 u 11 =l i1 , i =1,....., n
ou seja a primeira coluna da matriz A é igual a primeira coluna da matriz L.

Além disso:

a ij = l11 u1 j

a1 j
u1 j = j = 1,.......n
l11

12
Assim determinamos 1° linha de U.

Suponha que as primeiras (p –1) colunas de L e as primeiras (p – 1) linhas de U tenham


sido calculadas e como u kk =1 .
p −1
a ip = l ip + ∑ l ik u kp (i = p, p + 1,......... ..... n)
k =1

portanto a p esima coluna de L é dada por:


l ip = a ip − ∑k =1 l ik U kp
p −1
( i = p, p + 1,.....n )

Da mesma forma
a p1 = l pp u pj + ∑k =1 l pu u kj
p −1
( j = p + 1,....n )
onde
u pj =
1
l pp
(a pj − ∑k −1 l pj u kj
p −1
) ( j = p +1,.. n)
Observe que não há necessidade de calcular-se para j = p, pois, u pp =1 .

OBS: Pode-se verificar que, após a ij ter sido utilizado para calcular l i j ou u i j , ele não é
mais utilizado, assim, os elementos não nulos de L e U podem ser escritos sobre os
elementos correspondentes de A.

Algoritmo para Redução de Crout: para p = 1, 2,.....,n:

1. a i p ← l i p = a i p − ∑k −1 l i k u k p ,
p −i
i = p,....., n
−1
2. a p j ← u p j = l pp a p j − ( ∑
p −1
l
k =1 p k
Uk j , ) j = p + 1,......n

- Os elementos l pp são pivôs na redução de Grauss e são ≠ 0, se as submatrizes


principais guias de A são não – singulares.
- Produtos internos devem ser acumulados em precisão dupla.

A utilização de pivôs pequenos podem provocar erros de arredondamento que


contaminam significativamente a solução. Uma solução é utilizar o pivoteamento parcial,
isto é, fazer uma pesquisa na coluna do pivô de forma a encontrar o elemento de maior
valor absoluto. O elemento com maior valor absoluto é utilizado como pivô, para tanto,
permuta-se a linha do elemento com a linha do pivô.

É importante observar que, quando forem executadas as etapas de substituição direta


e inversa, as permutações realizada no pivotemameto devem ser realizados no vetor
independente do sistema de equação linear.

Def. Matriz de Permutação

13
Matriz quadrada de ordem n obtida da matriz identidade de ordem n pela permutação
de suas linhas.
A pré-multiplicação de uma matriz A por uma matriz de permutação P resulta em
uma matriz A’, obtida de A com a mesma seqüência de permutações de linhas , realizadas
na matriz P.

Seja o sistema linear A x =b e sejam os fatores LU obtidos por redução de Crout


com pivoteamento parcial. Portanto, LU são fatores de A’.

Onde:
A’= PA

As mesmas permutações devem ser efetuados sobre b .


b' =Pb

Algoritmo redução de Crout com permutação de linhas.

Para p=1, 2,.........n

p −1
1. a ip ←l ip = a ip − ∑k =1 l ik U kp ( i = p, ......., n )
2. Achar ρp tal que l ρp , p ≥ l ip (i = p,...... n)

3. a pj ← a ρ p j ( j = 1,2,...... n )
p −1
4. a pj ←u pj = l pp  a p1 − ∑k =1 l pk u kj  ( j = k +1,..... n )
−1

OBS: O algoritmo de Crout com pivoteamneto parcial pode ser considerado um algoritmo
estável.

Decomposição de Cholesky

Considerando:
A Simétrica e definida positiva
Tem-se

A = LL t

Teorema: Se A é simétrica positiva definida então existe uma única matriz L com
elementos diagonais positivos tal que A = LLt .

14
OBS 1: A matriz A é positiva definida se x T A x > 0 para qualquer vetor x diferente de
zero.
OBS 2: Os elementos diagonais de uma matriz definida positiva são sempre positivos.
e iT A ei = a ii >0
e i – vetor com elemento igual a 1 na posição i e o restante igual a zero.

A prova do teorema é feita por indução.

d vT 
A =  onde : d escalar positiva e H submatriz de ordem n −1 × n −1
v H

A matriz particionada pode ser escrito como o produto:

 d 0  1 0   d vT 
 v   d
 I n −1  0 H  
 0 I n − i 
 d 

vv T
H =H − , onde H é simétrica e também positiva definida, pois para qualquer vetor x
d
de comprimento n-1, tem-se:

 T 
 xT v T  d v T  − x v  T  vv T 
− ,x     d  = x  H −  x = x T H x
 d  v H
 x 
 d 

x H x >0 , pois a matriz original é positiva definida por definição.


T

T
Por indução H, pode ser fatorado como L H L H com elementos diagonais positivos.
Portanto, A pode ser dada por:

 d 0   1 o  1 0   d vT   d 0  vT 
 v   d = v   d 
d  = LL
T
 I n −1  o L H  0 LTH  LH  
 0 I n −1   d LTH 
 d    0

Para provar a unicidade, tem-se:

d vT 
A=  (1)
v H

15
λ 0
L = − ( 2)
l L 

λ 0 λ l 
T
 λ2 λl T 
A = LL T =   T  =  T  ( 3)
l L  0 L  λ l L L 

De (1) e (3) tem-se:


λ2 = d ou λ = d
vT
λ l T = vT lT =
λ
v
λl = v l=
λ
Como podemos ver, os fatores l são únicos para λ positivo. Este procedimento pode ser
estendido por indução aos fatores seguintes.

Computação dos fatores


M u
Suponha a matriz particionado como A =  onde os fatores L M LTM da
u
T
s 
submatriz principal M já foram obtidos. Os fatores da matriz A podem se dado por:

L 0  LT w  M u
Α= M  M  = T
w
T
t   0 t  u s 

LM w = u
1
wT w + t 2 = s ⇒ t = ( s − wT w) 2

Exemplo:

16
4 1 2 
A = 1 3 1
2 1 5
 2 0 2 w 4 1
wT t  0 t  = 1 3
    

2w = 1 w= 1
2
T 2
w w+t = 3

( )1
t = 3 − w t w 2 = 11
4

2  2 1
   2  4 1
    =
1 1 3
11   11  
 2 4   4 

LM w = u

2   w1  2
1 11   w  = 1
 2 4   2   
w1 = 1

11
w2 =
11
1
(
t = 5−w w T
) 1
2  12  2
= 5 −  =
 11 
43
11

   1 1 
2 0 0  2 2 
A= 1 11 ⋅ 11 11 
 2 4   4 1 1
 11 43   43 
 1 11 1 1  1 1

Computado e acessado

17
lT
iK
li i Elementos a serem calculados

Elementos não
Calculados

Pela simetria de A, apenas é necessário se trabalhar com sua metade inferior. Além disso, os
elementos de L podem ser escritos sobre os de A.

Algoritmo
Para k = 1, 2, ....n
1. Para i =1, 2, ......... K −1
1  i −1 
a K i ←l K i =  a K i − ∑l i j l K 
li i  j 
 j =1 
K −1
2. a KK ←l KK = a KK − ∑l k2 j
j =1

3
OBS: A decomposição de Cholesky requer n multiplicações, isto é, a metade das
6
exigidas pela redução de Crout. Os produtos internos devem ser acumulados em precisão
dupla, para se obter exatidão adicional.
O algoritmo de Cholesky é incondicionalmente estável. Como A é positiva definida, não há
necessidade de pivoteamento, pois neste caso ela sempre é diagonal dominante.

2.3.8 Solução de Sistemas Lineares


A partir das decomposições de Crout e Cholesky vistas anteriormente, pode-se resolver
os sistemas lineares através de substituições.

Seja o sistema Linear:


A x =b

2.3.8.1 Decomposição LU

PA = LU

LU x = Pb

Substituição Direta
L y = Pb =b '

18
Atualização por linhas
 , i −1 
y i = b i − ∑l ij y j  / l ii
 i = 1, 2, ......... n
 j =1 

Substituição Inversa
U x =y

Atualização por linhas

 n 
x i =  y i − ∑ u ij x j  i = n − 1,.......,1
 j = i +1 

Substituição Direta

Atualização por colunas:


l11   y1  b11 
l l 22  y   
 21   2  = b 2 
     
     
l n1 l nn   y n  bn 

Coluna 1
b1
b1' =
l11
b2, = b 2, − l 21 b1,
b3', = b3' − l 31 b1, .

b n', = bn, − l n1 b1,
Coluna 2
b' 2
b2' =
l 22
b3 = b3 − l 32 b' 2

b ' n = b n − l n 2 b' 2

Coluna n
b' n
b' n =
l nn
No final y =b' , observe que as atualizações foram feitas por colunas.

Algoritmo para atualização por colunas

19
Para j =1....... n −1
b' j = b' j / l jj
Para k = j +1, n
b' K = b' K −b' j l kj
Continue
Continue
b' n
b' n =
l nn
y = b'
As substituições direta e inversa requerem η2 multiplicações.

2.3.8.2 Decomposição de Cholesky

Neste caso não há necessidade de se utilizar permutações, pois a matriz de coeficientes


é definida positiva.
Α= LL T
LL T x =b

Substituições direta LY =b

Substituições Inversa LT x = y

20

Você também pode gostar