Você está na página 1de 62

Análise e Métodos Numéricos Aplicados a Engenharia

7. Solução Numérica de Sistemas de Equações


Lineares

7.1 - Conceitos Básicos

Seja um sistema de n equações lineares com n incógnitas:

a11 x1 + + a1n xn = b1 ⎛ a1n ⎞⎛


⎟⎟⎜ x1 ⎞⎟⎟ ⎛⎜ b1 ⎞⎟⎟
⎜⎜ a11
⇒ ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎜⎜ ⎟⎟⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎟⎟⎜⎜ x ⎟⎟ ⎜⎜b ⎟⎟
an1 x1 + + ann xn = bn ⎝⎜an1 ann ⎠⎝ n⎠ ⎝ n⎠

ou representando-o na forma matricial: Ax = b .

Se a matriz A é não singular, então o seu determinante det ( A ) ≠ 0 e o sistema acima


tem solução única.

Os métodos que se apresenta aqui serão exatos ou iterativos. Os métodos exatos, são
aqueles nos quais, em hipóteses que os cálculos são feitos exatamente (sem
aproximações), se produzem valores exatos para as incógnitas xi . Por causa dos
números aproximados utilizados nas aplicações práticas, seus resultados também são
aproximados. Dentre os métodos exatos tem-se o método de Gauss e o método da raiz
quadrada; dentre os métodos iterativos tem-se os métodos de Seidel e o da Relaxação.

Definição 1 : Um polinômio homogeneointegral de 2º grau em n variáveis é chamado de


"forma quadrática" dessas variáveis:

P( x1 , x2 ,..., xn ) = a11 x12 + ... + ann xn2 + 2a12 x1 x2 + 2a13 x1 x3 + ... + 2an−1,n xn−1 xn (1)

onde aij , j, i = 1, 2,…, n são constantes.

Se P( x1 , x2 ,..., xn ) = K tem-se uma equação de superficie quadrica num espaço n-


dimensional. Quando aij = a ji , então 2aij = 2a ji = aij + a ji e a "forma quadrática"
pode ser redefinida da seguinte forma:
n n
P( x1 , x2 ,..., xn ) = ∑∑ aij xi x j
i =1 j =1

Página 1 de 62
Definição 2 : Uma forma quadrática (1) é chamada "positiva-definida" se ela assume
valores positivos, anulando-se apenas quando x1 = x2 = = xn = 0 . Se a forma
quadratica (1) assume valores negativos é denominada "negativa-definida".

Dessa definição vê-se que se P( x1 , x2 ,..., xn ) é positiva-definida, então a equação

P( x1 , x2 ,..., xn ) = K > 0

é uma equação de uma elipsoide num espaço n-dimensional, e mais aii > 0 para todo
i = 1, 2,…, n , e mais

a11 = P( x1 ,0,...,0) > 0


a22 = P(0, x2 ,...,0) > 0

ann = P(0,0,..., xn ) > 0

Definição 3 : Se um sistema Ax = b , ou ainda

∑a x
j =1
ij j = bi

para i = 1, 2,…, n . Este sistema de equações lineares é chamado "normal" se a matriz A


é simétrica e sua respectiva forma quadrática é positiva-definida.

7.2 - Método de Gauss

A técnica mais comum para a solução de um sistema de equações lineares é via um


algoritmo por eliminação sucessiva das incógnitas, denominado Método de Gauss.

Existem vários esquemas para se realizar os cálculos. Ver-se-á aqui o esquema da


divisão única.

Seja

Ax = b (1)

um sistema linear de ordem n . Antes de eliminar a variável xk , seja demonstrar o


sistema equivalente, no qual x1 , x2 ,..., xk−1 tenham sido eliminadas:

A (k) x = b(k) para k = 1, 2,…, n (2)

onde para k = 1 tem-se A( ) = A; b( ) = b ; para k = 2,…, n os elementos a(ij ) são


1 1 k

calculados recursivamente por:


Análise e Métodos Numéricos Aplicados a Engenharia






⎪ aij( k−1) para i ≤ k-1


aij( k ) = ⎨0 para i ≥ k, j ≤ k-1



⎪ ai(,kk−−1)1
⎪ aij − ( k−1) − bk(−k−1 1)
(k )
para i ≥ k, j ≥ k (3)

⎪ ak−1,k−1



⎪bi( k−1) para i ≤ k-1


bi( k ) = ⎪⎨ ( k−1) ai(,kk−−1)1 ( k−1)

⎪ bi − ( k−1) bk−1 para i ≥ k


⎩ ak−1,k−1

Estas fórmulas representam o resultado da multiplicação de (k-1)-ésima equação em


A ( k−1) x = b( k−1) pela razão (ai(,kk−−1)1 a (kk−−1,1)k−1 ) e subtraindo o resultado da i-ésima equação,
para todo i ≥ k . Desta maneira, a variável xk−1 é eliminada das últimas n − k + 1
equações. É óbvio que se considera todos os aii ≠ 0 .

O resultado desse processo produz um novo sisterma de equações lineares equivalente


ao primeiro, sendo triangular superior, tendo a forma:

LUx = b( ) ∴ LU = A
n
(4)

sendo U ≡ A( ) e L uma matriz cujos elementos lik são:


n

⎧⎪
⎪⎪
⎪⎪ 0 para i < k

lik = ⎪⎨1 para i = k (5)
⎪⎪
⎪⎪ aik( k )
⎪⎪ ( k ) para i > k
⎪⎩ akk

Fazendo L-1b(n) = g , então, tem-se Ux = g e o sistema fica fácil de ser resolvido na


ordem de xn ,…, x2 , x1 , assim

1
xn = gn
unn
(6)
1⎛ n ⎞
xi = ⎜⎜⎜ gi − ∑ uij x j ⎟⎟⎟
uii ⎜⎝ j =i +1 ⎠⎟

para i = n −1, n − 2,…,1 .

Para se mostrar o método, seja um sistema Ax = b de quatro equações lineares com


quatro incógnitas:

Página 3 de 62
a11 x1 + a12 x2 + a13 x3 + a14 x4 = a15
a21 x1 + a22 x2 + a23 x3 + a24 x4 = a25
(7)
a31 x1 + a32 x2 + a33 x3 + a34 x4 = a35
a41 x1 + a42 x2 + a43 x3 + a44 x4 = a45

Seja, por hipótese, a11 ≠ 0 (elemento pivot) . Dividindo-se a primeira equação de (7)
por a11 , obtém-se:

x1 + b12 x2 + b13 x3 + b14 x4 = b15 (8)

a1 j
onde b1 j = , ∀j = 2,3,…, 5 .
a11

Usando (8), vê-se que é fácil eliminar x1 da segunda, terceira e quarta equações de (7).
Para fazer isto, multiplique a equação (8) por a21 , a31 , a41 e subtraia o resultado assim
obtido da segunda, terceira e quarta equações de (7) respectivamente. Assim reduz-se o
sistema original a um outro com apenas 3 equações e três incógnitas:
()1 () 1 () ()
1 1
a22 x2 + a23 x3 + a24 x4 = a25
()1 () 1 () ()
1 1
a32 x2 + a33 x3 + a34 x4 = a35 (9)
()1 () 1 () ()
1 1
a42 x2 + a43 x3 + a44 x4 = a45

onde os coeficientes aij( ) são calculados pela fórmula:


1

aij( ) = aij − ai1b1 j ,( ∀i = 2,3, 4) ∧ ( j = 2,3, 4,5)


1

(1)
Dividindo agora a primeira equação de (3), pelo elemento pivot a22 , encontra-se:

() ()
x4 = b2(5)
1 1 1
x2 + b23 x3 + b24

a2( j)
2
(1)
onde b2 j = () 1
, ∀j = 3, 4,5 .
a22

Eliminando x2 da mesma maneira que o se fez para x1 , obtém-se o seguinte sistema:

( )
2 ( )2 ( ) 2
a33 x3 + a34 x4 = a35
(10)
( )
2 ( )2 ( ) 2
a43 x3 + a44 x4 = a45

aij( ) = aij( ) − ai(2)b2( j) , ( ∀i = 3, 4) ∧ ( j = 3, 4, 5) .


2 1 1 1
onde
Análise e Métodos Numéricos Aplicados a Engenharia

( 2)
Dividindo-se a primeira equação de (10) pelo o elemento pivot a33 , obtém-se:

( )
x4 = b3(5)
2 2
x3 + b34 (11)

a3( j)
2

b3( j) =
2
onde ( )
2
, ∀j = 4, 5 .
a33

Então, com ajuda de (11) elimina-se x3 da segunda equação de (10), e assim encontra-
(3) (3)
onde a4( j) = a4( j) − a43
( ) ( )
3 2 2 2
se: a44 = a45 b3 j , ∀j = 4, 5 .

Desta forma consegue-se reduzir (6) a um sistema equivalente com matriz triangular:

x1 + b12 x2 + b13 x3 + b14 x4 = b15


() ()
x4 = b2(5)
1 1 1
x2 + b23 x3 + b24
( )
2 ( )
2
(12)
x3 + b34 x4 = b35
()
3 ()3
a44 x4 = a45

donde, por retrosubstituição, encontra-se:


() ()
3 3
x4 = a45 a44
( ) 2 ( ) 2
x3 = b35 − b34 x4
(13)
() 1 () 1 () 1
x2 = b25 − b24 x4 − b23 x3
x1 = b15 − b14 x4 − b13 x3 − b12 x2

O número de operações aritméticas necessárias para realizar o método de Gauss é


determinado por N = ⎡⎣ 2n (n + 1)(n + 2) / 3⎤⎦ + n (n −1) onde n é o número de incógnitas
do sistema de equações lineares.

Generalizando, seja o sistema Ax = b a ser resolvido pelo método de Gauss, onde


A = ⎡⎣ aij ⎤⎦ , x = ( x1 , x2 ,…, xn ) e b = (b1 , b2 ,…, bn ) .
T T

Sejam A( ) a representação de A na qual já foram eliminadas as incógnitas


k

x1 , x2 ,…, xk−1 , e b( ) a representação do vetor b na k-ésima operação de eliminação de


k

variáveis.

Assim, para k = 1 temos A( ) = A, b( ) = b .


k k

Para k = 2,3,…, n deve ser calculado recursivamente:

Página 5 de 62





aij( ) , para i ≤ k-1
k −1



aij( ) = ⎪ 0 para (i ≥ k ) ∧ ( j ≤ k-1)
k




⎪ (k −1) ai(,k−1)ak( −1, )j
k −1 k −1


⎪a − (k −1)
para (i ≥ k ) ∧ ( j ≥ k ) (14)

ij

⎩ a k −1,k −1


⎪ bi( ) , para i ≤ k-1
k −1


bi( ) = ⎪
⎨ (k−1) a (i,k-1
k-1) (k −1)
k
bk−1

⎪b - para (i ≥ k ) ∧ ( j ≤ k )


i
a ( k −1)
⎩ k −1,k −1

Isso leva a se ter o seguinte algorítmo:

1. Para k = 1 fazer A( ) = A, b( ) = b
k k

2. Para k = 2,3,…, n faça


3. Para i = 1,2,…, k −1 faça
4. Para j = i, i + 1,…, k − 1 faça
Se i ≤ k −1 então aij( ) = aij(
k −1)
, bi(k ) = bi(k−1)
k
5.
Senão se j ≤ k − 1 então aij( ) = 0
k
6.
a(i,k-1)bk(−1 )
k-1 k −1
(k ) (k −1)
7. bi = bi -
ak( −1,k)−1
k −1

ai(,k−1)ak( −1, )j
k −1 k −1
(k ) (k −1)
8. Senão aij = aij −
ak( −1,k)−1
k −1

A seguir mostra-se um outro algoritmo:

1. Ative Status=1 e estabeleça uma matriz C ⎡n×(n+1)⎤ = [ A | b ]


⎣ ⎦
2. Para j=1 até n, faça

{ }
n
3. Calcule o indice do pivot j ≤ p ≤ n tal que C pj = max Cij
i= j

4. Se C pj = 0 , ative Status=0 e exit.


5. Se p > j , trique as linhas p e j .
Cij
6. Para cada i > j , subtraia vezes a linha j da linha i .
C jj
7. Particione C como C = [ D n×n | fn×1 ] .
1 ⎛⎜ n ⎞
8. Para j = n até 1 calcule x j = ⎜⎜ f j − ∑ D ji xi ⎟⎟⎟
D jj ⎜⎝ i = j+1 ⎠⎟
Análise e Métodos Numéricos Aplicados a Engenharia

Teorema 1: Seja uma matriz A tal que a eliminação de Gauss definida acima produza
(k )
elementos diagonal não nulos, akk , k = 1, 2,…, n . Então A é uma matriz não-singular e

() ( ) ( )
det ( A ) = a11
1 2 n
a22 ann (15a)

A matriz final A( ) ≡ U é triangular superior e A tem a fatorização


n

LU = A (15b)

onde L ≡ (mik ) é uma matriz triangular inferior cujos elementos são:






⎪ 0 para i<k


mik = ⎨1 para i=k (15c)



⎪ aik( )
k


⎪ (k )
para i>k


⎩ a kk

O vetor final

b( ) ≡ L-1b
n
(15d)

Demonstração:

Teorema 2: Seja uma matriz A com rank r . Então se pode encontrar uma sequencia
de índices de linhas e colunas distintas (i1. j1 ) , (i2 , j2 ) ,…, (ir , jr ) tal que os elementos
pivot correspondentes em A( ) , A( ) ,…, A( ) são não nulos e aij( ) = 0, se i ≠ i1 , i2 ,…, ir .
1 2 r r

Seja definir as matrizes de permutação , cujas colunas são vetores unitários,

(
P ≡ e( 1 ) , e( 2 ) , … , e( r ) , … , e ( n )
i i i i
)
(16)
Q ≡ ( e( ) , e( )
j2 )
, … , e ( r ) , … , e( n )
j1 j j

onde ik , jk , ∀1 ≤ k ≤ r , são os índices pivotais e os conjuntos {ik } , { jk } são permutações


de 1, 2,…,n .

O sistema By = c onde B ≡ PT AQ , y ≡ QT x , g ≡ PT b é equivalente ao sistema (1) e


pode ser reduzido a uma forma triangular pelo método de eliminação de Gauss com
ordem natural dos pivots (1,1) , (2, 2) ,…, ( r, r ) .

Demonstração:

Página 7 de 62
A eliminação generalizada altera a matriz A ≡ A( ) pela reformulação sucessiva de
1

combinações lineares das linhas. Assim, enquanto elementos pivot nulos forem achados
as linhas nulas são linearmente dependentes de linhas contendo pivots não nulos. As
permutações por P e Q simplesmente rearranjam a ordem das equações e incógnitas,
respectivamente, assim bvv = aiv , jv , v = 1, 2,…, n . Pela pimeira parte do teorema, a matriz
reduzida B( ) é triangular uma vez que todas as linhas após a r-ésima linhas se anulam.
r

7.3 - Método de Cholesky

Seja um sistema de equações lineares: Ax = b Seja escrever A como o produto de


duas matrizes triangulares, uma L inferior e outra U superior, esta última com os
elementos da diagonal unitários:

A = LU

onde

