METODO
PARA EL CALCULO DE VALORES Y VECTORES PROPIOS DOMINANTES
DE UNA MATRIZ - PARTE III
Continúa en PARTE
IV
Viene de
PARTE
I PARTE
II
Si
P es la matriz de dimensión r x r que diagonaliza
a S,tenemos (42) :

Y en (39) podemos hacer (43) :

Y la matriz W de dimensión n x r estará
formada por los r vectores propios asociados a los r valores
propios dominantes de A.
Para el cálculo de los valores propios de S deberá
aplicarse alguna técnica de las ya conocidas (téngase
en cuenta que el objetivo era obtener unos pocos valores
y vectores propios de A, por lo que la dimensión
de S es pequeña comparada con la de A), pero podemos
dar una expresión general para sus vectores propios
en función de los valores propios.
Siendo si un valor propio de S tenemos (44)
:

Tomando la coordenada xr = 1 resulta (45) :

Finalmente, agrupando denominadores, podemos expresar
la componente k-ésima del vector propio asociado
al valor propio si en la forma (46) :

Este segundo algoritmo es más rápido pero
también más inestable, debido a que entre
las operaciones a realizar está la de invertir
matrices de Vandermonde cuyo determinante es nulo si se
tiene [12].
Los algoritmos según los métodos de Lanczos
y Arnoldi están también basados en iteraciones
sobre subespacios de Krilov.
CONVERGENCIA
Esta claro que, en general, se trata de alcanzar la convergencia
en un proceso iterativo de la forma (47) :

por lo que podemos tomar como parámetro de convergencia
el dado por (48) :

o, mejor (49) :

