9.10.1 pvsygst

a,tau,info= PySLK.pvsygst(a[ilo=1,ihi=-1])

La rutina "pvsygst" reduce una matriz $A$ definida-simétrica a su forma estándar:


Tabla: Reducción de problemas de valores propios simétricos generalizados a problemas estándar

  Tipo Factorización Reducción Obtención de vect. propios
1. $Az=\lambda Bz$ $B=LL^T$ $C=L^{-1}AL^{-T}$ $z=L^{-T}y$
    $B=U^TU$ $C=U^{-T}AU^{-1}$ $z=U^{-1}y$
2. $ABz=\lambda z$ $B=LL^T$ $C=L^{T}AL$ $z=L^{-T}y$
    $B=U^TU$ $C=U^{T}AU$ $z=U^{-1}y$
3. $BAz=\lambda z$ $B=LL^T$ $C=L^{T}AL$ $z=Ly$
    $B=U^TU$ $C=UAU^{T}$ $z=U^{T}y$


Esta rutina se provee para matrices con elementos de tipo real y complejo. Las características de cada uno de los parámetros son las siguientes:

A continuación mostramos un ejemplo en la utilización de esta rutina:

from  PyACTS import *
import PyACTS.PyScaLAPACK as PySLK
from RandomArray import *
from Numeric import *
n,nrhs=8,2
#Initiliaze the Grid
PyACTS.gridinit(nb=2)
if PyACTS.iread==1:
	print "Ejemplo de Utilizacion ScaLAPACK: PvSYGST"
	print "N=",n,";nprow x npcol:",PyACTS.nprow,"x",PyACTS.npcol
	print "Tam. Bloques:",PyACTS.mb,"*",PyACTS.nb
	a=8*identity(n,Float)+ones([n,n],Float)
	b=identity(n,Float)
	print "a=",a
else:
	a,b=None,None
#We convert Numeric Array to PyACTS.Scalapack Array
ACTS_lib=1 # 1=Scalapack
a=Num2PyACTS(a,ACTS_lib)
b=Num2PyACTS(b,ACTS_lib)
#We call ScaLAPACK routine
b,info= PySLK.pvpotrf(b,uplo="U")
a,scale,info= PySLK.pvsygst(a,b)
a=PyACTS2Num(a)
if PyACTS.iread==1:
	print " Q' * sub( A ) * Q = T-->",a
	print "scale:",scale
	print "Info:",info
PyACTS.gridexit()

See Sobre este documento... para sugerencias en cambios.