Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Matriz Banda
Muitos problemas de engenharia e outras aplicações resultam em sistemas lineares cujas matrizes são
esparsas, isto é, contém poucos elementos não nulos. Matrizes que não são esparsas são chamadas de
matrizes densas. Matrizes esparsas têm aplicações em problemas de engenharia, fı́sica, matemática,
computação, etc. Existem estruturas de dados eficientes para manipular matrizes esparsas, onde
apenas os elementos não nulos são armazenados. Neste caso, devem ser utilizados algoritmos eficientes
que levam em conta a forma da matriz armazenada. Se todos os elementos não nulos da matriz
estiverem agrupados em torno da diagonal principal, diz-se que a matriz é uma matriz banda ou
matriz de banda.
Definição 1.1 (Matriz Banda). Uma matriz quadrada A = [aij ] de ordem n é chamada de
matriz banda (ou matriz de banda) se existem inteiros p e q, com p > 1 e q < n, tais que
A estrutura de uma matriz banda é mostrada na Fig. 1. A parte da matriz formada pelos
elementos das diagonais principal e secundárias, com pelo menos um elemento não nulo, é denominada
banda da matriz. O número
lB = p + q + 1
é chamado de largura da banda. O número de elementos na banda de uma matriz banda n × n é
dada por
1
nB = (q + 1)(2n − q) + p(2n − 1 − p) .
2
Se p = q então
nB = n(2p + 1) − p(1 + p).
Figura 1: Estrutura de uma matriz banda.
lB = p + q + 1 = 3.
Essa matriz é chamada de matriz tridiagonal. O número de elementos não nulos da nada dessa
matriz 4 × 4 é
nB = 10.
A matriz
4 3 0 0
6 1 2 0
B=
8 7 −3 9
0 1 0 2
é uma matriz banda com p = 2 e q = 1. De fato
b41 = 0,
ou n
X
|aij | /|aij | < 1, i = 1, 2, · · · , n.
j=1;j6=i
não é DED, pois na primeira linha temos 2 = | − 2| < |4| + | − 1| = 5, na segunda linha, 1 = | − 1| <
|1| + |3| = 4, e na terceira linha, 1 = |1| < |4| + | − 2| = 6. Mas se permutarmos as linhas dessa
matriz de forma a obter
4 −2 1
−2 4 −1 ,
1 −1 3
temos dessa forma uma matriz DED (confira!).
Observação 2.1. Se uma matriz é DED o sistema linear associado não tem nenhum benefı́cio
se pivotamento parcial for utilizado. De fato, em um sistema com matriz DED, as equações já
estão rearranjadas em forma ótima. Se a matriz não é DED, as linhas do sistema podem ser
permutadas para obter uma matriz mais próxima possı́vel de ser DED.
i = 1, 2, · · · , n − 1;
ai+1,i
mi+1,i = ;
aii
ai+1,i+1 = ai+1,i+1 − mi+1,i ai,i+1 ;
bi+1 = bi+1 − mi+1,i bi .
Se a banda de A é armazenada na matriz BT = [Bij ]n×3 , conforme Eq. (1), então o processo de
eliminação para este tipo de armazenamento resulta em
i = 1, 2, · · · , n − 1;
Bi+1,1
mi+1 = ;
Bi2
Bi+1,2 = Bi+1,2 − mi+1 Bi3 ;
bi+1 = bi+1 − mi+1 bi .
ai xi−1 + bi xi + ci xi+1 = di , i = 1, · · · , n,
O algoritmo de Thomas para resolver o sistema linear tridiagonal (2) é descrito a seguir,
• Faça (
c1
b1
, se i = 1,
c̃i = ci (3)
bi −ai c̃i−1
, se i = 1, 2, · · · , n − 1,
e (
d1
, se i = 1,
d˜i = b1
di −ai d˜i−1 (4)
bi −ai c̃i−1
, se i = 1, 2, · · · , n − 1, n.
1
Llewellyn Hilleth Thomas (Londres, 21 de outubro de 1903 - 20 de abril de 1992) foi um fı́sico e matemático
britânico.
• A solução é dada por substituição retroativa,
(
d˜n , se i = n,
xi = (5)
d˜i − c̃i xi+1 , se i = n − 1, n − 2, · · · , 2, 1.
A seguir apresentaremos a demonstração deste algoritmo. Para isso, vamos aplicar a eliminação
de Gauss, sem pivotamento parcial, usando a matriz ampliada do sistema (2), isto é,
b1 c 1 d1
a2 b 2 c 2 d2
.
a3 b3 . . d3 . (6)
... ... ..
cn−1 .
an b n dn
Estamos supondo que todas as operações são possı́veis, isto é, não há divisões por zero.
Agora, façamos
L̃2 ←− L2 − a2 L̃1
para obter
d¯2
L̃2 = 0 b̄2 c2 ,
onde b̄2 = b2 − a2 c˜1 e d¯2 = d2 − a2 d˜1 . Dividindo a linha L̃2 por b̄2 , obtemos a matriz resultante
1 c̃1 d˜1
0 1 c̃
2 d˜2
. ..
,
a 3 b 3 d 3
.. .. .
. cn−1 ..
.
an bn dn
onde
c2
c̃2 = (9)
b2 − a2 c˜1
d2 − a2 d˜1
d˜2 = . (10)
b2 − a2 c˜1
• Iteração 2 (eliminar a posição (3, 2)): Façamos
L̃3 ←− L3 − a3 L2
para obter
d¯3 ,
L̃3 = 0 b̄3 c3
onde b̄3 = b3 − a3 c˜2 e d¯3 = d3 − a3 d˜2 . Dividindo a linha L̃3 por b̄3 , obtemos a matriz resultante
d˜1
1 c̃1
0 1 c̃
2 d˜2
0 1 c̃3 d˜3 ,
... ... ..
cn−1 .
an b n dn
onde
c3
c̃3 = (11)
b3 − a3 c˜2
d3 − a3 d˜2
d˜3 = . (12)
b3 − a3 c˜2
• Iteração k (eliminar a posição (k + 1, k)): Façamos
L̃k+1 ←− Lk+1 − ak+1 Lk
para obter
d¯k+1 ,
L̃k+1 = · · · 0 b̄k+1 ck+1 · · ·
onde b̄k+1 = bk+1 − ak+1 c˜k e d¯k+1 = dk+1 − ak+1 d˜k . Dividindo a linha L̃k+1 por b̄k+1 , obtemos a
matriz resultante
d˜1
1 c̃1
0 1 c̃
2 d˜2
0 1 c̃3 d˜3
. . . .. ,
.. .. ..
.
0 1 c̃k+1 ˜
dk+1
.. .. .. ..
. . . .
onde
ck+1
c̃k+1 = (13)
bk+1 − ak+1 c˜k
dk+1 − ak+1 d˜k
d˜k+1 = . (14)
bk+1 − ak+1 c˜k
Este procedimento é repetido até a iteração n − 1, obtendo a matriz ampliada final
d˜1
1 c̃1
0 1 c̃2
d˜2
0 1 c̃ 3 d˜
3
, (15)
... ... .. ..
. .
0 1 c̃n−1 d˜n−1
0 1 d˜n
onde
dn − an d˜n−1
d˜n = . (16)
bn − an c̃n−1
Como o sistema linear associado a matriz ampliada (15) é triangular superior, a solução é obtida
da seguinte forma,
xn = d˜n , (17)
xi = d˜i − c̃i xi+1 , i = n − 1, n − 2, · · · , 2, 1. (18)
Utilizando as equações (7)-(18), obtemos o algoritmo de Thomas, dado pelas equações (3)-(5).
Exemplo 3.1. Resolva o seguinte sistema linear tridiagonal, de ordem n = 5, pelo algoritmo de
Thomas,
2 1 x1 4
1 2 1 x2 4
1 2 1
x3 =
0 .
1 2 1 x4 0
1 2 x5 2
Os vetores a, b, c e d são
d1 4 d4 − a4 d˜3 0 − 1(−1) 4
d˜1 = = = 2, d˜4 = = = ,
b1 2 b4 − a4 c̃3 2 − 1(3/4) 5
d2 − a2 d˜1 4 − 1(2) 4 ˜
d 5 − a5 d 4 2 − 1(4/5)
d˜2 = = = , d˜5 = = = 1.
b2 − a2 c̃1 2 − 1(1/2) 3 b5 − a5 c̃4 2 − 1(4/5)
d3 − a3 d˜2 0 − 1(4/3)
d˜3 = = = −1,
b3 − a3 c̃2 2 − 1(2/3)
Observação 3.1. Existem outros tipos de armazenamento para matrizes tridiagonais, como
armazenamento unidimensional. Neste caso, os elementos da banda são armazenados em uma
vetor. Se a matriz for simétrica, apenas uma parte da banda precisa ser armazenada. Para cada
tipo de armazenamento há uma adaptação dos algoritmos de solução do sistema linear para a
estrutura de dados utilizada.
4 Matriz pentadiagonal
Matrizes pentadiagonais aparecem na solução de equações diferenciais ordinárias de quarta ordem e
equações diferenciais parciais em 2D usando o método de diferenças finitas. Uma matriz pentadia-
gonal de ordem n é dada por
a11 a12 a13 0 0 0 ... 0
a21 a22 a23 a24 0 0 ... 0
a31 a32 a33 a 34 a 35 0 . . . 0
0 a41 a42 a43 a44 a45 ... 0
AP = .. ,
.. .. .. .. .. . . ..
. . . . . . . .
0 . . . 0 an−2,n−4 an−2,n−3 an−2,n−2 an−2,n−1 an−2,n
0 ... 0 0 an−1,n−3 an−1,n−2 an−1,n−1 an−1,n
0 ... 0 0 0 an,n−2 an,n−1 ann
isto é, é uma matriz banda onde p = q = 2. A largura da banda dessa matriz é
lB = p + q + 1 = 5
e o número de elementos de sua banda é
nB = 5n − 6.
O armazenamento da banda dessa matriz pode ser feita em uma matriz n × 5.
2. Décio S., João T. Mendes e Luiz H. M. Silva. Cálculo Numérico: caracterı́sticas ma-
temáticas e computacionais do métodos numéricos. Pearson Prentice Hall, São Paulo,
2003.
3. Neide B. Franco. Cálculo Numérico. Pearson Prentice Hall, São Paulo, 2006.