LIBRARY OF THE
UNIVERSITY OF ILLINOIS
AT URBANA-CHAMPAIGN
510.84
T£63c
*o. ai-30
is
AUG. 5 1.976
ihe person charging this material is re-
sponsible for its return to the library from
which it was withdrawn on or before the
Latest Date stamped below.
Theft, mutilation, and underlining of books
are reasons for disciplinary action and may
result in dismissal from the University.
UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN
reftl
f
R
n
JUL
12
DEC * & 8BT&
1980
L161 — O-1096
510.814
I^63c
no.2U
Engin.
1
00
GINGERING LfBRARy
y OF ILLINOIS
MS
BIBLIOGRAPHIC DATA
SHLET
1. K, port No.
[JIUC-CAC-.DN-72-2U
3. Recipient's Accession Ni
•J. 1 it le ami Suht it Ic
A NUMERICAL SOLUTION OF THE MATRIX RICCATI EQUATIONS
5- Report Date
January] 20, 1972
7. Autlu>r(s)
Killion Noh
8. Performing Organ i /.at ion Kept.
No
CAC-2U
9. Performing Organization Name and Address
Center for Advanced Computation
University of Illinois at Urb ana- Champaign
Urbana, Illinois 61801
10. Project/Task^ Work Unit No.
11. Contract .'Grant No.
DAHC0i+ 72-C-OOOl
12. Sponsoring Organization Name and Address
U.S. Army Research Office-Durham
Duke Station
Durham, North Carolina
13. Type of Report & Period
Covered
Research
14.
15. Supplementary Notes
16. Abstracts
The eigenvector solution of the time-invarient matrix Riccati equation is
discussed.- The coefficient matrix of the canonical equation is allowed to have
multiple eigenvalues, namely, the matrix could be either derogatory or defective.
The solution of matrix Riccati equation is then calculated from a part of similar-
ity transformation which should reduce the coefficient matrix to the Jordan
canonical form.
1
17. Key Words and Document Analysis. 17a. Descriptors
Ordinary and Partial Differential Equations
; Matrix Algebra
Nonlinear and Functional Equations /
17b. ldcntif iers/Open-Ended Terms
17c. COS ATI Field/Group
18. Availability Statement .-. . . , . ,...,,.
No restriction on distribution.
Available from National Technical Information
Service, Springfield, Virginia 22151
19. Security Class (This
Report )
UNri.ASSIFM-n
21. No. of Pages
38
20. Security Class ( 1 his
Page
UNri.ASSIFIF.D
22. Price
- ______
FOI'M NTlS-iS INCV. J-//I
THIS FORM MAY 1)1- KFPRODUCHP
USCOMM-OC I4832-P72
CAC Document No. 2k
UIUCDCS-R-72-U98
A NUMERICAL SOLUTION OF THE
MATRIX RICCATI EQUATIONS
By
Killion Noh
Center for Advanced Computation
University of Illinois at Urb ana-Champaign
Urbana, Illinois 6l801
January 20, 1972
Submitted in partial fulfillment of the requirements for the degree of
Master of Science in Computer Science in the Graduate College of the
University of Illinois at Urbana-Champaign and supported in part by the
Advanced Research Projects Agency of the Department of Defense and "was
monitored by the U.S. Army Research Office-Durham under Contract
No. DAHCO^ 72-C-OOOl.
Digitized by the Internet Archive
in 2012 with funding from
University of Illinois Urbana-Champaign
http://archive.org/details/numericalsolutioOOnohk
&NGINEEJUNG U8RAA*
ii
ABSTRACT
The eigenvector solution of the time-invariant matrix Riccati equation
is discussed. The coefficient matrix of the canonical equation is allowed
to have multiple eigenvalues, namely, the matrix could be either derog-
atory or defective. The solution of matrix Riccati equation is then cal-
culated from a part of similarity transformation which should reduce
the coefficient matrix to the Jordan canonical form.
Ill
ACKNOWLEDGEMEIW
The author would like to express his thanks to his advisor. Professor
Daniel L. Slotnick, and to the ILLIAC IV Project and the Center for Advanced
Computation under whose employ this research was conducted. A note of
appreciation is also extended to the Department of Computer Science for its
cooperation and support during the time of the author's studies at the
University of Illinois.
Deepest gratitude also goes to Professor Ahmed H. Sameh for suggesting
this thesis topic and for his guidance throughout its preparation. Without
his encouragement and patience, this work would have never been done.
IV
TABLE OF CONTENTS
Page
1. INTRODUCTION 1
2. FORMULATION OF THE PROBLEM 2
3. SOLUTION OF THE MATRIX RICCATI EQUATION 6
k. COMPUTATIONAL METHODS AND NUMERICAL RESULTS 13
LIST OF REFERENCES 18
APPENDIX I. ALGOL PROGRAMS 20
APPENDIX II. ILLIAC IV PROGRAMS 28
1 . INTRODUCTION
It is well known [1,2] that the linear regulator problem with quadratic
cost functional is reduced to the problem of the matrix Riccati equation.
Although the solution of the matrix Riccati equation exists and is
unique [2,3], it is not easy to obtain a numerical solution for the
high-order system.
One of the numerical methods is the eigenvector solution which has been
studied by several authors [U , 5 »6 ] . In their studies, however, the coeffi-
cient matrix of the canonical equation is assumed to have distinct eigen-
values, which is a restriction to the method of eigenvector solutions.
Recently, Martensson [7] discussed the case in which the coefficient matrix
is nondiagonable. Similarly, in this paper, the assumption of distinct
eigenvalues will also be removed so that the coefficient matrix is allowed
to have the multiple eigenvalues, namely, the matrix is either derogatory
or defective. To do this, we explicitly construct the similarity transfor-
mation which should reduce the coefficient matrix to the Jordan canonical
form, either diagonal or nondiagonal, and then the solution of the matrix
Riccati equation is calculated from a part of the similarity transformation
matrix.
Since matrix Riccati equations of fairly large sizes appear in many
engineering applications and since the solution algorithm can be easily
constructed such that it becomes suitable for a parallel computer [8], we
provide in Appendix II the basic codes written in ILLIAC IV language,
GLYPNIR.
2. FORMULATION OF THE PROBLEM
In this section, the source of the matrix Riccati equation and its
relation to optimal control problems are summarized in short for our
further discussions [1,2,3].
Let us consider the linear time- invariant dynamical system
x(t) = Ax(t) + Bu(t)
y(t) = Cx(t) (2.1)
x(tQ)=x0
where A, B, and C are n x n, n x r, and m x n constant matrices, respec-
tively, and x(t) is an n-dimensional state vector, u(t) is an r-dimensional
control vector, and y(t) is an m-dimensional output vector, respectively.
Further, we assume that the system (2.1) is completely observable. The
optimal output regulator problem is then to determine the control u(t) which
minimizes the quadratic cost functional,
V = |yT (t ) IV(t ) + \ Jf (yT(t) Qy(t) + uT(t)Ru(t))dt
t0 (2.2)
where P and Q are m x m symmetric positive semidefinite matrices and R is
an r x r symmetric positive definite matrix. Substituting y(t) = Cx(t)
into (2.2), V is rewritten as
V = \ xT(tf ) CTPCx(tf) + | / (xT(t)CTQC x(t) + uT(t)Ru(t))dt
t0 (2.3)
T T
Since the system (2.1) is completely observable, C PC and C QC are symmetric
and positive semidefinite [l].
The optimal feedback control, therefore, is given by
u*(t) = -R_1BTK(t)x(t) - (2.U)
where K(t) is an n x n symmetric positive definite matrix which is the
solution of the matrix Riccati equation
K(t) + K(t) A + ATK(t) - K(t)BR_1BTK(t) + CTQC = 0 (2.5)
with the boundary condition
K(t ) = CTPC ' (2.6)
Furthermore, the optimal trajectory is the solution of the system of
differential equations
x(t) = (A - BR"1BTK(t)) x(t) (2.7)
x(tQ) = xQ
The minimum cost is given by
V • = |xT(t) K(t) x(t) (2.8)
In addition to the assumption of complete observability we further
assume that the system is completely controllable. Setting P = 0 and
t = °°, the output regulator problem turns out to be the following:
minimize
V = \ /~(yT(t)Qy(t) + uT(t)Ru(t)) dt (2.9)
subject to
x(t) = Ax(t) + Bu(t)
y(t) = Cx(t) (2.10)
x(0) = xQ
Then the optimal control is given by
u(t) = -R_1BTK x(t) (2.11)
where K is the n x n symmetric positive definite matrix which is the solu-
tion of algebraic Riccati equation
KA + ATK - KBR_1BTK + CTQC = 0 (2.12)
The optimal trajectory is the solution of the system
x(t) = Gx(t)
-1 T
G = A - BR B K
(2.13)
x
(0) =
Note that for an optimal control system the matrix G is diagonable and has'
eigenvalues with negative real parts. Therefore, the symmetric positive
definite solution K of (2.12) must be such' that G has eigenvalues with
negative real parts.
Kalman [2] has shown that if the system (2.1) is completely observable
and completely controllable, then
lim K(t ) = K (2.1U)
t -*»
f
We shall observe this equation in the following.
Let K(t) = Z(t)X-1(t) (2.15)
where X(t) and Z(t) are n x n matrices and X(t) is non-singular. Substituting
K(t) = (Z(t) - K(t) X(t)) X_1(t) (2.16)
into (2.5) and setting
X(t) = AX(t) - BR-1BT Z(t) (2.17)
we obtain
Z(t) = -CTQCX(t) - ATZ(t) (2.18)
Therefore (2.5) becomes a system of 2n-dimensional linear homogeneous
differential equations
x(t)
"i(t) 1= \\
z(t) [-c1
-1 T
-BR B
-C QC -A
Z(t)
(2.19)
Since we are interested in increasing the time t, let
t = tf - t
(2.20)
Then
where
X(r)
= ¥
"*(*)
_Z(t)_
Z(t)
-A
-it"
BR B
¥ =
T
C QC
AT
„
—*
(2.21)
with
X(0) = I
Z(0) = CTQC (2.22)
Therefore, the solution will be given by the following matrix exponential
X(f)"
Z(t)
= e
¥t
T
CTQC
(2.23)
Consequently, the solution of the matrix Riccati equation will be obtained
by (2.15) as t-> °°. In the next section, we shall show that two matrices
X(t) and Z(t) are obtained from the similarity transformation which reduces
¥ into the Jordan canonical form. Throughout . the remaining discussions,
the increasing time variable t will be used instead of t.
3. SOLUTION OF THE MATRIX RICCATI EQUATION
We begin with two lemmas for our main result.
Lemma 1. The eigenvalues of the matrix ¥ of (2.21) are symmetric
with respect to the imaginary axis.
Proof. Let I be a 2n x 2n matrix given by
xi =
-I
0
(3.1)
where I is an n x n identity matrix. Then it is obvious that
-1 T
I = I
1 1
T T
I WI = -¥
(3.2)
(3.3)
Since the eigenvalues of a matrix are unchanged by either similarity trans-
formations or transposing, the eigenvalues of W occur in pairs with opposite
signs.
Lemma 2. Let
T =
All A12
A A
LA21 A22J
(3.10
where A , A , A , and A are n x n, m x m, nxm, and m x n matrices,
respectively. Assume that A.^ is non-singular. Then
-1
T T
11 12
T T
L 21 22J
-1
(3.5)
exists iff A - A A " A is non-singular, and is given by
-1
-1
Tll : All " + All " ^2 T22 A21 All
T12 = "All ' A12 T22
-1
(3.6)
T = -T A A
21 22 21 11
-1
T22 = (A22 " A21 All A12)
7
where submatrices T , T , T , and T are the same sizes as A ,
A22' A12' and A21' resPectively-
Proof. Suppose A - A Ann" ^o is non-sin8'ular' From TT " = I.
All Tll + A12 T21 = Xn
(3.7)
lll T12 + ^2 T22 " °
A21 Tll + A22 T21 " °
A21 T12 + A22 T22 = Im
Premultiplying the second equation by A A and subtracting from the
fourth,
T22 " (A22 " A21 All " A12) '
And hence
T12 = ^1 \2 T22
Similarly, from the first and third,
T21 = "T22 A21 ^1 '
-1
-1
Tll == All " + All " h2 T22 A21 All
-1
Hence T is a right inverse of T. In a similar way we can show that T
is also a left inverse of T. Conversely, suppose T is non-singular. Then
0 ? det
A,
^1 "12
LA21 A22J
= det
A22~A21 hi A12.
-1
-det (A^) det(A22-A21A11- A^)
(3.8)
Therefore, A - A A A is nonsingular.
Assuming that W has distinct eigenvalues, we now turn to constructing
the similarity transformation with which W of (2.2l) is reduced to the
8
diagonal form. By lemma 1, W has n eigenvalues with positive real parts
and n eigenvalues with negative real parts. If we construct the similarity-
transformation S, whose columns are the right eigenvectors of ¥, such that
the first n columns are the right eigenvectors of W corresponding to the
n eigenvalues of W with positive real parts, then
s_1ws =
1
X.
*A
2n
(3.9)
,-1
where, of course, the rows of S " are the left eigenvectors of W.
O'donnell [5] and Potter [6] have shown that if we partition S into four
n x n submatrices,
S =
Sll S12
.321 S22J
(3.10)
then the solution of the matrix Riccati equation is given by
-1
K - S21 S±1
provided that S is non-singular.
(3.11)
We shall now remove the restriction that W has distinct eigenvalues and
present an alternative proof to that of Martensson [7] to show that (3.11 )
holds for the case in which ¥ has nondiagonal Jordan form.
Let us consider the general Jordan form J with the similarity transfor-
mation S, which will be constructed later,
S-1¥S = J
where, J =
"i ,
(3.12)
'J
m
and in which
m.
A. 1
1
A. 1
l
". A.
, (m. x m. )
(3.13)
If we denote S by its column vectors s , . . . , s , then
¥ Ls1, s2,
> S2n] = [S1' S2' •••• S2n] J
(3.1M
For any Jordan block J , if i. > 1 then, dropping subscripts of s for
m. l
l
convenience,
(1) . _(D
Ws
= sv 'A.
l
w«<2> ■ *(l) + > .(2)
ws = s + A . s
(3.15)
or
TT (m. ) _ (m.-l) (m. )
¥si=si +A.si
(W - A.I) s(l) = 0
i
(W - A.I)2 s(2) = 0
(3.16)
/ vin. (m. )
(W-A.IJis l =0
Thus, s , 1 < j <m., is a principal vector of degree j associated with
, 0 . 0 . ... . , n , (l ) (m. )
A.. Since S is nonsmgular, the m. principal vectors s , ..., s l
are independent. If we consider all the Jordan blocks J , 1 < i < £, we
m. -
l
have the 2n principal vectors s , s ,
, s^ which constitute the
2n
similarity transformation S in (3.12). Further, we rearrange the columns
of S such that the first n vectors are the principal vectors corresponding
to the n eigenvalues with positive real parts of W.
10
Let us now split J of (3.12) into
J =
: J2^
• \
(3.17)
where J and J are diagonal with the eigenvalues of W with positive and
negative real parts respectively, and E and E are matrices with one's on
the super-diagonals and zeros elsewhere. To associate with (3.6), let us
partition S and S as
sll
S12
s =
S21
S22
-
_
s-1-
Tll
T12
T21
T22
(3.18)
where all submatrices are n x n. Note that, by lemma 2, it is necessary to
assume that S and S - S S S are nonsingular.
Then
wt
e = e
SJS 1t
= Se^s'1
0m
Sll S12
e x 0
e^ 0
—
T
11
T
12
S21 S22
n J2t
0 e ^
— —
0 ^
T
21
T
22
S11eJlteEltT11 + S12eJ2teE2tT21
S11eJlteEltT12 + S12eJ2teE2tT22
q eJlteEltT + S eJ2teE2tT S eJlteEltT + S eJ2teE2tT
b21 L 111 22e d 6 ^ 121 b21 ± X ^2 b22 d & * X22
(3.19)
11
Since the elements of Jp have negative real parts, e 2 -^ 0 as t + » and
thus the terms having e 2 in (3.19) vanish as t -*■ °° . Therefore,
X(t)
Z(t)
¥t
T
C QC
„ J_ t iii_ tm ^ J. t E., t_
Slie X 6 1 Tll Sll6 X e 2 T12
21 X e X 111 b21 ^ X12
ri
T
C QC
Su eV eV (T1X + T12 CTQC )
S21 eV eV (T^ + T CTQC)
(3.20)
Therefore the solution of the matrix Riccati equation is given by
K = lim Z(t) X_1(t)
t-*»
= lim [S eJlt e¥ (T +T CTQC ) ] [S eJlW (T +T CTQC) I"1
t-K»
■ S21 Sll
-1
(3-21)
provided that the indicated inverse exists. However, we shall show that
only the nonsingularity of S and S - S S S p is needed for the
stationary solution of the matrix Riccati equation. From (3.12),
T T
11 12
T T
21 22
-1 T
-A BR B
T T
C QC A
Sll S12
21 22
= J
(3.22)
Equating the (2,1) elements on each side of (3.22),
(-T21 A - T2£1 CTQC) Su + (T BR^B1 + ^ AT) 8^ = 0
12
or
■ -T21 ASn + T22 AT S21 + T21 BR^ S21+ T22 CTQC S^ = 0 (3.23)
Substituting T21 = - T22 S21 S^"1 into (3.23),
T22S21Sll'1+ T22ATS21 " T22S21Sll"lBR"lBTs21 + ^2°^° Sll=°
(3.21+)
Premultiplying by T22" and post multiplying by S _1 ,
S21Sll"lA + ^^l3!!"1 " ^l5!!"1^"1^^!3!!"1 + <?<* = ° .0.25)
which is to be proved.
13
k. COMPUTATIONAL METHODS AND NUMERICAL RESULTS
The major three steps for computing the solution of the matrix Riccati
equation are as follows:
1) Compute eigenvalues and eigenvectors of W,
2) Compute principal vectors of ¥ if W is defective,
3) Compute S S " from S.
For computing the eigensystem, we used two methods: (i) the QR
algorithm [9] with an inverse iteration routine [10], and (ii) Jacobi-like
method [ll] for finding the eigenvalues and eigenvectors. Their perfor-
mances are satisfactory and two numerical test examples are given in Test
Result 1 and Test Result 3. When the matrix W is nondiagonable, Test Result
2, the first method requires the evaluation of the principal vectors as
well [12]. This poses some numerical difficulties as we are essentially
trying to solve the ill-conditioned system of equation
(W - Al)k x = x., k > 1
where ^ is an approximation of true eigenvalues A. Thus, the Jacobi-like
method is more attractive in this case for providing an approximate eigen-
system that is suitable for engineering purposes.
Appendix I contains the listings of the ALGOL programs used on the B-6500
Appendix II contains the listings of two ILLIAC IV programs, namely, the
inverse iteration routine and a routine for solving a system of complex
linear equations, both written in GLYPNIR. ILLIAC IV programs for the QR
algorithm [13, 1^] and the Jacobi-like algorithms [15, l6] are already
available.
Test Result 1.
ik
A =
1
0
0
0
0
1
0
-1
0
0
0
0
-1
0
0
0
0
1
0
-1
0
0
0
0
-1
p =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
B =
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
Q =
0
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
10
0
0
0
0
0
0
c =
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
R =
1
0
0~
0
1
0
0
0
1
The numerical example was tested by the QR algorithm and the inverse
iteration method. The ten distinct eigenvalues of W are
± 1.
± 1.728760U77185 ± 1.577533767573i,
± 1.35319578U0U6 ± 1.1537U989928Ui.
We choose the five eigenvectors corresponding to the five eigenvalues
with positive real parts and computing K = S S from them gives the
solution K as
15
1.262782609
2.1+9^009759
-0.819173651
0.668267901
-O.UU3608958
2.1+9^009759
7.^ 3 5^51161+
-1.8257^1858
1.1229101+32
-0.668267901
-0.819173651
-1.82571+l858
1.63831+7303
1. 8257^1858
-0.819173651
0.668267901
1.1229101+32
1.8257^1858
7.1+ 35^51161+
-2.1+91+009759
-O.Ul+3608958
-0.668267901
-0.819173651
-2.1+91+009759
1.262782609
-1 T
All the eigenvalues of G = A - BR B K have negative real parts and hence
the above solution K is acceptable.
Test Result 2.
A =
-3 '2
-2 1
B =
C =
1 0
0 1
P=Q=
0 0
0 0
The mat
rix
—
3
-2
0
0
2
-1
0
1
¥ =
0
0
-3
-2
0
0
2
1
R =
CO
is defective, that is, W has four eigenvalues ±1 (double) and each +1 and
-1 correspond to a quadratic elementary divisor, respectively. This
example was tested both by Jacobi-like method and by a combination of the
QR algorithm and the inverse iteration method.
16
The Jacobi-like method gives K as
-10.0000081* 6.00000U3
6.000003^ -k. 0000027
and the QR and inverse iteration method give K as
-9. 9999917 5.99999^7
5.9999953 -3.9999983
The exact solution is
~Vlo 6
6 -k
For computing the principal vector by the QR and inverse iteration, we
chose the perturbation for the true eigenvalues as much as 10
Test Result 3.
A =
6
k
k
1
h
6
1
k
h
1
6
k
1
h
h
6
B =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
C=R=
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
P=Q=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
The exact eigenvalues of W are
±15, ±5, ±5, ±1
Since the matrix W is derogatory, +5 and -5 correspond to a two-dimensional
subspace, respectively. The computed eigenvalues by Jacobi-like method are
IT
lU. 99999999930
k. 9999999991+9
-U. 99999999982
0.99999999997
-1^.9999999984
4. 99999999981
_1+. 999999999^8.
-0.99999999995
The computed solution K is given by
-1.999999999811 1.9999999999^2 1.999999999913
1.999999999884 -2.000000000015 -2.000000000000
2.0000000002T6 -2.000000000^07 -2.000000000378
-2.00000000036U 2.000000000509 2.000000000I180
-2.000000000015
2.000000000087
2.000000000^80
-2.000000000568
in -which the absolute error is less than 10
-9
18
LIST OF REFERENCES
[I] M. Athans and P. L. Falb, Optimal Control, McGraw Hill, New York,
1966
[2] R. E. Kalman, Contributions to the Theory of Optimal Control,
Boll. Soci. Mat. Mexicana, 5 (i960), pp. 102-119
[3] R. S. Bucy and P. D. Joseph, Filtering for Stochastic Processes
with Applications to Guidance, Interscience, New York, 1968
[h] A. G. J. MacFarlane, An Eigenvector Solution of the Optimal Linear
Regulator Problem, J. Electronics and Control, 1^4- (1963), pp.
61*3-6^5
[5] J. J. O'donnell, Asymptotic Solution of the Matrix Riccati Equation
of Optimal Control, Proc . Fourth Annual Allerton Conf . , 1966,
pp. 577-586
[6] J. E. Potter, Matrix Quadratic Solutions, J. SIAMAppl. Math., ll+
(1966), pp. U96-5OI
[7] K. Martensson, On the Matrix Riccati Equation, Inf. Sci., 3 (l97l),
pp. 17-^9
[8] D. L. Slotnick, et al, The ILLIAC IV Computer, IEEE Trans, on
Computer. C-17 (1968), pp. 7^6-757
[9] R. S. Martin, G. Peters, and J. H. Wilkinson, The QR Algorithm for
Real Hessenberg Matrices, Num. Math., lk (1970), pp. 219-231
[10] J. M. Varah, The Calculation of the Eigenvectors of a General Complex
Matrix by Inverse Iteration, Math. Comp. , 22 (1968), pp. 785-791
[II] P. J. Eberlein and J. Boothroyd, Solution to the Eigenproblem by a
Norm Reducing Jacobi Type Method, Num. Math., 11 (1968), pp. 1-12
[12] H. J. Bowdler, R. S. Martin, G. Peters, and J. H. Wilkinson,
Solution of Real and Complex Systems of Linear Equations, Num. Math.,
8 (1966), pp. 217-234
[13] M. Ogura, A Parallel Scheme for Reducing a Real Matrix to the Upper
Hessenberg Form, Center for Advanced Computation Document No. 11,
University of Illinois, 1971
[ill] M. Ogura, The QR-Algorithm, Center for Advanced Computation Document
No. 12, Univ. of 111., 1971
19
[15] W. Bernhard, ILLIAC IV Codes for Jacobi and Jacobi-like Algorithms,
Center for Advanced Computation Document No. 19, Univ. of 111., 1971
[l6] A. H. Sameh, On Jacobi and Jacobi-Like Algorithms for a Parallel
Computer, Math. Comp. , vol. 25 (l9Tl), pp. 579-590
20
APPENDIX I
ALGOL PROGRAMS
21
I TWO ALGflL PROCEDURES' RlCCATU AND RICCATI2. FOR COMMUTING THE OOOOOlOO?
I! SOLUTION OF THE MATRIX RICCATI EOUATION ARE LISTEO BtLOWt FOR 00000200?
% "RICCATlU. THE PROCEDURE "EIGENw (BY EflERLEIN AND bUOTHKoyD) WAS 00000300?
% USEU WHILE A COMBINATION OF "HQR" (BY MaRTINi ET AL) AND 00000400?
I "INVITErATION" WAS APPLIED TO «RICCATI2% LINEAR EqUATIUn SOLVER OOOOO5OO?
% (BY BOWDLER* ET AL ) WAS ALSO USED TO PROVIDE THE INytRSE OF A MATRIX 00000600?
% ANO TO CALCULATE THE PRINCIPAL VECTORS fROM ( ( W-LAMflUA*! )**K>*X«0. 00000700?
00000800?
00000900?
PROCEDURE RlCCATIl(N.L»M»A»B#C»P»Q»R«TMX»W»K)l 00001000?
VALUE N»L#M,TMXI 00001100?
INTEGLR N,L.M.TMX| 00001200?
ARRAY A.e(C.P»Q»R»W.K£i»n| 00001300?
COMMENT SOLVES THE MATRIX RlccATI EQUATION . OOOOUOO?
KA*(AT)K-KR(RINV)(BT)K*(CT)QC«o, 00001500?
A Is N*N» R IS N*L» C IS M*N. P AND 0 ARE M*M. R IS L*L OOOOUOO?
MATRICES* RESPECTIVELY* FORM 2N*2n MATRIx W ANU COMpUTE 00001700?
EIGENVALUES ANU EIGENVECTORS OF W* WHERE FOUR N*N BLOCKS 00001800?
Op w ARE C 1 • 1 >«-A» Cl»2)«8(RlNV>(BT)» ( 2» 1 )■( C ' >QC» AND 00001900?
(2»2)"(AT). REARRANGE EI GEN VEcTOH ( Pr INC I PAL VEcT0R> MATRIX 00002000?
SO THAT THE pIHST N COLUMNS CORRESPOND TO TO THE EIGENVALUES 00002100?
WlTH P0SITIVE REAL rArTS. dENoTINq ThE UPP^R HaLf uF N COLUMN 00002200?
VECTORS BY SMTXl AND THE LOWER HALF BY SMTX2* I HE SOLUTION 00002300?
K IS THEN GlvEN BY «■( SMTx2) ( SMTxl INv ) . THE PRUCEOUrE 00002400?
"FI6EN" IS USED For EIGENPrOBlEM qF Wi 00002500?
00002600?
REGIN COMMENT FIRST OECLARE PROCEOuRESl 00002700?
00002800?
PROCEUURE SETUP(NtL»M.A»B»C»Q»RlNV.W)| 00002900?
VALUE N.L.M, INTEGER N.L»M) 00003000?
REAL ARRAY A»B»C»Q.RINV»W[l#l]j 00003100?
COMMENT THE PROCEDURE SETS UH ThE 2N*2N mATRIX W, rInV Is INVERSE OF RI00003200?
«EGIN 00003300?
REAL ARRAY RINVBTC1 lL»l IN].QCC1 IM»1 IN] » 00003400?
REAL SUMj 00003500?
INTtGER I.J.KJ 00003600?
FOR Ij"l STEP 1 UNTIL N DO 00003700?
FOR J l ■! STEP 1 UNTIL N DO 00003800?
BtGIN 00003QOO?
W[I,J]I«-A[ I. J]} 00004000?
W[N*I,N*J]IbA( J.I1I 00004100?
ENO) 00004200?
FOR 1 1 » 1 STEP 1 UNTIL L 00 00004300?
FOR J»«l STEP 1 UNTIL N DO 00004400?
BEGIN StJMl.O.Ol 00004500?
FOR K,«l STEP 1 UNTIL L DO 00004600?
S|jM|«SUM*RINVCl»K]*BC J#KJ1 00004700?
RINvBTC I.J]l«SUM» 00004800?
ENOi 00004900?
FOR I|M STEP 1 UNTIL N 00 00005000?
FOR Jl»l sTEp 1 UNTIL N 00 00005100?
BtttIN SuHlaO.Ol 00005200?
FOR Ki«l STEP 1 UNTIL L DO 00005300?
SuH«"SUH*B[IsK]*RINVBTtK#J]| 00005400?
Wt I,N*J]l«SUMl 00005500?
END| 00005600?
FOR I|»l STEP I UNTIL M DO 00005700?
22
FOR Jl«l STEP 1 UNTIL N DO
BEGIN SuMl.O.Oi
for K|«i step i until m do
SuMl"SUH*OtItK]*CCK.JJI
QCC I # J) I -SUM l
ENO|
TOR I|«l STEP 1 UNTIL N DO
FOR J|«l STEP 1 UNTIL N DO
BtG]N SuNlsO.Ol
FOR K|»l STEP 1 UNTIL N DO
StjMI»SUM*CtK. i J*«C t K. J3 1
W[N*I.J]|"SUMI
ENDI
ENO OF SETUP|
COMMENT INSERT THE PROCEDURES INNPRODtDECOMPOSE. AND ACCSOLyEi
PROCEUURE lNVERSE(N»AtX)l
VALUE N| INTEGER Nj
DOUBLE ARRAY A»XC 1 • 1 1 I
COMMENT THE PROCEDURE COMPUTES THE INVERSE OF AN N*N rUl
UNSyMMcTRIc MATRIX A. USINq ThE PROCEOURgS "DECQMpUsE* AND
"ABSOLVE". WRITING ON X|
BEGIN
INTtGER I.J.IT.D2I
REAL Oil
ARRAY AA'BB.BU I N* 1 iNJ.P[llNll
FUR I • * 1 STEP 1 UNTIL N DO
1 UNTIL N Oo
BCl»J]l«ltO ELSE B(I»J]l«O.OI
1 UNTIL N DO
1 UNTIL N DO
FuR Jl«l
IF J«I
FUR I,«l
FUR J t -1
STEP
THEN
STEP
STEP
AACT.Jlt-ACI.J1l
DtCOMpOSE(N»AA.Dl.02»P)l
AtCSULVE(N.N.A,AA.P»B.X»BB»IT)|
ENO INVERsEl
COMMENT iNjSfRT THE PRnCEDURE EIGENi
PROCEUURE MuLT(Nl.N2iNJ»A.B»C)l
VALUE N1»n2.N3I INTEgEH N1*N2»n3>
DOUBLt ARRAY A.B.Ctl»lJI
REGIN
INTtGER I.J.KI
REAL SUMI
FOR I l » 1 STEP i
FOR J t • 1 STEP 1
BEGIN SUM|«0.0|
FUR K,"t STEP
SUMI»SUM*ACI»K]*BCK,J]|
CI I .J] l«SUMI
ENO»
FNO MULTl
ARRAY HiNv»SMTXl,SMTX2lllN.llN].WW.TEMP,VECT[llN*N»llN*NJ|
INTLGEH ArRAy search(1»nii
INTtGER N?» I. J- INDEX'
UNTIL
UNTIL
Nt
N3
DO
OO
1 UNTIL N2 OO
00005800?
00005900?
00006000?
00006100?
0000*200?
00006300?
OOOO64OO?
00006500?
00006600?
00006700?
00006800?
00006900?
00007000?
00007100?
00007200?
00007300?
00007400?
00007500?
00007600?
00007700?
00007800?
00007900?
00008000?
00008100?
00008200?
00008300?
00008400?
00008500?
00008600?
00008700?
00008800?
00008900?
00009000?
00009100?
00009200?
00009300?
00009400?
00009500?
00009600?
00009700?
00009800?
00009900?
00010000?
00010100?
00010200?
00010300?
00010400?
00010500?
00010600?
00010700?
00010800?
00010900?
00011000?
oooiuoo?
00011200?
00011300?
00011400?
23
N2I«N+N| 00011500?
INVtRSE(L.R»RlNV)l 0001U00?
SETUP <N,L#M»A»B»C»Q»RINV»W)J 00011700?
TOR It*l STEP 1 UNTIL N2 DO 00011800?
FOR Jl "1 STEP 1 UNTIL N2 DO 00011900?
TEMPI I. JJ t«M[ I.J] I 00012000?
EIQtN(N2»TMX,TEMP,VECT)l 00012100?
COMMENT SEARCH N COLUMNS OF VECT CORRESPONDING TO N EIGENVALUES 00012200?
WITH POSITIVE REAL PARTS. SMTXl AND SMTX2 ARi IT* UPPER 00012300?
AND LOWER HALVES* RESPECTI VELY| 00012400?
INDLX|.0l 00012500?
FOR I » » 1 sTEp 1 UNTIL N2 DO 00012*00?
I* TEMP[I»I1 GTR 0 THEN 00012700?
BLGIN 00012800?
INDEX|«INDEX*1 , 00012900?
SEArChI INDEX] tail 00013000?
ENO| 00013100?
FOR J|»1 STEP 1 UNTIL N DO 00013200?
FOR I, al STEP 1 UNTIL N DO 00013300?
BEGIN 00013400?
SMTxltliJ) |«VECTC I » SEARCH! J]]j 00013500?
SMTX2tI.J]l«VEcTtN*I»SEARcHCJ}]l 00013600?
ENDI 00013^00?
INVLRSE(N, SMTXl. TEMP)I 00013800?
MULHN»N»N»SMTX2.TEMP»K)| 00013900?
END RiCCATH» 00014000?
00014100?
00014200?
PR0CEUURE RICCatI2(n.L»M»a»B»C»P»0»R»W»K»0EFECt»DER0(»AIE)I 00014 300?
VALUE N.L.Mf 00014400?
INTEGtR N.L.Ml 00014500?
ARRAY A»3.C.PfQ»R*H*Ktl'l)l 00014600?
INTEGtH ARRAY DEFECT, DEKUGATEt 1 J J 00014700?
COMMENT SnLvES THE MATRIX RICCATI EQUATION 00014800?
KA*(AT)K-KB(HINV)(BT)K*(CT)QC«0. 00014900?
A Is N*N. b IS N*L» C IS M*N. P AND Q ARE M*M, R IS L*L 00015000?
matrices* respectively. form 2n*2n matrix w and compute 00015100?
eigenvalues anu eigenvectors of w, where four n*n blocks 00015200?
OF W ARE (l.l)«-A. (1.2)«B(RINV)(BT)* (2*1)«(CU0C AND 00015300?
(2»2)«(AT). REARRANGE El GEnVEcTOR( PRlNC I PAL VECTOR* MATRIX 00015400?
SO THAT THE FIRST N COLUMNS CORRESPOND TO TO THE EIGENVALUES 00015500?
WITH POSITIVE HEAL PARTS. DENOTING THE UPPER H*LF Up N COLUMN 00015600?
VECTORS BY SMTXl AND THE LOWER HALF BY SMTX2, THE SOLUTION 00015700?
K IS THEN GIVEN BY K«( SMTX2) < SMTXl INV ) . THE PROCEDURES 00015800?
"hShLD"* "hOR** AnD "INVITEKATION" ARE USEq FOK EH»ENPRORlEM 00015900?
OF Wl 00016000?
00016100?
REGIN COMMENT FIRST DECLARE PROCEDURES! 00016200?
00016300?
PROCEUURE SETUP(N»L*MtA*B,C»Q*RINV*W)| OOOI64OO?
VALUE N.L.Mf INTEGER N.LtM* 00016500?
REAL ARRAY A » B . C » Q . RIN V • W [ 1 i'l ) I 00016600?
COMMENT THE PROCEDURE SETS UP ThE 2N*2N MATRIX W. RINV IS INVERSE Of R! 00016700?
QEGIN 00016800?
REAL ARRAY R I NVBT[ 1 I L« 1 I N J . QC [ 1 I M» 1 1 N ] I 00016900?
REAL SUM1 00017000?
INTLGER I.J.KI 00017100?
2k
FOR I t -1 STEP 1 UNTIL N DO
TOR J|»1 STEP 1 UNTIL N DO
BtGIN
M[I.J]I«-ACI»J]|
WtN+I.N*J]l«ACJ#ni
ENDI
Fo« i»«i step i until l Do
FOR Jial STEP 1 UNTIL N DO
BtGIN SuM|aO»0|
FOR K|«l STEp 1 UNTIL L DO
SuM|«SUM*RJNVt I»KJ*B[ J»K] J
RINvBTtI»J]l«SUMI
END|
FOR I|»l STEP 1 UNTIL N 00
FOR J t"l STEp 1 UNTIL N DO
BtGIN SuMl-0,01
FOH Kt«l STEP 1 UNTIL L 00
SuM,«SUM*BU.K)*RlNVBT[K.JJ|
W[I.N*JJ|«SUmI
ENO|
FOR Iial STEP l UNTIL M 00
FOR J|"l STEP 1 UNTIL N DO
BLqIN SUMI.O,0|
FOR Kf.l STEP 1 UNTIL M DO
SUM|.SUM*Q[ I.K]*C[K»Jj I
«CC If j] I»SUMJ
ENDl
FOR Il»l STEP 1 UNTIL N DO
FOR J t "1 STEP 1 UNTIL N DO
BtGIN SUMl«O.0l
FOR K|b1 STEP I UNTIL M DO
SuM|«SUM*C(K.n*UC[K»Jj;
W[N*I,j) l«SUMI
END>
end of setupi
comment Insert the procedures innprod. decompose* and accsolvei
proceuure inverse(n»a#x)|
VALUE N| INtEgEH N|
nOUBLt ARRAY A.XU.lJI
COMMENT ThE PROCEOURE COMPUTES THE INVERSE OF AN N*N RtAL
unsymmetric hatrix a. using The procedures "DECQmpu$e"
waCcsolvE". writing on XI
BEGIN
INTtGER I.J.IT.D2I
REAL nl |
ARRAY AA'BB.BUtN.l fNJ»Ptl tNJ|
FUR I i - 1 STEP 1 UNTIL N DO
DO
B[I»J]nO«OI
AND
FuR J I -l
IF J-I
FUR I,-!
FUR J i ■ 1
END
step
then
step
STEP
AAt !ij]|iA[I,jii
ntCnMp0sE(N.AA,0l.02#P)|
ACCSULVE(N#N.A.AA.P»B#X»BB»IT)|
i until n
fl[I. J] i-l .0 ELSE
1 UNTIL N DO
1 UNTIL N
00
00017200?
00017300?
00017400?
00017500?
00017600?
00017700?
00017*00?
00017900?
00018000?
00018100?
00018200?
00018300?
00018400?
00018500?
00018600?
00018700?
00018800?
00018900?
00019000?
000i9i00?
00019200?
00019300?
00019400?
00019«00?
00019600?
00019700?
00019800?
00019900?
00020000?
00020100?
00020200?
00020300?
00020400?
00020500?
00020600?
00020700?
00020800?
00020900?
00021000?
00021100?
00021200?
00021300?
00021400?
00021500?
00021600?
00021700?
00021800?
00021900?
00022000?
00022100?
00022200?
00022300?
00022400?
00022500?
00022600?
00022700?
00022800?
25
00022900?
Comment InseRt the procedures hshld and hori ooo23ooo?
00023100?
PROCEDURE MuLT(Nl»N2*Ni'A»B«C)l 00023200?
VALUE N1»N2*N3| INTEGER N1.N2.N3j 00023300?
DOUBLE ARRAy A.B.CU.Ul 00023400?
REGIN 00023500?
!NTtOER I»J»K» 00023600?
REAL SUMS 00023700?
FOR Il«l STEP 1 UNTIL Nl DO 00023800?
FOR Jl«l STEp 1 UNTIL N3 00 00023900?
BEGIN SUM|«0,0I 00024000?
FUR K|«l STEP 1 UNTIL N2 DO 00024100?
SUM i * SUM* A [ I»K]*B[K«J)| 00024200?
CI I • Jl l.SUMI 00024300?
ENOI 00024400?
END MULTl 00024500?
00024600?
PROCEUURE lNVlTERATION<N»w»X»KK»P>| 00024700?
VALUE N, TNTEGER N.KKj 00024800?
DOUBLE ARRAy W.Xtl.lli 00024900?
ARRAy P[l]l 00025000?
CnMMENT SnLVES WX.O BY INVERSE ITERATION* WHERE W IS AN N*N REAL 00025100?
MXTRlX. WRITING SOLUTION ON X. THUS. THE PROCEDURE COMPUTES 00025200?
ThE EIqENvECTOKS CORRESPONDING TO THE GIVEN EIGENVALUES. 00025300?
N Is THE ORDER OF M AND KK IS THE NUMBER OF iTtRATiONS 00025400?
NEEqEO FOR ITERATING EACH EIGENVECTOR! 00025500?
BEGIN 00025600?
INTfcGER I.J»D2»R.L»MAXIN0EX| 00025700?
DOUBLE DUNAXVALi 00025800?
DOUBLE ARRAY MN( 1 1 N. i | NJ »B.B8[ i | N» 1 | U | 00025900?
LABEL INVIT.OUTI 00026000?
FOR Il"l STEP 1 UNTIL N DO 00026100?
FOR Jl ■ l STEP 1 UNTIL N DO 00026200?
ww [ I » J ] t»ri t I » J 3 1 00026300?
DECUMpOsE(N»WW»Dl»02»P)l 00026400?
FOR Il«l STEP 1 UNTIL N DO 00026500?
BII,1]»81,0» 00026600?
KK I "1 1 R| ■ I j 00026700?
INVITI 00026800?
ACCSOLVe(N»R»W»WW»P»B»X.BB*L)I 00026900?
MAXVALUOj 00027000?
FOR Ii"l STEP 1 UNTIL N DO 00027100?
If ABs(X(I*l]> GTR MAXVAL THEN 00027200?
BEGIN 00027300?
MAXvALl«ABS(Xr I#i])l 00027400?
MaXiNDEXI«P 00027500?
ENDi 00027600?
MAXvA|_l«X[MAXlNDEX»ni 00027700?
FOR I|«l STEP 1 UNTIL N DO 00027800?
XlI»l]l«X[Iil]/MAXVALI 00027900?
FOR III} STEP 1 UNTIL N 00 00028Q00?
I* ABS(BCI»1]-Xtl»l]) GTR P"12 THEN 00028100?
BLGIN 00028200?
IF KK GTR 10 THEN GO TO OUTj 00028300?
FOR J|-l STEP 1 UNTIL N DU 00028400?
BtJ,l]l"X[j.i ]l 00028500?
26
KK»»KK+U
GO TO INVITI
END)
nuTi
ENO INVREsElTi
INTtGER I.J»JJ»CNT.N2»INDEX#ITC0UNT|
ARRAY TEMpfORGNtSHTX*veCTORtt|N«N«l|N4N]*RlNViSHTXUSHTX2tl|N«l|N]»
EIGR»EIGI»!NTCH(1IN4N)I
REAL PERTURB. MPUiERl
INTtGER ARRAY SEARCHllIN)!
N2l"N*N|
INVk.RSE(L.R.RlNV)l
SETUP(N,L,M,A»B,C.Q.HINV.H)|
TOR I|«l STEP 1 UNTIL N2 00
FOR J|"l STEP 1 UNTIL N2 00
HSHLO(i,N,,TEMP)|
HQR(N2»TEMP.I
N2
N2
DO
00
N2 00
H
EIQR.EIGI* CNT)|
FOR I | »1 STEP 1 UNTIL N2 00
FOR J I - 1 sTEp 1 UNTIL N2 00
ONGHCli J]l«NCItJ]l
COMMENT COMPUTE EIGENVECTORS OR PRINCIPAL VECTORSi
FOR Jjl-1 STEP 1 UNTIL N2 00
BEGIN
FUR I t»l STEP l UNTIL
FUR Ji-i STEP 1 UNTIL
*[I»J] ««ORGW[I,J]l
FUR I » - 1 STEP 1 UNTIL
•»tIiI]l"WU.i]-ElGR[ JJ]*PERTURB|
JJ«DEFECT[JJ] then
BEGIN
FOR Ii-1 STEP 1 UNTIL N2 00
W[I.I J»«Wti,IJ*pERTURB*MpLIERl
MuLTCN2.N2»N2»W»W,TEMP)l
Ff)R Ital STEP 1 UNTIL N2 00
FOR Jlal STEP 1 UNTIL N2 DO
*t I«J]i«TEMP[ I#J)I
END |
IF JJaOfROGATEUJ] THEN
FOH Ii-l STEP 1 UNTIL N2 00
Mf I • 1 1 |»WC 1. 1 1 ♦PERTURB* J Jl
INVITFRATI0N(N2#W.VECT0R»ITC0UNT»INTCH)»
FUH I t a.j STEP i UNTIL N2 DO
FUR Jiaj.2 DO
SMTx(l»JJ]|avEcTORtI#l Ji
END JJ>
COMMENT SEARCH N COLUMNS OF SMTx CORReSpONOiNG TO
WITH POSITIVE REAL PARTS, SMTxl AND SMTx2
AND LOWER HALVES* RESPECTI VELYl
INDtXiaQi
FOR ll«l STEP 1 UNTIL N2 00
l> ElGRfl] GTR 0 THEN
BLGIN
iNOFXtalNUEX^l |
SEArcmC INDEX] I.I >
ENDl
N tlGENVALUES
ARt ITS UPPER
00028600?
00028700?
00028800?
00028900?
00029000?
00029100?
00029200?
00029300?
00029400?
00029500?
000296O0?
00029700?
00029800?
00029900?
00030000?
00030100?
00030200?
OOO3O1OO?
00030400?
00030500?
00030600?
00030/00?
00030800?
00030900?
00031000?
OOO3UOO?
00031200?
00031300?
00031400?
00031500?
00031600?
00031700?
00031800?
00031900?
00032000?
00032100?
00032200?
00032300?
00032400?
00032500?
00032.00?
00032700?
00032800?
00032900?
00033000?
00033100?
00033200?
00033300?
00033400?
00033500?
00033600?
00033700?
00033^00?
00033900?
00034000?
00034100?
00034200?
27
FOR Jl«i STEP 1 UNTIL N DQ 00034300?
FOR Ii"l STEP 1 UNTIL N DO 00034400?
BEGIN 00034500?
SMTXltI.J]l«SMTX[I»SEARCH[Jlll 00034600?
SMTX2(I,J)I«SMTX(N+I'SEARCH(J])J 00034700?
CNDI 00034800?
INVtRSE(N,SMTXl»TEMP)l 00034900?
MULT(N»N»N»SMTX2.TEMP»K)| 00035000?
END RlCCATl2' 00035100?
28
APPENDIX II
ILLIAC IV PROGRAMS
29
* TWO ILLIAC IV GLYPNIR PROGRAMS. "ClINSYs" AND "INVITE-RATION" ARE
f LISTED BELOW, "CLlNSTS" IS USED TO OBTAIN THE INVERS* OF A MATRIX
% AND ThE SOLUTION Or A COMPLEX SYSTEM OF UNSYMMETRIC LINEAR EQUATIONS.
% MNVITERATION" IS USED TO CALCULATE THE PRINCIPAL VECTORS OF DEGREE
* K FKOM ((WLAMBDAM)**K)*XnO.
SUBROUTINE cLINSyS(CINT N.ClNT R#PCPOINT A'PCPOINT x»PCPOINt B)J
BEGIN x THE SUBROUTINE SOLVES A COMPLEX SySTEM OF UNSyMMETKlC LINEAR
x Equations ax»r. a is n*2n and b is n*2R matrices* respectively.
* ThEir qEnErAi EiEMENTS ArE At I »2J-H*I* At I »2J] AND BCp2j-ll*
* I*B[I,2J], RESPECTIVELY, R IS THE NUMBER OF RIGHT-HAND SIDES,
SUBROUTINE INNpROOf CREAL CWCREAl C2»PREAL AK»PREAL BK»C«EAL Dl#
CREAL D2)»
begin * accumulatEs the sum of products and aods it 10 the initial
% value (c1.c2j.
CHEAL Sl2|
S12,»CUC2|
Si2l»Sl2*ROwSUM(AK*BK)i
01 I .Si 2 t
D2I.S12-D1I
END)
SUBKgUTTNE CDEC0MP0SE(CiNT N»PCPnlNT A'CREAL DErR'CRtAL i>etI»
CI
BEGAN % ThE COMPLEX UNSy
where l is lower
MATRICES. AND Gv
AND ITS GENERAL
KEEpS THE RECOSO
A, THE OETERMIMA
C1NT I» j.K.L.P.PPj
PREAL VICTOR ATI6AJI
PKEAL Z7I
CKEAL X.Y.Z.V.W.H.HHI
LABEL FAlLl
MUDEI«TRUEl
MUDE»«TRUE AND pen lss
LUUP II»1.1»N DO
lNNpRoD(0»O.AtI]»AtI
DLTRI.ii DETII.Oj DETE
LUOP Kl-l.l.N 00
BLGIN
Lf«Kl Pl«K*K| PPI«P-
LOOP II«K»1.N DO
BEGIN
MoDEI«TRUEl
MoDE»«TRUE AND PEN
Innprodc-graboneca
InnpRod(-h,-hh.rtl
Innprodcgraroneu
lNNpROD(H.HH»ACIl.
Y|«-HJ
modei«true»
m0de1.true and pen
mode»«truej
NT DETE»CNP0INT INT) I
MMETRIC MATRIX A IS DECOMPOStD INJO LU.
triangular and u is unit upper triangular
erwritten on a, a is stored in N*2N array
ELEMENTS ARE At I*2j«l 1«I*A( I *2 J] t INTIM
Of ANy INTERCHANGES mAdE To THE ROWS Op
NT (0ETR*I#0ETI)*2**DETE IS ALSO COMPUTFD,
N + NJ
]ilNT(I].H)l
1*0 1
1) Zl»OJ
LSS N*N|
tI].PP"i)*0*A[I]»ATtPP].H*HH^
(l»*A(l]).ATtP].X,HH)|
tIJ.P-t),O.RTL(l»»ACI]).ATtPPj.H»HH)l
AT(Pl.H»HH)l
EQL PP"ll AC 1 3 f «X|
00000100?
00000200?
00000300?
OOOOOaOO?
00000500?
00000600?
00000700?
OOOOOBOO?
00000900?
00001000?
00001100?
00001200?
00001300?
oooouoo?
00001500?
oooouoo?
00001700?
00001800?
00001900?
00002000?
00002100?
00002200?
00002300?
00002400?
00002500?
00002600?
00002700?
00002800?
00002900?
0000300^?
OC003100?
00003200?
00003300?
00003400?
00003500?
00003f00?
00003700?
00003800?
00003900?
0000*000?
00004100?
00004200?
00004300?
00004400?
00004500?
00004600?
00004700?
00004S00?
00004900?
00005000?
00005100?
00005200?
00005300?
00005400?
00005500?
00005600?
00005700?
30
00006800?
00006900?
0000?OOP?
So°oDI!:TTRRUULAN° PEN E°L P'U AI»-TI 00005800,
HODE„TRUE AND PEN.II SSSSfSSSJ
l' * GTR Z ™EN 00006200?
ENB0riN Z,"X' L"" ENDl oZZlll
lFDL,SKUK,T!SSCUTm AN° ^ LSS "*"* OOOoJjSSJ
BEGIN DETHI-OFTRI XXSXJJaXI
22 j »ACK3 1
AfKll-Afi 1»
iNTtLi'^TNTrKii
E *WT|Uj lalNiCKjl 00007200?
lNTfKli«il 00007300?
x.-JrJboUcackj.pp-u, SSJSfJSS?
li:«™*«t*un» Z°o7rl°o°ol
OETj,;JjDETI*V*OETRl SSSS^SSS?
IF ABS(DETR) GTR ABS(OETI) SSSSl?So?
Then whdetr else hi-detii §§§§si§S?
JErG?N"L°ARTEHLNL?EGlN DETE'"01 G° T° FAIU EN°' 0S0O83OO?
Lli IF ABSCW, GEO 1 THEN 22SS2S222-
BEGIN W!.W*0.0625, 000860
°lVATrTi:°a\06'5t SSSS55SSJ
DETE.-DETEMI 00008800?
EN0| G° T° L1» 00008900?
EN0 00009000?
BEGIN LABEL L2i 00009100?
L2, IF IbjCO LSS 0.0625 THEN SSSSSSSS5
BEGIN S^ETR-H, = °0'
DETKI-0ETR*l6l 00009500?
0ETII.0ET1M6I 00009*00?
GO TO l\] 00009700?
end,
MnOEl.TRUE ANO PEN LSS K*K-2| 00010*00*
lNNPROO(-GRABONE(AtK).PP-n.O.AtKl.ATtPP],H»HH)l 00010600?
INNP«nO(-H.-HH.RTL<J..A[K]).AT[Pl,V.MH)l 00010700?
|NlJpR0D(-6RAHnNE(ACK].P-n,0.RTL(l,.A|RPl).AT[PPl,H.MH)l OOOIOSOO?
INNPR00(H.HHPA[K3.AT[P3.H.HH)| OOOloSooJ
SaScVimucf SSSInSS?
MROEI-TRUE ANO PEN-PP-U OOOllJooJ
Mnon'THun oooiuoo?
0000980O?
00009900?
31
modemtrue ANO »EN«P-1I 00011500?
AfK]|»<W*X-V*Y>/Zl 00011600?
END| 00011700?
ENO| 00011800?
FAIL! 00011900?
ENOl «0r CDECOMPOSE. 00012000?
00012100?
SUBHOUTINE CACCS0LVE(CINT N.CINT R»PCP0INT A.PCPOINT AA.CNPOINT P» 00012200?
PCPOINT B.PCPOINT X.PCPOINT BB.CiNT I) | 00012300?
BEqIN * SOLVES AX«B. WhERE A IS AN N*2N cOHPlEX UNSY"NETKIC ANq 00012400?
» b is an n*?r complex matrices* respectively. aa 1$ lu 00012500?
* decomposition proouceo by "cdecompose". the hesiuuals 00012600?
% bb«b-ax are also calculated and ad*88 is solved. over- 00012700?
* Writing d on bb. l is the number of iterations. 00012800?
00012900?
SUBROUTINE CS0LVE(CINT N.CINT R.PCPOINT A.CNPOINT iNT. 00013000?
PCPOINT B)| 00013100?
BtGIN 00013200?
CINT I,J,K,KK,P,PPl OOOI33OO?
PREAL VECTOR BT[6«]I 00013400?
CREaL X.Y»Z.21.Z2»H.HH» 00013500?
PREAL VECTOR Ct6«l| 00013600?
BOOLEAN AMOOEI 00013700?
LouP I««1»1.N On 00013800?
IF INTCII NEQ I THEN 00013900?
LOOP Jt«R*R."l»l 00 00014000?
begin oooiaioo?
Xi«QRABONE(B£IJ»J-l)l 000U200?
MODEI-TRUE AND PEN"J-ll 00014300?
B[Ilt»GRABONE<BClNT[U].J-l)l 0001 4400?
Bt INTC 111 l"XI 00014500?
EnOI 00014600?
LOOP K»«R*R»-2.2 DO 00014700?
BEGIN 00014800?
KkIbK-11 00014900?
LOOP Il'l.l.N 00 00015000?
BEGIN 00015100?
MODEl'TRUE ANO PEN LSS 1*1-2 J 00015200?
lNNPROO(-GRABONE(B(I]*KK-l).0»AtI]»BT(KK)»H.HH)| 00015300?
lNNPR0DCH,-HH.RTL(l..AHl).BTtK].X.HH)l 00015400?
INNPR0D(-GRAB0NECBII1»K-1)»0#RTL(1»»A[I]).BTIKK]»H»HH)J 00015500?
INNPR00(H.HH»A[I J.BTtKl.H.HH)) 00015600?
Y|«-HI 00015700?
P|«I«II PP|«P-i| 00015800?
Zi!»GRABONE( ACIJ.PP-DI 00015900?
Z2»»GRABoNF(AU J.p-1 >1 00016000?
ZiaZl*Zl«Z?*42l 00016100?
MoOEl«TRUE AND PEN.KKJ 00016200?
Btl Jl.(X#Zl*Y*Z2)/Zl 00016300?
M00EI"TRUE AND PENnKI 00016400?
Bf I]lB(V*Zl-X*Z2)/Zf 00016500?
END; 00016600?
LOOp Ii«N.-l,l DO 00016700?
BEGIN 00016800?
AMODE«« TRUE AND PEN GEO NJ 00016900?
M0DE«"AM0DEJ 00017000?
lNNpRGD<-GRABoNE<Btl)»KK-l).0»Atn»BT[KK]»H,HH)i 000171 00?
32
lNNPROD(-H,-HH.RTL(l»»A(l])»BTtK)»H,HH)l 00017200?
MoOEl»TRUE ANO PEN»KK-il C C I } I «HI 00017300?
MoOEl«AMOO£| 00017*00?
lNNpR00(*6RAB0NE(BCn»K"l)»0«RTi.(l**ACI])*BTUK]»H«HH)l 00017500?
INNPROO(H,HH»ACI]»BT[KJ,H.HH)I 000l7ft00?
MOOEl«TRuE AND PEN«K"ll C[I]H-HI 00017700?
M0DE|«TRUE AND <PEN«KK-1 OR PEN»K-1)I B[I)|nC[I]l 00017800?
ENOl 00017900?
EnDj 00018000?
ENDi % OF CSOLVE, 00018100?
00018200?
C1NT I»J»K#D2.C»CC» 00018300?
CKEAL E*00*01iXHAX'BBHAX*EPS*El*E2»H»HH| OOOUaOO?
PHEAL VECTOR XTC64 J j 00018500?
BUOtEAN AMODEl 00018600?
LaB£L L3»lLLl 00018700?
EKS|sl(0P«10l 00018800?
AMODE|«pEN GEO N| 00018900?
MUOEUAmOOEI 00019000?
CUO* I»»1»1«N Dq 00019100?
BtLGlN XtI]l>O.OI 00019200?
BB< I 1 l"BC Hi 00019300?
ENDj 00019400?
L»«0» Doinfll 00019500?
MUDEI-TRUEl 00019600?
L3I CJ»OLVE(N#R.AAiP.BB)l 00019700?
L««L*1» D2t«0l D1I»0I 00019800?
MoDEUAMODE» 00019900?
LUQP H«1#1»N 00 00020000?
XtllUXtU + BBCllI 00020100?
LUOP jl.l.l.R 00 00020200?
BLGiN 00020300?
XMAXI.Ol BBMAXl«0l 00020400?
C»«J*J» CCl-C-ll 00020500?
LOOp Il«l#l.N 00 00020600?
BEGIN 00020700?
El I.GRAB0NE(X[IJ#CC-1)I E2 | ■GRABONEC X 1 1 ] # C-l ) I 00020800?
Ei"El*El*E2*E2l 00020900?
Ip E GTR XMAX THEN XMAX|»E| 00021000?
El «»GRftB0N£(BBtl J»CC)I t2 I "GR aBONE ( BB 1 1 ) » C ) 1 00021100?
Ei«El*El*E2*E2* 00021200?
IF E GTR BBMAX THEN BBHAXlaEI 00021300?
0002U00?
00021500?
00021600?
00021700?
MnOEl.TRUEi 00021800?
lNNpR0D(-GRAB0NE(B[I]»C)»0.RTL(l».ACl J)»XT[C]»M»HHJ| 00021900?
lNNpRODCH.HH.ACll.xT(cl»H»MH)l nn07?nnn«>
MnoE««TwuE and pen»c-u bbi u i«-hi
in .
IF BBHAx/XMAx C,T« 01 THEN 01 | .BBHAX/XM Ax I
IF BBMAX GTR (2*EPS)*C2*EPS)*XHAX THEN D2l»H
101
Ip E GTR XMAX THEN XMAX|»E| 00021000?
El »»GRABONE(BBtl J»CC)I fc2 » -GR aBONE ( BB t I ) » C ) 1 00021100?
E»»El*El*E2*E2* 00021200?
IF E GTR BBMAX THEN BBHAXlaEJ
MnDE'"TRUEl
lNNpR0O(-GRABnNE(Btn.CC)»O,A[n.xTtCCl.H,HH)|
lNNpROOCH»-HH»RTL(l»»AC I 1 ) • XTt C 1 # H. HH) I
MODEI"TRUE AND PEN«CC"1» bBHll^HI
MnDri«TRU£i
00022000?
00022100?
00022200?
00022300?
00022000?
E^OJ 00022500?
It 01 GTR 00*0.25 AND L NEO 1 THEN GO TO ILLI 00022600?
OUi-Op 00022700?
IF qZ«1 THEN Go TO l3| 00022800?
33
ILLI 00022900?
ENDI X 0F CaCCSqLVc. 00023000?
00023100?
PREAL VECTOR AAiBB[6<»}» 00023200?
creal vector iNTcHt6*)i 00023300?
CINT I»N»R»OeTE«ITi 00023400?
CREAL DETR.OETII 00023500?
LOOP Ilal.l.N 00 00023600?
AAC I ] l»AC III 00023700?
COECoMP0Se(n»AA»OEtR»dEtI»OETE»InTCH)I 00023800?
CACCSOLvE(NtR»A*AA,lNTCH*B»X«BB*lT)i 00023900?
END| * OF CLlNSYS. 00024000?
00024100?
00024200?
SUBROUTINE INVITERATIONCCINT N»PCP0INT W.pCPOINT X.CINT KK)| 00024300?
BEGIN X ThE SUBROUTINE COMPUTES THE EIGENVECTORS AND PKlNClPAL 00024400?
X VECTORS BY SOLVING ( ( W-LAMBDA*! )**K )*X»0, THE SUBROUTINES 00024500?
I "cDECOMPOSE" AND "CACCSQLyE" IN "cLINSyS" ARE USED* 00024600?
PE hEaL Su8ROuTlNE sQRT As r6A(Pe rEAL ARQ AS r6A)I 00024700?
BEGIN 00024a00?
S* CALL SqRt64()| 00024900?
ENDI % QF SORT. 00025000?
CINT I»J»II»DETE.R»L» 00025100?
CKEAL DETRtDETI.MAXVAL.XXl,XX2| 00025200?
pkeal vector w2» b» b2» bb» xxt641 , 00025300?
ckeal vector p.rootcmji 00025400?
PHeAL Tri»TR2» 00025500?
LABEL INVIT»NEXT.FINISI 00025600?
MODEi«PEN LSS N*N| 00025700?
LOOP I>»1'1»N 00 W2C X 1 1 «•*£ III 00025800?
CDEC0MP0SE{N,W2.DETR#DETI#DETE.P)I 00025900?
M0DE1.PEN LSS 21 00026000?
LOOP ll«l*l#N DO 00026100?
BEGIN B2(I]lal,0l BC 1 1 l«B2C III ENDI 00026200?
KKl.ll 00026300?
Rl»ll 00026^00?
INVITI 00026500?
MOOE»»PEN LSS N*NI 00026600?
CACcS0LVE(N»R»m»m2»P»B*X*BB»L)I 00026700?
HODe««PeN LSS 21 00026800?
LOOP !I»1»1*N DO 00026900?
BEGIN 00027000?
RnOT[I)l"ROHSUH(XIIJ*X[Il)| 00027100?
ROOT t I ]I«SQRT(ROOTII ])l 00027200?
ENOi 00027300?
MAXvALI«ROOT[lll 00027400?
LOOP lt«2»l*N DO 00027500?
IT m*XVAL GEO HOOTtI] THEN MAXVAL I »MAXVAL ELSE MAXVal l»ROOT[ Ij I 00027600?
LOOP lialiUN DO 00027700?
IF ROOTtlj.MAXVAL THEN BEGIN IllaH GO TO NEXTl ENU| 00027800?
MEXTf 00027900?
XXl|»GRABONE(XUn»0)l 00028000?
xX2l«-6RAB0NE(XtII]»l)l 00028100?
IF -XX2 NEQ 0 THEN 00028200?
BEGIN 00028300?
LQOp I i * 1 • 1 • N DO 00028400?
BEGIN 00028500?
3^
MODEl«PEN LSS 21 00028600?
TRll»GRABnNE(Xtl].0)*XXl-GRABoNC(Xtl].l)*XX2| 00028700?
TR2l«GRAB0NE(X[n,0)*XX2*QRAB0NE(XCI].l)*XAil 00028800?
M00El«PEN«0l XXCIll.TRli 00028900?
M0DEl«PEN«ll XX(I}|»TR2| 00029000?
END| 00029100?
MQDEI.PEN LSS 21 00029200?
Xxl|«GRABONE(XXtII).0>| 00029300?
LOOP IIP1.1.N 00 XUJlOXCll/XXU 00029400?
END 00029*00?
ELSE LOOP Il.l.l»N 00 X[ IJ I.XC H/XXl | 00029600?
LOOP II-l.l.N DO 00029700?
ErlN -. «, . 00029800?
IP ABSCB2[I].X£I]> GTR P.lO THEN 00029900?
WE9IN 00030000?
IP KK GTR 10 THEN GO TO FlNISl 00030100?
loop ji.i.i.n oo begin Btnt.xtn» 00030200?
B2tI1l"X[I]l 00030300?
Kkl.KK*it END' 00030400?
*K»"KK*1I 00030500?
G0 TO INVITI 00030600?
If?r rn Tn r»m<;. 00030700?
LLSE GO TO FINISI 00030800?
„„,., H°l 00030900?
*** 0O031OOD?
CNOJ UF INVITERATION. 00031100?
UNCLASSIFIED
Security Classification
DOCUMENT CONTROL DATA • R & D
(SacuHty claaallleatlor, at till: body ol abahmet and humming annotation muat ba antarad whan tha ormr.lt raport t. claaalllad)
NAT.NG ACTIVITY fCo^Or.,. author) »*• ""OUT .ECU R. TV C L ASS. FIC A TION
originating activity (Corporata author)
Center for Advanced Computation
University of Illinois at Urbana-Champaign
Urbana, Illinois 6l801
UNCLASSIFIED
2b. GROUP
3. REPORT TITLE
A NUMERICAL SOLUTION OF THE MATRIX RICCATI EQUATIONS
4. DESCRIPTIVE NOTES (Type ot report and htelualra datam)
Research Report
8. AUTHOR(S) (Flrat mm, middla Initial, la a ( nam*)
Killion Noh
8. REPORT DATE
January 20, 1972
•a. CONTRACT OR GRANT NO.
DAHCOU 72-C-OOOl
b. PROJECT NO.
ARPA Order 1899
fm. TOTAL NO. OF PAGES
.22.
17b. NO. Or REFS
•a. ORIGINATOR'S REPORT NUMBERIS)
CAC Document No. 2k
Sb. OTHER REPORT NO<3» (Any other number* that may ba aemlgnad
thla raport)
UIUCDCS-R-72-U98
10. DISTRIBUTION STATEMENT
Copies may "be obtained from the address given in (l) above.
Distribution unlimited; approved for public release.
II. SUPPLEMENTARY NOTES
None
12. SPONSORING MILITARY ACTIVITY
U.S. Army Research Office-Durham
Durham, North Carolina
13. ABSTRACT
The eigenvector solution of the time -invariant matrix Riccati equation
is discussed. The coefficient matrix of the canonical equation is allowed
to have multiple eigenvalues, namely, the matrix could be either derogatory or
defective. The solution of matrix Riccati equation is then calculated from a
part of similarity transformation which should reduce the coefficient matrix
to the Jordan canonical form.
DD
FORM
,1473
UNCLASSIFIED
Security Classification
UNCLASSIFIED
Security Classification
KEY WORDS
LINK A
ROLE WT ROLE WT
ROLE WT
Ordinary and Partial Differential Equations
Matrix Algebra
Nonlinear and Functional Equations
UNCLASSIFIED
Security Classification
BIBLIOGRAPHIC DATA
SHEET
1. Report No.
UIUCDCS-R-72-1+98
3. Recipient's Accession No.
4. Title and Subtitle
A NUMERICAL SOLUTION OF THE MATRIX RICCATI EQUATIONS
5. Report Date
January 20, 1972
6.
7. Author(s)
Killion Noh
8. Performing Organization Rept.
No.
9. Performing Organization Name and Address
Center for Advanced Computation
University of Illinois at Urbana-Champaign
Urbana, Illinois 6l801
10. Project/Task/Work Unit No.
11. Contract /Grant No.
DAHCOU 72-C-OOOl
12. Sponsoring Organization Name and Address
U.S. Army Research Office-Durham
Duke Station
Durham, North Carolina
13. Type of Report & Period
Covered
Research
14.
15. Supplementary Notes
None
16. Abstracts
The eigenvector solution of the time -invariant matrix Riccati equation
is discussed. The coefficient matrix of the canonical equation is allowed to
have multiple eigenvalues, namely, the matrix could be either derogatory or
defective. The solution of matrix Riccati equation is then calculated from a part
of similarity transformation which should reduce the coefficient matrix to the
Jordan canonical form.
17. Key Words and Document Analysis. 17o. Descriptors
Ordinary and Partial Differential Equations
Matrix Algebra
Nonlinear and Functional Equations
17b. Identifiers/Open-Ended Terms
17c. COSATI Field/Group
18. Availability Statement Copies may be obtained f rom the
address in (9) above.
Distribution unlimited.
19. Security Class (This
Report)
UNCLASSIFIED
20. Security Class (This
Page
UNCLASSIFIED
21. No. of Pages
38
22. Price
NC
FORM NTIS-35 (10-70)
USCOMM-DC 40329-P71