Post on 11-Jul-2020
Solução Numérica de Sistemas Lineares de Grande Porte
Aurelio R. L. Oliveira
aurelio@ime.unicamp.br
IMECC – UNICAMP
Sistemas Lineares – 2016 – p.1/37
Resumo
⋆ Matrizes
⋆ Sistemas Lineares
⋆ Sistemas Triangulares
⋆ Decomposições
⋆ Matrizes Simétricas
⋆ Eliminação Gaussiana
⋆ Pivoteamento
⋆ Implementação
⋆ Decomposição SVD
⋆ Conclusões
Sistemas Lineares – 2016 – p.2/37
Matriz Retangular
M =
813 622 536
393 316 298
173 222 222
161 173 188
156 118 141
154 129 127
140 122 152
135 172 166
97 79 112
92 99 95
88 86 120
71 56 80
61 76 99
55 74 98
50 57 111
Sistemas Lineares – 2016 – p.3/37
Matriz Quadrada
A =
393 316 298
45 38 29
438 354 327
Sistemas Lineares – 2016 – p.4/37
Matriz Quadrada
A =
393 316 298
45 38 29
438 354 327
Matriz Transposta
AT=
393 45 438
316 38 354
298 29 327
Posto
O posto de uma matriz quadrada é dado pelo número de linhas (colunas) linearmenteindependentes.
posto(A) = 2Sistemas Lineares – 2016 – p.4/37
Motivação
⋆ Um dos problemas mais complexos que sabemos resolvercom exatidão
⋆ Pode ser aplicado na solução de centenas de classesproblemas
⋆ Aplicação nas mais diversas áreas do conhecimentohumano
⋆ Problema dos quadrados mínimos
⋆ Problemas de otimização
⋆ Solução numérica de EDPs
Sistemas Lineares – 2016 – p.5/37
Evolução
⋆ 263. Descrição da solução de 17 sistemas lineares até 5× 5 poreliminação Gaussiana. Jiu Zhang Suan Shu Zhu “Nove capítulos daarte da matemática”, Liu Hui.
⋆ 1951. Pilot ICE resolve um sistema linear 17× 17 em algumas horas.
⋆ 1991. Pivoteamento parcial não é numericamente estável.
⋆ 2000. Resolução de sistemas lineares com milhões de equações emalgumas horas.
⋆ 2006. Resolução de sistemas lineares com bilhões de equações emalgumas horas.
⋆ 2012. Possível resolução de sistemas lineares com trilhões deequações em algumas horas.
Sistemas Lineares – 2016 – p.6/37
� � �� � � � � � � � � � � � � � � � � � ��� � � ��� � � � �
�� � � �� � � � � � � � ��� � � � � � � � � �� � � � � � � �� � �� � � � � � ���� � ���Sistemas Lineares – 2016 – p.7/37
Sistemas Lineares – 2016 – p.8/37
Sistemas Lineares
Dado Ax = b, as seguintes afirmações são equivalentes:
1. Dado um vetor b, o sistema linear tem exatamente umasolução;
2. Se existe uma solução de Ax = b, então esta solução éúnica;
3. Ax = 0 → x = 0;
4. As colunas (linhas) de A são linearmente independentes;
5. Existe uma matriz A−1 tal queA−1A = AA−1 = I;
6. det(A) 6= 0.Sistemas Lineares – 2016 – p.9/37
Determinantes
Pequenas alterações da matriz provocam grandes alterações novalor do determinante
det(σA) = σn det(A)
Se n = 30 (sistema pequeno) e det(A) = 1
det(0, 1 A) = 10−30
Muito úteis na teoria.
Na prática tem pouco valor.
Sistemas Lineares – 2016 – p.10/37
Matrizes não Singulares
As matrizes que satisfazem qualquer das condições (1-6) sãodenominadas não singulares e a matriz A−1 é denominadamatriz inversa.
Propriedades
1. AB é não singular ⇔ A e B são não singulares(AB)−1 = B−1A−1
2. (AT )−1 = (A−1)T = A−T
Sistemas Lineares – 2016 – p.11/37
Matrizes Inversas
A solução de um sistema linear Ax = b pode ser escrita emtermos de matrizes inversas
A−1b = A−1Ax = Ix = x
Em geral, calcular a inversa não é a melhor opção.Mesmo para problemas em uma dimensão a inversa não énormalmente utilizada.
Matrizes Triangulares
Sistemas Lineares – 2016 – p.12/37
Matrizes Triangulares
Uma matriz é triangular inferior se todos os elementos acima da diagonalsão nulos.
L =
393 0 0
45 38 0
438 354 327
Uma matriz é triangular superior se todos os elementos abaixo dadiagonal são nulos.
U =
393 316 298
0 38 29
0 0 327
Sistemas Lineares – 2016 – p.13/37
Sistemas Lineares Triangulares
Sistemas triangulares não singulares são fáceis de resolveratravés de substituição de variáveis.
for(i = 1; i ≤ n; i++){
....for(j = 1; j < i; j ++)
.........b[i] = b[i]− l[i][j] ∗ b[j];
....b[i] = b[i]/l[i][j];
}
São necessárias aproximadamente n2
2operações de ponto flutu-
ante para resolver sistemas triangulares.
Sistemas Lineares – 2016 – p.14/37
Decomposição LU
Suponha que A = LU . Se A é não singular, então L e U também são nãosingulares. Podemos escrever o sistema Ax = b na forma LUx = b econsequentemente
Ux = L−1b ≡ y
De forma geral podemos escrever o seguinte algoritmo para resolverAx = b:
1. A = LU
2. Ly = b
3. Ux = y
São necessárias aproximadamente n3
3operações de ponto flutuante no cál-
culo da decomposição LU
Sistemas Lineares – 2016 – p.15/37
Decomposição LDU
A decomposição LU não é única.A decomposição LDU por sua vez é única. Onde D é umamatriz diagonal, L e U além de triangulares são unitárias.A partir da decomposição LDU , podemos definir váriasdecomposições importantes:
⋆ (LD)U . Decomposição de Crout. U é unitária.
⋆ L(DU). Decomposição de Doolittle. L é unitária. Equivalea eliminação Gaussiana.
⋆ LDLT . Quando A é simétrica.
⋆ (LD12) (D
12LT ). Quando A é simétrica definida positiva.
Decomposição de Cholesky.Sistemas Lineares – 2016 – p.16/37
Matriz Definida Positiva
Uma matriz não singular que pode ser decomposta na formaA = LLT tem as seguintes propriedades:
1. A é simétrica
2. x 6= 0 ⇒ xtAx > 0
3. A decomposição A = LLT é única
Sistemas Lineares – 2016 – p.17/37
Matriz Definida Positiva
Uma matriz não singular que pode ser decomposta na formaA = LLT tem as seguintes propriedades:
1. A é simétrica
2. x 6= 0 ⇒ xtAx > 0
3. A decomposição A = LLT é única
⋆ Necessita armazenar apenas metade da matriz
⋆ Realiza aproximadamente metade das operações de umadecomposição LU (n
3
6)
Sistemas Lineares – 2016 – p.17/37
Eliminação Gaussiana
Na eliminação Gaussiana, a matriz A é transformada em umamatriz triangular superior e o vetor b é simultaneamenteatualizado.
Se outras soluções de sistemas lineares forem necessárias estenão é o melhor esquema.
“Equivalente” à decomposição de Doolittle.
O vetor b não é atualizado simultaneamente.
Sistemas Lineares – 2016 – p.18/37
Pivôs
Os elementos da diagonal de uma matriz durante o cálculo de uma decomposiçãorecebem o nome de pivôs.Quando um pivô nulo é encontrado temos um caso onde pode ou não existir umadecomposição LU .
Nao existe decomposicao LU
A =
(
0 1
1 0
)
Matriz Singular
(
0 1
0 0
)
=
(
1 0
0 1
)(
0 1
0 0
)
Situação pior: pivôs com valores muito pequenos devido a instabilidade numérica.
Sistemas Lineares – 2016 – p.19/37
Instabilidade Numérica
13 6= 0, 33333 . . .
⋆ Computadores não sabem fazer contas
⋆ Computadores são muito rápidos
⋆ Métodos robustos × Métodos rápidos
Sistemas Lineares – 2016 – p.20/37
Pivôs
Os elementos da diagonal de uma matriz durante o cálculo de uma decomposiçãorecebem o nome de pivôs.Quando um pivô nulo é encontrado temos um caso onde pode ou não existir umadecomposição LU .
Nao existe decomposicao LU
A =
(
ǫ 1
1 0
)
Matriz Singular
(
0 1
0 0
)
=
(
1 0
0 1
)(
0 1
0 0
)
Situação pior: pivôs com valores muito pequenos devido a instabilidade numérica.
Sistemas Lineares – 2016 – p.21/37
Pivoteamento
⋆ A decomposição PA = LU permite trabalhar com matrizes como aanterior e aumenta a estabilidade numérica do algoritmo.
⋆ O pivoteamento é feito escolhendo o elemento abaixo da diagonal nacoluna coluna corrente com maior valor absoluto como o próximopivô.
⋆ Este procedimento equivale a permutar linhas da matriz A obtendo
PA = LU
onde P e uma matriz de permutação.
⋆ É possível também permutar colunas AQ
⋆ e, simultaneamente, linhas e colunas PAQ.
Sistemas Lineares – 2016 – p.22/37
0 200 400 600 800
0
100
200
300
400
500
600
700
800
900
nz = 18476 Sistemas Lineares – 2016 – p.23/37
0 200 400 600 800
0
100
200
300
400
500
600
700
800
900
nz = 73042 Sistemas Lineares – 2016 – p.24/37
Abordagens Alternativas
⋆ Métodos Diretos
⋆ Fórmula fechada para obtenção da solução
⋆ Encontra a solução exata em tempo finito
⋆ Pode necessitar muito tempo e memória
⋆ Métodos Iterativos
⋆ Encontra aproximação da solução a cada passo
⋆ Converge para um ponto próximo o suficiente da solução
⋆ Geralmente não necessita muita memória
Sistemas Lineares – 2016 – p.25/37
Métodos Diretos
⋆ Substituição - Inversa
⋆ Cramer
⋆ Gauss-Jordan - Escalonamento
⋆ Eliminação Gaussiana
⋆ LU UL
⋆ Decomposição de Crout
⋆ Decomposição de Cholesky
⋆ LDU
⋆ LDLt
⋆ LTLt
⋆ MD−1M t
⋆ Bunch-Parlett
⋆ QR - QL
⋆ Symmetric-Triangular DecompositionSistemas Lineares – 2016 – p.26/37
Métodos Iterativos
⋆ SVD
⋆ (Gauss-)Jacobi - Gauss-Seidel
⋆ Relaxações Sucessivas
⋆ Relaxações Sucessivas Simétrico
⋆ Gradiente - Gradientes Conjugados
⋆ Gradiente Condicional
⋆ GC Equações Normais - GC Resíduo Mínimo
⋆ GC Quadrado
⋆ Minres
⋆ GMres - Solução Fraca
⋆ QMR
⋆ SYMMLQ
⋆ BGC - BGC Estabilizado
⋆ Iteração de ChebyshevSistemas Lineares – 2016 – p.27/37
Porque Métodos Eficientes?
Método de Cramer (cada determinante):
⋆ n! operações de ponto flutuante FLOP pela definição
⋆ Por Laplace
⋆ n3 Por Eliminação Gaussiana
Método n= 5 n= 10 n= 20
Definição 2,5s 3,4d 20 bilhõesLaplace 0,4s 6min 5 mesesGauss 0,036s 0,22s 1,5s
Ivan Barros 1969 - 5× 103 FLOPS por segundo
Sistemas Lineares – 2016 – p.28/37
Porque Métodos Eficientes?
Método de Cramer (cada determinante):
⋆ n! operações de ponto flutuante FLOP pela definição
⋆ Por Laplace
⋆ n3 Por Eliminação Gaussiana
Método n= 5 n= 10 n= 20
Definição 0s 0s 8:45hLaplace 0s 0s 10−8sGauss 0s 0s 0s
1018 FLOPS por segundo
Sistemas Lineares – 2016 – p.29/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
• Uma hora: 64× 1078 = 284
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
• Uma hora: 64× 1078 = 284
• Um dia: 32× 1084 = 289
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
• Uma hora: 64× 1078 = 284
• Um dia: 32× 1084 = 289
• Um ano: 512× 1089 = 298
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
• Uma hora: 64× 1078 = 284
• Um dia: 32× 1084 = 289
• Um ano: 512× 1089 = 298
• Universo: 16× 109 × 1098 < 2102 × 169 = 2138
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
• Uma hora: 64× 1078 = 284
• Um dia: 32× 1084 = 289
• Um ano: 512× 1089 = 298
• Universo: 16× 109 × 1098 < 2102 × 169 = 2138
2(109) − 2
138= 2
(109)
Sistemas Lineares – 2016 – p.30/37
Porque Métodos Eficientes?
Método de Cramer: n! operações de ponto flutuante FLOP
Considere um sistema linear com n = 109
Computador que faz 1018 FLOPS por segundo (2016)Tempo para solução:
• n! > 2n, menos que 2(109) FLOPS
• Um segundo: 1018 < 1618 = 272
• Um minuto: 64× 1072 = 278
• Uma hora: 64× 1078 = 284
• Um dia: 32× 1084 = 289
• Um ano: 512× 1089 = 298
• Universo: 16× 109 × 1098 < 2102 × 169 = 2138
2(109) − 2
138= 2
(109)
2(103) − 2138 = 1, 07150860718627× 10301 − 3, 48449143727041× 1041
Sistemas Lineares – 2016 – p.30/37
Decomposição SVD
Teorema (SVD) Seja A ∈ Rn×m com posto r.Existem Un×n, Σn×m e V m×m tal que U e V são matrizes ortogonais,Σ uma matriz diagonal nas primeiras r linhas e colunas comσ11 ≥ σ22 ≥ σ33 ≥ . . . ≥ σrr > 0 e os demais elementos nulos.A pode ser escrita da forma: A = UΣV t.
Teorema (Posto) Seja A de posto r e A = UΣV t.Definimos Ak = UΣkV
t
Então o posto de Ak é k
σk+1 = ‖A− Ak‖2 = min{‖A− B‖2 | posto(B) ≤ k}
Sistemas Lineares – 2016 – p.31/37
Representação de Imagens
⋆ Imagem jpg (dimensão m× n)
⋆ Três matrizes
⋆ Cores primárias: vermelho, verde e azul
⋆ Intensidade entre 0 e 255
⋆ Combinação das três matrizes ponto a ponto
⋆ Imagem aproximada pela matriz de posto k, Ak
⋆ Exemplo: 450× 600, Posto: 450.
Sistemas Lineares – 2016 – p.32/37
07-03-2009 file:///home/aurelio/conf/palestras/arquivo.jpg #1
Sistemas Lineares – 2016 – p.33/37
posto=1 posto=2 posto=3
posto=4 posto=5 posto=6
posto=7 posto=8 posto=9
Sistemas Lineares – 2016 – p.34/37
posto=48 posto=95 posto=142
posto=189 posto=236 posto=283
posto=330 posto=377matriz original posto=450
Sistemas Lineares – 2016 – p.35/37
25-04-2013 file:///home/aurelio/conf/palestras/marte.jpg #1
Sistemas Lineares – 2016 – p.36/37
Conclusões
⋆ Importância dos Sistemas Lineares
⋆ Decomposição
⋆ Métodos Eficientes
⋆ Técnicas de Implementação
⋆ Métodos Iterativos
⋆ Aplicação
Sistemas Lineares – 2016 – p.37/37