9.7.1 pvgeqpf

a,tau,info= PySLK.pvgeqpf(a[,ia=1,ja=1])
La rutina "pvgeqpf" obtiene una factorización QR con pivotación de una matriz A de tamaño $m\times n$ distribuida utilizando una pivotación parcial con intercambio de filas.

\begin{displaymath}A P=Q R\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: PvGEQPF"
    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.pvgeqpf(a)
a=PyACTS2Num(a)
if PyACTS.iread==1:
    print "A*P =Q*R-->",a
    print "Tau:",transpose(tau)
    print "Info:",info
PyACTS.gridexit()
El resultado de este código es el siguiente:
 mpirun -np 2 mpipython exPyScapvgeqpf.py 
Ejemplo de Utilizacion ScaLAPACK: PvGEQPF
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.]]
A*P =Q*R--> [[-9.38083152 -2.5584086  -2.5584086  -2.5584086  -2.5584086  -2.5584086 
       -2.5584086  -2.5584086 ]
 [ 0.0544045  -9.0252172  -1.93397511 -1.93397511 -1.93397511 -1.93397511
       -1.93397511 -1.93397511]
 [ 0.0544045   0.04522339 -8.81557064 -1.55568894 -1.55568894 -1.55568894
       -1.55568894 -1.55568894]
 [ 0.0544045   0.04522339  0.03900305 -8.67721831 -1.30158275 -1.30158275
       -1.30158275 -1.30158275]
 [ 0.0544045   0.04522339  0.03900305  0.03445855 -8.57904424 -1.11900577
       -1.11900577 -1.11900577]
 [ 0.0544045   0.04522339  0.03900305  0.03445855  0.03096769 -8.50575253
       -0.98143298 -0.98143298]
 [ 0.0544045   0.04522339  0.03900305  0.03445855  0.03096769  0.02818813
       -8.44894167 -0.87402845]
 [ 0.0544045   0.04522339  0.03900305  0.03445855  0.03096769  0.02818813
        0.02591422  8.4036117 ]]
Tau: [ [ 1.95940322  1.97575564  1.98490246  1.99054577  1.99426252  1.99682676
        1.99865781  0.        ]]
Info: 0

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