⎡ l11 0 ... 0⎤ ⎡ 1 u12 ... u1n ⎤


⎢ ⎥ ⎢ ⎥
⎢l l ... 0 ⎥ ⎢ 0 1 ... u2 n ⎥
L = ⎢⎢ 21 22 ⎥ e U=⎢ ⎥
... ... ⎥⎥ ⎢... ... ... ... ⎥
⎢ ... ... ⎢ ⎥
⎢l ... lnn ⎥⎦ ⎢0 0 0 1 ⎥
⎣ n1 l n 2 ⎣ ⎦

Os elementos lij e uij são determinados pelas formulas:

li1 = ai1
j−1
lij = aij − ∑ lik ukj , ∴ i ≥ j > 1
k =1

a1 j
u1 j =
l11
⎛ 1 ⎞⎛ i−1 ⎞
uij = ⎜⎜ ⎟⎟⎟⎜⎜aij − ∑ lik ukj ⎟⎟⎟ ∴ 1 < i < j
⎜⎝ l ⎠⎟⎝⎜ k =1 ⎠
ii

Logo,

A = LU ⇒ Ax = LUx = b

Fazendo Ux = y , então Ly = b , tem-se:


Análise e Métodos Numéricos Aplicados a Engenharia

b1
y1 =
l11
⎛ 1 ⎞⎛ i−1 ⎞
yi = ⎜⎜ ⎟⎟⎟⎜⎜bi − ∑ lik yk ⎟⎟⎟ , ∀i > 1
⎜⎝ l ⎠⎟⎝⎜ k =1 ⎠
ii

xn = yn
n
xi = yi − ∑ uik xk , ∀i < n
k =i+1

Este processo é bastante conveniente para implementação em computadores. Note que


l
se A for simétrica, então uij = ji , para i < j .
lii

Neste método, determina-se primeiro a 1a. coluna de L , depois a 1a. linha de U , e


assim sucessivamente.

7.4 - Método da Raiz Quadrada

Seja o sistema Ax = b onde A é simétrica. Seja representar A por duas matrizes


triangulares, sendo uma a transposta da outra:

A = TTT

Multiplicando as matrizes acima e igualando o produto à matriz A , encontra-se:

t11 = a11

a1 j
t1 j = , ∀j > 1
t11

i−1
tii = ai ,i − ∑ t ki ∀ 1 < i ≤ n
2

k =1

i−1
aij − ∑ t.ki tkj
tij = k =1
∀i<j
ti ,

tij = 0, ∀i > j

Página 9 de 62
Achando-se a matriz T , de forma semelhante ao processo anterior, tem-se dois
sistemas equivalentes ao original:

TT y = b
Tx = y

dos quais encontra-se:

b1
y1 =
t11
⎛ 1 ⎞⎛ i−1 ⎞
yi = ⎜⎜ ⎟⎟⎟⎜⎜bi − ∑ tki yk ⎟⎟⎟ , ∀i > 1
⎜⎝ tii ⎠⎟⎜⎝ k =1 ⎠
yn
xn =
tnn
⎛ 1 ⎞⎛ n ⎞
xi = ⎜⎜ ⎟⎟⎟⎜⎜ yi − ∑ tik xk ⎟⎟⎟ , ∀i < n
⎜⎝ t ⎠⎟⎜⎝ k =i+1 ⎠⎟
ii

Este método é mais econômico e conveniente se comparado com os anteriormente


apresentados. Ele ganha tempo na execução e reduz sensivelmente o número de
multiplicações e divisões. Observa-se, no entanto, que este processo só é válido para
matrizes simétricas e mais, para coeficientes reais aij , ele pode gerar números
complexos.

EXERCÍCIO

Resolva o sistema:

7.9 x1 + 5.6 x2 + 5.7 x3 - 7.2 x4 = 6.68

8.5 x1 - 4.8 x2 + 0.8 x3 +3.5 x4 = 9.95

4.3 x1 + 4.2 x2 - 3.2 x3 + 9.3x4 = 8.6

3.2 x1 - 1.4 x2 - 8.9 x3 + 3.3x4 = 1

7.5 - Métodos de Iteração

Quando um sistema de equações tem um número muito grande de incógnitas, o método


de Gauss, que produz resposta exata, torna-se de difícil manejo. Sob certas condições,
às vezes é mais conveniente que seja usado para determinar aproximações da solução
exata e depois usa-lo em método iterativos.

Seja o sistema Ax = b , no qual aii ≠ 0, ∀i . Seja agora x = β + Cx onde


Análise e Métodos Numéricos Aplicados a Engenharia

bi
βi =
aii
aij
cij = − , ∀i ≠ j
aii
cii = 0, ∀i

Tomando-se como primeira aproximação de x o vetor β , tem-se que:

x( ) = β
0

x( ) = β + Cx( )
1 0

x( ) = β + Cx( )
2 1
(1)

x(
k+1)
= β + Cx(
k)

Se a seqüência {x( )} tem limite, então este limite é a solução do sistema


k
original e é
dada por:

xi( ) = βi
0

n
xi( = βi + ∑ cij x(j )
k +1) k
(2)
j =1

cii = 0, ∀i = 1, 2,…, n

Quando se usa o processo iterativo , não é necessário se fazer o vetor constante β como
primeira aproximação de x . A convergência do processo iterativo depende unicamente
das propriedades da matriz C . Pode-se provar que, se os elementos cij ∈ C satisfizerem
uma das seguintes condições:
n

∑c
j =1
ij ≤ α < 1, ∀i = 1, 2,…, n (3)

∑c
i =1
ij ≤ γ < 1, ∀j = 1, 2,…, n (4)

então o processo de iteração converge para a solução exata do sistema original,


qualquer que seja a aproximação inicial x( ) .
0

Assim, a solução exata do sistema original é obtida apenas como resultado de um


processo infinito de iterações, e mais, qualquer vetor x( ) obtido na seqüência é uma
k

aproximação da solução exata.

O erro dessa solução aproximada é estimado por:

Página 11 de 62
⎡ α ⎤
xi − xi( ) ≤ ⎢⎢ ⎥ max x(jk ) − x(jk−1)
k
⎥ (5)
⎣⎢ (1 − α) ⎦⎥

se C for provida da condição (3), ou ainda através de:

⎡ γ ⎤
xi − xi( ) ≤ ⎢⎢ ⎥ max x(jk ) − x(jk−1)
k
(6)
⎢⎣ (1 − γ ) ⎥⎥⎦

se C for provida da condição (4).

O método iterativo é, em geral, mais preciso que o método de Gauss e é extremamente


vantajoso para sistemas esparsos.

7.5.1 Método de Seidel

Este método é uma modificação do método iterativo. A idéia é a de que no cálculo da


(k+1)-ésima aproximação, deve-se usar os valores já calculados da (k+1)-ésima
aproximação, das incógnitas ( x1 , x2 ,… , xn ) , isto é:

i−1 n
xi( = βi + ∑ cij x(j + ∑ cij x(j )
k +1) k +1) k

j =1 j =1

com isso acelerando o processo de convergência.

Teorema 1 : Se um sistema linear é normal, então o processo ou método de Seidel


sempre convergirá, para um sistema reduzido equivalente.

Teorema 2 : Se ambos os membros de um sistema linear Ax = b , com det ( A ) ≠ 0 ,


forem pré-multiplicados pela transposta de A , então o sistema resultante
ATAx = ATb é normal.

Demonstração :

Primeiro provar-se-á que A T A é simetrica:

(A T A ) = (A T )(A T )
T T
= ATA

Seja provar agora que s respectiva forma quadrática associada à matriz A T A é


posotiva-definida. Então seja
n n n
P( x1 , x2 ,..., xn ) = ∑∑∑ aki akj xi x j ≥ 0
i =1 j =1 k =1
Análise e Métodos Numéricos Aplicados a Engenharia

a forma quadrática associada à matriz A T A . Mudando a ordem da somatória, tem-se

n n n n ⎛ n n ⎞
P = ∑∑∑ aki akj xi x j = ∑ ⎜⎜⎜∑ aki xi i∑ akj x j ⎟⎟⎟ ≥ 0
k =1 i =1 j =1 k =1 ⎜
⎝ i=1 j =1 ⎠⎟

Como o valor da soma não depende do índice da somatória, tem-se:

n ⎛ n 2

P = ∑ ⎜⎜∑ aki xi ⎟⎟⎟ ≥ 0

k =1 ⎝ i =1 ⎠

Mas por hipótese o determinante de A é não nulo, logo o sistema homogêneo


⎛ n ⎞
⎜⎜ ∑ a x ⎟⎟ = 0 , ∀ k = 1, 2 , … , n tem apenas soluções triviais, consequentemente:
ki i ⎟
⎜⎝ i = 1 ⎠
P > 0 ⇔ x1 + x2 + … + xn ≠ 0 .

7.5.2 – Métodos de Relaxação

Seja Ax = b um sistema linear para o qual fazemos:

A = D-L-U (1)

onde D é uma matriz diagonal, L uma matriz triangular inferior e U uma matriz
triangular superior:


⎪a se i=k
Dik = ⎪⎨ ik

⎩0
⎪ se i ≠ k
⎧−a
⎪ se i>k
Lik = ⎪⎨ ik (2)

⎩0
⎪ se i ≤ k

⎪−a se i<k
U ik = ⎪⎨ ik

⎩0
⎪ se i ≥ k

Como visto os processo iterativo, como os métodos de relaxação, visam minimizar o


resíduo ( b − Ax k ) . A iteração para o método de Jacobi é dada por:

b - Ax(
k +1)
=0 (3)

ou
n
aii xi( k +1) = −∑ aij x (jk ) + bi (4)
j =1
j ≠i

Página 13 de 62
ou ainda

⎛ ⎞⎟
1 ⎜⎜ n
(k ) ⎟
x( k +1)
= ⎜⎜bi − ∑ aij x j ⎟⎟⎟ , i = 1, 2,..., n
aii ⎜ ⎟
i
⎜⎝ ⎠⎟
j =1
j ≠i

ou na forma matricial:

x ( k +1) = D−1 ( L + U ) x ( k ) + D−1b (4-A)

7.5.2.1 Método da Relaxação Sucessiva

Normalmente calcula-se os componentes do vetor na iteração (k+1) sequencialmente,


isto é, x1k +1 , x2k +1 ,..., xnk +1 , Durante o cálculo de xik +1 já temos calculado, para a (k+1)-
ésima iteração todos os componentes acima do indice i-1. Se usarmos essa informação,
temos o processo denominado método da relaxação sucessiva ou método de Gauss-
Seidel, semelhantemente ao que se viu na seção 7.5.1:
i−1 n
aii xik +1 = bi − ∑ aij x kj +1 − ∑ aij x kj
j =1 j =i+1

ou ainda

1 ⎛⎜ i−1 n ⎞
xik +1 = ⎜⎜ i ∑ ij j
b − a x k +1
− ∑ aij x kj ⎟⎟⎟
aii ⎜⎝ j =1 j =i+1 ⎠⎟

ou na forma matricial:

Dx ( k +1) = Lx ( k +1) + Ux ( k ) + b
⇒ ( D − L) x ( k +1) = Ux ( k ) + b (5)
⇒ x ( k +1) = ( D − L)−1 Ux ( k ) + ( D − L)−1 b

Tanto o processo de Jacobi como de Gauss-Seidel são da forma:

Mx (k+1) = Nx (k) + b = (M - A)x (k) + b (6)

onde A = M + N é uma divisão de A , com M = D para Jacobi, M = D - L para


Gauss-Seidel. Um metodo iterativo da norma acima pode ser definido por qualquer
divisão de A da forma A = M - N onde M seja não-singular.
Análise e Métodos Numéricos Aplicados a Engenharia

7.5.2.2 Método de Sobrerelaxação

O metodo de sobrerelaxação é baseado na seguinte divisão:

ωA = (D − ωL) − (ωU + (1 − ω ) D) (7)

e o correspondente método de sobrerelaxação sucessiva (SOR) é dado pela recursão


(ω > 1) :

(D − ωL) x ( k +1) = ⎡⎣ωU + (1− ω ) D⎤⎦ x ( k ) + ωb (8)

cuja iteração de sequencia de relaxação corresponde a:

⎛ i−1 n ⎞
xi( k +1) = ω ⎜⎜⎜bi − ∑ aij x kj +1 − ∑ aij x kj ⎟⎟⎟ + (1 − ω ) xi( k ) , ∀i =1,2, . . . ,n (9)
⎜⎝ j =1 j =i+1 ⎠⎟

7.5.2.3 – Esquemas de Relaxação em Blocos

Esquemas de Relaxação em blocos são generalizações dos esquemas de relação por


ponto, descritas na seção anterior. Este esquema atualiza um conjunto de componentes
em cada tempo, tipicamente um subvetor do vetor solução, ao invés de fazê-lo
componente a componente. A matriz A e os vetores do lado direito e solução são
particionados como se segue:

⎛ A11 A12 A13 A1 p ⎞⎟ ⎛ ξ1 ⎞⎟ ⎛ β1 ⎞⎟


⎜⎜ ⎟⎟ ⎜⎜ ⎟ ⎜⎜ ⎟
⎜⎜ A21 A22 A23 A2 p ⎟⎟ ⎜⎜ ξ2 ⎟⎟ ⎜⎜ β2 ⎟⎟
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟⎟ ⎜ ⎟⎟
A = ⎜⎜ A31 A32 A33 A3 p ⎟⎟ , x = ⎜⎜ ξ3 ⎟⎟ , b = ⎜⎜⎜ β3 ⎟⎟⎟ (1)
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎜⎜ ⎟⎟ ⎜ ⎟⎟ ⎜⎜ ⎟⎟⎟
⎜⎜ A ⎟⎟ ⎜⎜ ⎟⎟ ⎜ ⎟
⎝ p1 Ap 2 Ap 3 App ⎠⎟⎟ ⎝⎜ξ p ⎠⎟⎟ ⎝⎜β p ⎠⎟⎟

no qual o particionamento de b e x em subvetores βi e ξ i são identicos e compatíveis


com o particionamento de A . Assim, para qualquer vetor x particionado como (1)
acima
p
(Ax)i = ∑ Aij ξ j (2)
j=1

onde (.)i denota o i-ésimo componente do vetor de acordo com o particionamento


acima.Os blocos diagonais em A são quadrados e assumidos não-singulares. Seja agora
definir, similarmente ao caso pontual e escalar, a divisão:

A = D-L-U (3)

Página 15 de 62
com

⎛ A11 ⎞⎟ ⎛ 0 ⎞⎟ ⎛0 A12 A1p ⎞⎟


⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟
⎜⎜ A 22 ⎟⎟ ⎜A 0 ⎟⎟ ⎜ 0 A 2p ⎟⎟⎟
D = ⎜⎜ ⎟⎟ , L = −⎜⎜⎜ 21 ⎟⎟, U = −⎜⎜⎜ ⎟⎟
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎜⎜ ⎟⎟ ⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎝⎜ A pp ⎠⎟ ⎝⎜⎜ A p1 A p2 0⎠⎟ ⎝ 0 ⎠⎟

Com estas definições, é fácil generalizar os procedimentos iterativos anteriores, isto é, o


