Clase No. 24: Problema de convolución y deconvolución ...joaquin/mn11/clase24.pdf ·...

28
Clase No. 24: Problema de convolución y deconvolución Diferencias finitas para EDO MAT–251 Dr. Alonso Ramírez Manzanares Depto. de Matemáticas Univ. de Guanajuato e-mail: alram@ cimat.mx web: http://www.cimat.mx/salram/met_num/ Dr. Joaquín Peña Acevedo CIMAT A.C. e-mail: joaquin@ cimat.mx Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 1 / 28

Transcript of Clase No. 24: Problema de convolución y deconvolución ...joaquin/mn11/clase24.pdf ·...

Clase No. 24:

Problema de convolución y deconvoluciónDiferencias finitas para EDO

MAT–251 Dr. Alonso Ramírez ManzanaresDepto. de MatemáticasUniv. de Guanajuatoe-mail: [email protected]: http://www.cimat.mx/salram/met_num/

Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: [email protected]

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 1 / 28

Convolución (I)Fijamos una función k(x) continua en el intervalo [−1,1]. Dada una funciónf , Definimos la función g como

g(x) =

∫ 1

0k(x− s)f (s)ds.

Hacemos una partición del intervalo, 0 = x0 < x1 < x2 < ... < xn = 1.Queremos estimar el valor g(xi) para diferentes funciones f . Por ello,conviene hacer lo siguiente:

1 Para cada xi, si aplicamos alguna fórmula de cuadratura que use lospuntos de la partición para aproximar el valor de la integral, tendremosque

g(xi) =

∫ 1

0k(xi − s)f (s)ds ≈

n∑

j=0

wjk(xi − xj)f (xj).

Como los valores wj y k(xi − xj) no cambian si reemplazamos f por otrafunción, conviene almacenarlos, de modo que sólo se calculen una vez.

Construimos una matriz K = [kij] de tamaño n+1, donde la entrada kij es

kij =wj−1k(xi−1 − xj−1), i, j = 1,2, ...,n+ 1.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 2 / 28

Convolución (II)

2 Dada la función f , construimos el vector f = (f1, ..., fn+1)>, donde

fi = f (xi−1).3 Hacemos el producto g = Kf = (g1, ...,gn+1)

>, de modo que la entrada gidel vector g tiene la aproximación de g(xi−1).

Si usamos la regla del trapecio para calcular las integrales, entonces

g(xi) =

∫ 1

0k(xi − s)f (s)ds ≈

h

2[f (x0) + f (xn)] + h

n−1∑

j=1

k(xi − xj)f (xj).

Entonces w0 =wn = h2 , y wj = h para j = 1, ...,n− 1.

Para el caso en que k(x) = cosx, tenemos

ki1 =h

2cos(xi−1 − x0), kij = hcos(xi−1 − xj−1), i, j = 1,2, ...,n+ 1.

ki,n+1 =h

2cos(xi−1 − xn)

Para f (x) = sinx, se calcula f y g = Kf . El error entre

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 3 / 28

Convolución (III)

g1g2...

gn+1

y

g(x0)g(x1)

...g(xn)

.

n Error10 5.529586e-0740 2.110768e-0960 4.158964e-10

Si k(x) =20p

2πexp(−200x2), y

f (x) =

0 x < 0.1,1 0.1 ≤ x ≤ 0.25,exp(−100(x− 0.75)2) x > 0.25.

tenemos que si graficamos los vectores f y g = Kf se obtiene lo siguienteJoaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 4 / 28

Convolución (IV)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.2

0.4

0.6

0.8

1

La definición de k y las gráficas de los vectores ayudan a entender elresultado de la operación.

Si agregamos ruido η a f y calculamos bg = K(f +η), obtenemos losiguiente.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 5 / 28

Convolución (V)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.2

0

0.2

0.4

0.6

0.8

1

1.2

Resulta que la matriz K es mal condicionada.

n cond(K)10 2.624820 62.810330 2.50× 104

40 9,85× 107

50 3.41× 1012

60 9.95× 1016

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 6 / 28

Convolución (VI)

¿ En qué nos afecta?

Para saberlo, generemos un vector η con números aleatorios entre[−0.000005,0.000005], y calculamos

Kx1 = g y Kx2 = g+η.

Para un vector η tal que ‖η‖ = 2.3× 10−6, se tiene que

‖x1 − x2‖ = 1.99× 1010.

Si medimos los errores, obtenemos:

‖Kx1 −g‖ = 8.55× 10−16,

