Transcript Precondi00

PRECONDICIONAMIENTO
Teoría y Aplicaciones
Dr. Pablo Barrera Sánchez
Mat. Luis Alberto Vázquez Maison
Facultad de Ciencias, UNAM
Laboratorio de cómputo científico
[email protected]
Precondicionamiento: teoría y aplicaciones
[email protected]
La solución de sistemas lineales
Ax  b
Aparece en diversos campos del computo científico
Solución de Ecuaciones Diferenciales Parciales (EDP)
Métodos clásicos:
Tipo SOR (Jacobi, Gauss-Sidel)
Elim. Gaussiana (Fact. LU, Choleski)
Métodos de Krylov (no tan clásicos):
GMRES, GC, BiGCStab
Precondicionamiento: teoría y aplicaciones
[email protected]
Sistemas sparse de dimensión grande
N = 500, 5000 ,10000, 30000, ...
Métodos clásicos: Costo computacional alto
Métodos de Krylov: Convergencia lenta
Precondicionamiento: teoría y aplicaciones
[email protected]
Un precondicionador para el sistema
Ax  b

Es un operador M tal que uno de los
siguientes sistemas es “fácil” de resolver:
1
1
MA
xMb

1
A
M
ub


1
x

M
u

1

1

1
M
A
M
u

b
xM

u
2
1
1
M

M
M
1
2
Precondicionamiento: teoría y aplicaciones

[email protected]
Problema General: Determinar un operador
M tal que:
1) M  A

1
MA
xIxMb

1
2) La construcción y almacenaje de M
son económicos
3) El sistema Mu  x es mas fácil que
Ax  b
Precondicionamiento: teoría y aplicaciones
[email protected]
Posibles formas para M
Diagonales de A
Factorización de A
Precondicionamiento: teoría y aplicaciones
Algunos ejemplos
[email protected]
Precondicionamiento: teoría y aplicaciones
[email protected]
Precondicionamiento: teoría y aplicaciones
[email protected]
Precondicionamiento: teoría y aplicaciones

[email protected]
EDP







D
i
v
c
o
s
(
x
)

G
r
a
d
U
x
,
y

U
x
,
y
1
0 ( x , y )








2




 
Precondicionamiento: teoría y aplicaciones
[email protected]
Precondicionamiento: teoría y aplicaciones

[email protected]
El efecto “visible” de un precondicionador
es el de disminuir el número de iteraciones
necesarias para que un método de
solución converja
El efecto “oculto” es el de cambiar las
propiedades de los eigenvalores de A
para disminuir su condición

Precondicionamiento: teoría y aplicaciones
[email protected]
Distribucion de los eigenvalores
10
10
8
10
6
10
4
10
2
10
0
10
0
50
100
150
200
250
300
1
2.4 x 10 2
350
400
450
500
Precondicionamiento: teoría y aplicaciones
[email protected]
Error relativo sin precondicionamiento 10e+0
Error relativo con precondicionamiento 10e-7
Precondicionamiento: teoría y aplicaciones

[email protected]
¿Cómo elegir un buen precondicionador?
¡¡ Buena pregunta !!
Analizar el sistema:
Propiedades de A
Estructura de A
¿Que representa?
Precondicionamiento: teoría y aplicaciones
[email protected]
Factorizaciones incompletas
Idea básica
Definir un conjunto de índices bajo una condición particular
i,j|C
S
:

o
n
d
i
c
i
o
n


Aplicar factorización LU considerando :
i,j S
li,j
0

i,j
i,j S
u
0

Formas comunes para
S
i,j|a
i,j 
S
:

t
o
l


i,j|li,j 
S
:

t
o
l


Precondicionamiento: teoría y aplicaciones
[email protected]
Llenado de una matriz
Precondicionamiento: teoría y aplicaciones
[email protected]
GRADIENTE CONJUGADO

bA
x;p

r
Calcular r
0
0 0 0

1
b

A
xpr
;0

;
z

