Sei sulla pagina 1di 15

PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Perturbation Theory

Laurence E. Fried and Gregory S. Ezra


Department of Chemistry, Cornell University, Zthaca, New York 14853

Received 2 June 1986; accepted 1 October 1986


Classical perturbation theory provides a particularly promising route to EBK quantization of nonseparable systems. However, the number of terms generated when implementing perturbation theory for systems with more than two degrees of freedom can prove too large for general purpose symbolic manipulators to handle. We describe PERTURB,a specialized algebraic manipulationprogram written in C for quantization of multidimensional systems. A review of operator based classical perturbation theory is given, and the relationship between this type of perturbation theory and quantum mechanical Van Vleck perturbation theory discussed. The relative performance of the Dragt-Finn and Lie transform algorithms is assessed.

is the corresponding Maslov index," l3 whose value is determined by the particular emMuch effort has been devoted recently to bedding of the torus in phase space.14 Primithe application of semiclassical methods to tive (as opposed to uniform, cf. Ref. 15, and problems of molecular vibrational dynamrefs. therein) semiclassical eigenvalues are i c ~ . Interest in semiclassical approxima~-~ then just the energies of trajectories lying on tions for multidimensional systems such as tori with quantizing actions. For recent remolecules has been stimulated by fundaviews see Refs. 1-4,16,17. mental questions concerning the implicaThe majority of quantization methods are tions of phenomena such as regular versus applied most straightforwardly to systems chaotic motion in classical mechanic^^^^ for whose motion is weakly perturbed from that quantum mechanic^,^^^ as well as the need to of a multidimensional harmonic oscillator, develop tractable computational alternatives although several techniques have been used to variational calculations of vibrational and to quantize strongly resonant quasiperiodic rotation-vibration spectra.8 Most semiclassitrajectories (see ref. 17, and refs. therein). cal methods for calculation of molecular viThe quantization of chaotic5classical motion brational levels proposed to date have been is, however, intractable within the EBK framebased on the EBK quantization conditions,g-ll work, since the tori required do not exist in which are essentially single-valuedness rethe chaotic regime. There are two possible quirements for multidimensional WKB waveapproaches to the quantization of chaotic functions." The EBK quantization approach motion. One is to abandon the EBK scheme relies on the existence of regular m ~ t i o n . ~ entirely and use an alternative formulation That is, trajectories for N degree of freedom of semiclassical mechanics based on the enusystems must lie on N dimensional surfaces meration of all periodic orbits.18 While this in phase space with the topology of N-tori.12 approach apparently has a secure theoretiIn that case the N actions, which are loop cal foundation, in practice the periodic orbits integrals of p.dq around a set of curves spanare difficult to find.19 A second approach is ning the N-torus, must obey the quantizato attempt the EBK quantization of chaotic tion conditions motion even though tori do not exist, by asJi = (ni + aj/4), Z = 1 , 2 . .. N , (1.1) sociating a torus with a chaotic trajectory where niis the ith quantum number and ai using, for example, the method of adiabatic
Journal of Computational Chemistry, Vol. 8, No. 4, 397-411 (1987) 0 1987 by John Wiley & Sons, Inc. CCC 0192-8651/87/040397-15$04.00

I. INTRODUCTION AND MOTIVATION

398

Fried and Ezra

s w i t ~ h i n g . ~ 'Such an association may be -~~ meaningful if the trajectory lies near a torus for a time longer than typical vibrational timescales. The approach should work particularly well for systems with two degrees of freedom, for in this case nearby tori can permanently confine the trajectory to a thin, torus-shaped stochastic layer. In more than two degrees of freedom Arnold diffusion prevents confinement, so that chaotic trajectories will eventually drift away from nearby tori, albeit on an extremely long time~cale.~ Classical perturbation theory5.26 provides a particularly powerful approach to EBK q~antization.~~-~~ The method leads to analytical results for energies as a function of actions and for t h e transformation from original coordinates to good action-angle variables (for resonant systems, a numerical 28 36 quadrature25* or resonance is required). In this approach, the Hamiltonian is expressed to a given order in terms of a set of approximate action variables, and semiclassical quantization is accomplished by assigning these actions values satisfying the EBK conditions. The results of perturbation theory are global; all eigenvalues of the system are found simultaneously, although not with uniform accuracy. Whether the motion is chaotic or not, the perturbation procedure can always be applied, although convergence is of course not guaranteed. In fact, it is well known that classical canonical perturbation theory is ultimately divergent,5 as the formulas it generates can only represent regular motion, while generic Hamiltonian systems possess both regular and chaotic motion. When the divergence appears only in high-order corrections, perturbation theory provides a means of replacing chaotic motion or high-order resonant motion with a smoothed dynamics which does not contain these feature^.^^,^' This replacement may be viewed as a method for associating tori with chaotic trajectories. As might be expected, problems arise when divergent terms appear in low order, and require special treatment. In spite of t h e divergences mentioned above, successful quantization of several cubic oscillator systems with two degrees of freedom has been carried out in the chaotic regime using perturbation theory.28> This 31 result is particularly intriguing. Evidently,
35y

useful asymptotic information can be extracted in spite of the method's ultimate divergence. Furthermore, in cases where the divergence appears early, the results can often be successfully r e ~ u m m e d ~40*or ~ ? ' ~ resonance analysis can be used. It would be of considerable interest to explore the applicability of the perturbative method for a variety of systems, especially those with more than two degrees of freedom. Such investigations are hampered by the enormous number of terms generated in the construction of the Hamiltonian as a function of the good actions. The algebra involved has previously been handled by the use of general purpose symbolic manipulation programs, such as MACSYMA28p31 or SMP.322 36 These have proved sufficient for 35* relatively simple systems, such as the cubic oscillators mentioned above, but can become inadequate for very high-order perturbation theory in two degrees of freedom or for lower order analysis of systems with more degrees of freedom.41 In this article we describe a collection of routines, called PERTURB, which is successful in extending classical perturbation theory efficiently to systems with more than two degrees of freedom. PERTURB has a more specialized purpose than MACSYMA or SMP; we have designed it to manipulate expressions consisting only of polynomials and exponentials, whereas MACSYMA or SMP will manipulate more general expressions. This specialization makes possible an extremely compact representation of such expressions, as well as efficient execution of algebra. The benefits of a specialized program are however lost if the program is written in a way that makes it difficult to adapt to related problems. For example, the ability to switch from one sort of perturbative algorithm to another with ease is desirable. This is a n important point, because algorithms vary in the amount of computer time required. Our solution is to create an environment similar to t h a t offered by MACSYMA, where a n expression is represented by a single variable. The specific t a s k s a t hand a r e t h e n programmed i n terms of relatively few manipulations of expressions. In effect, we have produced a collection of routines which models a very high level programming language, where an

