NUMAL Section 3.2.1.1.2
BEGIN SECTION : 3.2.1.1.2 (June, 1974)
AUTHOR : C.G. VAN DER LAAN.
CONTRIBUTORS : H.FIOLET, C.G. VAN DER LAAN.
INSTITUTE : MATHEMATICAL CENTRE.
RECEIVED: 731008.
BRIEF DESCRIPTION :
THIS SECTION CONTAINS THE PROCEDURES EQILBRCOM AND BAKLBRCOM.
EQILBRCOM EQUILIBRATES A GIVEN MATRIX.
BAKLBRCOM TRANSFORMS THE EIGENVECTORS OF THE EQUILIBRATED MATRIX
INTO THE EIGENVECTORS OF THE ORIGINAL MATRIX.
KEYWORDS :
COMPLEX MATRIX,
EIGENVECTORS,
EQUILIBRATION.
SUBSECTION: EQILBRCOM.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" EQILBRCOM(A1, A2, N, EM, D, INT); "VALUE" N;
"INTEGER" N; "ARRAY" A1, A2, EM, D; "INTEGER" "ARRAY" INT;
"CODE" 34361;
THE MEANING OF THE FORMAL PARAMETERS IS:
A1,A2:: <ARRAY IDENTIFIER>;
"ARRAY" A1,A2[1:N,1:N];
ENTRY:
THE REAL PART AND IMAGINARY PART OF THE MATRIX TO BE
EQUILIBRATED MUST BE GIVEN IN THE ARRAYS A1 AND A2,
RESPECTIVELY;
EXIT:
THE REAL PART AND THE IMAGINARY PART OF THE EQUILIBRATED
MATRIX ARE DELIVERED IN THE ARRAYS A1 AND A2,
RESPECTIVELY;
N: <ARITHMETIC EXPRESSION>;
THE ORDER OF THE GIVEN MATRIX;
EM: <ARRAY IDENTIFIER>;
"ARRAY"EM[0:7];
ENTRY:
EM[0]: THE MACHINE PRECISION;
EM[6]: THE MAXIMUM ALLOWED NUMBER OF ITERATIONS;
EXIT:
EM[7]: THE NUMBER OF ITERATIONS PERFORMED;
D: <ARRAY IDENTIFIER>:
"ARRAY" D[1:N];
EXIT:
THE SCALING FACTORS OF THE DIAGONAL SIMILARITY
TRANSFORMATION;
INT: <ARRAY IDENTIFIER>;
"INTEGER""ARRAY" INT[1:N];
EXIT:
INFORMATION CONCERNING THE POSSIBLE INTERCHANGING OF
SOME ROWS AND CORRESPONDING COLUMNS.
PROCEDURES USED:
ICHCOL = CP34031,
ICHROW = CP34332,
TAMMAT = CP34014,
MATTAM = CP34015.
RUNNING TIME: PROPORTIONAL TO N * NUMBER OF ITERATIONS.
LANGUAGE: ALGOL 60.
METHOD AND PERFORMANCE: SEE BAKLBRCOM.
SUBSECTION: BAKLBRCOM.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"PROCEDURE" BAKLBRCOM(N, N1, N2, D, INT, VR, VI);
"VALUE" N, N1, N2; "INTEGER" N, N1, N2; "ARRAY" D, VR, VI;
"INTEGER" "ARRAY" INT;
"CODE" 34362;
THE MEANING OF THE FORMAL PARAMETERS IS:
N: <ARITHMETIC EXPRESSION>;
THE ORDER OF THE MATRIX OF WHICH THE EIGENVECTORS ARE
CALCULATED;
N1,N2: <ARITHMETIC EXPRESSION>;
THE EIGENVECTORS CORRESPONDING TO THE EIGENVALUES WITH
INDICES N1,...,N2 ARE TO BE TRANSFORMED;
D: <ARRAY IDENTIFIER>:
"ARRAY" D[1:N];
ENTRY: THE SCALING FACTORS OF THE DIAGONAL SIMILARITY
TRANSFORMATION AS DELIVERED BY EQILBRCOM;
INT: <ARRAY IDENTIFIER>;
"INTEGER""ARRAY" INT[1:N];
ENTRY: INFORMATION DEFINING THE INTERCHANGING OF SOME
ROWS AND COLUMNS, AS DELIVERED BY EQILBRCOM;
VR,VI: <ARRAY IDENTIFIER>;
"ARRAY" VR,VI[1:N,N1:N2];
ENTRY:
THE BACK TRANSFORMATION IS PERFORMED ON THE EIGENVECTORS
WITH THE REAL PARTS GIVEN IN ARRAY VR AND THE IMAGINARY
PARTS GIVEN IN ARRAY VI;
EXIT:
THE REAL PARTS AND IMAGINARY PARTS OF THE RESULTING
EIGENVECTORS ARE DELIVERED IN THE COLUMNS OF THE ARRAYS
VR AND VI, RESPECTIVELY.
PROCEDURES USED: BAKLBR = CP34174.
RUNNING TIME: ROUGHLY PROPORTIONAL TO N * (N2-N1).
LANGUAGE: ALGOL 60.
THE FOLLOWING HOLDS FOR BOTH PROCEDURES:
METHOD AND PERFORMANCE:
A MATRIX M IS SAID TO BE EQUILIBRATED, WHEN THE DIAGONAL ELEMENTS
OF M''M - MM'' ARE ZERO, WHERE '' STANDS FOR CONJUGATING
AND TRANSPOSING. IN EQILBRCOM THE MATRIX M IS EQUILIBRATED
BY MEANS OF OSBORNE'S DIAGONAL SIMILARITY TRANSFORMATION WITH
POSSIBLE INTERCHANGES (OSBORNE, 1960).
BAKLBRCOM PERFORMS THE CORRESPONDING BACK TRANSFORMATION.
LET THE EIGENVECTORS OF THE EQUILIBRATED MATRIX BE GIVEN IN THE
COLUMNS OF MATRIX V. THE EIGENVECTORS OF THE ORIGINAL MATRIX ARE
OBTAINED BY MULTIPLYING (OR POSSIBLE INTERCHANGING) THE ROWS OF THE
MATRIX V WITH THE SCALING FACTORS. AS THE SCALING FACTORS ARE REAL
QUANTITIES, THE TRANSFORMATION IS PERFORMED BY CALLING THE
PROCEDURE BAKLBR FOR BOTH VR AND VI (DEKKER AND HOFFMANN, 1968).
REFERENCES:
DEKKER, T.J. AND W.HOFFMANN (1968),
ALGOL 60 PROCEDURES IN NUMERICAL ALGEBRA, PART 2,
MATH. CENTRE TRACTS 23, MATHEMATISCH CENTRUM;
OSBORNE, E.E. (1960),
ON PRECONDITIONING OF MATRICES,
JACM., 7, P.338-354;
PARLETT, B.N. AND C.REINSCH (1969),
BALANCING A MATRIX FOR CALCULATION OF EIGENVALUES AND
EIGENVECTORS,
NUM. MATH., 13, P.293-304;
EXAMPLE OF USE:
BAKLBRCOM IS USED IN THE PROCEDURE EIGCOM (SEE SECTION 3.3.2.2.2.).
AS A FORMAL TEST OF THE PROCEDURE EQILBRCOM, THE FOLLOWING MATRIX
WAS USED:
1 0 1024*I
0 1 0
I/1024 0 2
"BEGIN" "INTEGER" I,J; "INTEGER""ARRAY" INT[1:3];
"REAL" "ARRAY" A1,A2[1:3,1:3],EM[0:7],D[1:3];
EM[0]:=5"-14;EM[6]:=10;
INIMAT(1,3,1,3,A1,0);INIMAT(1,3,1,3,A2,0);
A1[1,1]:=A1[2,2]:=1;A1[3,3]:=2;
A2[1,3]:=2**10;A2[3,1]:=1/2**10;
EQILBRCOM(A1,A2,3,EM,D,INT);
OUTPUT(61,"(""("EQUILIBRATED MATRIX:")",/")");
OUTPUT(61,"("3(D2B),/,2(D2B),"("I")",/,D2B,"("I")",2BD/")",
A1[1,1],A1[1,2],A1[1,3],A1[2,1],A1[2,2],A1[3,1],A1[3,3]);
OUTPUT(61,"("/,"("EM[7]:")",5BD/")",EM[7]);
OUTPUT(61,"(""("D[1:3]: ")",3(3ZD2B),/")",D[1],D[2],D[3]);
OUTPUT(61,"(""("INT[1:3]: ")",BD,3B,2BD,B4ZD")",
INT[1],INT[2],INT[3])
"END"
OUTPUT:
EQUILIBRATED MATRIX:
1 0 0
0 1 I
0 I 2
EM[7]: 4
D[1:3]: 1 1024 1
INT[1:3]: 2 0 0
SOURCE TEXT(S) :
"CODE" 34361;
"CODE" 34362;