M
r
Calcular r
00
0
0
Para j=1,…
Para j=1,…
1)
2)
3)
4)

x
j

j1
p
5)
j

j1
j
j
r j ,r j
 r j1   j p
Ap j,p j
 xj  jp
x
3)
r j1  r j   j A p
(3-a)
r j 1 ,r j 1
r j ,r j
2)
4)
z
j1
j1
j 
 M
Fin
p
j1
1
j
j
r j1
r j1 ,z j1
r j ,z j
j
5)
Fin
 j 
Ap j ,p j
r j1  r j   j A p

1)
r j ,r j
 xj  jp
0
 z
j1
  jp
j
Precondicionamiento: teoría y aplicaciones
M
No necesariamente es una matriz
Un precondicionador puede darse como
una rutina que resuelve el sistema
Mu  x
Existen problemas donde el sistema de
ecuaciones correspondiente no es
construido explícitamente
[email protected]
Precondicionamiento: teoría y aplicaciones

[email protected]

 
D
i
va
,y
r
a
d
,y
,y
x
G
x
 f x
U
a
x
,
yf
;
x
,
y
C
o
n
o
c
i
d
a
s



,  [
0
,1
]

[
0
,1
]
xy
Discretizacion por diferencias finitas sobre una
malla de dimensión N
La estructura de la matriz es conocida
El sistema no es construido explícitamente,
es decir, no se tiene la matriz A
Precondicionamiento: teoría y aplicaciones
[email protected]
La ecuación que se desea resolver es de tipo Elíptico
La ecuación elíptica mas simple es la ecuación de
Poisson
Los sistemas lineales de ambas ecuaciones tienen
estructuras similares
Se conocen técnicas muy eficientes para resolver
la ecuación de poisson sobre un rectángulo,
basadas principalmente en el uso de la
transformada rápida de Fourier (Fast Poisson
Solvers)
Una rutina de solución rápida de Poisson es
un buen precondicionador para resolver el
sistema correspondiente a una ecuación
elíptica
Precondicionamiento: teoría y aplicaciones

[email protected]

 




,y


o


a
x
,
y
1
.
1
s
e
n
3
x

5
y
;
fx
s
e
n
.
5c

x
s
y

D
i
va
,y
G
r
a
d
U
,y
,y
x

x


 f x
N=60 (3600 variables)
utilizando GC
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0.2
0.4
0.6
0.8
1
Precondicionamiento: teoría y aplicaciones
[email protected]
GRADIENTE CONJUGADO

bA
x;p

r;
Calcular r
0
0 0 0
z0  M1r0
z0  F r0
0)
Para j=1,…
 j 
x
j1
r j ,r j
Ap j,p j
 xj  jp
r j1  r j   j A p
z
j1
j 
p
j1
 M
1
j
j
r j1
1)
 j 
2)
x j1  x j   j p
3)
r j1  r j   j A p
(3-a)
r j1 ,z j1
4)
r j ,z j
 z
j1
  jp
j
r j ,r j
5)
Fin
Ap j,p j
z j1  F
j 
p
j1
j
j


 rj1 


r j1 ,z j1
r j ,z j
 z j1   j p
j
Precondicionamiento: teoría y aplicaciones
[email protected]
u  F  x
Rutina de solución para un sistema particular :
Mu  x
Donde la matriz puede no ser conocida explícitamente
Posibles rutinas:
•Solución de sistemas tridiagonales
•Sistemas triangulares (Substitución)
•Cualquier solución implícita
Que
Mu  x sea “Fácil” toma otro significado
Precondicionamiento: teoría y aplicaciones
¿Posibles rutinas?:
SOR (Métodos tradicionales)
Multigrid
Métodos de Krylov
La solución es solo aproximada, cada
vez que se llama a la rutina se obtiene
una aproximación con diferente
precisión
Mas de un precondicionador?
[email protected]
Precondicionamiento: teoría y aplicaciones
GRACIAS
[email protected]