1/* Filename <name>.mac
2
3   ***************************************************************
4   *							         *
5   *                     <package name>                          *
6   *                <functionality description>                  *
7   *                                                             *
8   *          from: Computer Algebra in Applied Math.            *
9   *                   by Rand (Pitman,1984)                     *
10   *                Programmed by Richard Rand                   *
11   *      These files are released to the public domain          *
12   *            						 *
13   ***************************************************************
14*/ /*   This program uses recursive functions to find
15the transition curves in Mathieu's equation.  To call it,
16type:
17                        TC()
18*/
19
20tc():=(input(),sign:1,find(),IF n > 0 THEN (sign:-1,find()))$
21input():=(n:read("ENTER TRANSITION CURVE NUMBER N"),
22      m:read("ENTER DEGREE OF TRUNCATION"))$
23find():=(delta:n^2/4,for i thru m do delta:delta+d[i]*e^i,
24     print("delta=",delta),print(" "))$
25a[j,k]:=IF j < 0 OR k < 0 THEN 0
26   ELSE (IF j = 0 AND k = n THEN 1
27	     ELSE (IF j = 0 THEN 0
28		       ELSE (IF k = n THEN 0
29				 ELSE (IF k = 0
30					   THEN (-a[j-1,2]/2
31					   -sum(d[i]*a[j-i,0],i,1,j))
32					   /(n^2/4)
33					   ELSE (-(a[j-1,k-2]
34					   +a[j-1,k+2]+sign*a[j-1,2-k])
35					   /2
36					   -sum(d[i]*a[j-i,k],i,1,j))
37					   /((n^2-k^2)/4)))))$
38d[j]:=IF n = 0 THEN -a[j-1,2]/2
39   ELSE -(a[j-1,n-2]+a[j-1,n+2]+sign*a[j-1,2-n])/2$
40