metodo jacobiano

20
Métodos iterativos para sistemas de ecuaciones lineales

Upload: fabianchopinto

Post on 05-Jul-2015

2.028 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodo Jacobiano

Métodos iterativos para sistemas de

ecuaciones lineales

Page 2: Metodo Jacobiano

Métodos iterativos para sistemas de ecuaciones

lineales❚ Introducción

❚ Ecuación del Calor

❚ Método de Jacobi

❚ Método de Gauss-Seidel

❚ Método de Sobrerrelajación

❚ Problema del Condensador

Page 3: Metodo Jacobiano

Métodos directos frente a métodos iterativos

DIRECTOSDIRECTOS

❚ Ax =b

❚ x = A\ b

❚ Tamaño moderado

❚ Modifican la

estructura

❚ Error de redondeo

ITERATIVOSITERATIVOS

❚ x = Cx + d

❚ x(k+1) = Cx(k) + d

❚ Tamaño grande

❚ Conservan los ceros

❚ Error de truncamiento

Page 4: Metodo Jacobiano

Convergencia y número de operaciones

❚ Coste (para matrices densas) Directos: n3 Iterativos: k.n2

❚ Convergencia

❚ Criterio de parada:

x x tol; p 1,2,...,inf(k+1) (k)

p− < =

Ax b tol; p 1,2,...,inf(k)

p− < =

Page 5: Metodo Jacobiano

Ecuación del Calor

❚ Sistema de ec. lin. ❚ Matriz asociada

T (T T ) / 2

T (T T ) / 2

T (T T ) / 2

T (T T ) / 2

1 0 2

2 1 3

3 2 4

n n-1 n+1

= += += +

= +

2 - 1

- 1 2 - 1

- 1 2

- 1

- 1 2

T0 T1 T2 . . . Tn Tn+1

Page 6: Metodo Jacobiano

Matriz de la Ecuación del Calor con MATLAB

function A = mcalor1(n)v = ones(1,n-1);A = 2*eye(n) - diag(v,1) - diag(v,-1);

Page 7: Metodo Jacobiano

El método de Jacobi

❚ Sistema de ecuaciones lineales

a x

a x

a x

a x

a x a x a x

a x a x a x

a x a x a x

a x a x a x

b

b

b

b

11 1

21 1

31 1

n1 n

12 2 13 3 1n n

22 2 23 3 2n n

32 2 33 3 3n n

n2 2 n3 3 nn n

1

2

3

n

+++

+

+ ++ ++ +

+ +

===

=

Page 8: Metodo Jacobiano

Ecuación de punto fijo

