9.9.1 pvgehrd

a,tau,info= PySLK.pvgehrd(a[ilo=1,ihi=-1])
La rutina "pvgehrd" reduce una matriz $A$ a su forma Hessenberg superior $H$ mediante una transformación ortogonal:


\begin{displaymath}Q' A Q=H\end{displaymath}

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: PvGEHRD"
	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)
	print "a=",a
else:
	a=None
#We convert Numeric Array to PyACTS.Scalapack Array
ACTS_lib=1 # 1=Scalapack
a=Num2PyACTS(a,ACTS_lib)
#We call ScaLAPACK routine
a,tau,info= PySLK.pvgehrd(a)
a=PyACTS2Num(a)
if PyACTS.iread==1:
	print " Q' * sub( A ) * Q = T-->",a
	print "Tau:",transpose(tau)
	print "Info:",info
PyACTS.gridexit()
El resultado de este código es el siguiente:
$ mpirun -np 2 mpipython exPyScapvgehrd.py 

Ejemplo de Utilizacion ScaLAPACK: PvGEHRD
N= 8 ;nprow x npcol: 2 x 1
Tam. Bloques: 2 * 2
a= [[ 9.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  9.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  9.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  9.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  9.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  9.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  9.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  9.]]
 Q' * sub( A ) * Q = T--> [[  9.00000000e+00  -2.64575131e+00   4.44089210e-16   0.00000000e+00
         0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00]
 [ -2.64575131e+00   1.50000000e+01   8.88178420e-16  -1.50323342e-15
        -2.61329217e-17  -1.20495759e-16  -1.96539658e-16  -1.08176581e-16]
 [  2.74291885e-01  -2.17558393e-15   8.00000000e+00   2.18463005e-15
         7.58594935e-17   3.49779000e-16   5.70521699e-16   3.14018492e-16]
 [  2.74291885e-01   2.89897949e-01   2.97904098e-15   8.00000000e+00
         8.88178420e-16   0.00000000e+00   1.77635684e-15   0.00000000e+00]
 [  2.74291885e-01   2.89897949e-01   3.09016994e-01   8.88178420e-16
         8.00000000e+00  -1.25607397e-15  -1.33226763e-15   0.00000000e+00]
 [  2.74291885e-01   2.89897949e-01   3.09016994e-01   3.33333333e-01
        -6.28036983e-16   8.00000000e+00  -1.57009246e-16   0.00000000e+00]
 [  2.74291885e-01   2.89897949e-01   3.09016994e-01   3.33333333e-01
         4.14213562e-01  -2.35513869e-16   8.00000000e+00   0.00000000e+00]
 [  2.74291885e-01   2.89897949e-01   3.09016994e-01  -3.33333333e-01
         0.00000000e+00   1.00000000e+00   0.00000000e+00   8.00000000e+00]]
Tau: [ [ 1.37796447  1.40824829  1.4472136   1.5         1.70710678  1.        
        0.          0.        ]]
Info: 0

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