PERTURB: An Algebraic Manipulation Program

399

expression is a possible data type. Routines written within the model can then mimic even more abstract programming environments. A further advantage of such an approach is that it is easy to use and modify programs written within the model without knowledge of the details of the implementation. In addition, revisions of the symbolic manipulator can be made without modifying programs written within the model. To achieve this goal without sacrificing efficiency, we have chosen to write PERTURB in the programming language C.42This language has the desired combination of great efficiency and powerful model-building facilities. The combination makes the language potentially useful in a variety of scientific applications. We note that Miller and D e ~ r i have t~~ very recently described a symbolic manipulator package for classical perturbation theory based on t h e language Zetalisp. While the details of the two approaches are quite different, many aspects of the design philosophies are the same.
11. DRAGT-FINN PERTURBATION THEORY

In these types of perturbation theory, as with most others, a canonical transformation from zeroth order action-angle variables ( j ,e) to new variables ( J ,0) sought such is that the Hamiltonian H, when expressed in the new coordinates, has a simple form. Usually, it is required that H be approximately a function of the action variables J only. If t h e residual dependence of t h e Hamiltonian on 0 is neglected, the canonical equations of motion are trivial to integrate in the new coordinates:

J ( t ) = J(0);

@(t) O(0) =

+ djH(J)t

(1)

Dragt-Finn perturbation theory uses the exponentiation of a Lie operator to generate the canonical coordinate transformations. We have
Z(z) = eFz,