procedimento de Jacobi, o processo de Gauss-Seidel e o processo SOR. Por exemplo, a
iteração de blocos de Jacobi é definida como uma técnica na qual os novos subvetores
ξi(k ) são todos trocados de acordo com:

A iiξ i( k +1) = ((L + U ) x k )i + βi ⇒


(4)
ξ i( k +1) = A -1ii ((L + U ) x k )i + A -1ii βi

para i = 1, 2,…, p , o que nos leja à mesma equação

x ( k +1) = D−1 ( L + U )x ( k ) + D -1b (5)

exceto que o significado de D , L e U foram modificados para representar matrizes


em blocos.

As técnicas de blocos podem ser definidas, em termos mais gerais. Primeiro, pelo uso
de blocos que permitam a atualização arbitrária de grupos de componentes, e segundo,
pela permissão de sobreposição de blocos. Assim, o particionamento deve ser baseado
em um conjunto-partição do conjunto de variáveis S = {1, 2,…, n} em subxonjuntos
S1 , S2 ,…, S p com a condição de que dois quaisquer subconjuntos distindos são
disjuntos ( Si ∩ S j = ∅, ∀i, j ) . Na teoria dos conjuntos, isto é chamado de partição de S .
Mais genericamente, um conjunto-decomposição de S remove as restrições de
disjunção. Em outras palavras, ele requer que a união de subconjuntos Si seja igual a
S:

Si ⊆ S ∪ Si = S
i =1, s

Fazendo ni representar o tamanho de Si então o conjunto Si é da forma:

Si = {mi (1), mi (2),..., mi ( ni )}

Uma iteração genérica em blocos de Jacobi pode ser definida assim: seja Vi uma matriz
n x ni

Vi = ⎡⎢⎣ emi (1) , emi (2) ,..., emi ( ni ) ⎤⎦⎥


Análise e Métodos Numéricos Aplicados a Engenharia

Wi = ⎡⎢⎣ ηmi (1)emi (1) , ηmi (2)emi (2) ,..., ηmi ( ni ) emi ( ni ) ⎤⎦⎥

onde e j é a j-ésima coluna de uma matiz identidade n x n, e ηm ( j ) representa um fator i

de ponderação escolhido de tal maneira que

WiT Vi = I

Quando não existe sobreposição, isto é, quando Si formam uma partição do conjunto
inteiro {1, 2,…, n} , então define-se ηmi ( j ) = 1 .

Seja então A ij uma matriz ni x nj

A ij = WiT AVj

e os vetores incognita e independente, definidos de forma análoga suas partições:

ξi = Wi T x, βi = Wi T b

Note que Vi WiT é um projetor de Rn para o subespaço Ki gerado pelas colunas


mi (1), mi (2),..., mi (ni ) . Alem disso, tem-se a relação

s
x = ∑ Vi ξi
i =1

O vetor ni-dimensional WiT x representa a projeção de Vi WiT x de x com relação a base


gerada pelas colunas de Vi . A ação de Vi realiza uma operação inversa. Isto significa
que Vi y é uma operação de extensão de um vetor y em Ki (representado na base
representada pelas colunas de Vi ) em um vetor Vi y em Rn . O operador WiT é
chamado de operador restrição e Vi é denominado de operador prolongamento.

Cada componente da iteração de Jacobi pode ser obtido pela imposição da condição que
a projeção do resídual no espaço gerado por Si seja zero, isto é,

⎡ ⎛ ⎞⎤
WiT ⎢⎢b − A ⎜⎜⎜ Vi WiT x ( k +1) + ∑ Vj WjT x ( k ) ⎟⎟⎟⎥⎥ = 0
⎣⎢
⎜⎝ j ≠i ⎠⎟⎦⎥

Relembre-se que

Página 17 de 62
ξ j = WjT x → ξ (k+1) i + A ii Wi ( b − Ax )
= ξ (k) -1 T (k)
i

→ A iiξ (k+1) i + A ii A ii Wi ( b − Ax )
= A iiξ (k) -1 T (k)
i

→ A ii (ξ (k+1)
i i ) = Wi ( b − Ax )
− ξ (k) T (k)

fazendo δi = (ξ (k+1)
i i ) tem-se
− ξ (k)
A iiδi = WiT (b − Ax (k) )

Isso leva a se ter o seguinte algorítmo:

Para k=0,1, ... até a convergência, faça


Para i=1,2,..., p faça
Resolva Aiiδi = WiT (b-Ax(k))
Faça x(k+1) = x(k) + Viδi
fim faça
fim faça
Como no caso do algoritmo escalar, a diferença entre as iterações de Jacobi e de Gauss-
Seidel é muito sutil, pois esta última atualiza os componentes no passo i, com os valores
anteriores já atualizados neste mesmo passo. Assim a iteração em bloco de Gauss-Seidel
é definida algoritmicamente por:

Até convergir faça


Para i=1,2,...,p faça
Resolva Aiiδi = WiT(b-Ax)
Ative x :=x+Viδi
fim faça
fim faça
Do ponto de vista de armazenamento, o esquema de Gauss-Seidel é mais econômico
porque as novas aproximações podem ser sobrescritas no mesmo vetor, além de
convergir mais rapidamente. Por outro lado a iteração de Jacobi é mais vantajosa em um
ambiente de processamento paralelo.

7.5.2.4 – Matrizes de Iteração e Precondicionamento

As iterações de Jacobi e Gauss-Seidel são todas da forma:

x (k+1) = Gx (k) + d (1)

em que

G JA ( A ) = I − D−1A
(2)
GGS ( A ) = I − ( D − L)−1 A
Análise e Métodos Numéricos Aplicados a Engenharia

para as iterações de Jacobi e Gauss-Seidel respectivamente. Além do mais, dada uma


divisão de uma matriz

A = M-N (3)

onde A é associada ao sistema linear Ax = b uma iteração linear de ponto-fixo pode ser
definida pela formula de recorrência:

x (k+1) = M−1Nx ( k ) + M−1b (4)

a qual tem a forma de (1) com

G = M−1N = M−1 ( M − A ) = I − M−1A


(5)
d = M−1b

Por exemplo, para a iteração de Jacobi, M = D , N = A - D , enquanto para a iteração de


Gauss-Seidel, M = D - L , N = M - A = U .

A iteração x (k+1) = Gx (k) + d pode ser vista como uma técnica para resolver sistemas do
tipo

(I − G) x = d (6)

Como G tem a forma G = I - M -1A , o sistema acima pode ser reescrito como

M -1Ax = M -1b (7)

O sistema (7) acima que tem a mesma solução do sistema original é chamado de sistema
precondicionado e M é a matriz de precondicionamento ou precondicionadora. Em
outras palavras, um esquema de relaxação é semelhante ou equivalente a uma iteração
de ponto-fixo sobre um sistema precondicionado.●

Por exemplo, para iterações de Jacobi, Gauss-Seidel e SOR, estas matrizes de


precondicionamento são respectivamente:

M JA = D
M GS = D − L (8)
1
M SOR = ( D − ωL )
ω

Note que o sistema "precondicionado" precisa se um sistema completo. Além do mais,


não existe razão para que M−1 seja esparsa, pois a inversa de uma matriz esparsa não é
necessariamente esparsa. Isso limita o número de técnicas que podem ser aplicadas para
resolver o sistema precondicionado. Muitas das técnicas iterativas usadas requrem
apenas produtos matriz por vetor. Neste caso, para calcular ω = M−1Av para um dado
vetor v , primeiro se calcula r = Av e então se resolve Mω = r :

Página 19 de 62
r = Av
ω = M−1r

Em alguns casos é vantajoso usar a divisão A = M − N e calcular ω = M−1Av como


ω = (I − M−1N) v :

r = Nv
w = M -1r
w←v-w

A matriz N pode ser mais esparsa que A e Nv pode ser menos custoso que Av .

7.5.2.5 – Convergência

Todos os métodos vistos nas seções anteriores definem uma sequência de iterações da
forma:

x (k+1) = Gx (k) + d (1)

na qual G é uma certa matriz de iteração. As questões que se abordam aqui são: (a) se a
iteração converge é o seu limite a solução do sistema original? (b) sob que condições a
iteração converge?, (c) quando uma iteração converge, com que velocidade o faz ? .

Se a iteração (1) converge, seu limite x satisfaz a

x = Gx + d (2)

Nesse caso onde a equação acima aparece da separação A = M − N , é fácil ver que a
solução x para o sistema acima é identica ao do sistema original Ax = b . Além disso,
neste cado a sequencia (1) tem a forma:

x (k+1) = M -1Nx (k) + M -1b

e seu limite satisfaz

Mx = Nx + b

ou a Ax = b . Isto responde à questão (a).

Agora se I - G é não singular então existe uma solução x* para a equação (2).
Subtraindo (2) de (1), tem-se