que es equivalente pero más ilustrativo.
Cuando el valor de
sea menor que una tolerancia prefijada, se habrá
conseguido la convergencia.
Una ventaja fundamental de utilizar la ecuación
(49) como criterio de convergencia es la de evitar la
resolución del problema de valores propios en cada
iteración.
DESCRIPCION PRACTICA
DEL METODO
Los pasos a seguir para una aplicación práctica
inicial del método serían :
1.
Iniciar el proceso de iteración tomando un conjunto
de R vectores linealmente independientes.
2. Obtener la matriz ,
multiplicando la matriz problema por .
Aplicar el factor de escala.
3. Calcular las matrices y,
a partir de ellas, obtener la matriz 
4. Determinar el valor del factor de convergencia, de
acuerdo con la ecuación (49).
5. Si el valor del parámetro de convergencia
es menor que la tolerancia establecida
Cerrar el proceso
En otro caso,
Volver al paso 2.
En
la práctica, el esquema expuesto, presenta dos
deficiencias que requieren su mejora :
Por una parte, aun en el caso de condiciones de convergencia
favorables ,debido
a los errores de redondeo, es difícil llegar a
obtener una precisión superior a la sexta cifra
decimal con una implementación directa del mismo.
Por otra, cuando las condiciones de convergencia no son
favorables,
, el esquema no aprovecha adecuadamente la información
ofrecida por la evolución del factor de convergencia.
El primero de los problemas queda resuelto con la introducción
de un paso intermedio que mejora significativamente la
precisión alcanzada mediante la corrección,
cada cierto número de iteraciones, del grupo de
vectores de iteración, multiplicándolo por
un factor matricial deducido de la ecuación (25).
La segunda cuestión puede solventarse pasando a
extraer un número de valores propios para el que
se tenga una velocidad de convergencia mas favorable.
Así pues, un esquema más efectivo sería
:
1. Iniciar el proceso de iteración tomando un
conjunto de R vectores linealmente independientes.
2. Obtener la matriz
multiplicando la matriz problema por .
3. Calcular las matrices
y, a partir de ellas, obtener la matriz 
4. Determinar el valor del factor de convergencia, de
acuerdo con la ecuación (49).
5. Si el índice de iteración es múltiplo
del parámetro de reiniciación,
5.1. Corregir el grupo de vectores de iteración
transformándolo mediante un factor matricial
deducido de la ecuación (25) y tomar como siguiente
grupo de iteración el resultado obtenido.
5.2. Si a partir de un valor dado del índice
de iteración, la velocidad de convergencia
del proceso es menor que un límite dado,
5.2.1. Pasar a extraer p-1 valores propios.
En otro caso,
5.3. Tomar como siguiente grupo de vectores de iteración
el resultado de la iteración anterior.
6. Aplicar el factor de escala.
7. Si el valor del parámetro de convergencia
es menor que la tolerancia establecida,
Cerrar el proceso
En otro caso,
Volver al paso 2.
Mediante la implementación en Mathemática
[16] de un algoritmo que desarrolla el segundo de los
esquemas expuestos, puede obtenerse la representación
gráfica de la evolución de
y dos parámetros auxiliares (su valor mínimo
y su media acumulada) en función del número
de iteraciones, para el problema de la extracción
de un conjunto p de valores propios de diversas matrices.
ALGORITMO
Comentario : Extracción
de la matriz sigma que contiene los R valores propios
de mayor módulo de una matriz arbitraria A, reiniciando
cada q veces el grupo de vectores de iteración.
INICIAR ALGORITMO
Solicitar la matriz problema, A, de dimensión n
Solicitar el número de valores propios a extraer,
R (con R << n)
INICIAR
VARIABLES
Parámetro de tolerancia, (Tol) ;
Valor límite mínimo del índice de
iteración para pasar a extraer p-1 valores propios,
(VL);
Parámetro de reiniciación, (q)
Número de ciclos de iteración, (CL) ;
número máximo de iteraciones, (MXI)
Parámetro de convergencia, (X) ;
Valor mínimo de X, (MN)
Número de iteraciones que se mantiene un mínimo
local de X, (CMX)
Suma acumulada de X, (M) ; Valor medio de X, (MC)
Matriz inicial de iteración, (M0), formada por
R vectores linealmente independientes.
Matriz auxiliar (Mi) para la extracción de la matriz
Sigma que contiene los p valores propios dominantes, formada
por R vectores linealmente independientes.
Valor inicial de la matriz que contiene los p valores
propios dominantes, (S)
Listas para el almacenamiento de los valores de X, MC
y MN con objeto de su representación gráfica
frente al número de iteraciones, (TX), (TM), (TN)
Comentario
: Los vectores que forman M0 y Mi, son tomados aleatoriamente.
INICIAR ITERACIÓN
Almacenar en la variable (Esc) el máximo de los
valores absolutos de los elementos de (M0), para aplicarlo
como factor de escala para evitar desbordamientos,
Aplicar A sobre M0 y almacenar el resultado en M1,
Almacenar en una variable auxiliar, SInt, el valor actual
de la matriz S,
Obtener el valor de S por aplicación de la ecuación
(27),
Almacenar en X el valor dado por la ecuación (30)
Actualizar los valores de M y MC,
Si el valor actual de X es menor que MN,
igualar MN a X, poner a 1 el contador CMX,
En otro caso,
Incrementar en 1 el contador CMX,
Si el índice de iteración, I, es múltiplo
de q,
Reiniciar la matriz de iteración, poniendo M0 =
M1*Traspuesta[Base de Jordan asociada a los valores propios
de la matriz S, de acuerdo a la ecuación (25),
Actualizar las listas para las gráficas de X, M
y MN
Si I es igual o mayor que VL y el valor absoluto de la
diferencia entre la cota actual de MC y su valor en la
(10*q)-ésima iteración anterior es menor
o igual que 0.01,
Pasar a extraer p-1 valores propios
En otro caso,
Continuar
En otro caso,
Reiniciar la matriz de iteración poniendo M0
= M1
Reasignar a M0 el valor dado por Esc * M0.
Si MN se ha mantenido mas de 125 iteraciones y el valor
actual del parámetro de convergencia, X, es menor
que tol,
Calcular los valores propios de S y almacenarlos en
la variable auxiliar, ESO
Marcar que se ha alcanzado la convergencia exigida
Salir del proceso de iteración.
En otro caso,
Incrementar I en una unidad
Si el índice de iteración, I, es menor que
MXI
Volver a INICIAR ITERACION
En otro caso
Salir del proceso de iteración
CERRAR ITERACION
Representar gráficamente, frente al índice
de iteración, X, MC y MN
Si se ha alcanzado la convergencia exigida
Imprimir
la variable ESO que contiene los valores propios deseados
En otro caso
Indicar que no se ha alcanzado la convergencia deseada
(Opcionalmente) Calcular los valores propios de S e imprimirlos
|
|