1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
subroutine anrs02 (a,ia,b,w,ipvt,n,io)
C SUBROUTINE ANRS02 (A,IA,B,W,IPVT,N,IO)
C
C***********************************************************************
C *
C *
C Copyright: Eduardo Casas Renteria *
C Cecilia Pola Mendez *
C *
C Departamento de Matematicas,estadistica y Computacion *
C ----------------------------------------------------- *
C UNIVERSIDAD DE CANTABRIA *
C ------------------------ *
C MAYO 1987 *
C *
C***********************************************************************
C
C OBJETIVO:
C Esta subrutina resuelve un sistema del tipo:
C P'LL'Px=b ,
C donde P es una matriz de permutacion y L es una matriz
C triangular inferior.
C
C LISTA DE LLAMADA:
C DE ENTRADA:
C
C A Matriz de dimension (IA,N). En sus N primeras filas,
C almacena a la matriz triangular superior L'. La parte
C subdiagonal de A no es utilizada.
C
C IA Primera dimension de la matriz A. IA >= N.
C
C B Vector N-dimensional. Guarda los terminos independientes
C del sistema.
C
C W Vector de trabajo N-dimensional.
C
C IPVT Vector entero de trabajo de dimension N. Se utiliza para
C interpretar el cambio de filas producido al multiplicar
C por la derecha por la matriz de permutacion P :
C IPVT(I)=J, indica que en el lugar I-esimo se coloca
C la fila J-esima
C N Numero de filas y columnas de la matriz de coeficientes.
C
C IO Numero de canal de salida de resultados.
C
C DE SALIDA:
C
C B Vector que recoge la solucion del sistema.
C
C
C Esta subrutina trabaja en doble precision via una sentencia
C "implicit":
C implicit double precision (a-h,o-z)
C
C SUPROGRAMAS AUXILIARES: anrs01,ddot,d1mach
C FUNCIONES FORTRAN INTRINSECAS: abs,mod
C
C
implicit double precision (a-h,o-z)
dimension a(ia,*),b(*),w(*),ipvt(*)
C
C Se resuelve el sistema Ly=Pb
C
do 10 i=1,n
10 w(i)=b(ipvt(i))
ind=1
call anrs01(a,ia,n,w,w,ind,io)
C
C Se resuelve el sistema L'z=y
C
ind=2
call anrs01(a,ia,n,w,w,ind,io)
C
C Se calcula P'z
C
do 20 i=1,n
20 b(ipvt(i))=w(i)
end
|