Académique Documents
Professionnel Documents
Culture Documents
Ax = b
1
2.1.1 Matrizes esparsas
Exemplo
1 R 3 R 5
I1 I5
V1 V3 V5
I3
R R
V2 V4
I2 I4
2 R 4
1 R 3
I1
I1 =I12 + I13
I13 I2 =I21 + I24
R I12 I3 =I31 + I34 + I35
I4 =I42 + I43
I5 =I53
2
2
Utilizando a lei de Ohm e considerando que todas as resistencias do circuito sao
iguais a 1 :
V1 V2 V1 V3
I1 = +
1 1
V2 V1 V2 V4
I2 = +
1 1
V3 V1 V3 V4 V3 V5
I3 = + +
1 1 1
V4 V2 V4 V3
I4 = +
1 1
V5 V3
I5 =
1
ou:
I1 = 2V1 V2 V3
I2 = V1 + 2V2 V4
I3 = V1 + 3V3 V4 V5
I4 = V2 V3 + 2V4
I5 = V3 + V5
2 1 1 0 0
I1 V1
I2
1 2 0 1 0 V2
I3 =
1 0 3 1 1
V3
I =GV
I4 0 1 1 2 0 V4
I5 0 0 1 0 1 V5
3
Formacao da matriz Y
P
1. Elemento da diagonal Ykk = admitancias dos ramos conectados ao no k
2. Elemento fora da diagonal Ykm = - admitancia do ramo que conecta o no k ao no
m
4
Para uma rede de NB barras e NR ramos:
os elementos fora da diagonal Ykm e Ymk serao nao nulos se houver um ramo
conectando as barras k e m
resumindo:
Exemplos
NB NR GE
10 20 50%
100 200 95%
1000 2000 99,5%
5
Exemplo
Considerar uma rede com 1663 barras e 2349 ramos (baseada no sistema eletrico
interligado das regioes Sul, Sudeste e Centro-Oeste do Brasil). A matriz Y tera a
seguinte estrutura:
Y=
6
Definicao de matriz esparsa : e aquela para a qual e vantajosa a utilizacao
do fato de que muitos de seus elementos sao
iguais a zero para fins de economia de memoria
e calculos
Esta definicao e geral e envolve dois aspectos basicos: espaco de memoria e volume
de calculos
Ax = b
7
2.1.3 Tecnicas de esparsidade
preservar a esparsidade
8
2.1.4 Algumas aplicacoes de tecnicas de matrizes esparsas
Categoria Areas
9
2.2 Tecnicas de esparsidade
preservar a esparsidade
apontadores diversos
No caso de matrizes que sao armazenadas segundo esse princpio basico mas sua
inversa e que e de fato utilizada nos calculos, posicoes adicionais devem ser previstas
(esse assunto sera discutido adiante)
E necessario prever mais um espaco de armazenamento adicional (overhead)
10
2.3 Esquemas de armazenamento compacto de matrizes esparsas
Ideia basica: armazenar somente os elementos nao nulos da matriz (mais algumas
informacoes adicionais) utilizando um conjunto de vetores e apontadores de tal
forma que o espaco total de memoria utilizado seja menor que o requerido para
armazenar toda a matriz.
11
Considere a seguinte matriz:
1 2 3 4
a d k 1
b e g 2
A=
f i l 3
c j m 4
Linha = [ 1 4 3 2 3 2 1 3 2 1 4 4 ]
Coluna = [ 4 3 4 1 2 2 2 3 3 1 1 4 ]
Valor = [ k j l b f e d i g a c m ]
Incio de linha = [ 1 4 7 10 ]
Coluna = [ 1 2 4 1 2 3 2 3 4 1 3 4 ]
Valor = [ a d k b e g f i l c j m ]
12
2.3.1 Esquema de Knuth
1 2 3 4
6 1
9 4 7 2
A=
5 3
2 8 4
Posicao 1 2 3 4 5 6 7
AN 6 9 4 7 5 2 8 elementos nao nulos
I 1 2 2 2 3 4 4 linha
J 2 1 2 4 1 2 4 coluna
NR 0 3 4 0 0 7 0 posicao do proximo elemento na linha
NC 3 5 6 7 0 0 0 posicao do proximo elemento na coluna
JR 1 2 5 6 apontador de incio de linha
JC 2 1 0 4 apontador de incio de coluna
13
Obtencao da linha e coluna do elemento armazenado na posicao 5
Para cada elemento nao nulo de A e necessario armazenar 5 valores, alem dos
apontadores de incio de linha e coluna
14
2.3.2 Esquema circular KRM (Knuth-Rheinboldt-Mesztenyi)
1 2 3 4
6 1
9 4 7 2
A=
5 3
2 8 4
Posicao 1 2 3 4 5 6 7
AN 6 9 4 7 5 2 8 elementos nao nulos
NR 1 3 4 2 5 7 6 posicao do proximo elemento na linha
NC 3 5 6 7 2 1 4 posicao do proximo elemento na coluna
JR 1 2 5 6 apontador de incio de linha
JC 2 1 0 4 apontador de incio de coluna
S4 S 2 = 6 A4,2 = AN(6) = 2
15
Localizacao do elemento (1, 1):
S1 S 1 = A1,1 = 0
16
Definir Scoluna = {3}
17
2.3.3 Esquema circular KRM modificado
1 2 3 4
6 1
9 4 7 2
A=
5 3
2 8 4
Posicao 1 2 3 4 5 6 7
AN 6 9 4 7 5 2 8 elementos nao nulos
NR -1 3 4 -2 -3 7 -4 posicao do proximo elemento na linha
NC 3 5 6 7 -1 -2 -4 posicao do proximo elemento na coluna
JR 1 2 5 6 apontador de incio de linha
JC 2 1 0 4 apontador de incio de coluna
S4 S 2 = 6 A4,2 = AN(6) = 2
18
Localizacao do elemento (1, 1):
S1 S 1 = A1,1 = 0
NC(4) = 7
19
2.3.4 Esquema RR(C)O (Row-wise Representation Complete and Ordered)
1 2 3 4 5 6 7 8 9 10
1 3 5 1
A= 2
7 1 3
Posicao 1 2 3 4 5 6
IA 1 4 4 6 apontador de incio de linha
JA 3 4 8 6 8 ndice de coluna
AN 1 3 5 7 1 elementos nao nulos
20
Exerccio(s) proposto(s): (2.4)
Prazo de entrega: uma semana
1 2 3 4 5 6
1
1 2 3
2
3
A=
4
5
4 5 6
6
21
Posicao LCOL NOZE ITAG LNXT DE CE RE
1 1 3 2 2 A1,1 A2,1 A1,2
2 3 4 4 0 A2,2 A4,1 A1,4
3 6 3 1 4 A3,3 A1,2 A2,1
4 8 3 3 5 A4,4 A3,2 A2,3
5 10 4 5 0 A5,5 A5,2 A2,5
6 13 3 2 7 A6,6 A2,3 A3,2
7 6 0 A6,3 A3,6
8 1 9 A1,4 A4,1
9 5 0 A5,4 A4,5
10 2 11 A2,5 A5,2
11 4 12 A4,5 A5,4
12 6 0 A6,5 A5,6
13 3 14 A3,6 A6,3
14 5 0 A5,6 A6,5
LCOL indicador do incio dos elementos nao nulos da coluna (linha)
NOZE numero de elementos nao nulos da coluna (linha)
ITAG ndice de linha (coluna) dos elementos armazenados em CE (RE)
LNXT posicao do proximo elemento nao nulo da coluna (linha)
DE elemento da diagonal da matriz
CE elementos nao nulos fora da diagonal armazenados por coluna
RE elementos nao nulos fora da diagonal armazenados por linha
22
como LNXT(2) = 0 nao ha mais elementos nao nulos na coluna/linha 1
23
Exemplo
1 2 3 4
1,0 2,0 1
4,0 6,0 4
1 4 2 1 2,0 3
2 1 3 4 4,0 0
3 6 1 2 3,0 2
4 7 2 1 1,0 8
5 4 6,0 0
6 3 5,0 0
7 2 4,0 5
8 2 2,0 0
24
A posicao dos elementos, dos ndices e apontadores depende do processo de
armazenamento da matriz, que pode ser definido de varias maneiras diferentes
il = lcol (k)
k 2
il 1 3 2 0 (fim)
m 1 (linha 1) 2 (linha 2) 4 (linha 4)
x 2,0 (elemento (1,2)) 3,0 (elemento (2,2)) 4,0 (elemento (4,2))
25
Inicializacao da estrutura
do i = 1 , nb
lcol (i) = i
itag (i) = i
lnxt (i) = 0
noze (i) = 1
nseq (i) = i
ce (i) = 0.0
end do
LF = nb + 1
do i = LF , ( MAX - 1 )
lnxt (i) = i + 1
itag (i) = 0
ce (i) = 0.0
end do
lnxt (MAX) = 0
itag (MAX) = 0
ce (MAX) = 0.0
26
O vetor NSEQ indica a ordem das linhas (colunas) a serem processadas quando a
matriz armazenada e utilizada nos calculos
Em geral a troca de posicao de linhas (colunas) pode minimizar o aparecimento de
elementos nao nulos em posicoes originalmente nulas
Esse assunto sera discutido com detalhes adiante
1
Akm = = Amk (matriz simetrica)
xkm
X 1
Akk =
xkm
mk
em que:
27
Exemplo
1 2
x12
x13
A= 1/x12 1/x12
1/x13 1/x13
28
Para uma rede de nb barras e nr ramos:
do i = 1 , nr
k = barrainicial (i)
m = barrafinal (i)
y = 1.0 / x(i)
end do
29
Rotina offdiag
offdiag (k,m,valor)
il = lcol (m)
ila = il > =
k : l ce (il) = ce (il) + valor
il = lnxt (il)
RETURN
>
il : 0
6= =
il : lcol (m)
=
RETURN
30
Exemplo
1 2
x12
x23
x13 x23
1
Akm = = Amk (matriz simetrica)
xkm
X 1
Akk =
xkm
mk
31
resultando em:
1 2 3
15 10 5 1
A= 10 30 20 2
5 20 25 3
32
Apos a inicializacao:
MAX 15
LF 4
33
Insercao do ramo 1 (de 1 para 2):
MAX 15
LF 4 5 6
i 1
1 2
k 12
m 21 10 10 1
y 10 A=
10 10 2
il 210
l 21
ilf 56
ila 1
34
Insercao do ramo 2 (de 2 para 3):
MAX 15
LF 4 5 6 7 8
1 2 3
i 1 2
k 12 23 10 10 1
m 21 32
y 10 10 A= 10 20 10 2
il 210 3420 10 10 3
l 21 312
ilf 56 78
ila 1 42
35
Insercao do ramo 3 (de 2 para 3):
MAX 15
LF 4 5 6 7 8
1 2 3
i 1 2 3
k 12 23 23 10 10 1
m 21 32 32
y 10 10 10 A= 10 30 20 2
36
Insercao do ramo 4 (de 1 para 3):
MAX 15
LF 4 5 6 7 8 9 10
i 1 2 3 4
k 12 23 23 13
m 21 32 32 31
y 10 10 10 5
37
A matriz final e:
1 2 3
15 10 5 1
A = 10 30 20 2
5 20 25 3
38
Referencias
Materiais interessantes
39
Apendice
I1 2 1 1 0 0 V1
I2
1 2 0 1 0 V2
I3 =
1 0 3 1 1
V3
I =YV
I4 0 1 1 2 0 V4
I5 0 0 1 0 1 V5
correspondente ao circuito:
1 R 3 R 5
I1 I5
V1 V3 V5
I3
R R
V2 V4
I2 I4
2 R 4
40
Portanto, nao e possvel obter o vetor solucao (tensoes nodais) atraves de:
V = Y1 I
IT =
1 1 1 1 1
Esses problemas ocorrem devido a falta de um no de referencia para o circuito. A
adocao de um no de referencia (no cuja tensao e conhecida a priori) permite:
que se respeite a lei das correntes de Kirchhoff, pois a corrente neste no sera
calculada em funcao das demais
1 R 3 R 5
I1 I5
V1 V3
I3
V5 = 0
R R
V2 V4
I2 I4
2 R 4
41
Maneira 1: eliminando a linha e a coluna de Y e o componente de I correspondentes
ao no de referencia
2 1 1 0
1 2 0 1
Y=
1 0 3 1
0 1 1 2
IT =
1 1 1 1
T
V = Y1 I =
5,5 6,0 4,0 5,5
A injecao de corrente no no de referencia pode ser calculada por (aplicacao da lei das
correntes de Kirchhoff para o no 5):
V5 V3 0 4,0
I5 = I53 = = = 4 A
R35 1,0
I5 = (I1 + I2 + I3 + I4 )
42
Maneira 2: colocando um numero muito grande (tendendo ao infinito) no elemento
da diagonal correspondente ao no de referencia
2 1 1 0 0
1 2 0 1 0
Y=
1 0 3 1 1
0 1 1 2 0
0 0 1 0
IT =
1 1 1 1
em que o valor de nao importa, pois nao influenciara nos calculos (este valor sera
sempre multiplicado por zero). A solucao sera:
T
V = Y1 I =
5,5 6,0 4,0 5,5 0
43