‖Kx2 −g‖ = 2.46× 10−6.

Si graficamos el vector x1 obtenido de los datos sin ruido se obtiene losiguiente:

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 7 / 28

Convolución (VII)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1.5

−1

−0.5

0

0.5

1

1.5

2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 8 / 28

Deconvolución (I)

El problema de deconvolución se trata de determinar f dado g y k:

g(x) =

∫ 1

0k(x− s)f (s)ds.

Usando la discretización del problema, sería obtener x dada g, suponiendoque K es conocida:

Kx = g.

Como K es mal condicionada, cambiamos el problema anterior por

(K + λI)xλ = g.

Entre más grande es λ, mejor condicionada es la matriz K + λI, pero lasolución xλ se aleja más de la solución del sistema Kx = g, que debería serf .

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 9 / 28

Deconvolución (II)

λ = 10−16

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.5

0

0.5

1

1.5

λ = 10−15

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.2

0

0.2

0.4

0.6

0.8

1

1.2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 10 / 28

Deconvolución (III)

λ = 10−14

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.2

0

0.2

0.4

0.6

0.8

1

1.2

λ = 0.0001

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.2

0

0.2

0.4

0.6

0.8

1

1.2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 11 / 28

Deconvolución (IV)λ = 0.1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.2

0

0.2

0.4

0.6

0.8

1

1.2

λ ‖xλ − f‖ ‖Kxλ −g‖10−16 1.04 9.55× 10−16

10−15 7.28× 10−2 4.39× 10−15

10−12 2.15× 10−1 4.06× 10−12

10−8 4.19× 10−1 4.04× 10−8

10−6 4.83× 10−1 4.03× 10−6

10−5 5.45× 10−1 4.02× 10−5

10−4 5.96× 10−1 4.01× 10−4

10−2 7.26× 10−1 3.93× 10−2

10−1 9.72× 10−1 3.53× 10−1

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 12 / 28

Sistemas autónomos (I)

Hemos visto el PVI:Y ′ = F(x,Y), Y(a) = α.

La variable x aparece explicitamente separada del resto de las variablesY = (y1,y2, ...,yn), pero esto no necesariamente tiene que ser así. Siintroducimos la variable y0 = x y agregamos la ecuación diferencial

y′0 = 1

y la condición inicial y0(a) = a, entonces podemos reescribir el sistema

X′ =G(X), X(a) = β,

donde

X =

y0Y

, G =

1F

, β =

.

En general, a un sistema de la forma X′ =G(X) se dice que es autónomo.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 13 / 28

Sistemas autónomos (II)

Ejemplo. Considere el sistema

y′1(x) = −2(y2(x)− 2.4)

y′2(x) = 3(y1(x)− 1.2)

Es de la forma

Y ′ = F(Y(x)) con F(Y) =

0 −23 0

Y +

4.8−3.6

−1 0 1 2 3

01

23

4

ry1

ry2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 14 / 28

Sistemas autónomos (III)La solución del problema es de la forma

Y(x) = r

�p2cos(

p6x+ x0)p

3sin(p

6x+ x0)

+

1.22.4

Usamos la condición inicial

Y(0) =�

1.51.5

• Calculamos la solución con el método de Euler.

Yk+1 = Yk + hF(Yk)

• La comparamos con la solución con el método de Runge-Kutta desegundo orden.

Yk+1 = Yk +h

2(K1 +K2)

K1 = F(Yk)

K2 = F(Yk + hK1)

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 15 / 28

Resultado con Euler (h = 0.005,n = 3000)

−1 0 1 2 3

01

23

4

y1

y 2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 16 / 28

Resultado con RK2 (h = 0.005,n = 3000)

−1 0 1 2 3

01

23

4

y1

y 2

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 17 / 28

Métodos de diferencias finitas (I)

Queremos resolver

y′′ = f (x,y,y′)

y(a) = α, y(b) = β

Aproximamos las derivadas por algún esquema de diferencias finitas:

y′(x) ≈1

2h[y(x+ h)− y(x− h)]

y′′(x) ≈1

h2[y(x+ h)− 2y(x) + y(x− h)]

Hacemos una discretización uniforme del intervalo [a,b]:

a = x0 < x1 < · · · < xn = b

Entonces tenemos que

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 18 / 28

Métodos de diferencias finitas (II)

x0 = α1

h2[yi−1 − 2yi + yi+1] = f

xi, yi,1

2h(yi+1 − yi−1)

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

