Práctica 12: Método de sobrerelajación sucesiva (SOR)

Anuncio
Práctica 12: Método de sobrerelajación sucesiva
(SOR)
1.
Introducción
Recuerde que se trata de un método iterativo estacionario
x(0) = 0,
M x(k+1) = N x(k) + b ,
k = 0, 1, . . .
para resolver un sistema
Ax = b,
A=L+D+U.
El algoritmo anterior es convergente si y sólo si el radio espectral ρ(M −1 N ) <
1. Más aun, la magnitud
R = − log ρ(M −1 N )
es la velocidad asintótica de convergencia del método, de modo que el valor
del radio espectral es inversamente proporcional a la velocidad de convergencia.
En el caso de SOR,
M = τ −1 (D + τ L),
N = τ −1 (−τ U + (1 − τ )D) ,
donde τ ∈ (0, 2) es un parámetro real. El objetivo de esta práctica es estudiar
la influencia de este parámetro en la velocidad de convergencia.
2.
Trabajo de laboratorio
1. Escriba una función,
[x,iter,radio]=sor(A,b,tau,tol,maxiter)
que, dadas la matriz A, el vector b y el parámetro τ , aplica al sistema
Ax = b el método SOR, hasta que
kx(k) − x(k+1) k ≤ tol ó la cantidad de iteraciones > maxiter,
Práctica de ordenador XII
2
devolviendo en la salida la aproximación x, la cantidad de iteraciones
realizadas iter, y el radio espectral de la matriz de iteración M −1 N .
Puede utilizar para ello la función jac construida en la práctica anterior.
Implemente un control que impida a la función realizar iteraciones si
detecta que el radio espectral es ≥ 1.
2. Considere el mismo sistema lineal

62 24 1 8
 23 50 7 14

A=
 4 6 58 20
 10 12 19 66
11 18 25 2
Ax = b de la práctica anterior:



110
15
 110 
16 



.

110
22  , b = 




110 
3
110
54
Obtenga la gráfica de los valores del radio espectral de la matriz de
iteración, ası́ como de la cantidad de iteraciones necesarias para resolver el sistema Ax = b por medio de la función sor implementada,
con tol=2*eps, para los valores del parámetro τ =0.01:0.01:1.99.
Encuentre el valor óptimo τopt del parámetro.
3. Dado n ∈ N, se considera la matriz A = (aij ) ∈ Rn×n y b = (bi ) ∈
Rn×1 , con

si i = j ,
20 + i ,
1
aij = (−1)i+j
y bi = .

i
, si i 6= j .
i+j
Escribir una función de MATLAB que, dado el valor de n, encuentre
(con un error absoluto ≤ 0,01) el valor óptimo del parámetro τ ∈ (0, 2)
del método SOR aplicado al sistema Ax = b, y resuelva dicho sistema
con tol=2*eps. Compruebe el funcionamiento para n = 100, comente
los resultados.
4. Para los valores n = 10 : 10 : 200 se resuelve el sistema anterior usando
dos métodos:
a) Usando el método de Gauss-Seidel (si converge);
b) Usando el algoritmo SOR con el valor del parámetro τopt correspondiente en cada caso.
Dibuje las gráficas de los números de iteración requeridos y de los
radios espectrales de las matrices de iteración en cada caso. Comente
los resultados.
Andrei Martı́nez Finkelshtein
Descargar