where z denotes the pair ( j , @ 2 denotes , (J, and F is the Lie operator associated @), with the function f ( z ) ,given by

(3)
where { ,} is the Poisson bracket. The inverse relationship is also given directly in terms of Lie operators:

z(Z) e-%. = (4) In order to carry out high-order classical perturbation theory on multidimensional Here the function f(z) is understood to be resystems, it is important to have an efficient placed by the function f ( Z ) , and Poisson perturbative algorithm. Here we review two brackets are taken with respect to 2. methods: Dragt-Finn44-46 perturbation It can be shown that this transformation theory and the Lie transform a l g ~ r i t h m . ~ ~ - ~ ~ preserves the Poisson bracket,44and so the Lie transforms are used more widely than exponentiation of a Lie operator produces a the Dragt-Finn method; a comparison of the canonical transformation. The Hamiltonian performance of both methods for a variety of in the new coordinate system is given disystems is presented below. We also point rectly in terms of Lie operators: out that Dragt-Finn perturbation theory K ( 6 , J ) = eFH(e,j) (5) corresponds directly to quantum mechanical Van Vleck perturbation theory.50 The close In order to solve the problem perturbatively, relationship between these two methods is the Hamiltonian is written as a power series the subject of further i n ~ e s t i g a t i o n Both .~~ in a small parameter E the Lie transform and Dragt-Finn methods are based on finding operators that transH =~H,E" form the Hamiltonian into a particular simple form. This approach has a great adwhere Hois taken to depend only onj. Dragt vantage over more traditional techniques, and Finn44 introduce a series of canonical such as the Birkhoff-Gustavson method,38 transformations, each of which eliminates in that the coordinate transformations prothe dependence of the new Hamiltonian K duced are explicitly invertible; it is only on 0 to one higher order in E : necessary to use the inverse operator to perform the inversion. K = ... e x p ( ~ ~exp(e2F2) F~) exp(EF,)H (7)

400

Fried and Ezra

Let us define Hkby

Hk= exp(EkFk). .exp(EFl)H .


and expand in powers of
E:

(8)

H k = exp(iEkfk) exp(iEk-lfk-l).. ..exp(iEfl) H o exp(-iEfl). . . exp(-iEkfk) (14) This expression can be rearranged into a
form resembling that of Dragt-Finn theory by use of the theorem44 exp( f )H exp(--f) which yields
=

Hk = z H k , ~ "
The following transformation rules are then obtained by equating like powers of E: k H,-- H k-1 fo r n < k (10)
int(nlk)

exp([ f ,-1)H (15)

Hk = eXp(iEk[fk, -3). . . .exp(iE[ f i , .])Ho (16)


Upon taking the classical limit, we obtain precisely the Dragt-Finn transformation Eq. (7). The close analogy between these types of perturbation theory affords a possible route to semiclassical wave functions, because a unitary transformation acting on wave functions can be constructed directly from the classical generating functions. The unitary operator is

H ,= K

(l/m!)(Fk)mHk,I&kfor n 2 k

m=O

(11) where int(n/k) denotes the integer part of the ratio n/k. It is evident that H$ must be chosen t o have a simple form on the kth iteration, for after t h a t the Hks a r e unchanged. This choice of Ha dictates the form of the Lie generating function fk. To be more specific, the equation for Ha is

Uk = exp(iEkfk)..exp(iEfl) . (17) The feasibility of this procedure is currently


under in~estigation.~~ Let us return to our discussion of classical perturbation theory. Consider systems where Ho is a harmonic oscillator in the variables ( q , p ) .It can then be expressed in terms of zeroth order action-angle variables (j, 6 ) as (18) by using the following relations between harmonic oscillator action-angle variables and the Cartesian (q,p): (19a) pi = (2ji~i)1/2 cos(ei) (1%) (0 is a vector of zeroth order frequencies w = dHo/dj.). Furthermore, suppose that the H, are polynomials in ( q , p ) .They can be 6 written in terms of (j, ) as
H n =

Ha

= Ha-'

+ FkHo

(12)

Ha is usually chosen to be the part of Ha-' t h a t is independent of 6 . This fixes Fk


through the above equation, while avoiding secular terms.5 Once F k is found, the Hk, for n > k are determined by Eq. (11). Although an infinite number of Hk, are generated by Eq. (111, it is only necessary to calculate terms for values of n up to the final desired order of the calculation. There is a striking similarity between Eq. (10) and (11)and the transformation formulas of quantum mechanical Van Vleck perturbation theory.50 Consider the correspondence between Lie derivatives and commutators: - i [ f k , -1 (13) where [, ] denotes a commutator and fk is a quantum mechanical operator corresponding to the classical function fk (through, say, the Weyl quantization rules). Inserting Eq. (13) into Eq. (11)yields the transformation rules of Van Vleck perturbation theory. To understand this result, note that Van Vleck perturbation theory uses a sequence of unitary transformations to obtain the Hamiltonian in a simple (diagonal) form, much as DragtFinn perturbation theory employs a sequence of canonical transformations. In Van Vleck theory we have
+

Ho = w - j

qi = (2ji/wi)'j2sin(Oi)

{fk, .I

C Cff,k,n exp[i(k @I jff


*

(20)

a, k

where a is a vector with half-integer components, and k a vector with integer compois nents. COL,k,, a numerical coefficient, and jadenotes jto...j#!!il where N is the number of degrees of freedom. With the assumptions (18) and (20) on the form of the Hamiltonian, the procedure for implementing Dragt-Finn perturbation theory becomes clear. To begin, choose H :

PERTURB: An Algebraic Manipulation Program

40 1

to be the part of H: independent of 8. This choice determines Fl through (11):

be formulated in terms of operators. Let T be defined by

fi

k#O

c [Ca,,,1l(ik

41.Y exp(ik - 0)
Then

Tg(z0,to) = g(z(z0,t ) ,to) * TzO


=~ ( ~ 0 , t )

(22) (23)

(21) Note that this formula assumes that no term k . o is zero (i.e., there are no exact resonances). [If K - o = 0, the corresponding term must be explicitly included in H i . ] The coordinate transformation induced by Fl must then be carried out to the final desired order on the original Hamiltonian Ho. This involves repeated evaluation of Lie derivatives, which requires nothing more than multiplication, addition and ordinary differentiation. These operations transform a n expression of the form (20) into another expression of the same type. After performing the transformation, the entire process is restarted by choosing H; to be the angleindependent part of H i (again assuming no resonances). Dragt-Finn perturbation theory applied to linear zeroth-order Hamiltonians therefore generates a closed field of expressions, and PERTURB need only manipulate this specialized class. Moreover, only a few types of algebraic operations are required to carry out the perturbation theory. Thus, multiplication by real numbers (scalars) is needed to solve Eq. (121, while the transformation (11)requires addition, Lie differentiation, and multiplication by scalars. The operations required to carry out Dragt-Finn perturbation theory on generic polynomial Hamiltonians are therefore few and simple. As shown in the next section, the method of Lie transforms requires the same set of operations.

is a canonical transformation. An equation for T entirely in terms of the Hamiltonian can be derived. Recall the equation for the total differential of a function g with respect to time:

D,g(z,t) = {g(z,t),h} & g ( z , t ) , (24) + where h is the Hamiltonian. Let d, be given by d, D, - a,. (25)
Then
dtg(z9 t ) = {g(z,t ) ,h(z,t)l,

(26)

which can be rewritten as

dt(Tg(z0,t ) )= T W O ,t ) ,hbo, t ) )(27) This result can be expressed entirely in terms of operators, using the fact that

Equation (28) can be verified by using the definition of T and the definition of a derivative. Thus, Eq. 27 is equivalent to (29) (0, T)g(zo, ) = -THg(zo, t ) t where H is the Lie operator {h,-} associated with the Hamiltonian h [see Eq. (311. g(zo,t) is an arbitrary function, so that we have an equation for T entirely in terms of H:
9

111. METHOD OF LIE TRANSFORMS

Both Lie transform and Dragt-Finn perturbation theory use operators to generate canonical transformations. As discussed in the previous section, in the Dragt-Finn method this is accomplished by using the exponential of a Lie operator. In the method of Lie transforms, a different route is followed. It is well known that the time evolution of a Hamiltonian system generates a canonical transformation.12 This result can

D,T = -TH. (30) T will generate a one parameter group of canonical transformations, where the variable t labels elements in the group. In classical perturbation theory, however, we wish to generate a one parameter group of transformations depending on the small parameter 8 . This suggests that a Hamiltonian W ( Z , E ) be introduced, with E treated as a time parameter. This Hamiltonian is called a Lie generating function, because it determines the transformation operator T through Eq. 30 with t replaced by E , and H replaced .}: by the Lie operator W = {w, D,T = -TW. (31)

402

Fried and Ezra

Since E is assumed to be small, a power series solution of Eq. 31 is a natural way to proceed. Both T and W are expanded in powers of E :
X

A simpler formula for w n is obtained if instead of substituting Eqs. (40)-(41) into Eq. (371, a formula equivalent to Eq. (37) is used:

(42) This result can be derived by premultiplying n=O (37) by T, differentiating with respect to w = Wn+lE" E and finally premultiplying by 7 ' - l . Insertn=O ing Eqs. (40) and (41) into Eq. (42) gives an Wn ={wn, 1 . ( 3 2 ~ ) explicit equation for w,: The initial condition is that T is the unit {wn, = n(kn - hn) hol operator when E = 0, which implies n- 1 (43) (W,-,k, + mTi!,h,). To= 1. (33)
=
W

a,K - WK

T-la,H.

Substituting Eqs. (32)-(33) into Eq. (31) yields, upon equating like powers of E
n-1

m=l

T,

-(l/n)

m=O

T,W,-,

(34)

We have thus derived an explicit formula for T, given the Lie generating function w. It remains to find an algorithm for picking the w, so that the Hamiltonian has an appropriate simplified form in the new coordinate system. Consider the relationship between the Hamiltonians in the new and old coordinate system: h(z0) = k(z) (35) where we have assumed t h a t the Hamiltonian has no explicit time dependence.* This implies the following operator relationship in terms of T
9

Note that Eq. 43 has a corresponding expression in the Dragt-Finn formalism (12); the new Hamiltonian k is also chosen in a similar way. The term k, is required to be as simple as possible, which usually means picking k, to cancel the angle independent portion of the right-hand side. This choice avoids secular terms, while keeping k simple. Just as in the Dragt-Finn case, if resonances occur, extra terms must be put into k. Thus, we see that both Dragt-Finn perturbation theory and t h e method of Lie transforms require the implementation of the same set of operations on a n identical field of expressions. We can therefore implement both within the PERTURB environment.
IV. CONSTRUCTION OF THE MODEL

(36) T -'h(zo) = k(z0) (37) which suggests a formulation of the perturbative algorithm in terms of the inverse T - l , rather than T. An equation similar to (41) can be derived by differentiating TT-l = 1 , (38) to give D,T-l = WT-l (39) T -' can be expanded in powers of E :
h(z0) = W z o )

T-l

=
n- 1

(40)

T i 1 = (l/n)

W n - m T - l m . (41)

m=O

*The generalization to time-dependent Hamiltonians is most easily accomplished by using an extended phase space (Ref. 12).

To perform classical perturbation theory, PERTURB must execute certain basic algebraic manipulations on the class of expressions having the form shown in Eq. (20). Every elementary operation except division (i.e., multiplication, addition, subtraction, and differentiation) will produce a result within this class. Division of one expression by another is not required as long as the zeroth-order system is harmonic, for in this case the denominator is simply a number. For the time being we confine ourselves to such systems. Possible extensions to anharmonic zeroth-order systems are discussed below. Every expression generated by the perturbation theory is therefore a sum of terms of the form (20). Each term can be represented by a set of numbers. Two numbers describe the (possibly complex) coefficient. Two more

PERTURB:An Algebraic Manipulation Program

403

sets of numbers are needed to fully represent the term; one describes the powers to which the actionsj are raised, the other describes the coefficients of 0 in the exponential. Evidently all of these numbers describe a single entity, which suggests grouping the numbers together into a single object, called a data structure. This process is called data a b ~ t r a c t i o n and has important practical ,~~ and conceptual advantages. A structure becomes a model of the object it representsin this case a term in a n expression. It is then possible to concentrate on manipulations of structures as a whole, rather than the primitive data types of which they are composed. Of practical importance is the fact that data structures place numbers likely to be accessed at the same time close together in memory. Data structures have been used profitably in most aspects of our program. It is important to note that the representation of a term we have used is extremely compact, allowing a large number of terms (upwards of 500,000) to be stored. The ability to handle so many terms is a consequence of the specialized purpose of our symbolic manipulator. By considering only a specific class of terms, certain relations between parts of a term have been made implicit. In the representation of a term, the identity of the action-angle variables j and 0 is given by their position within the data structure, so that the relationship between these variables and the numbers in the data structure is implicit. A more general implementation would be required to represent the identity of variables and the relationships between them explicitly, and would require much more storage space. To manipulate entire expressions in a natural fashion, we need a model for an expression, based on the above representation of a single term. Since an expression is made up of many terms, it is clear that an expression should be represented as a n array of term structures. The length of such an array will vary greatly from expression to expression. It would be highly inefficient to dimension each of these arrays in advance to be the largest size required. Moreover, it is very difficult to predict the length of such a n array before the program actually runs. The solution is to use dynamic allocation of memory space.

In C dynamic allocation is accomplished through the use of variables called pointers. A pointer is a variable that contains the machine address of another variable. Information at this address can be accessed or changed. This process is called indirection, since information is used o r modified through a n intermediary pointer. It is important to note that, while a pointers value is machine dependent, its use in indirection is not. In C pointers are always used in this machine independent manner. It should be recalled that arrays are nothing more than blocks of contiguous memory. The only information required to access such a block is the address of its first element. This is the key to dynamic allocation in C. An allocation routine is simply asked to find a block of free memory of the desired size; the routine returns a pointer to the first element in the block. We have therefore used a pointer to the first element of a n array of term structures to represent the terms in an expression. It is assigned its value during execution by a dynamic allocation routine. A pointer to an array of terms suffices to represent the various terms constituting an expression. An expression has several other features, however, which also must be incorporated into the model. For instance, the program must keep track of the number of terms in a n expression. Also, it is convenient to use two different types of expressions: those of permanent interest, and those which are to be erased as soon as they are used. It is essential to erase the many intermediate results generated, for otherwise the program would soon run out of available memory. By producing variables of two different types, the process of discarding unneeded t e r m s c a n be made automatic. Temporary expressions are discarded as soon as they have been used to form any other expression. Permanent expressions are not discarded. Thus, we have three variables to provide access t o all information contained in a n expression: the number of terms, the storage class, and a pointer to the first element of an array of terms. These three variables are conveniently placed in a d a t a structure called a directory. A directory, therefore, serves as a complete representation of a n expression. There is one further technical

404

Fried and Ezra

point involved in the construction of the model. As a convenience, we have used a pointer to a directory as the ultimate representation of an expression. This extra level of indirection allows C subroutines to modify information contained in the directory. It is highly desirable to be able to hide as much of the above implementation as possible. C allows pseudonyms to be invented to rename derived types. This capability allows the user to forget that such quantities are derived types at all, and instead concentrate on manipulating expressions. This is the principal advantage of data abstraction. For example, we have used the psuedonym EXPR to denote a pointer to a directory. Thus, a variable of type EXPR serves as the final representation of an expression.

to return temporary values. In the above example mult will multiply expressions b and c , producing a temporary result of type EXPR. If b or c are temporary variables, muk will erase them automatically. This frees the
user from erasing them manually. The function add then accepts the result passed by mult, and erases it after use, since it is a temporary argument. This allows for concatenation without t h e accumulation of unwanted temporary results. If mult passed a permanent variable i n our example, it would be necessary to use the rather lengthy alternative:
e = mult(b,c) a = add(e,d) erase(e).

V. DESIGN OF FUNCTIONS

The functions that involve manipulation of expressions have been written to provide an environment in which algebraic operations can be programmed without knowledge of the details of the implementation described above. In addition, it is necessary that functions combine together naturally. For instance, it should be easy for two functions to be concatenated. To this end, we have specified a set of characteristics every function should have. One such characteristic is that PERTURB functions return results of type EXPR as their values. This allows for easy concatenation. Consider two functions f(a, b ) and g(a,b ) . Suppose that arguments a and b are expressions, and that both functions return results that are also expressions. The two functions can then be concatenated by writing f(g(a,b ) ,c ) , where a,b, and c are expressions. Concatenation also facilitates the transcription of algebraic formulas into computer code. Consider the transcription of an algebraic expression a = bc + d into code for utilization by PERTURB. The code used is very simple: a
=

Thus, we see that sensible defaults for the storage classification of results are necessary for easy transcription of formulas. It should be noted t h a t PERTURB allows for quick conversion of temporary variables into permanent ones. The function set-type (U,PERM) used t o make the expression is permanent. PERTURB allows easy construction of new functions out of the basic ones provided. As an example, consider a function f(a, b, c ) to calculate a b + c. The code required for such a function is very simple. f i s declared to be a function returning type EXPR, taking EXPR arguments a, b, and c. A variable r is then declared within the function to be of type EXPR. The function then calculates the result r, and returns it:

r = add(mult(a, b ) ,c ) return(r ).
The user need not know any details of the C implementation to write functions within PERTURB, so long as the desired operation can be expressed in terms of the basic operations. This fact also enhances the flexibility of the PERTURB environment, allowing the specific implementation to be changed without affecting programs written within the model.

add(mult(b, c ) ,d).
VI. SIMPLIFICATION AND SORTING

Here, add and mult are PERTURB functions. Evidently, the use of concatenation leads to compact programs which are easy to read. It is also desirable to have PERTURB functions erase any temporary arguments, and

When performing a n operation on two expressions, say multiplication, PERTURB must simplify the resulting expression by adding

PERTURB: An Algebraic Manipulation Program

405

like terms. Simplification is a critical task. Consider the multiplication of two expressions a and b. If no simplification were possible, the multiplication would generate a number of terms equal to the product of the number of terms in a and the number of terms in b. It is evident that if a and b have many terms, say 1000, the number of terms in the product can easily become too large for computer memory. Evidently, a high degree of simplification is needed to produce a manageable expression out of two other large expressions. It is our experience that such a large degree of cancellation is usually present. The simplification can be achieved by sorting terms according to a predetermined but largely arbitrary order relation. Two terms having the same order differ only in multiplicative numerical coefficients. These coefficients can be added to produce a single term. It is apparent from the above considerations that it is necessary to simplify a n expression as it is generated, otherwise an enormous number of terms would have to be stored. A simple calculation shows that, proceeding primitively, comparing each generated term to every previously generated term, the work increases as the square of the number of terms to be sorted.52This is an unacceptably inefficient algorithm. An a l t e r n a t i v e a l g o r i t h m i s used in PERTURB. Terms are placed in a binary tree structure52as they are produced. A binary tree consists of a series of interconnected node structures. At each node, a term is stored, as well as the address of two offspring nodes. The tree is initialized with a root node. Generated terms are then compared to the term in the root node. If the term matches the root node, the terms are added and the algorithm stops. If the term is ordered after the root node, however, it proceeds to the right offspring of the root; otherwise it proceeds to the left offspring. If no offspring exists, an offspring is made, and the term in question is placed in this node. If an offspring already exists, the generated term and the term at the offspring are compared. If a match is found the terms a r e added. If not, the term moves down yet another level, until i t is either matched or placed in a new node somewhere in the tree. The tree sorting algorithm is much more efficient than primitive sorting, as it takes

time proportional to n ln(n),52where n is the number of terms, given that the terms enter the tree in random order. The order in which the terms enter the tree is very important to the efficiency of the algorithm. If the terms arrive in order, for instance, the tree will only have right branches. In this case the tree sort will be equivalent to a primitive sort. Evidently, it is advantageous to have the tree develop in as symmetric a manner as possible. This can be achieved by putting the term most likely to be in the middle of the ordering scheme into the tree first. Subsequent terms are entered in order of their likely proximity to the middle term in the ordering scheme. In this way the efficiency of the tree sort can be optimized. More complicated algorithms exist which guarantee that the tree produced is completely balanced. We find these to be no faster than the simpler binary tree sort. Another advantage of tree sorting is that it simplifies the task of memory allocation. Consider the case of multiplication. If the developing result were to be stored in a contiguous block of memory, an estimate would have to be made for the size of the result. As discussed earlier, the worst-case estimate for this is unacceptably high. Therefore, there is a possibility that an initial estimate of the required storage space would be too small. PERTURB would then have to revise the estimate, allocate a larger block of memory, and copy the terms generated so far into the larger block. This process is time consuming and leads to undesirable gaps in the memory being used. An estimate which is too large is also undesirable, as it wastes memory. By tree sorting, each term can be allocated separately, so t h a t use of memory will always be near the optimum. When the multiplication is finished, the individual terms are copied into a contiguous block of memory, which becomes a n expression for t h e result. At this point PERTURB must decide if a particular term has a coefficient so small that i t must be identified with zero. Both absolute and comparative methods a r e used to accomplish this. In the absolute method, the coefficient of each term is compared to a fixed minimum value. If the absolute value of the coefficient is less than this, the term is discarded. Under the comparative method, the coefficient of the term is compared to the

406

Fried and Ezra

coefficient of greatest absolute value in the expression. If the coefficient in question divided by the greatest coefficient is sufficiently small, the term is discarded. It is our experience that the comparative method is most useful. The absolute method is mainly used to equate a n expression with a very small single term to zero. The degree of precision used in a calculation can be usefully varied. For instance, in classical perturbation theory, higher-order corrections may be consistently done to a lower degree of precision than low order corrections, since they are expected to be small. After the significant terms in the tree are copied into an array, the tree is erased. It is possible to imagine a n implementation in which expressions are represented by trees instead of arrays of terms. We have used arrays of terms to avoid the memory overhead associated with the nodes in the tree. Also, results stored in array form can be accessed faster than those stored in tree form. Nonetheless, the use of trees to represent expressions would eliminate the step of copying the result into an array. The best choice is not entirely clear at present. Thus, we see that the use of trees in sorting can optimize both the use of memory and CPU time. The C programming language allows trees to be used naturally, since it supports pointers, data structures and recursion. The need for efficient, customizable sorting was one of the reasons PERTURB was written in C.
VII. EXTENSIONS

leaving PERTURB'S original data structures unchanged. It can readily be seen, however, that a large number of terms would be generated by the approximate division of two long expressions, so that the approximate method is inappropriate for very complicated calculations. A better method would be to give each term in an expression its own denominator, which is itself a n expression. This is the method that would most likely be used in a hand calculation. While this has not as yet been implemented, such a generalization is clearly necessary if PERTURB is to be used in a wide range of applications. In such a generalization, a term structure would be a composite of the term structure already discussed and an expression representing the denominator. All the basic functions would have to be modified to accomodate this new fundamental data type.
VIII. COMPARISON OF DRAGT-FINN PERTURBATION THEORY WITH METHOD OF LIE TRANSFORMS

The form for a term described above suffices for perturbation theory when t h e zeroth order system is linear. However, in perturbation theory from nonlinear zeroth order systems, in which the zeroth-order frequencies are functions of the action^,^ one expression must be divided by another. This operation cannot be done exactly within our original framework. Evidently, this limitation restricts the generality of PERTURB. We must therefore consider various methods of division. The simplest possibility is to divide expressions approximately, representing the quotient of two expressions by a single expression. This method has the advantage of

Since both Dragt-Finn and Lie transform perturbation theory require the same set of operations, it is natural to compare the performance of the two algorithms. Cary47has suggested that the Dragt-Finn approach might be much more efficient than the traditional Lie transform method, on the basis of the number of Lie derivatives required to generate the coordinate transformation to a given order. To investigate this point, we have calculated normal forms for several systems of the form: n-1 t " 1

Cy(Pf+ 0;q.P) +

22

Emq?-'qi+l,

i=l

i = l m=l

(44)

where n is the number of degrees of freedom, and the parameters E and oi are given by

0.1 (45) o: = 1 + 0 . l i . (45) The results of this analysis are given in Figures 1 and 2. Figure 1 gives the computer time required for the Dragt-Finn calculation divided by the time for a corresponding calculation of a normal form using the method of Lie transforms for n = 2 - 6. Figure 2 is identical to Figure 1, except that
&

PERTURB: An Algebraic Manipulation Program


9 --I
0 = 0

407

0 1 0
l Y
n

o?:p
F

a 9

e 8
4.0

m-

8
0.0

x
00 .
4.0

8.0

12.0

16.0

8.0

12.0

16.0

Order

Order

I:
R

b)

'1
R
9

4
9
7

9
0

9
00 .
4.0

8
80 . 00 .
4.0

8
80 .
00 .
4.0

8
80 .
00 .
4.0

80 .

R
9

'1
R
00 .
4.0

z
8
0.0
4.0

80 .
00 .
4.0

8
80 .

80 .

00 .

4.0

80 .

Figure 1. Ratio of CPU time for calculation of normal forms using Dragt-Finn algorithm over time for Lie transform algorithms versus order of calculation for several values o f t , the number of terms in the expansion of H in powers of E , and n, the number of degrees of freedom. (a) Ratios for n = 2 and t = 1 - 4, with t increasing from left to right in each cluster of bars. Graphs (b)-(e) correspond to n = 3 - 6.

Figure 2. As for Figure 1, except that ratio of maximum number of terms generated in the calculation of the normal form is plotted.

the ratio of the maximum number of terms generated by the two algorithms is plotted. From Figure l(a) we can conclude that, when applied to systems with two degrees of freedom, the Dragt-Finn method is more efficient for all values of the number of coupling terms t except t = 1. Figure 2(a) indicates that the Dragt-Finn method also generates fewer terms, with the ratio decreasing with the order of calculation for all values of t greater than 1. This result can be understood by considering the number of Lie derivatives calculated. Note that the number of Lie derivatives in (43)is reduced throughout the entire calculation if any of the H, are zero. The DragtFinn formula (12) does not have this property; if some of the Hk are zero, the number of Lie derivatives is reduced only on the first iteration. To quantify this observation, we

have calculated the number of Lie derivatives used in both methods for varying values oft. Figure 3 shows that the Lie transform method requires calculation of a smaller number of Lie derivatives than the DragtFinn method when t = 1. As t increases, however, the number of Lie derivatives increases faster for the Lie transform method than for Dragt-Finn. It might, therefore, be expected that the Dragt-Finn method would be more efficient when applied to systems for which the original Hamiltonian Hohas a large number of terms in its expansion in E . The number of Lie derivatives alone does not completely control the relative complexity of these two methods, however, as can be seen from Figures l(b)-(e) and Figures 2(b)(el. As the dimensionality of the system increases, the Lie transform algorithm is found to use progressively less computer time than Dragt-Finn, while the relative advantage due to the number of terms generated decreases. Although the reasons for the observed timing ratios a r e not fully

Fried and Ezra

this case, more computer time would be required to access the memory than if the memory were fairly contiguous. A possible solution would be the installation of a garbage collection52facility, or a reformulation of the Dragt-Finn algorithm in which intermediate results t h a t a r e eventually discarded are not generated. Consider the 1.3:0.7 generalized HenonHeiles problem treated in Ref. 28:

- 0.ly(x2 + 0.1y2), (46)

where
0.0

4.0

6.0

12.0

o = 1.3, ,

oy = 0.7.

(47)

Order

Figure 3. Ratio of number of Lie derivatives required for calculation of normal forms using Dragt-Finn over number for Lie transform algorithm. Note that the number of Lie derivatives does not depend on the number of degrees of freedom.

understood a t present, we believe that our results may be due to the way (which we consider to be the most natural and straightforward) in which the algorithms have been implemented. We implement the DragtFinn approach as follows: 1. Choose the new Hamiltonian H i . 2. Find the generating function Fk. 3. Carry out the transformation implied by Fk to the final order of calculation. This gives Hk, for n > k. 4. Discard the old Hamiltonians Hk,-' for n > k. Discard Fk. 5. Increment k, and go back to 1. In contrast, the Lie transform program calculates only those terms necessary to find the next generating function. Furthermore, intermediate results are not discarded. The algorithm is as follows: 1. Choose the new Hamiltonian K,. 2. Find the generating function w,. 3. Carry out the Lie derivatives implied by the Ti', using (41). Save the results for use in the next iteration. 4. Increment n, go to 1. The generation of results which must be discarded in the Dragt-Finn algorithm might lead to a fragmentation of computer memory, with large gaps between used portions. In

Table I gives the normal forms generated by both the Dragt-Finn and Lie transform algorithms. The normal forms are essentially identical, with differences only in the 13th digit in the 12th order correction. The identity can be understood by noting that both algorithms are order-by-order solutions of the same problem; the only difference between them is the particular manner in which the coordinate transformations are generated. Indeed, the normal forms we calculate using operator-based perturbation theory also agree with those obtained by the Birkhoff-Gustavson method. In Table I1 we give the first 25 semiclassical eigenvalues for the generalized Henon-Heiles system (3),28obtained by substituting quantizing values of the actions into the normal form. Our results are in close agreement with those found by the Birkhoff-Gustavson method.28 Applications of PERTURB to obtain semiclassical eigenvalues for realistic multidimensional molecular Hamiltonians will be decribed el~ewhere.~'
IX. CONCLUSIONS

The work described in the present article is motivated by our interest in the semiclassical mechanics of molecules. classical perturbation theory provides a useful approach to EBK quantization of nonseparable systems, which can be applied even if the actual phase space dynamics is chaotic. Whereas the canonical transformation of
conventional classical perturbation theory is

PERTURB: An Algebraic Manipulation Program


Table I. A comparison of normal forms obtained from Dragt-Finn Perturbation Theory and Lie Transforms for the generalized H6non-Heiles Hamiltonian of Eq. (46).
~ ~~ ~

409

Order
~

Dragt-Finn Coefficient
~~ ~

Lie Transforms Coefficient 7.0000000000000e- 1 1.2999999999999e+0 - 1.5618492294876e-3 - 1.0233232574801e-2 -5.8019867158099e- 3 - 1.0919098260533e-5 -1.7719333108397e-4 -2.7327595040837e-4 -8.6248331149334e- 5 - 1.3333901096892e-7 -5.2889003640957e-6 - 1.1830588551230e- 5 - 1.0705114049425e-5 -2.2905734788003e-6 -2.0533926179612e-9 - 1.7796583269637e-7 -6.5009457030018e-7 -7.6731309011819e- 7 -4.8566878096451e- 7 -7.7707326259961e-8 -3.5997972319934e- 11 -7.0061016664402e-9 -2.8383013878051e-8 -7.1187437461351e-8 -4.9640398832881e-8 -2.3858908045993e-8 -3.0261079752648e-9 -6.8583007777415e- 13 -2.9462018713791e- 10 - 1.4155344239464e-9 -3.7159990077169e-9 -7.6180660214306e- 9 -3.2114556425314e-9 - 1.2326268875793e 9 -1.2881682475436e- 10

Power of J,
~

Power of J,
~

10

12

6.9999999999998e- 1 1.2999999999999e+O - 1.5618492294876e-3 - 1.0233232574801e-2 -5.8019867158102e- 3 - 1.0919098260534e-5 - 1.7719333108399e-4 -2.7327595040839e-4 -8.6248331149342e- 5 - 1.3333901096893e-7 -5.2889003640964e-6 - 1.1830588551231e-5 - 1.0705114049427e-5 -2.2905734788006e-6 -2.0533926179615e-9 - 1.7796583269639e-7 -6.5009457030032e-7 -7.6731309011831e-7 -4.8566878096457e- 7 -7.7707326259972e- 8 -3.5997972319941e- 1 1 -7.0061016664413e-9 -2.8383013878055e-8 -7.1 187437461377e- 8 -4.9640398832891e- 8 -2.3858908045995e-8 -3.0261079752654e-9 -6.8583007777432e- 13 -2.9462018713796e - 10 - 1.4155344239468e-9 -3.7159990077175e-9 -7.6180660214346e- 9 -3.21 14556425321e-9 - 1.2326268875795e-9 - 1.2881682475439e- 10

0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4
5 0

1 0 2 1 0 3 2 1 0 4 3 2 1 0
5

4 3 2 1 0 6
5

1 2 3 4 5 6 0 1 2 3 4
5

4 3 2 1 0 7 6
5

6 7

4 3 2 1 0

generated by a mixed function of old and new variables, operator-based approaches such as the Dragt-Finn algorithm or the method of Lie transforms provide explicit relations between transformed and untransformed quantities, and so avoid difficulties associated with inversion of implicit relations. General purpose symbolic manipulation programs such as MACSYMA have previously been used to handle the enormous amounts of algebra required to implement perturbation theory to high orders, but can consume unacceptably large amounts of CPU time when treating problems involving more than two degrees of freedom. With these points in mind, we have developed the program PERTURB, which is a special purpose algebraic manipulator written in C for operator based classical perturba-

tion theory. As discussed above, in writing this program we have sought a compromise between specialization of purpose and optimization. The representation of a term in the Hamiltonian or generating function is nearly optimal, in that each term is specified by a small set of numbers. This compactness, along with carefully w r i t t e n sorting routines, enables PERTURB to process terms efficiently. For example, the generalized Henon-Heiles system of Eq. (41)can be quantized to 12th order in less than 40 seconds on a PRIME 9955. Given our representation of a term, we have attempted to produce a programming environment conducive to facile code development. A guiding consideration has been that working formulas should be easily transcribed into programs in PERTURB, without

410

Fried and Ezra


4. M. V. Berry, in Chaotic Behaviour of Deterministic

Table 11. Energy eigenvalues for the generalized


H6non-Heiles Hamiltonian of Eq. (46).
nz
0 0 1 0 1 0 2 1 0 2 1 0 3 2 1 0 3 2 1 0 4 3 2 1 0

n,
0 1 0 2 1 3 0 2 4 1 3 5 0 2 4 6 1 3 5 7 0 2 4 6 8

E"
0.995530 1.686991 2.278174 2.375014 2.958386 3.059504 3.548025 3.634684 3.740358 4.216259 4.306917 4.417465 4.804384 4.880013 4.974915 5.090702 5.459794 5.539065 5.638490 5.759937 6.046451 6.110050 6.193158 6.297431 6.425023

Eb
0.9955 1.6870 2.2782 2.3750 2.9584 3.0595 3.5480 3.6348 3.7404 4.2164 4.3071 4.4176 4.8045 4.8803 4.9753 5.0910 5.4601 5.5397 5.6393 5.7605 6.0468 6.1108 6.1944 6.2989 6.4260

E'
0.9955 1.6870 2.2781 2.3750 2.9584 3.0596 3.5479 3.6347 3.7404 4.2162 4.3069 4.4176 4.8043 4.8799 4.9749 5.0909 5.4597 5.5390 5.6385 5.7601 6.0463 6.1099 6.1931 6.2975 6.4253

Systems, I. Gbrard, R . H. G. Helleman, and R. Stora, Eds., North Holland, New York, 1983. 5. A. J. Lichtenberg and M. A. Lieberman, Regular and Stochastic Motion, Springer-Verlag, New York, 1983. 6. M.V. Berry, in Topics in Nonlinear Dynamics, S. Jorna, Ed., A m . Znst. Phys. Conf. Proc., 46, 16
(1978). 7. E. B. Stechel and E. J. Heller, Annu. Rev. Phys. Chem., 35,563 (1984). 8. G. D. Carney L. L. Sprandel, and C. W. Kern, Adv. Chem. Phys., 37,305 (1978). 9. A. Einstein, Ver. Deut. Phys. Ges., 19, 82 (1917);

a n English translation by C. Jaff6 is available as JILA Report No. 116, University of Colorado, Boulder. 10. M. L. Brillouin, J . Phys., 7, 353 (1926). 1 . J.B. Keller, Annu. Phys., 4, 180 (1958). 1 12. V. 1. Arnold, Mathematical Methods of Classical Mechanics, Springer-Verlag, New York, 1978. 13. V. P. Maslov, Thborie des Perturbations et des Methodes Asympotiques, Dunod, Paris, 1972; V. P. Maslov and M. V. Fedoriuk, Semiclassical Approximation in Quantum Mechanics, D. Reidel, Boston,
1981. 14. J.B. Delos, Adv. Chem. Phys., 65, 161 (1986). 15. C. C. Martens and G. S. Ezra, in Proceedings of

"Calculated using 12th-order Lie transform perturbation theory (this work). bCalculated using 6th-order Birkhoff-Gustavson normal form (Ref. 28t. 'Quantum mechanlcal eigenvalues (Ref. 28).

19th Jerusalem Symposium on Quantum Chemistry, Tunneling, J. Jortner and B. Pullman, Eds., D. Reidel, Boston, 1986. 16. C.C. Martens and G.S. Ezra, J . Chem. Phys., 83,
2990 (1985). 17. C.C. Martens and G. S. Ezra, J . Chem. Phys., 86, 279 (1987). 18. M.C. Gutzwiller, J . Math. Phys., 11, 1791 (1970); J . Math. Phys., 12, 343 (1971); W.H. Miller, J . Chem. Phys., 56,38 (1972); J . Chem. Phys., 63,996 (1975); J . Chem. Phys., 64, 2880 (1976); K.F. Freed, J . Chem. Phys., 56, 692 (1972); K.F. Freed, Faraday Discussions Chem. SOC.,55, 68 (1973); R. Kosloff and K. F. Freed, Chem. Phys. Lett., 84,630 (1981); M. C. Gutzwiller, Physica, 5D, 183 (1982). 19. R. H. G. Helleman and T. Bountis, in Stochastic

excessive worry over details such as memory allocation. The abstract environment supplied by PERTURB allows programs to be written quickly and accurately. Generalization of PERTURB to include division by exBehavior in Classical and Quantum Hamiltonian pressions and integer arithmetic will extend Systems, G. Casati and J. Ford, Eds., Springerits use to a wider range of applications, inVerlag, New York, 1979, p. 353. 20. P. Ehrenfest, Philos. Mag., 33, 500 (1917); B.R. volving perturbation of nonlinear systems. Johnson, J . Chem. Phys., 83,1204 (1985); C. J&6, Applications of PERTURB to semiclassical preprint . quantization of realistic multidimensional 21. E. A. Solov'ev, Sou. Phys. JETP, 48,635 (1978). Hamiltonians will be described e ~ l e w h e r e . ~ ~22. R. T. Skodje, F. Borondo, and W. P. Reinhardt, J .
It is a pleasure to thank C.C. Martens for helpful discussions on Van Vleck perturbation theory. This work was supported by NSF Grant No. CHE-8410685.
Chem. Phys., 82,4611 (1985). 23. C. W. Patterson, J . Chem. Phys., 83, 4618 (1985). 24. T.P. Grozdanov, S. Saini, and H.S. Taylor, Phys. Rev. A 33, 55 (1986). 25. T.P. Grozdanov, S. Saini, and H.S. Taylor, J . Chem. Phys., 84,3243 (1986). 26. M. Born, Mechanics of the Atom, Ungar, New York, 1960. 27. G.C. Schatz and T. Mulloney, J . Phys. Chem., 83, 989 (1979). 28. R. T. Swimm and J. B. Delos, J . Chem. Phys.,7l, 1706 (1979). 29. C. Jaff6 and W. P. Reinhardt, J . Chem. Phys.,71, 1862 (1979). 30. R. Ramaswamy, P. Siders, and R. A. Marcus, J. Chem. P ~ Y s .73, 5400 (1980); see also S. Saini, , Chem. Phys. Lett., 125, 194 (1986).

References
1 I. C. Percival, Adv. Chem. Phys., 36, 1(1977). . 2. N. C. Handy, in Semiclassical Methods in Molecu-

lar Scattering and Spectroscopy, M. S . Child, Ed., D. Reidel, Dordrecht, 1980. 3. R.A. Marcus, Annu. Rev. N.Y. Acad. Sci.,357, 169 (1980);D. W. Noid, M. L. Koszykowski, and R. A. Marcus, Annu. Rev. Phys. Chem., 31, 267 (1981).

PERTURB: An Algebraic Manipulation Program

411 42. B. W. Kernighan and D. M. Ritchie, The C Programming Language, Prentice-Hall, Englewood Cliffs, NJ, 1978. 43.B.R. Miller and A. Deprit, in Proceedings of Conference on Computers and Mathematics, May 1986. 44.A. J. Dragt and J. M. Finn, J . Math. Phys., 17,2215 (1976). 45.A. J. Dragt and J. M. Finn, J . Math. Phys., 20, 2649 (1979). 46.A. J. Dragt and E. Forest, J . Math. Phys., 24,2734 (1983). 47.J.R. Cary, Phys. Rep., 79,129 (1981). 48. A. Deprit, Cel. Mech., 1, 1 (1969). 2 49.G.Hori, Pub. Astron. Soc. Jpn., 1 ,287 (1966). 8 50.D. Papousek and M.R. Aliev, Molecular Vibrational-Rotational Spectra, Elsevier/North Holland, New York, 1982. 51. L. Fried and G. Ezra, work in progress. S. 52.A.V. Aho, J. E. Hopcroft, and J. D. Ullman, Data Structures and Algorithms, Addison-Wesley, Reading, MA, 1983.

31. C. Jaff6 and W.P. Reinhardt, J . Chem. Phys., 77, 5191 (1982); R.B. Shirts and W.P. Reinhardt, J . Chem. Phys., 77, 5204 (1982);W.P. Reinhardt and D. Farrelly J . Phys. ((2011.) 43, C2-29(1982). 32.T. Uzer, D.W. Noid, and R.A. Marcus, J . Chem. Phys., 79,4412 (1983); also, J. N. L. Connor, T see . Uzer, R.A. Marcus, and A.D. Smith, J . Chem. Phys., 80, 5095 (1984). 33.J.A. Saunders, J . Chem. Phys., 74,5733 (1981). 34.M. Robnik, J . Phys. A 1 , 109 (1984); Robnik 7 M. and E. Schriifer, J . Phys. A, 1 ,L853 (1985). 8 35. D. W.Noid, M. L. Koszykowski, and R.A. Marcus, J . Chem. Phys., 78,4018 (1983). 36.T. Uzer and R. A. Marcus, J . Chem. Phys., 81,5013 (1984). 37.L.E. Fried and G.S. Ezra, J. Chem. Phys. (in press). 38.F. G. Gustavson, Astron. J., 71,670 (1966). 39. W. P. Reinhardt, J . Phys. Chem., 86, 2158 (1982). 40. D. Farrelly and T. Uzer, J . Chem. Phys., to be published. 41.S.E. Koonin and R.D. Williams, Nucl. Phys. A, 391. 72 (1982).

Potrebbero piacerti anche