yn = β

Consideremos el caso lineal:

f (x, y, y′) = u(x) + v(x)y+w(x)y′

Entonces

1

h2[yi−1 − 2yi + yi+1] = ui + viyi +

wi

2h(yi+1 − yi−1)

Es decir,

−�

1+h

2wi

yi−1 + (2+ h2vi)yi −�

1−h

2wi

yi+1 = −h2ui

Si definimos

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 19 / 28

Métodos de diferencias finitas (III)

ai = −�

1+h

2wi

di = 2+ h2vi

ci = −�

1−h

2wi

bi = −h2ui

Entonces para i = 2, ...,n− 2 tenemos

aiyi−1 + diyi + ciyi+1 = bi

Para i = 1, a1α+ d1y1 + c1y2 = b1.

Para i = n− 1, an−1yn−2 + dn−1yn−1 + cn−1β = bn−1.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 20 / 28

Métodos de diferencias finitas (IV)

Así, tenemos que resolver el sistema lineal

d1 c1a2 d2 c2

a3 d3 c3. . .

. . .. . .

an−2 dn−2 cn−2an−1 dn−1

y1y2y3...

yn−2yn−1

=

b1 − a1αb2b3...

bn−2bn−1 − cn−1β

Ejemplo.

y′′ = y′ − y+ ex − 3sinx (1)

y(1) = α = 1.097374911 (2)

y(3) = β = 56.559080896 (3)

La solución del problema es y(x) = ex − 3cosx.

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 21 / 28

Métodos de diferencias finitas (V)

En este caso se tiene que

(2− h2)y1 −�

1−h

2

y2 = −h2[ex1 − 3sinx1] +

1+h

2

α

−�

1+h

2

yi−1 + (2− h2)yi −�

1−h

2

yi+1 = −h2[exi − 3sinxi]

−�

1+h

2

yn−2 + (2− h2)yn−1 =

1−h

2

β− h2[exn−1 − 3sinxn−1]

Tomamos n = 100.

Resolvemos el sistema de ecuaciones usando el método de Gauss-Seidel.

Inicializamos el algoritmo con el segmento que une a los puntos (a, α) y(b, β).

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 22 / 28

Métodos de diferencias finitas (VI)

Después de 20000 iteraciones, el error entre la solución analítica y lanumérica es 0.2055.

1.0 1.5 2.0 2.5 3.0 3.5 4.0

010

2030

4050

vx

vy

Inicialización y solución numérica

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 23 / 28

Métodos de diferencias finitas (VII)

1.0 1.5 2.0 2.5 3.0 3.5 4.0

0.00

00.

010

0.02

00.

030

vx

vy −

vs

Error yi − y(xi)

n max |yi − y(xi)| Iteraciones50 0.0082 7382

100 0.0022 26200

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 24 / 28

Ejemplo de condiciones mixtas (I)

Consideremos el problema

x2y′′ − 0.11y = 0,

y(0) = 0,

y′(1) = 1.1

La solución del problema es y(x) = x1.1.

0 2 4 6 8 10

−4

−2

02

4

c(0, 10)

c(−

4, 4

)

● ● ● ● ● ● ● ●

x0 x1 x2 x3 xn−3 xn−2 xn−1 xn

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 25 / 28

Ejemplo de condiciones mixtas (II)

Para los nodos interiores tenemos que la siguiente ecuación:

x2i

yi−1 − 2yi + yi+1

h2− 0.11yi = 0

Así, para i = 2, ...,n− 1 tenemos

x2iyi−1 − (2x2

i+ 0.11h2)yi + x2

iyi+1 = 0

Para i = 1,−(2x2

1 + 0.11h2)y1 + x21y2 = 0

Para i = n,yn−2 − 4yn−1 + 3yn

2h= 1.1

Probamos para diferentes discretizaciones, y obtenemos los siguientesresultados:

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 26 / 28

Ejemplo de condiciones mixtas (III)

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

c(a, b)

c(m

alph

a, m

beta

* b

)

Inicialización y solución numérica

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 27 / 28

Ejemplo de condiciones mixtas (IV)

Error yi − y(xi)

0.0 0.2 0.4 0.6 0.8 1.0

0.00

00.

001

0.00

20.

003

0.00

40.

005

vx

vy −

vs

n max |yi − y(xi)| Iteraciones Error cuadrático25 0.001024 1486 0.0050350 0.001287 4292 0.00710

100 0.005231 10907 0.03680

Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 07.11.2012 28 / 28