x (k+') - x* = G (x (k) - x* ) = ... = G(k+1) (x (0) - x* ) (3)


Análise e Métodos Numéricos Aplicados a Engenharia

Definição 1 : Sendo A uma matriz (real ou complexa) n × n com autovalores λi ,

i = 1, 2,…, m , com m ≤ n , então

ρ ( A ) = max λi (4)
1≤i≤m

é chamado de radius espectral.

Teorema 1 : A seqüência A k , k = 0,1, 2,… , converge para zero se e somente se ρ ( A ) < 1 .

Demonstração :
k
Para provar a condição necessária, seja A → 0 e considere u1 um autovetor
associado com o autovalor λ1 de modulus máximo. Tem-se então

Ak u1 = λ1k u1
o que implica, dado pela norma ||. ||2 de ambos os lados:

λ1k = Ak u1 → 0 ⇒ ρ ( A) = λ1 <1
2

A forma canonica de Jordan será utilizada para mostrar a condição de


suficiência. Assumindo que ρ(A) < 1 inicia-se com a igualdade

Ak = XJ k X −1
k k
Para provar que A converge para zero, é suficiente mostrar que J converge
para zero. Uma observação importante, é que J preserva sua forma de blocos. Assim
é suficiente provar que cada bloco de Jordan converge para zero. Cada bloco tem a
forma
J i = λi I + Ei

onde Ei é uma matriz nilpotente de índice li , isto é, Eili = 0 . Dessa forma,


li −1
k!
para k ≥ li , J ik = ∑ λik− j Ei j
j =0 j !(k − j )!

usando-se a desigualdade triangular para qualquer norma e fazendo k ≥ li,


tem-se
li −1
k!
J ik ≤ ∑
k− j
λi Ei j
j =0 j !(k − j )!

Como λi <1, cada termo da soma finita acima converge para zero quando k
k
→ ∞ . Dessa forma, a matriz Ji converge para zero. Como cada bloco converge para
zero, a matriz inteira J também converge para zero, e isto prova o teorema.

Página 21 de 62

Teorema 2 : A serie ∑A k
converge se e somente se ρ(A) < 1 . Sob esta
k =0

-1
condição I-A é não singular e o limite da série é igual a (I – A) .

Demonstração:
A primeira parte do teorema é uma conseqüência imediata do teorema 1
acima. Além disso, se a série dada converge, então Ak → 0 então, pelo teorema
anterior, implica que ρ(A) < 1. Para mostrar que o inverso também é verdadeiro, usa-
se a igualdade

I − A k +1 = (I − A )(I + A + A 2 + ... + A K )

e explorando o fato de que ρ(A) < 1 então I-A é não-singular, e dessa forma

(I − A )
−1
(I − A K +1 ) = I + A + A 2 + ... + A K
Isso mostra que a série converge e que o lado esquerdo da expressão
-1
converge para (I – A) e prova também a segunda parte do teorema. Logo o teorema
está demonstrado.

Teorema 3 : (Perron-Frobenius) Seja A uma matriz real n x n não negativa e


irredutivel (redutibilidade = propriedade das matrizes tal que uma matriz de
permutação P transforme-as por PAP−1 em matrizes triangulares superiores) . Então
λ = ρ ( A ) , o radius espectral de A , é um simples autovalor de A . Além do mais,
existe um autovetor u com elementos positivos associado com este autovalor.

Teorema 4 : Seja A uma matriz não-negativa. Então ρ ( A ) < 1 se e somente


−1
se I − B é não singular e (I − B) é não-negativo.

Demonstração :

Seja C = I − A . Se é assumido que ρ ( A ) < 1 então pelo teorema 2 acima


C = I − A é não singular e

C−1 = (I − A ) = ∑ A i
−1

i =0

Em adição, como A ≥ 0 , todas as potencias de A bem como de sua soma é


também não-negativo.
Análise e Métodos Numéricos Aplicados a Engenharia

Para provar a condição de suficiência, asume-se que C é não-singular e que


sua inversa é não negativa. Pelo teorema de Perron-Frobenius, existe um autovetor
não negativo u associado a ρ(A), o qual é um autovalor, isto é,

1
Au = ρ ( A ) u ⇔ C−1u = u
1− ρ (A)
-1
Assim u e C são não negaticos, e I − A é não singular; isto mostra que 1 -
ρ(A) > 0, e o teorema está provado.
Teorema 5 : Seja G uma matriz n x n. Então as seguintes afirmações são
equivalentes:

A iteração (1) converge para todo x(0) ∈ Rn .

limk→∞G(k) = 0.

ρ(G) < 1.

Note que o radius espectral também provêr uma medida de quantidade da taxa de
convergência:

x ( k ) − x* ≤ G ( k ) . x (0) − x*
x ( k ) − x* (5)
⇒ ≤ G(k )
x (0) − x*

Teorema 6: Para toda matriz G de dimensão n x n


1
lim G k k
= ρ (G ) (6)●
k →∞

À parte do conhecimento de que a sequencia (1) converge, é bastante interessante que se


saiba o quão rápido ela convergirá. Seja então o erro dk no passo k, que satisfaz a

d k = x (k) - x* → d k = G (k)d 0 (7)

A matriz G pode ser representada na forma canonica de Jordan como G = XJX -1 .


Assume-se por simplicidade, e sem perda de generalidade, que exista apenas um
autovalor de G de maior modulus, e seja chama-lo de λ. Então

⎛J ⎞
k

d k = λ X ⎜⎜ ⎟⎟⎟ X -1d 0
k
(8)
⎜⎝ λ ⎠

Página 23 de 62
É util verificar que as potencias de J/λ mostram que todos os seus blocos, exceto o
bloco associado com o autovalor λ, converge para zero quando k tende ao infinito.
Assim esse bloco de Jordan será de tamanho p e é da forma

J λ = λI + L (9)

onde L é nilpotente de índice p, isto é, Lp = 0. Então, para k ≥ p


⎛ p−1 ⎛k ⎞ ⎞
Jλk = (λ I − L) = λ k ( I + λ−1 L) = λ k ⎜⎜⎜∑ λ−i ⎜⎜ ⎟⎟⎟ Li ⎟⎟⎟
k
(10)
⎝⎜ i=0 ⎝ i ⎠⎟ ⎠⎟

Se k é grande suficiente, então para qualquer λ o termo dominante da expressão acima é


o último termo, isto é

⎛ k ⎞⎟ p−1
J λk ≈ λ k − p+1 ⎜⎜ ⎟L (11)
⎜⎝ p −1⎠⎟⎟

Assim, a norma de dk tem a forma asintótica

⎛ k ⎞⎟
d k ≈ C. λ k − p+1 ⎜⎜ ⎟ (12)
⎜⎝ p −1⎠⎟⎟

onde C é uma constante. O fator de convergência de uma sequemcia é o limite


1
⎛d ⎞ k

ρ = lim ⎜⎜⎜ k ⎟⎟⎟ (13)


k →∞ ⎜ d ⎟
⎝ 0 ⎠

Segue da análise acima que ρ = ρ(G) . A taxa de convergência φ é o logaritmo natural


do inverso do fator de convergência:

⎛1⎞
φ = ln ⎜⎜ ⎟⎟⎟ = ln1− ln ρ = − ln ρ
⎜⎝ ρ ⎠⎟

A definição acima depende do vetor inicial x(0) assim ele pode ser chamado de fator de
convergência específico. Um fator de convergência geral pode também ser definido por
1
⎛ d k ⎞⎟ k

φ = lim ⎜⎜⎜ max ⎟⎟ (14)


k →∞ ⎜ x( 0) ∈ n d ⎟
⎝ 0 ⎠

Este fator satisfaz a


1
⎛ G k d0 ⎞⎟ k
⎜⎜ ⎟⎟ = lim ( G k
1
φ = lim ⎜maxn
k →∞ ⎜ d0 ∈ ⎟ ) k
= ρ (G )
⎜⎝ ⎠⎟
d0 k →∞
Análise e Métodos Numéricos Aplicados a Engenharia

Assim , o fator de convergência asintótico global é igual ao radius espectral da matriz de


iteração G . A taxa de convergência geral difere da taxa específica apenas quando o
erro inicial não tem qualquer componentes no subespaço invariante associado com o
autovalor dominante. Assim, como é difícil conhecer esta informação de antemão, o
fator de convergência geral é mais útil na prática.

7.5.2.6 – Divisões Regulares

Definição 1 : Sejam A, M, N três matrizes fatisfazendo a A=M–N. O par de matrizes


M , N é uma divisão regular de A, se M é não singular e M-1 e N são não-negativas;

Com uma divisão regular, associa-se a iteração (vide expressão (4) da seção 7.5.2.2):

x (k+1) = M -1Nx (k) + M -1b (1)

A pergunta aqui é: sob que condições esta iteração converge? O teorema a


seguir, antes vendo a definição de uma M-matriz.

Definição 2 : Uma matriz é dita ser uma M-matriz se ela satisfaz as quatro seguintes
propriedades:

1. ai,i > 0 para qualquer i=1,2, ..., n.


2. ai,j ≤ 0 para i ≠ j, i,j = 1, 2, ..., n.
3. A é não singular.
4. A-1 ≥ 0
Uma maneira mais formal e rigorosa de afirmar as propriedades (3) e (4)
acima é tomar D a matriz diagonal de A; desde que D > 0 então

A=D–(D–A)=D(I–(I–D-1A)) (2)

Definindo

B=I–D-1A (3)

Teorema 1 : Sejam M, N a divisão regular de uma matriz A. Então ρ(M-1N) < 1 se e


somente se A é não singular e A-1 é não negativo.

Demonstração :

Definindo G = M−1N e do fato de que ρ (G ) < 1 e a relação

A = M ( I - G) (4)

Página 25 de 62
segue que A é não-singular. As hipóteses do teorema 4 da seção anterior são satisfeitas
-1
para a matriz G desde que G = M N seja não negativo e ρ(G)<1. Dessa maneira, (I
– G)-1 é não negativa bem como

A-1 = (I–G)-1M-1 (5)

Para provar a condição de suficiência, considere que A seja não-singular e que sua
inversa seja não negativa. Desde que A e M sejam não singulares, a relação (4) mostra
novamente que que I – G é não singular e mais

A -1N = (M (I - M -1N)) N ⇒
-1

A -1N = (I - M -1N ) M -1N ⇒


-1
(6)
-1
A -1N = (I - G) G

-1
É claro que G = M N é não negativo por hipótese, e como resultado do teorema de
Perron-Frobenius, existe um autovetor não negativo x associado com ρ(G) que por sua
vez é um autovalor, tal que

Gx = ρ (G) x

Deste resultado e de (6), segue que:

ρ (G )
A −1N x = x
1 − ρ (G )

Desde que x e A-1N sejam não negativos, isto mostra que

ρ (G )
≥0
1 − ρ (G )

e isto só pode ser verdadeiro se o denominador da expressão acima for maior que zero,
isto é, se e somente se 0 ≤ ρ(G) ≤ 1. Desde que I – G seja não singular, então ρ(G) ≠
1, o que implica que ρ(G) < 1.

Este teorema também estabelece que a iteração (1) também converge, se M, N são uma
divisão regular de A e também A seja uma M-matriz.

7.5.2.7 – Matrizes Diagonalmente Dominantes, Positivas-Definidas


Simetricas

Definição 1 : Uma matriz A é:diagonalmente dominante (fracamente) se


Análise e Métodos Numéricos Aplicados a Engenharia

n
a jj ≥ ∑ aij , j = 1,..., n
i =1
i≠ j

diagonalmente estritamente dominante se


n
a jj > ∑ aij , j = 1,..., n
i =1
i≠ j

diagonalmente irredutivelmente dominante se A é irredutível, e


n
a jj ≥ ∑ aij , j = 1,..., n
i =1
i≠ j

A dominância diagonal é relacionada com um importante resultado da Álgebra Linear


Numérica conhecido como Teorema de Gershgorin. Este teorema permite avaliar a
localização de todos os autovalores de A a serem determinados. Em algumas situações,
é desejável determinar essas localizações no plano complexo, explorando diretamente
algum conhecimento das entradas da matriz A .

Teorema 1 : (Gershgorin). Qualquer autovalor λ de uma matriz é localizado em


um disco fechado no plano dos complexos centrado em aii e tendo por raio
n
ρi = ∑ aij
j =1
j ≠i

em outras palavras,
n
∀λ ∈ σ ( A ) , ∃i ∴ λ − aii ≤ ∑ aij (1)
j =1
j ≠i

Demonstração :

Seja x um autovetor associado com um autovalor λ , e seja m o índice do componente


de maior modulu em x. Escolhe-se x de maneira que |ξm| = 1, e |ξ i| ≤ 1, para i ≠ m.
Como x é um autovetor, então
n
(λ − amm ) ξm = −∑ amj ξ j
j =1
j ≠m

o que produz

Página 27 de 62
n n
λ − amm ≤ ∑ amj ξ j ≤ ∑ amj = ρm (2)
j =1 j =1
j ≠m j ≠m

Isto completa a prova; logo o teorema está demonstrado.

Uma vez que o resultado também é válido para a transposta de A, uma versão do
teorema pode ser formulada baseada na soma das colunas ao invés da soma das linhas.

Os n discos definidos no teorema são chamados de discos de Gershgorin. O teorema


estabelece que a união desses n discos contém o espectro de A. Isto também pode ser
mostrado quando existes m discos de Gershgorin cuja união S é disjunta de todos os
outros discos, então S contém exatamente m autovalores (contado com suas
multiplicidades). Por exemplo, quando um disco é disjunto dos demais, então ele
precisa conter exatamente um autovalor.

Teorema 2 : Seja A uma matriz irredutível, e assumindo que um autovalor de


A localiza-se no contorno da união de n discos de Gershgorin, então λ está no contorno
de todos os discos de Gershgorin.

Demonstração :

Semelhantemente como na prova do teorema de Gershgorin, seja x um autovetor


associado com um autovalor λ , com

|ξm| = 1 e |ξ i|≤1 para i ≠ m. Começando da equação (2) acima, a qual estabelece que o
ponto λ pertence ao m-ésimo disco. Além disso, λ pertence ao contorno da união de
todos os discos. Como consequencia disso, ele não pode ser um ponto interior do disco
D(λ,ρm) . Isto implica que |λ - amm|=ρm . Dessa forma as desigualdades em (2) se
transformam em igualdade:
n n
λ − amm = ∑ amj ξ j = ∑ amj = ρm (3)
j =1 j =1
j ≠m j ≠m

Seja j qualquer inteiro de maneira que 1 ≤ j ≤ n. Como A é irredutível, seu grafo é


conectado e, portanto, existe um caminho do nó m para o nó j na adjacencia do grafo.
Seja m, m1, m2, ..., mk = j este caminho. Por definição de um caminho na adjacencia do
grafo, amm ≠ 0. Devido a igualdade (3), é necessário que |ξ j| = 1 para todo ξ j não
nulo.Assim, |ξm| precisa ser igual a um.Agora repetindo o argumento com m trocado por
m1 mostr-se que a seguinte igualdede é verdadeira
n n
λ − am1m1 = ∑ am1 , j ξ j = ∑ am1 , j = ρm1 (4)
j =1 j =1
j ≠m1 j ≠m1

Fazendo isso repetidamente, mostra-se em cada tempo que


Análise e Métodos Numéricos Aplicados a Engenharia

λ − ami ,mi = ρmi

e isto é válido para todo i=1, 2, ..., k . No final, será provado que λ pertence ao contorno
do j-ésimo disco para um j arbitrário.

Um corolário imediato do teorema de Gershgorin é

Corolário 1 : Se uma matriz A é estritamente dominante diagonalmente ou


irreduzivelmente dominante diagonalmente, então ela é não singular.

Demonstração:

Se a matriz é estritamente dominante diagonalmente, então a união dos discos de


Gershgorin exclui a origem, assim λ = 0 não pode ser um autovalor. Se, por outro lado,
ela é irreducivelmente dominante diagonalmente, e mais, se ela é singular, o autovalor
zero está sobre o contorno da união dos discos de Gershgorin. Nesta situação, de acordo
com o teorema anterior, este autovalor precisa está sobre o contorno de todos os discos.
Isto significa que
n
a jj = ∑ aij j = 1,..., n
i =1
i≠ j

o que contradiz a hipótese de irreduzibilidade.

Teorema 3 : Se A é uma matriz estritamente dominante diagonalmente ou


irreduzivelmente dominante diagonalmente, então as iterações associadas de Jacobi e
Gauss-Seidel convergem para qualquer vetor tentativa inicial x(0).

Demonstração :
Provar-se-á primeiro o resultado para matrizes A estritamente dominantes
diagonalmente. Seja λ um autovalor dominante da matriz M J = D-1 (L + U) da iteração
-1
de Jacobi e de M GS = (D - L) U da iteração de Gauss-Seidel. À semelhança do que foi
feito na demonstração do teorema de Gershgorin, seja x um autovetor associado com λ,
com ξm = 1 e ξi ≤ 1 para i ≠ 1. Da equação (2) no teorema de Gershgorin
n n
λ − amm ≤ ∑ amj ξ j ≤ ∑ amj = ρm
j =1 j =1
j ≠m j ≠m

n amj n amj
para MJ tem-se: λ ≤∑ ξj ≤ ∑ <1
j =1 amm j =1 amm
j ≠m j ≠m

O que proja o resultado para o método de Jacobi.


Para a iteração de Gauss-Seidel, escreve-se a m-ésima linha da equação
Fx = λ (D - L) x na seguinte forma

Página 29 de 62
⎛ ⎞
∑a ξ j = λ ⎜⎜⎜ammξm + ∑ amj ξ j ⎟⎟⎟
⎜⎝ ⎠⎟
mj
j<m j>m

a qual produz a seguinte desigualdade

∑a
j>m
mj ξj ∑a
j>m
mj

λ≤ ≤
amm − ∑ amj ξ j amm − ∑ amj
j>m j>m

Este último termo da equação acima tem a forma σ2 / (d − σ1 ) onde d, σ1, σ2 são
todos não negativos e d - σ1 - σ2 > 0. Assim
σ2
λ≤ <1
σ2 + (d − σ2 − σ1 )
No caso em que a matriz é apenas irreduzivelmente dominante diagonalmente, as
provas acima apenas mostram que ρ ( M −1 N ) ≤ 1 , onde M -1N é a matriz de iteração ou de
Jacobi ou de Gauss-Seidel. Uma prova por contradição será usada para mostrar que de
fato tem-se ρ (M -1N) ≤ 1 . Assumindo que λ é um autovalor de M -1N com |λ| = 1, então a
-1
matriz M N − λI será singular, e como resultado, A′ = N − λ M também precisa ser
singular. Como |λ| = 1, é claro que A′ é também irreduzivelmente dominante
diagonalmente. Isto contradiz o corolario 1. Logo o teorema está demonstrado.

É possível mostrar que quando A for simétrica e positiva definida, o método de


sobrerelaxação sucessiva (SOR) converge para qualquer w no intervalo (0,2) e para
qualquer valor inicial x0. O reverso também é verdadeiro sob determinadas hipóteses.

Teorema 4: Se A é simetrica com os elementos da diagonal principal positivos e para 0


< w < 2, o método de sobrerelaxação converge para qualquer valor inicial x0 se e
somente se A for positiva definida.

7.5.2.8 – Matrizes Esparsas, Representação em Grafos e Ordenamento


Consistente

Como é de conhecimento, a grande maioria dos sistemas de equações dos problemas de


engenharia (por exemplo, problemas resolvidos com o método dos elementos finitos,
pelo método dos elementos de contorno, método das diferenças finitas, etc.), geram
matrizes esparsas, onde melhor se aplicam os métodos iterativos, que além disso são os
mais apropriados para o processamento paralelo, que hoje é a força da computação
moderna.

Os métodos vistos nas seções anteriores, se prestam também para matrizes cheias,
porém são mais empregados nos processos onde envolve matrizes esparsas.
Análise e Métodos Numéricos Aplicados a Engenharia

Devido a isso, é de bom senso que se fale algumas linhas sobre tais tipos de matrizes,
suas interpretações e operações que se pode fazer sobre elas para que se melhor aplique
os métodos de solução de sistemas lineares por meios iterativos.

Essas matrizes aparecem nos problemas de engenharia devido a um processo de


discretização das equações que regem os fenômenos estudados. No caso específico dos
elementos finitos, além da matriz esparsa propriamente dita, é necessária uma outra
matriz, também esparsa, que defina como os pontos ou nós se interligam.

A teoria dos grafos, nesse ponto, é uma ferramenta ideal para a representação da
estrutura das matrizes esparsas e jogam um papel relevante nas técnicas de
manipulação das mesmas. Por exemplo, a teoria dos grafos é o ingrediente chave
utilizado no desembaraçamento do paralelismo nas técnicas de precondicionamento e de
eliminação de Gauss.

Assim ,vamos relembrar que um grafo ér definido por dois conjuntos, um conjunto de
vértices V = {v1 , v2 ,..., vn } e um conjunto de arestas ou ligações L que consiste de um par
(vi , v j ) os quais por sua vez são elementos de V , isto é, L ⊆ V × V . Um grafo
G = (V, L) é normalmente representado por um conjunto de pontos em um plano
ligados por uma linha entre os pontos que são conectados por uma ligação. Um grafo é
uma maneira de representação de uma relação binária entre objetos do conjunto V . Por
exemplo, V pode repesentar cidades de um país servidas por linhas aéreas enquanto L
representa a ligação entre elas por vôos sem escalas. Quando uma ligação do ponto (A)
para o ponto (B) significar que existe um vôo de (A) para (B) e também de (b) para (A),
isso gera um grafo chamado não-dirigido, em caso contrário, ele é dito dirigido.

1
4 1
4

3 3
2
2

Figura 1 Figura 2

O grafo da figura 1 é dito não-dirigido enquanto o grafo da figura dois é dito dirigido.
As matrizes que representam estas duas figuras são respectivamente

Página 31 de 62
⎛1 1 0 1⎞⎟ ⎛1 1 0 0⎞⎟
⎜⎜ ⎟ ⎜ ⎟
⎜⎜1 1 1 0⎟⎟ ⎜⎜⎜0 1 0 1⎟⎟
⎜⎜ ⎟
⎟ ⎜ ⎟
⎟ onde aij ≠ 0 significa que existe uma ligação de i para j
⎜⎜0 1 1 1⎟⎟⎟ ⎜⎜⎜0 1 1 0⎟⎟⎟
⎜⎜ ⎟ ⎜ ⎟
⎜⎜⎝1 0 1 1⎠⎟⎟ ⎜⎜⎜⎝1 0 1 1⎠⎟⎟
e de j para i no caso de grafos não-dirigido e no caso de grafos dirigido, que existe
apenas uma ligação de i para j . Vê-se que no caso de grafos não dirigido a matriz
resultante é simétrica.

Assim o grafo de adjacendia de uma matriz esparsa é um grafo G = (V , L) , no qual os n


vertices de V representam as n incógnitas. Suas ligações ou arestas representam relações
binárias estabelecidas pelas equações.

Para equações diferenciais parciais envolvendi apenas uma incógnita física por ponto da
malha, o grafo de adjacência da matriz surgida da discretização é normalmente
representada pela própria malha. Entretanto é muito comum haverem diversas
incógnitas por ponto da malha. Por exemplo, as equações modelando o fluxo de fluidos
podem envolver duas componentes da velocidade (em duas dimensões) bem como a
energia e o momento em cada ponto da malha. Em tais situações, existem duas escolhas
quando classificando as incógnitas. Elas podem ser classificadas continuamente em
cada ponto da malha; assim, para o exemplo supra mencionado, pode-se classificar
todas as quatro variáveis (duas velocidades seguidas de momento e pressão) em cada
ponto dado da malha como u(k), ..., u(k+3).

Alternativamente, todas as incógnitas associadas a um tipo de variável podem ser


rotuladas ou classificadas primeiro (por exemplo a primeira componente da velocidade),
seguido por aquelas associadas com o segundo tipo de variável, e assim sucessivamente.
Neste caso é claro que existe uma informação redundante no grafo da matriz de
adjacência. O grafo quociente correspondente a malha fisica por ser utilizada por sua
vêz. Este resultado economiza armazenamento e computação. No exemplo
mencionado, o armazenamento pode ser reduzido por um fator 16 para arrays inteiros
necessários para representar o grafo, Isso é devido a que as arestas terão sido reduzidas
pelo fator, enquanto o número de vértices permanece o mesmo.

7.5.2.9 Permutações e Reordenamentos.

Permutando linhas ou colunas ou ambas de uma matriz esparsa é uma operação comum.
De fato, o reordenamento de linhas e colunas é um dos mais importantes imgrediemtes
utilizados na computação paralela tanto nas técnicas diretas quanto nas iterativas.

Definição 1 : Seja A uma matriz e π = { i1 , i2 , ... , in} uma permutação do conjunto {


1 , 2 , ... , n }. Então as matrizes

Aπ ,* = {aπ ( i ), j }
i =1,...,n ; j =1,...,m
(0.1)
A*,π = {ai ,π ( j ) }
i =1,...,n ; j =1,...,m
Análise e Métodos Numéricos Aplicados a Engenharia

são chamadas de linha π-permutação e coluna π-permutação de A , respectivamente.

É um fato conhecido que qualquer permutação do conjunto {1, 2,...,n} resulta de no


máximo n trocas, isto é, permutações elementares nas quais apenas duas entradas
tenham sido trocadas. Uma matriz de troca é uma matriz identidade com duas de suas
linhas torcadas. Seja denotar por Xij tais matrizes, com i e j representando os números
das linhas trocadas. Note que para realizar a troca da linha i pela linha j de uma matriz
A , basta pre-multiplica-la pela matriz Xij .

Seja então π = { i1 , i2 , ... , in} uma permutação arbitrária. Essa permutação é o


produto da sequencia de n trocas consecutivas σ (ik , jk ) , k = 1,..., n . Assim as linhas de
uma matriz podem ser permutadas pela troca das linhas i1,j1, então as linhas i2,j2 da
matriz resultante, etc. até finalmente a troca in,jn da matriz resultante. Cada uma dessas
operações pode ser realizada pela pre-multiplicação da matriz resultante da operação
anterior por X ik , jk .

A mesma observação pode ser feita com relação as colunas de uma matriz: para realizar
a troca da coluna i pela j, se pós-multiplica a matriz por Xij . Veja o exemplo abaixo:

4 503 80 41
0 0 0 1
71 71 40 10
0 1 0 0 Matriz unitária onde a 1ª e
A
60 08 21 51 X14 4ª linhas estão trocadas.
0 0 1 0
90 91 06 1
1 0 0 0

90 91 6 1 41 503 80 4
71 71 40 10 10 71 40 71
X14 . A = A . X14 =
60 8 21 51 51 8 21 60
4 503 80 41 1 91 6 90

1ª e 4ª linhas 1ª e 4ª colunas
trocadas trocadas

Proposição 1 : Seja π uma permutação resultante do produto das trocas


σ (ik , jk ) , k = 1,..., n então

Aπ ,* = Pπ A
(0.2)
A*,π = AQπ

Página 33 de 62
Pπ = X in , jn X in−1 , jn−1 ... X i1 , j1
onde (0.3)
Qπ = X i1 , j1 X i2 , j2 ... X in , jn

Os produtos de matrizes de troca são chamados de matrizes de permutação. É claro que


matrizes de permutações nada mais são que matrizes unitarias com suas linhas (ou
colunas) permutadas.

Observe que X i2, j = I , isto é, o quadrado de uma matriz de troca é a identidade, ou


equivalentemente, a inversa de uma matriz de troca é ela mesma. Assim, as matrizes
definidas acima Pπ e Qπ são não singulares e uma é a inversa da outra

PπQ π = I (0.4)

Em outras palavras, vê-se que a permutação de linhas e de colunas de uma matriz


usando a mesma permutação, realiza uma transformação de similaridade. Outra
importante consequencia aparece devido aos produtos envolvidos em (0.3) ocorrerem
em ordem reversa, Como cada matriz elementar X i , j é simétrica, a matriz Qπ é a
k k

transposta de Pπ . Assim

Q π = PπT = Pπ-1

Dessa forma a inversa de uma matriz Pπ é sua própria transposta.

Assim uma permutação do tipo Q π APπ = PπT APπ é conhecido como permutação
simétrica, e é denotada por Aπ,π , é uma permutação que preserva os elementos da
diagonal, o que é muito desejável na solução de problemas de engenharia. Assim, como
no exemplo anterior, tem-se
Análise e Métodos Numéricos Aplicados a Engenharia

4 503 80 41
0 0 0 1
71 71 40 10
A 0 1 0 0
60 08 21 51 X14
0 0 1 0
90 91 06 1
1 0 0 0

90 91 6 1 41 503 80 4
71 71 40 10 10 71 40 71
X14 . A = A . X14 =
60 8 21 51 51 8 21 60
4 503 80 41 1 91 6 90

1 91 6 90
10 71 40 71
X14 . A . X14 =
51 8 21 60
41 503 80 4

É importante interpretar as operações de permutação nos sistemas lineares a serem


resolvidos. Quando linhas de uma matriz são trocadas ou permutadas, a ordem nas quais
as equações são escritas é alterada. Por outro lado, quando colunas são permutadas, as
incognitas também o são reordenadas.

7.5.2.10 Relações com os Grafos de Adjacência.

Do ponto de vista da teoria dos grafos, outra importante interpretação das permutações
simétricas é que elas são equivalentes a reordenar os vértices do grafo sem alterar as
arestas. Além do mais, seja (i , j) uma aresta em um grafo de adjacência da matriz
´
original A e seja A´ uma matriz permutada. Então aij = aπ ( i ),π ( j ) e o resultado (i , j) é
uma aresta no grafo de adjacência da matriz permutada A´, se e somente se, (π(i) , π(j))
é uma aresta no grafo de adjacência da matriz original A . Dessa forma, o grafo de uma
matriz permutada não se altera. Por outro lado, permutações não simétricas não
preservam o grafo. podendo inclusive tranformarem grafos não dirigidos em grafos
dirigidos.

No processo de eliminação de Gauss, é utilizado o reordenamento de matriz. Se este


reordenamento é realizado por permutações simétricas nenhum aparecimento de novos
elementos acontece e assim as partes L e U da fatorização LU têm a mesma estrutura
da parte inferior e superior de A , respectivamente. Por outro lado, se as transformações
forém não simétricas aparecerão novos elementos no processo de eliminação, o que é
extremamente desastroso para o método.

Página 35 de 62
7.5.2.11 Reordenamentos comuns.

Os tipos de reordenamento ou permutações usadas nas aplicações dependem de estarem


sendo considerados os métodos diretos ou iterativos.

Ordenamento do conjunto de níveis. É um ordenamento que é muito útil para métodos


diretos. Esta classe de ordenamento contém um número de técnicas que são baseadas
sobre o atravessamento do grafo por conjuntos de níveis. Um conjunto de níveis é
definido recursivamente como um conjunto de todos os vizinhos não marcados de todos
os nós de um conjunto de nível anterior. Inicialmente, um conjunto de nível consiste de
um nó, embora estratégias que iniciem com diversos nós também possam ser
consideradas. Tão logo um conjunto de níveis é aplicado ou atravessado, seus nós são
marcados e numerados. Eles podem, por exemplo, serem numerados na ordem em que
são atravessados. Além do mais, a ordem na qual cada nível e por ele mesmo
atravessado dar-se o aparecimento de ordenações distintas; por exemplo, os nós de um
certo nivel podem ser visitados na ordem natural nos quais estão listados; seus vizinhos
são então inspecionados. A cada tempo, um vizinho de cada vértice visitado que não
está numerado é encontrado, e ele é adicionado para alista e rotulado como o próximo
elemento do próximo conjunto de nível.

Esta estratégia simples é chamada, na teoria dos grafos, de Primeira Busca de Breadth
(ou BFS = Breadth First Search) transversal . O ordenamento dependerá da maneira na
qual os nós serão atravessados em cada conjunto de nível. Na BFS os elementos de um
conjunto de nível serão smepre atravessados em ordem natural que eles forem listados.
Já na estratégia conhecida como Ordenamento de Cuthill-McKee ou ordenamento
CMK, os elementos de um conjunto de nível são atravessados ou visitados dos nós de
menor grau para os de maior grau:

Entre com o nó inicial ii ; Saida:array de permutação iperm.


Inicie: Ative levset:={i1} ; next = 2;
Ative marker(ii) = 1 ; iperm(1) = i1 ;
Enquanto (next < n ) faça
Next_lrvdset = 0;
Atravesse levset na ordem do aumento do grau e a
cada nó visitado faça
Para cada vizinho i de j tal que marker(k) = 0 faça
Adicione i ao conjunto Next_levset ;
marker(i) := 1; iperm(next) = i ;
next = next + 1
fim faça
fim faça
levset := Next_levset
fim enquanto.
Análise e Métodos Numéricos Aplicados a Engenharia

O array iperm obtido do procedimento acima lista os nós na ordem em que foram
visitados e pode, em implementações práticas, ser usado para o armazenamento dos
conjuntos de níveis, em sua sucessão. É óbvio que será necessário um apontador para
indicar o ínicio de cada conjunto de nível.

Em 1971, A. George publicou um trabalho na Universidade de Stanford, denominado


"Computer Implementations of the Finite Element Method" onde observou que
invertendo o ordenamento CMK, este produz um esquema melhor para a eliminação de
Gauss em matrizes esparças. A maneira mais simples de ver e entender isso é olhar os
grafos produzidos por esses ordenamentos.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1
2 1 1 1 1 1
3 1 1 1 1
4 1 1 1 1
5 1 1 1 1 1
6 1 1 1
7 1 1 1 1 1
8 1 1 1 1 1 1 1
9 1 1 1 1 1
10 1 1 1 1
11 1 1 1 1 1 1
12 1 1 1 1 1 1 1
13 1 1 1 1 1
14 1 1 1 1 1
15 1 1 1 1 1

DISCRETIZAÇÃO ORIGINAL

Página 37 de 62
A seguir mostra-se a aplicação dos algoritmos de ordenamento de Cuthill-
McKee, do ordernamento reverso de Cuthill-McKee (RCMK) e de ordenamento de
Cuthill-McKee iniciando com ii = 1, todos aplicados a partir da discretização original
vista acima.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1 1
2 1 1 1 1 1 1 1
3 1 1 1 1
4 1 1 1 1 1
5 1 1 1 1 1
6 1 1 1 1 1 1 1
7 1 1 1 1 1
8 1 1 1
9 1 1 1 1 1
10 1 1 1 1 1 1 1
11 1 1 1 1 1
12 1 1 1 1 1
13 1 1 1 1 1
14 1 1 1 1
15 1 1 1
ORDENAMENTO DE CUTHILL-McKEE

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1
2 1 1 1 1
3 1 1 1 1 1
4 1 1 1 1 1
5 1 1 1 1 1
6 1 1 1 1 1 1 1
7 1 1 1 1 1
8 1 1 1
9 1 1 1 1 1
10 1 1 1 1 1 1 1
11 1 1 1 1 1
12 1 1 1 1 1
13 1 1 1 1 1
14 1 1 1 1 1 1 1
15 1 1 1 1
ORDENAMENTO REVERSO DE CUTHILL-McKEE
Análise e Métodos Numéricos Aplicados a Engenharia

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1
2 1 1 1 1
3 1 1 1 1 1
4 1 1 1 1 1
5 1 1 1 1 1
6 1 1 1 1 1 1 1
7 1 1 1 1 1
8 1 1 1
9 1 1 1 1 1
10 1 1 1 1 1 1 1
11 1 1 1 1 1
12 1 1 1 1 1
13 1 1 1 1 1
14 1 1 1 1 1 1 1
15 1 1 1 1
ORDENAMENTO REVERSO DE CUTHILL-McKEE

O resultado dos ordenamentos padrão (CMK) e reverso (RCMK) de Cuthill-McKee


sobre uma amostra de uma malha de um problema de elementos finitos, como visto nas
planilhas acima, é bastante elucidativo. Como visto, a aplicação do RCMK, com i1=1
produz uma matriz mais adequada para ser resolvida por processos de banda além de
produzir uma matriz mais economica, do ponto de vista de armazenamento.

7.5.2.12 Ordenamento independente do conjunto (ISO).

As matrizes que aparecem nos problemas modelados por elementos finitos são todas
caracterizadas por um bloco superior esquerdo que é diagonal, isto é, tem a seguinte
estrutura:

⎛D U ⎞⎟
A = ⎜⎜ ⎟
⎜⎝ L C⎠⎟⎟

na qual D é diagonal e L, U e C são matrizes esparsas. O bloco diagonal superior


corresponde às incognitas do nível prévio do refinamento e sua presença é devido ao
ordenamento das equações em uso. Como novos vértices são criados na malha refinada,
a eles são dados novos números e a numeração inicial dos vértices não é alterada.
Assim, as conexões antigas são "cortadas" por novos vertices. Os conjuntos compostos
por estes novos vértices são chamados de "conjuntos independentes", pois não se
relacionam às equações. Esses "conjuntos independentes" são especialmente úteis na
computação paralela, tanto para a implementação de métodos diretos ou indiretos.

Página 39 de 62
Referindo-se ao grafo de adjacência G = (V, E) da matriz, e denotando por (x,
y) o elo ou ligação de um vértice x ao vértice y, um conjunto independente S é um
subconjunto de vértices de V tal que:

se x ∈ S, entao {( x, y ) ∈ E ∨ ( y, x ) ∈ E} → y ∉ S

Para explicar isso em outras palavras, diz-se que elementos de S não são permitidos
estarem conectados a outros elementos de E .

Um conjunto independente é dito ser maximal se ele não pode ser aumentado por
elementos no seu complemento para formar conjuntos independentes maiores. Note que
um conjunto independente maximal é o maior conjunto independente que pode ser
achado.

Existe um número de heurísticas simples e otimizadas para achar conjunto


independente maximal. Uma heurística voraz verifica os nós em uma dada ordem, e se
um nó não está marcado, ele seleciona o nó como um novo membro de S . Então este nó
é marcado adiante com seus vizinhos próximos. Aqui, um vizinho próximo de um nó x
significa qualquer nó lincado a x por uma ligação.

Algoritmo Voraz para ISO


Ative S = 0
Para j = 1,2,..., n Faça
Se nó j não está marcado então
S=S∪{j}
Marque j e todos seus vizinhos próximos
Fim de Se
Fim de faça
No algoritmo acima, os nós são visitados na ordem natural 1,2,...,n , mas eles também
podem ser visitados em qualquer permutação {i1, i2, ..., in} de {1,2,...,n}. Assim o
tamanho do sistema reduzido é n-|S|, o que justifica se tentar maximizar o tamanho de S
para que se obtenha uma um sistema reduzido pequeno. Tentando dar uma ideia do
tamanho de S, seja considerar que o grau de cada nó não exceda a µ; como no algoritmo
acima toda vez que colocamos x em S também se coloca potencialmente µ elementos,
que são seus vizinhos próximos. Assim, se s é o tamanho de S, o tamanho de seu
complemento n-s é tal que n-s ≤ µs, logo

n
s≥
1+ µ

Isso nos sugere que é uma boa política de visitação, visitar-se primeiro os nós de menor
grau. Isso pode ser feito pelo algoritmo definido acima, apenas substituindo o modo de
visitação por uma permutação que englobe primeiro os nós de menor grau.

Uma forma de melhorar o processo é substituir na fórmula acima µ por µs (máximo


grau) de todos os vértices que constitue S
Análise e Métodos Numéricos Aplicados a Engenharia

n
s≥
1 + µs

O algoritmo pode ser visto então como: em cada tempo que um nó é visitado, ele e seus
vizinhos próximos são retirados do grafo e então se visita um nó do grafo restante;
continua-se até que todos os nós forem visitados. Cada nó visitado pertence a S e seus
vizinhos próximos pertencem a S’ . Como resultado, se µi é o grau do nó visitado no
passo i, ajustado para todas as arestas removidas resultante das visitas anteriores, então
o número ni de nós que são retirados no passo i satisfaz a seguinte relação:

ni = ni−1 − µi − 1

O processo adiciona um novo elemento em S a cada passo e para quando ni = 0. Por


sua vez, para maximizar ⏐S⏐, o número de passos no procedimento precisa ser
maximizado. A dificuldade advém do fato que os graus dos nós são atualizados a cada
passo devido a remoção das arestas associadas ao nós removidos. Se o processo, for
encompridado, uma regra prática é visitar primeiro os nós de menor grau.

Algoritmo para o Aumento do Grau Transversal para ISO


Ative S=Ø {ache um ordenamento i1,..., in dos nós pelo aumento dos graus }
Para j=1,2,...,n Faça
Se nó ij não está marcado, então
S = S ∪ {ij}
Marque ij e todos os seus vizinhos
Fim do Se
Fim Faça

7.5.2.13 Ordenamento Multicolor.

Colorir grafos é um problema familiar em ciência da computação, o qual se refere ao


processo de colorir (ou rotular) os nós de um grafo de tal maneira que dois nós
adjacentes não tenham a mesma cor (ou o mesmo rótulo). A finalidade ou objetivo de
colorir um grafo é obter um grafo colorido que use o menor número de cores possível.
Entretanto, no contexto da algebra linear numérica isto é secundário.

Os métodos básicos para obter uma multicoloração de uma malha arbitrária é bastante
simples:

Algoritmo: Algoritmo de Multicoloração


1 – Para i = 1, , , , , n faça
2- color(i) = 0
3 – fim faça
4 - para i = 1,2, . . . , n faça
5- Ative color(i) = min{k > 0 | k ≠ color(j), ∀ j ∈ Adj(i) }
6 - fim faça

Página 41 de 62
Aqui, Adj(i) representa o conjunto de nós que são adjacentes ao nó i. A cor designada
para o nó i na linha 5 é a menor cor permitida de modo que assegure ao nó i uma cor
diferente das cores de seus vizinhos.

No algoritmo acima, a sequencia de visitação 1, 2, 3, ..., n foi arbitrária bem como a


forma de colorir. Semelhantemente como nas demais ordenações, poder-se-á escolher
uma ordem qualquer { i1, i2, ..., in}. Se um grafo é bipartite, isto é, se ele pode ser
colorido com apenas duas cores, então o algoritmo achará uma ordenamento bicolor
ótimo. Além do mais, se o grafo é bipartite, é fácil mostrar que o algoritmoacharará
duas cores qualquer que seja o procedimento de visitação, a qual, em um dado passo,
visita um nó não marcado que é adjacente no mínimo a um nó já visitado. Em geral, o
número de cores necessárias para colorir um grafo não excede ao máximo grau de cada
nó acrescido de 1.

Exercícios

1. Sejam A e B matrizes esparsas quadradas de mesma dimensão. Como pode o grafo


de C=A+B ser caracterizado com respeito aos grafos de A e B ?

Considere a matriz definida como Pπ = I π ,* . Mostre diretamente (sem usar as


proposições definitas no texto) que as relações a seguir são verdadeiras:

Aπ ,* = I π ,* A; I *,π = PπT ; APπT = A*,π

Sejam as matrizes A e B a seguir

⎧* * 0 * 0 0⎫ ⎧* 0 0 0 0 0⎫
⎪0 * 0 0 0 *⎪ ⎪* 0 * 0 * 0⎪
⎪ ⎪ ⎪ ⎪
⎪0 * * 0 0 0⎪ ⎪0 * 0 0 0 0⎪
A=⎨ ⎬ B=⎨ ⎬
⎪0 * 0 0 * 0⎪ ⎪* * 0 0 0 0⎪
⎪0 0 0 0 * 0⎪ ⎪0 * 0 * * 0⎪
⎪ ⎪ ⎪ ⎪
⎩0 0 0 0 0 *⎭ ⎩0 0 * 0 0 *⎭

onde * representa um elemento arbitrário diferente de zero.

a – Mostre os grafos de adjacência das matrizes A, B, AB e BA, considerando quea


existencia de um zero na diagonal represente explicitamente os ciclos correspondente
aos elos (i,i) quando estiverem presentes.

b - Considere a ,matriz C=AB. Der uma interpretação das ligações no grafo de C em


termos das ligações nos grafos de A e B. Verifique sua resposta usando as matrizes
dadas.
Análise e Métodos Numéricos Aplicados a Engenharia

2
c – Considere agora B=A, e depois B=A . Dê interpretações para C=AB e mostre
seu grafo de adjacência.
n
d – Generalize a questão c acima para o caso de B=A .
2. Seja

⎛* * * ⎞
⎜* * * * ⎟⎟

⎜ * * ⎟
A=⎜ ⎟
⎜ * * ⎟
⎜* * * *⎟
⎜ ⎟
⎝ * * *⎠

a – mostre o grafo de adjacência de A;

b – Considere a permutação π = {1,3,4,2,5,6}. Mostre o novo padrão de matriz obtido e


o seu grafo de adjacência.

7.5.2.14 Propriedade A e Ordenamento Consistente.

Vamos definir algumas propriedades relacionadas a grafos de matrizes. A primeira


dessas propriedades é chamada de Propriedade A; essa propriedade é pertinente às
matrizes cujos grafos são bipartite, isto é, seus vértices podem ser particionados em dois
conjuntos de modo que dois vértices de um mesmo conjunto são conectados por um elo
ou ligação ou aresta. Note que, como usual, os elos autoconectados que correspondem
aos elementos da diagonal são ignorados.

Definição 2 . Uma matriz tem a Propriedade A se os vértices de seu grafo de adjacência


podem ser particionados em dois conjuntos S1 e S2, de modo que qualquer elo liga
sempre um elemento de S1 a outro elemento de S2.

Uma definição alternativa é a de que uma matriz tem a Propriedade A se ela pode ser
permutada por uma matriz com a seguinte estrutura:

Página 43 de 62
⎛D -U ⎞⎟
A´= ⎜⎜ 1 ⎟
⎜⎝ -L D 2 ⎠⎟⎟ (2)

onde D1 e D2 são matrizes diagonais. Esta estrutura pode ser obtida pela primeira
rotulação de todas as incógnitas em S1 de 1 até n1, no qual n1 = |S1| e o resto de n1 + 1
até n. Note que a matriz de iteração de Jacobi tem a mesma estrutura, exceto que os
blocos D1 e D2 são trocados por blocos zerados. Essas matrizes de iteração de Jacobi
satisfazem um importante propriedade estabelecida na seguinte proposição:

Proposição 1 Seja A uma matriz com a seguinte estrutura

⎛ 0 A 12 ⎞⎟
A = ⎜⎜ ⎟ (3)
⎜⎝ A 21 0 ⎠⎟⎟

e sejam L e U as partes triangulares inferior e superior de A respectivamente. Então se


λ é um autovalor de A , então -λ também é.

Os autovalores da matriz

1
A(α) = α L + U (4)
α

definidos para α ≠ 0 são independentes de α.

Demonstração:

⎛ x⎞
A primeira propriedade é demonstrada por simples observação de que ⎜⎜ ⎟⎟⎟ é um
⎜⎝υ⎠⎟
⎛ x⎞
autovetor associado com λ, então ⎜⎜ ⎟⎟⎟ é um autovetor de A associado com o autovalor
⎜⎝−υ⎠⎟
-λ .

A segunda propriedade pode ser demonstrada considerando que A(α) é similar a A ,


-1
isto é, A(α) = XBX com X definido por

⎛1 0 ⎞⎟
X = ⎜⎜ ⎟
⎜⎝0 α⎠⎟⎟

para qualquer que seja α.

A seguir apresentar-se-á uma definição que generalizará a propriedade acima.


Análise e Métodos Numéricos Aplicados a Engenharia

Definição 3 - Uma matriz é dita ser consistentemente ordenada se os vértices de seus


grafo de adjacência pode ser particionado em p conjuntos S1, S2, ... , Sp com a
propriedade de que quaisquer dois vértices adjacêntes i e j no gráfo pertence a duas
partições consecutivas Sk e Sk´ com k´=k – 1 se j < i, e k´= k + 1 se j > i.

É fácil mostrar que matrizes consistentemente ordenadas satisfazem a Propriedade A: a


primeira cor é feita para todas as partições Si com i ímpar e a segunda cor é colocada
nas partições Si para i par.

Definição 4 : Matrizes tridiagonais com a forma

⎛ D1 T12 ⎞⎟
⎜⎜ ⎟⎟
⎜⎜T21 D2 T23 ⎟⎟
⎜⎜ ⎟
T = ⎜⎜ T32 D3 ⎟⎟⎟ (5)
⎜⎜ ⎟
⎜⎜ Tp−1, p ⎟⎟⎟
⎜⎜ ⎟⎟
⎜⎜⎝ Tp , p−1 D p ⎟⎟⎠

cujos blocos diagonais Di são matrizes diagonais, são denominadas T-matrizes. Essas
matrizes são consistentemente ordenadas. Note que as matrizes da forma (2) são um
caso particular de T-matrizes com p=2.

Seja agora considerar um matriz consistentemente ordenada geral. Por definição, existe
uma permutação π de {1, 2, ... , n} a qual é a união de p subconjuntos disjuntos

π = π1 ∪ π2 ∪ πp (6)

com a propriedade que si aij ≠ 0, j ≠ i e i pertencente a πk , então j pertencer a πk±1


dependendo de i < j ou i > j. Esta permutação π pode ser usada para permutar A
simetricamente. Se P é a matriz de permutação associada com π, então

A´= PT AP
é uma T-matriz.

Nem toda matriz que pode ser simetricamente permutada em uma T-matriz é
consistentemente ordenada. A propriedade importante aqui é que a partição {πi }
preserva a ordem dos índices i, j dos elementos não nulos. Em termos de grafos de
adjacência, existe uma partição do grafo com a propriedade que uma ligação orientada
i,j de i para j sempre aponta para um conjunto com um indice maior se j > i, ou em
caso contrária, para um de indice menor. Em particular, uma consequencia muito
impoortante que as ligações correspondendo para a parte triangular inferior permanecerá
assim na matriz permutada. O mesmo é verdadeiro para a parte triangular superior.
'
Além disso, se um elemento não nulo na matriz permutada é ai´ , j´ = aπ−1 ( i ),π−1 ( j ) ≠ 0
com i ' > j ' , então por definição de permutação π (i ' ) > π ( j ' ) ou

Página 45 de 62
i = π (π−1 (i )) > j = π (π−1 ( j )) . Devido a preservação da ordem, é necessário que i > j.
Uma observação similar também é verdadeira para a parte triangular superior.

Proposição 2 : Se uma matriz A é ordenada consistentemente, então existe uma


matriz de permutação P tal que PT AP é uma T-matriz e

( PT AP)L = PT AL P, ( PT AP)U = PT AU P (7)

na qual X L representa a parte inferiror de X e X U a parte superior de X . ●

Com a propriedade acima, pode ser demonstrado que para matrizes


consistentemente ordenadas os autovalores A (α ) definidos mais acima, também são
invariantes com relação a α.

Proposição 3 : Seja B a matriz de iteração de Jacobi associada com uma matriz


consistentemente ordenada A , e sejam L e U as partes triangulares inferior e superior
de B , respectivamente. Então os autovalores da matriz

1
B(α) = α L + U
α

são independentes de α para qualquer que seja α ≠ 0.

Demonstração:

Primeiro transforma B (α ) em uma T-matriz usando a permutação π em (6)


provida pela proposição prévia

1 T
P T B(α)P = αP T LP + P UP
α

Da proposição anterior, a parte inferior de PTBP é precisamente L' = PTLP .


Similarmente, a parte superior é U' = PT UP . Essas são as partes inferior e superior da
T-matriz associada. Assim, precisa-se apenas demonstrar que a propriedade é verdadeira
para uma T-matriz.

Neste caso, para qualquer α, a matriz B (α ) é similar a B . Isto significa que


B(α) = XBX -1 com X inicialmente igual a

⎛1 ⎞⎟
⎜⎜ ⎟⎟
⎜⎜ α I ⎟⎟
⎜ ⎟⎟
X = ⎜⎜⎜ α2 I ⎟⎟
⎜⎜ ⎟⎟
⎜⎜ ⎟⎟
⎜⎜ p−1 ⎟

⎜⎝ α I ⎠⎟⎟
Análise e Métodos Numéricos Aplicados a Engenharia

onde o particionamento é associado com os subconjuntos π1 ,…, π p


respectivamente.

Note queT-matrizes e matrizes com a estrutura (2) são dois casos particulares de
matrizes com total atendimento às hipóteses da proposição acima. Existe um número de
bem conhecidas propriedades relacionadas com a Propriedade A e consistentemente
ordenadas. Por exemplo, é possivel mostrar que, a Propriedade A é invariante sob
permutações simétricas.●

Uma matriz tem a Propriedade A se e somente se existe uma matriz de permutação P


tal que A´= PT AP é consistentemente ordenado.

Matrizes consistentemente ordenadas satisfazem uma importante propriedade a qual


relaciona os autovalores das matrizes de iteração SOR correspondem àqueles das
matrizes de iteração de Jacobi. O principal teorema regendo a teoria para SOR é uma
consequencia do seguinte resultado, provado por Young. Relembrando que

(ωU + (1− ω ) D) =
−1
M SOR = ( D − ω L)
−1
= ( I − ω D −1 L ) (ω D−1U + (1− ω ) I )
Teorema 1 : Seja A uma matriz consistentemente ordenada tal que aii ≠ 0
para i = 1,..., n , e seja ω ≠ 0 . Então se λ é um autovalor não nulo da matriz de
iteração SOR, MSOR , qualquer escalar µ tal que
2
(λ + ω −1) = λω 2µ 2 (8)

é um autovalor da matriz de iteração de Jacobi B . Reciprocamente, se µ é um


autovalor da matriz de Jacobi B e se um escalar λ satisfaz a (8), então λ é um
autovalor de MSOR.
Demonstração :

(ωU + (1− ω) D) e denotando a matriz de


−1
Seja M SOR = (D − ωL)
iteração de Jacobi por L′ + U′ , onde L′ = D L e U′ = D-1U , considerando que λ seja
-1

um autovalor, então

( (
det λI − (I − ωL')
−1
(ωU' + (1− ω ) I))) = 0

que é equivalente a det (λI (I − ωL') − (ωU' + (1 − ω ) I)) = 0

ou a det ((λ − 1 + ω ) I − ω (λL' + U')) = 0

Como ω≠0, pode-se reescrever a expressão acima como

Página 47 de 62
⎛ λ + ω −1 ⎞
det ⎜⎜⎜ I − (λL' + U')⎟⎟⎟ = 0
⎝ ω ⎠

λ + ω −1
a qual significa que é um autovalor de λL' + U' . Assim, como A é
ω
consistentemente ordenada, os autovalores de λL' + U' a qual é por sua vez igual a

λ
1
2
(λ 1
2
L' + λ
−1
2
) 1
U' são os mesmos de λ 2 (L' + U') onde L'+U' é a matriz de
iteração de Jacobi. A prova segue imediatamente.

Este teorema permite o cálculo de um valor ótimo para ω, o qual ´pde ser
mostrado ser igual a
2 (9)
ωotimo =
2
1 + 1− ρ ( B )

Um procedimento típico SOR inicia com um valor ω , por exemplo, ω = 1 ,


então segue os passos do algoritmo SOR com este ω . A taxa de convergência para
as iterações resultantes é estimada provendo uma estimativa para ρ (B) usando o
teorema acima. Um ω melhor é obtido pela fórmula (9), e então as iterações são
reiniciadas.

7.5.2.15 – Métodos das Direções Alternadas

O método implícito das direções alternadas (conhecido por ADI = Alternating Direction
Methods) foi introduzido em meados da década de 50 do seculo XX por Paeceman e
Rachford especificamente para resolver equações que apareciam nos problemas de
discretização por diferença finita de equações em derivadas parciais elípticas e
parabólicas.

Considerando uma equação diferencial em derivadas parciais do tipo eliptica

∂ ⎛⎜ ∂u ( x, y ) ⎞⎟ ∂ ⎛⎜ ∂u ( x, y ) ⎞⎟
⎜⎝⎜a ( x, y ) ⎟⎟ + ⎜b( x, y ) ⎟ = f ( x, y )
∂x ∂x ⎠ ∂y ⎜⎝ ∂y ⎠⎟⎟
(1)
em um domínio retangular com as condições de contorno de Dirichlet. As equações são
discretizadas com diferenças finitas centrais usando n+2 pontos na direção x e m+2
pontos na direção y. O resultado é um sistema de equações

Hu + Vu = b
(2)

onde as matrizes H e V representam as aproximações das diferenças finitas centrais de


três-pontos, para os operadores
Análise e Métodos Numéricos Aplicados a Engenharia

∂ ⎜⎛ ∂⎞ ∂ ⎜⎛ ∂⎞
⎜⎜⎝a ( x, y ) ⎠⎟⎟⎟ e ⎜⎜b( x, y ) ⎟⎟⎟⎟
∂x ∂x ∂y ⎝ ∂y ⎠
respectivamente. No que se segue, a mesma notação é usada para representar a versão
da discretização da função incógnita u.

O algoritmo ADI consiste em iterações para resolver (2) nas direções x e y de forma
alternada.

ALGORITMO: ADI de Paeceman e Rachford


1. Para k = 0, 1, ..., até convergir, fazer
2. Resolva (H + ρk I) uk + 1 = (ρk I − V ) uk + b
2

3. Resolva ( V + ρk H ) uk +1 = (ρk I − H) u 1 +b
k+
2
4. Fim
Aqui ρk , k=1,2,... é uma sequencia de paramentros positivos de aceleração.

O caso específico onde ρk é escolhido ser uma constante ρ merece uma atrenção
particular. Neste caso, pode-se formular a iteração acima na forma usual
xk +1 = Gxk + f com

−1 −1
G = (V + ρ I ) ( H − ρ I )( H + ρ I ) (V − ρ I )
f = (V + ρ I ) ⎡⎢ I − ( H − ρ I )( H + ρ I ) ⎤⎥ b
−1 −1

⎣ ⎦
(3)
ou quando ρ > 0, na forma xk +1 = M−1Nxk + M−1b com

1
M= (H + ρI)( V + ρI)

1
N = (H − ρI)( V − ρI)

(4)
Note que f em (3) pode ser reescrita em uma forma mais simples (veja nos exercícios).

O algoritmo ADI é normalmente formulado para resolver equações diferenciais


parciais dependentes do tempo, do tipo

∂u ∂⎛ ∂u ⎞ ∂ ⎛ ∂u ⎞
= ⎜⎜a ( x, y ) ⎟⎟⎟ + ⎜⎜b( x, y ) ⎟⎟⎟
∂t ∂x ⎜⎝ ∂x ⎠ ∂y ⎜⎝ ∂y ⎠⎟
(5)

Página 49 de 62
em um domínio ( x, y, t ) ∈ Ω×[0, T ] ≡ (0,1)×(0,1)×[0, T ] . As condições iniciais e as
condições de contorno são:

u ( x, y, 0) = x0 ( x, y ), ∀ ( x, y ) ∈ Ω
u ( x , y , t ) = g ( x , y , t ), ∀ ( x , y ) ∈ ∂Ω, t > 0
(6)
onde ∂Ω é o contorno do quadrado unitário Ω . As equações são discretizadas com
relação ao espaço de variáveis x e y como antes, resultando então em um sistema de
equações diferenciais ordinarias, do tipo

du
= Hu + Vu
dt
(7)
nas quais as matrizes H e V já foram definidas anteriormente. O algoritmo ADI avança
no tempo, alternando as direções x e y como se segue:

⎛ ⎞ ⎛ ⎞
⎜⎜ I − 1 tH ⎟⎟ u 1 = ⎜⎜ I + 1 tV ⎟⎟ uk
⎜⎝ 2 ⎟
⎠ 2 ⎝
k + ⎜ 2 ⎠⎟
⎛ ⎞ ⎛ ⎞
⎜⎜ I − 1 tV ⎟⎟ uk +1 = ⎜⎜ I + 1 tH ⎟⎟ u 1
⎜⎝ 2 ⎠⎟ ⎝⎜ 2 ⎠⎟ k + 2

Os parametros de aceleração ρk do algoritmo ADI são substituídos por um passo-a-


passo no tempo.

19 20 21 22 23 24 4 8 12 16 20 24
13 14 15 16 17 18 3 7 11 15 19 23
7 8 9 10 11 12 2 6 10 14 18 22
1 2 3 4 5 6 1 5 9 13 17 21
Ordenam ento Horizontal Ordenam ento Vertical

Assumindo que os pontos da malha são ordenados por linha na direção x, então o
promeiro passo do algoritmo ADI constitue um conjunto de m sistemas lineares
tridiagonais independentes cada um com tamanho n. No entanto, o segundo passo
contitue um grande sistema tridiagonal cujas diagonais são balizadas por –m, 0 e m
respectivamente. Este segundo sistema pode também ser reescrito como um conjunto de
n sistemas tridiagonais independentes de tamanho m pelo reordenamento dos pontos da
malha por linhas no sentido de y. Os ordenamentos naturais vertical ou horizontal são os
representados acima. Entretanto no movimento de meio passo do ADI para o próximo,
precisa-se implicitamente trabalhar com a transposta da matriz representando a solução
nos nXm pontos da malha. Esta operação é, em geral, uma tarefa trabalhosa e custosa e
é normalmente citada como uma das dificuldades deste caso.
Análise e Métodos Numéricos Aplicados a Engenharia

Exercícios

Seja uma matriz nXn tridiagonal da forma


⎛ α −1 ⎞⎟
⎜⎜ ⎟⎟
⎜⎜−1 α −1 ⎟⎟
⎜⎜ ⎟⎟⎟
⎜⎜ −1 α −1 ⎟⎟
Tα = ⎜⎜ ⎟
⎜⎜ −1 α −1 ⎟⎟⎟
⎜⎜ ⎟
⎜⎜ −1 α −1⎟⎟
⎟⎟
⎜⎜⎝⎜ −1 α ⎠⎟⎟

onde α é um paramentro real.

a – Verifique que os autovalores de Tα são dados por λ j = α − 2 cos( jθ ), j = 1,..., n,...


π
onde θ = e que um autovetor associado com cada λ é
n +1
q j = [ sen( jθ ) sen(2 jθ ) sen(njθ ) ] . Pergunta-se: sob que condições de α
T

produz esta matriz se tornar positiva-definida ?

b – Agora dado α=2, como esta matriz secrelaciona com as matrizes de iteração de
Jacobi, de Gaus-Seidel e SOR ? qual dessas matrizes de iteração convergirá para a
matriz dada acima e com qual faotr de convergência ? No caso do SOR para que valores
de ω o processo SOR irá convergir ?

2 – Dada

⎛ D1 U2 ⎞⎟
⎜⎜
⎜⎜ L2 D2 U3 ⎟⎟⎟
⎜ ⎟⎟
A = ⎜⎜⎜ L3 D3 ⎟⎟
⎟⎟
⎜⎜
⎜⎜ U M ⎟⎟⎟
⎜ ⎟⎟
⎜⎜⎝ LM DM ⎠⎟⎟

onde os blocos Di são matrizes não singulares os quais não são necessáriamente
diagonais.

a – O que são os blocos das matrizes de iteração de Jacobi e de Gauss-Seidel.

b – Mostre um resultado similar para a proposição 2 no caso de uma matriz de iteração


de Jacobi.

c – Mostre que para ω = 1

1 – Os blocos das iteracoes de Jacobi e Gauss-Seidel ou ambos convergem ou


ambos divergem; e

2 – Quando eles convergem, então os blocos de iteração de Gauss-Seidel é duas


vezes mais rápido que os blocos de iteração de Jacobi.

Página 51 de 62
3 – Mostre que f = (V + ρ I ) ⎡⎢ I − ( H − ρ I )( H + ρ I ) ⎤⎥ b pode ser reescrito como
−1 −1

⎣ ⎦
−1 −1
f = 2ρ (V + ρ I ) ( H + ρ I ) b

4 – Mostre que uma matriz tem a Propriedade A se e somente se existe uma matriz de
permutação P tal que A´= PT AP é consistentemente ordenada.

5 – Uma matriz na forma

⎛ 0 E 0 ⎞⎟
⎜⎜ ⎟
B = ⎜⎜ 0 0 F⎟⎟⎟
⎜⎜ ⎟⎟
⎝⎜H 0 0 ⎠⎟

é chamada de matriz tri-cíclica.

a – Quais são os autovalores de B ? (Expresse eles em termos de autovalores de uma


matriz que que dependa de E,F e H)

b – Assuma que a matriz A tenha a forma A=D+B onde D é uma matriz diagonal não
singular e B uma matriz tri-cíclica. Como podem os autovalores da matriz de iteração de
Jacobi serem relacionados com aqueles da matriz de iteração de Gauss-Seidel?

7.6 – Métodos de Projeção

Os métodos de projeçao representam uma maneira canônica de extração de uma


aproximação de uma solução de um sistema linear em um subespaço qualquer. Esses
métodos são processos iterativos, entretanto dedica-se a ele um tópico isolado, fora dos
métodos iterativos, face sua importância.

Projeção

É necessário antes de tudo definir e compreender o que é uma projeção; para isso
nxm
seja A uma matriz de C .

Definição 1: Seu range é definido por:

Ran( A ) {Ax ∴ x ∈ m }
Definição 2: Seu kernel (núcleo) ou espaço nulo é definido por:

Ker ( A ) {x ∈ m
Ax = 0}
Análise e Métodos Numéricos Aplicados a Engenharia

O range de A é sempre igual ao espaço linear gerado pelos vetores coluna de A. O


rank de uma matriz é igual a dimensão do range de A, isto é, igual ao número de
colunas LI. O rank das colunas de A é igual ao rank das linhas de A.
n n
Definição 3: Um operador de projeção P é um mapeamento linear de C em C e é
idempotente, isto é,
n n 2
P: C → C com P =P

Algumas propriedades do operador projeção; para isso vamos considerar a matriz P =


[P ]
Se P éum projetor então (I-P) também o é;

Ker (P) = Ran (I-P) ;

Se x ∈ Ran (P) → Px = x pela propriedade de idempotência;

Se x ∈ Ker (P) → Px = 0

n
Qualquer que seja x ∈ C , ele pode ser escrito como x = Px + (I-P)x
n
O espaço C pode ser decomposto como a soma direta Cn = Ker(P) ⊕ Ran(P)

n
Assim, cada par de espaços M e Q que formam a soma direta de C define um único
projetor P, tal que

Ran (P) = M

Ker (P) = Q
n
Esse projetor P mapeia um elemento de x ∈ C em um componente x1, onde x1 é um
componente em M, da decomposição única x = x1 + x2 associado à soma direta
definida na propriedade 6 acima. Assim, para qualquer x, o vetor Px satisfaz a seguinte
condição:

Px ∈ M

x – Px ∈ Q

O mapeamento P projeta x sobre M. Assim, se o rank de P é m<n, o rank de (I-P) é de


dimensão n-m.

Página 53 de 62

Se por sua vez, em vez de tomar Q se tomar L = Q , um espaço perpendicular a Q, e
fazendo u = Px, as expressões acima tornam-se:

u ∈M

x–u ⊥L

que define um projetor P sobre M e ortogonal ao subespaço L. A primeira das


expressões acima estabelece que os m graus de liberdade, enquanto a segunda dá as m
restrições que define Px. Isso é estabelecido pelo seguinte lema:

Lema : Dado dois espaços M e L , ambos de dimensão m, as seguintes


condições são matematicamente equivalentes:
i. qualquer vetor não nulo de M é ortogonal a L;
n
ii. para qualquer x ∈ C existe um único elemento ou vetor que satisfaz as
condições:

u ∈ M (Px ∈ M )

x–u ⊥ L (x-Px ∈ Q )

Prova:

Sejam M = [ M ] e L = [ L ]. A primeira condição diz que ∀x ∈ M → x ⊥ L ou


ainda M ∩ L⊥ = {∅} . Como L é de dimensão m, então L⊥ é de dimensão n-m e a
condição acima é equivalente a

∀x ∈ M, ∃u, w → x = u + w, ∴ u ∈ M ∧ w = (x − u) ∈ L⊥ .

Uma importante classe de projetores P é obtida quando o subespaço L é igual ao


subespaço M, isto é Ker(P) = Ran(P)⊥ . Então o projetor P assim definido é dito ser
um “projetor ortogonal” sobre M e é definido por:

Px ∈ M
(I − P) x ⊥ M

ou equivalentemente

Px ∈ M
((I − P) x, y ) = 0, ∀y ∈ M
sendo M = [ M ] e L = [ L ].Assim, Px e (I-P)x na decomposição x = Px + (I-P)x
são ortogonais, donde
Análise e Métodos Numéricos Aplicados a Engenharia

x 22 = Px 2
2 + ( I − P) x 2
2

→ Px 22 = x 2
2 − (I − P) x 22 ⇒ Px 22 ≤ x 22 → Px 2 ≤ x 2

ou ainda
2 2 2
Px x Px
2
≤ 2
⇒ 2
≤ 1, ∀x ∈ Cn
x x x

Com isso, o valor máximo que é alcançado por qualquer elemento em Ran(P) é
2
P = 1.

Dessa forma, um projetor ortogonal tem apenas dois autovalores: zero e um. Qualquer
vetor de Ran(P) é um autovetor associado com o autovalor 1(um) bem como qualquer
vetor de Ker(P) é um autovetor assciado com o autovalor 0(zero).

Teorema : Se P é um projetor ortogonal sobre M, então para todo x ∈ C , a


n

seguinte relação é sempre verdadeira:

min x − y 2 = x − Px 2
y∈ M

Prova:

Seja M a representação matricial de M e P a representação matricial de P.. Seja y∈M


um vetor arbitrário. Calculando a sua distância até x, sabendo-se que se x-Px é
ortogonal a M, Px-y também o é, então
2 2 2 2
x − y = x − Px + ( Px − y) = x − Px + Px − y

Uma vez que x − y ≥ x − Px , ∀y ∈ M então o mínimo de x − y é alcançado


quando y=Px, logo min x − y 2 = x − Px 2
y∈ M

min x − y 2 = x − y*
Corolário : Seja M um subespaço, e seja x ∈ Cn , então y∈ M 2
se e
somente se

(i) y* ∈ M

e (ii) A´= PT AP

Página 55 de 62
Definições Básicas

Seja o sistema linear Ax = b (1)

onde A é uma matriz real n x n. A ideia de técnica de projeção é extrair uma solução
n
aproximada do problema acima, no espaço R . Se K é um subespaço onde se localiza
a solução aproximada, o denominamos de subespaço de pesquisa, sendo m sua
dimensão, então, em geral, restrições sobre m precisam ser impostas para se ser hábil
para extrair a aproximação desejada.

Uma maneira típica de descrever essas restrições é impor a m, condições de


ortogonalidade. Especificamente, ao resíduo Ax – b é imposto a restrição de ser
ortogonal a m vetores linearmente independentes. Isso define um outro subespaço L de
dimensão m que é denominado de subespaço de restrições. Esse quadro de trabalho é
comum a muitos métodos diferentes e é denominado de condições de Petrov-Galerkin.

Existem duas classes de métodos de projeção: os ortogonais e os oblíquos. Na técnica


de projeção ortogonal, o subespaço L é o mesmo de K; no método de projeção oblíquo,
L é diferente de K e pode ser totalmente não relacionado com ele.

7.6.1 Métodos Gerais de Projeção

n
Sejam A um matriz real n x n e K e L dois m-dimensionais subespaços de R . Uma
técnica de projeção sobre o subespaço K e ortogonal a L é um processo que acha uma
solução aproximada ξ de (1) pela imposição da condição de que ξ pertença a K e que o
vetor residual seja ortogonal a L.

Encontre ξ ∈ K, tal que b – Ax ⊥ L (2)

Se for desejável explorar o conhecimento de uma solução tentativa inicial x0 para a


solução, então a aproximação precisa estar no espaço afim x0+K em lugar do espaço
vetorial homogêneo K. Isso requer uma pequena mudança na formulação acima. O
problema da aproximação deve se redefinido como

Encontre ξ ∈ x0+K, tal que b-Aξ ⊥ L (3)

Note que se ξ for erscrito como ξ = x0 + δ, com o vetor residual inicial r0 definido
como r0 = b – Ax0 (4)

Então a equação acima se torna b – A(x0 + δ) ⊥ L ou ainda r0 - Aδ ⊥ L.Em outras


palavras, a solução aproximada pode ser definida como

ξ = x0 + δ, δ ∈ K, (5)
Análise e Métodos Numéricos Aplicados a Engenharia

(r0 - Aδ, w) = 0 , ∀w ∈ L (6)

Este é o passo básico de projeção, na sua forma mais geral. Muitas técnicas utilizam um
sucessão de tais projeções, Tipicamente, um novo passo de projeção usa um novo par de
subespaços K e L e uma nova aproximação inicial que é igual a última aproximação
achada no passo anterior.. Assim cada aproximação é definida via m graus de liberdade
(subespaço K ) e m restrições (subespaço L ).

7.6.2 Representação Matricial

Sejam V = [v1, . . .,vm], uma matriz n x m cujos vetores-coluna formam uma base de
K e similarmente W = [w1, . . ., wm], uma matriz n x m cujos vetores-coluna formam
uma base de L. Se a solução aproximada é

ξ = x 0 + Vy

então a condição de ortogonalidade leva ao seguinte sistema de equações para o vetor y

W T AVy = W Tr0

T
Se por hipótese considerar-se que a matriz m x m W AV seja não-singular, pode-se
reescrever a expressão da solução aproximada da seguinte maneira:

ξ = x0 + V(WTAV)-1WTr0

A seguir apresenta-se um algoritmo que representa uma ideia geral para o método da
projeção:

ALGORITMO
Faça até convergir
Selecione um par de subespaços K eL

Escolha as bases V = [v1, . . .,vm] para K e W = [w1, . . ., wm] para L

r := b - Ax
y := (WTAV)-1WTr
x := x + Vy
Fim
T
A solução aproximada acima é definida apenmas quando a matriz (W AV) for
não-singular, o que não é garantido ser verdadeiro sempre que A for não-singular. Isso
pode ser visto pelo exemplo a seguir: Seja a matriz A

Página 57 de 62
⎛0 I⎞
A=⎜ ⎟
⎜ I I⎟
⎝ ⎠

onde I é uma matriz identidade m x m e 0 uma matriz zero m x m. Sejam V = W = [e1,


e2, ..., em]. Vê-se que A é não-singular, porém (WTAV) é precisamente o bloco 0,
que é singular.

Existem, porém, dois casos particulares nos quais pode-se garantir a não-singularidade
T
de (W Av).

Proposição 1 : Sejam A, L e K satisfazendo a uma das seguintes condições:


A é positiva definida e L = K, ou
A é não-singular e L = AK ,

Então a matriz B = (WTAv) é não-singular para quaisquer bases v de K e


W de L.
Prova:

Seja o caso i. Tomando-se uma base V qualquer de K e uma base W de L, quando L =


K então W pode ser expresso como W = VG, onde G é uma matriz não-singular m x
m. Então

B = WTAV = GTVTAV
T
Como, por hipótese, A é positiva definida, então V AV também é positiva definida
que por sua vez leva B a ser não-singular.

Seja agora o caso ii. De forma semelhante ao caso anterior, tem-se L = AK, assim W
pode ser expressado por W = AVG, . Então

B = WTAV = GT(AV)TAV

Como A é não-singular, então a matriz n x m AV tem rank máximo que leva a


(AV)TAV ser não-singular, que por consequencia B também é não-singular.
Consideremos agora que A seja simétrica e positiva definida –SPD -, então

Proposição 2 : Se A é SPD e L = K então um vetor x é resultado de um


método de projeção ortogonal sobre K com vetor inicial x0 se e somente se ele
minimiza a A -norma de erros sobre x0+K, isto é, se e somente se

E (ξ)= min ξ∈x0 +K E (x )


Análise e Métodos Numéricos Aplicados a Engenharia

Onde
1
E ( x ) = ( A( x* − x ) , ( x* − x ))
2
onde x* é a solução
exata.

Prova : Fazer como exercício.

Proposição 3 : Sejam A uma matriz quadrada arbitrária e L = AK. Então o


vetor ξ é o resultado de um método de projeção oblíqua sobre K ortogonal a L com
vetor inicial x0, se e somente se ela minimiza a 2-norma do vetor residual b-Ax sobre
x ∈ x0 + K, isto é, se e somente se
R(ξ) = min R(x)
2
Onde R(x) ≡ ||b-Ax|| .
Prova

Como foi visto na introdução deste tópico e na proposição anterior, para que ξ minimize
R(x) é necesário e suficiente que b-Aξ seja ortogonal a todos os vetores de forma v =
Ay onde y ∈ K, isto é,

(b − Aξ , v ) = 0, ∀v ∈ AK

que é a condição de Prtrov-Galerkin, a qual define a solução de aproximação de ξ.

É bom notar que A necessita ser não-singular na proposição acima. Quando A for
singular, existirão infinitos vetores ξ que satisfafem a condição de otimização.

7.6.3 Subespaços de Krylov

Comose viu, o método da projeção resolve sitemas lineares Ax = b por aproximações


xm de um subespaço afim Xo + Kmde dimensão m, pela imposição da condição de
Petrov-Galerkin

b − Axm ⊥ Lm

onde Lm é outro subespaço de dimensão m, e onde xo é a solução inicial arbitrária.

Um subespaço de Krylov Km é um subespaço gerado pelos vetores resíduos do sistema


original, a cada iteração, assim

Página 59 de 62
K m ( A, r0 ) = span {r0 , Ar0 , A2 r0 , …, Am−1r0 }

onde r0 = b – Ax0.

7.7 Uso do Software Mathcad para solução de Sistemas de


Equações Lineares

No software MathCad (versão 2001 utilizado), existem funções que ajudam a resolver
sistemas de equações lineares:

Dada uma matriz A , a função lu( A ) retorna uma matriz contendo 3 matrizes
quadradas, da ordem de A , P, L e U, juntas lado a lado, nesta ordem. Essas matrizes
satisfazem a equação PM=LU.
T
Outra função, cholesky( A ) retorna uma matriz triangular inferior L, tal que LL =M.

Para solucionar diretamente um sistema de equações lineares Ax=b, utilizando a


função lsolve(A,b), que retorna o vetor x soluào do sistema. Outra forma de solucionar
Ax=b é pela utilizacao das operações normais sobre matrizes.
Uma outra forma de resolver sistemas lineares é pela função Minerr(x,y,..). Ela retorna
os valores de x, y... que vêm no sistema de modo a satisfazerem as equações e
inequações existentes em um bloco de solução. Bloco de solução é uma porção do
espaço do MathCad existente entre a palavra chave Given e uma função tipo
Find(x,y,...) ou Minerr(x,y,...) .

Quando um bloco de solução envolve apenas uma incógnita, a função minerr retorna um
escalar. Caso contrário, ela retorna um vetor cujo primeiro elemento é x, o Segundo
elemento é y e assim por diante.

Mathcad avalia a função minerr usando o Método de Levenberg-Marquardt. Este


método requer uma valor tentative para cada incognita para iniciar a pesquisa da
soluição aproximada. Para sistemas com mais de uma solução, a solução retornada é
dependente dos valores iniciais. A adição de desigualdades pode também forçar o
Mathcad a achar soluções diferentes.

Fie na mente que a função minerr retorna uma resposta que minimiza o erro nas
restrições dadas. Entretanto a função minerr não pode verificar se a resposta representa
uma mínimo absoluto para os erros das restrições. Se usamos minerr, precisamos incluir
checagens sobre a razoabilidade do resultado. A função minerr é particularmente útil
para resolver certos problemas de mínimos quadrados não-lineares.

O Método de Levenberg-Marquardt é uma método quasi-Newton method (uma variação


do método do gradiente). A cada passo, Mathcad estima a primeira derivada parcial dos
Análise e Métodos Numéricos Aplicados a Engenharia

erros com relação as variáveis a serem resolvidas para criar uma matriz Jacobiana.
Ordinariamente, Mathcad pode determinar a próxima estimative calculando passo s de
Gauss-Newton para cada variável. Em notação matricial, MathCad resolve a equação
matricial:

J.s = -f(x)

Nesta equação, J é a matriz Jacobiana, s é o passo a ser dado, e x é o vetor estimative


atual para as incógnitas. Para o primeiro passo, x é o vetor de valores tentative inicial;
em cada passo subsequente, o novo x é o x anterior adicionado de s, o vetor de passos.
Note que o cálculo deste passo envolve a inversão de matriz Jacobiana J.

O cálculo deste passo nem sempre é possível. Ele falha quando o Jacobiano não puder
ser invertida ou quando existem mais restrições que incógnitas a serem resolvidas.
Nesses casos, Mathcad adiciona uma condição adicional que a quantidade que se seque
será reduzida a um mínimo :

∑ ( D ) (s )
2 2
j j
j

onde D é um vetor de ponderação calculado das normas das colunas da matriz


Jacobiana. Nesses casos, s é calculado de forma a satisfazer esta minimização bem
como a solução da equação de Newton com Jacobiano.

O Método de Levenberg-Marquardt não trabalha quando existem menos restrições que


incógnitas. Nesses casos, a função miner retrona um erro. Para sanar essa falha,
acrescente restrições falsas, de modo a se ter um número de restrições igual ao número
de incógnitas.

A seguir vamos ver alguns exemplos, para os quais se utilizará MathCad e MatLab para
a solução de sistemas de equações lineares.

Página 61 de 62