9.6.20 pvdbtrs

b,info= PySLK.pvpbtrs(a,b[,bw=i)]

La rutina "pvpbtrs" resuelve un sistema de ecuaciones lineal del tipo:

\begin{displaymath}A X = B \end{displaymath}

o

\begin{displaymath}A^{T}X=B\end{displaymath}

donde $A$ es una matriz utilizada para producir los factores almacenados en $A$ y $AF$ por pvpbtrf. $A$ es una matriz $N \times N$ distribuidas por bandas mediante bwu y bwl. La rutina pvpbtrf debe ser llamada previamente.

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=7
#Initiliaze the Grid
PyACTS.gridinit(nb=4,nprow=1)
if PyACTS.iread==1:
    print "Ejemplo de Utilizacion ScaLAPACK: PvPBTRS"
    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
    b=ones((n,1))
    print "b'=",transpose(b)
else:
    a,b=None,None
#We convert Numeric Array to PyACTS.Scalapack Array
ACTS_lib=501 # 501=Scalapack; Partial pivoting Band
pivot='pb'
bw=2
a=Num2PyACTS(a,ACTS_lib,bwu=bw,bwl=bw,piv=pivot)
b=Num2PyACTS(b,502)
#We call ScaLAPACK routine
print "bw=",bw
a,info= PySLK.pvpbtrf(a,bw=bw)
b,info= PySLK.pvpbtrs(a,b,bw=bw)
if PyACTS.iread==1:
    print "Info:",info
    print "B:",b.data
PyACTS.gridexit()

El resultado de este código es el siguiente:

 mpirun -np 1 mpipython exPyScapvpbtrs.py 
Ejemplo de Utilizacion ScaLAPACK: PvPBTRS
N= 7 ;nprow x npcol: 1 x 1
Tam. Bloques: 4 * 4
a= [[ 9.  1.  1.  1.  1.  1.  1.]
 [ 1.  9.  1.  1.  1.  1.  1.]
 [ 1.  1.  9.  1.  1.  1.  1.]
 [ 1.  1.  1.  9.  1.  1.  1.]
 [ 1.  1.  1.  1.  9.  1.  1.]
 [ 1.  1.  1.  1.  1.  9.  1.]
 [ 1.  1.  1.  1.  1.  1.  9.]]
b'= [ [1 1 1 1 1 1 1]]
bwu= 2 ;bwl= 2
Info: 0
B: [ 0.09348148  0.084       0.07466667  0.07585185  0.07466667  0.084     
       0.09348148]

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