x (b

x (b

x (b

x (b

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

1 1

1 2

2 3

n n

12 2 13 3 1n n 11

21 1 23 3 2n n 22

31 1 32 2 3n n 33

n1 1 n2 2 n,n 1 n 1 nn

= −= −= −

= −

− −− −− −

− −

− −

Page 9: Metodo Jacobiano

Iteración de Jacobi

x (b

x (b

x (b

x (b

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

1(k+1)

1

2(k+1)

2

3(k+1)

3

n(k+1)

n

12 2(k)

13 3(k)

1n n(k)

11

21 1(k)

23 3(k)

2n n(k)

22

31 1(k)

32 2(k)

3n n(k)

33

n1 1(k)

n2 2(k)

n,n 1 n 1(k)

nn

= −

= −

= −

= −

− −

− −

− −

− −

− −

Page 10: Metodo Jacobiano

Expresión matricialResolución con MATLAB

✁U = triu(A,1); L = tril(A,-1);✁d = diag(A);

✁x = (b-(L+U)*x)./d

A L D U

x D (b (L U)x )(k 1) 1 (k)

= + +

= − ++ −

Page 11: Metodo Jacobiano

Condición suficiente de convergencia

❚ Matriz estrictamente diagonalmente estrictamente diagonalmente dominantedominante: para i=1,2,...,n

❚ Si A es estrictamente diagonalmente estrictamente diagonalmente dominantedominante, los iterados de Jacobi convergen a la solución del sistema partiendo de cualquier estimación inicial.

|a | |a | |a | |a | |a |ii i1 i,i 1 i,i 1 in> + + + + +− +

Page 12: Metodo Jacobiano

Iteración de Gauss-Seidel

x (b

x (b

x (b

x (b

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

1(k+1)

1

2(k+1)

2

3(k+1)

3

n(k+1)

n

12 2(k)

13 3(k)

1n n(k)

11

21 1(k+1)

23 3(k)

2n n(k)

22

31 1(k+1)

32 2(k+1)

3n n(k)

33

n1 1(k+1)

n2 2(k+1)

n,n 1 n 1(k+1)

nn

= −

= −

= −

= −

− −

− −

− −

− −

− −

Page 13: Metodo Jacobiano

Expresión matricialResolución con MATLAB

A L D U

(L D)x b Ux

x (L D) (b Ux )

(k 1) (k)

(k 1) 1 (k)

= + +

+ = −

= + −

+

+ −

✁d = diag(A); D = diag(d);

✁U = triu(A,1); L = tril(A,-1);

✁x = (L + D)\(b - U*x)

Page 14: Metodo Jacobiano

Método de sobrerrelajación

Gauss Seidel:

x x z

Sobrerrelajacion:

x x wz ; 0 < w < 2

z x x

x (1 w)x wx

i(k+1)

i(k)

i

i(k+1)

i(k)

i

i i(k+1)

i(k)

i(k+1)

i(k)

i(k+1)

= +

= +

= −

= − +

xik

zi xik+1

ik+1x

Page 15: Metodo Jacobiano

Paso de sobrerrelajación

x (1 )x (b

x (1 )x (b

x (1 )x (b

x (1 )x (b

a x a x a x ) / a

a x a x a x ) / a

a x a x a x ) / a

1(k+1)

1(k)

1

2(k+1)

2(k)

2

3(k+1)

3(k)

3

n(k+1)

n(k)

n

12 2(k)

13 3(k)

1n n(k)

11

21 1(k+1)

23 3(k)

2n n(k)

22

31 1(k+1)

32 2(k+1)

3n n(k)

33

= − + −

= − + −

= − + −

= − + −

− −

− −

− −

ω ω

ω ω

ω ω

ω ω

a x a x a x ) / an1 1(k+1)

n2 2(k+1)

n,n 1 n 1(k+1)

nn− −

− −

Page 16: Metodo Jacobiano

Expresión matricialResolución con MATLAB

✁D = diag(diag(A));

✁c = ω*b; C = (1-ω)*D - ω*U✁x = (ωL + D)\(c + C*x)

( L D)x (1 )Dx (b Ux(k+1) (k)ω ω ω+ = − + − (k) )

( L D)x b ((1 )D U)x(k+1) (k)ω ω ω ω+ = + − −

A L D U= + +

Page 17: Metodo Jacobiano

Condición suficiente de convergencia

❚ Matriz simétrica definida positivasimétrica definida positiva:

AT = A, xTAx > 0

❚ Si A es simétrica definida positivasimétrica definida positiva y 0<w<2, los iterados de SR convergen a la única solución del sistema, partiendo de cualquier estimación inicial.

Page 18: Metodo Jacobiano

Ecuación del Calor en un rectángulo

❚ VC = (VN + VS + VE + VW)/4

C

N

EW

S

Page 19: Metodo Jacobiano

Generación de la matriz con MATLAB

function A = mcalor2(m,n)p = m*n;v = ones(1,p-1);for k=n:n:p-1, v(k) = 0; endw = ones(1,p-n);

A = 4*eye(p) ...

- diag(v,1) - diag(v,-1) ...

- diag(w,n) - diag(w,-n);

Page 20: Metodo Jacobiano

Resumen

❚ Los métodos iterativos se aplican a matrices grandesgrandes y dispersasdispersas.

❚ El coste por iteración es O(nO(n22)) o menor si se aprovecha la dispersidad

❚ Se espera que converjan en menos de nn pasos.

❚ La matriz ha de cumplir ciertas condiciones para que el método converja.