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 (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)» ( 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 1 I N J . QC [ 1 I 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 | 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 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

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 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| 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 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» 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