You are on page 1of 17

Konrad-Zuse-Zentrum fr Informationstechnik Berlin Heilbronner Str.

10, D-10711 Berlin - Wilmersdorf

Wolfram Koepf

E f c i e n t Computation of Orthogonal Polynomials in Computer Algeb

Preprint SC 95-42 (December 1995)

E f c i e n t Computation of Orthogonal Polynomials in Computer Algeb


Wolfram Koepf
koepf@zib-berlin.de

Introduction
rthogonal polynomials can be calculated by computation of determinants, by the use of generating functions, in terms of Rodrigues formulas, by terating recurrence equations, calculating the polynomial solutions of differential equations, through closed form representations and by other means. In c o m p u e r algebra s y s e m s all these methods can be i m p l e m e n e d . Depending on the appli cation on might need 1. on (or many) of these polynomials in any form or specifcally in expanded form,

2. t h exact rational value of one of thes polynomials at a certain rational point, . or a decimal approximation of the value of one of these p o l n o m i a l s at a certai point.

In this article, we give an overview abou t h eficiency of the above methods in Maple, Mathematica, and R E D U C E . As a noncommercial package we nclude the MuPAD s y s e m . MuPAD is freely d i s t r i b u e d for non-commercial use within the scientific community. Primarily we study t h plementation of the Chebyshev polynomials of the frst kind as an exampl case. irst, we consider the builtin implementations of the Chebyshev polynomials in these systems. Next we study the classical algorithms beginning with the slow ones, and leading to the e f c i e n ones. Finally, we finish with a new algorithm based on a divide and conquer approach which has a remarkable complexty. In particular, we will show t h a to obtain the expanded form of one of t h Chebyshev polynomials an iterative use of ts power series representation is most e f c i e n t , for numerical purposes (both rationally exact, and decimal approximation) a divide and conquer approach t h a t is available for Chebyshev polynomials is much preferable. This approach, however, is not e f c i e n t if t h expanded form of t h polynomial is needed. We present all algorithms as short Maple programs. The other implementations of this articl may be obtained from the author.

The C h e y s h e v P l y n o i a
Th Chebyshev polynomials Tn(x) of the frst k n d are defned by T n (cosi) = cos(nt) , hence Tn(x) = cos(narccosx) . 1)

They form a family of polynomials that are orthogonal with respect to the scalar product
</ 9) = J (x) g(x) /Y~7X2

with the weight function

1 a

' ,

and with the standardization To = 1 and {x)-=== = i (n>l).

Kbytes 10 100 10 2000 3000 004 kB 15 528 1364

Table 1: T h e size of Tn(x) Tn(x) form polynomials with i n e g e r coeficients whose size grows rapidly with increasing n. The coefficient of x equals 2 , for example. Hence t h expanded polynomials need a lot of storage space. Table 1 shows the b y e sizes of Tn(x) in nput form. The Chebyshev polynomials have the nice property T n ( l ) = 1. This can be used to check the accuracy of the numerical computations. For further details about thes and other families of orthogonal) polynomials we refer the reader to [2], 22, [6], [7] and [8]. All timings are given in PU-seconds t r u n c a e d to three digits, and were calculated on a SUN Sparc 10 with 85 MByte memory under SunOS 4.1.3 with the versions Maple V.3, Mathematica 2.2, R E D U C E 6 1 and MuPAD 1.2.2. W issued the statements in separate sessions to avoid the influence of memory configurations, in particular the use of remember tables. T h e x sign in ou tables indicates t h a t there was no response within one hou PU-time, or memory overflow occurred. Numerical calculations were done with 16 signifcant digits if not s t a e d otherwise. The Chebyshev and other classical families of orthogonal polynomials are accessible in Mapl ( o r t h o p o l y [ T ] ) , Mathematica (ChebyshevT), R E D U C E ( l o a d s p e c f n ; ChebyshevT) and MuPAD ( o r t h p o l y : : c h e b y s h e v l ) . Table 2 shows the calculation times of Tn(x) by the builtin procedures. All four s y s e m s give the ouput as expanded polynomials. Tables 3-4 show the calculation times of T n ( l ) in exact and approximate modes, respectively. Note t h a t R E D U C E with on r o u n d e d did not calculat accurate a p r o x i m a t i o n s for large n, i n d i c a e d in Tabl by the symbol O. This bug is fixed by now.
All REDUCE calculations had been done with l i s p supersparcO ; to have access to the SuperSparc hardware arithmetic. A corresponding patch is available via anonymous ftp f o m f t p z i b - b e r l i n d e in the diector pub/redlib/patches.
1

Mapl 10 100 500 1000 5000 000 20 2850 34700

Mathematic 001 11 43 3 1610 3 64700 3

REDUCE 005 83 1 28800

MuPAD 014 10 11600 50600

Table 2 Builtin Chebyshev Polynomials Calculation of Tn{x Not t h a t t h invocation of t h systems: calculation Tn(x) has q u i e differen consequences in the fou

M a p l e calculates all consecutive Chebyshev polynomials T^ (x) (k 0 . . , n) in expanded form if Tn(xo) is issued for some xo, and puts these in memory by the remember function. Hence the computation times are almos equal in any of t h three different situations. This procedure has the obvious advantage t h a t all c o m p u e d functions are immediately available a f e r w a r d s . n the other hand, as a disadvantage the memory is full as soon as one has issued a single computation with high enough B N even if only this particula resul is needed. M a t h e m a t i c a calculaes a particular Tn[x) if issued, and uses no remember tables. For numerical computations, b o t h exact and a p p r o x i m a e , Mathematica uses a different algorithm which is much faster. R E D U C E calculaes a single Tn(x M u P A D also calculaes a single Tn(x Mapl 10 100 500 1000 50 104 105 106 107 Table 002 28 2790 35300 if issued, and uses no remember tables. if issued, and uses no remember tables. REDUCE 005 40 28 2490 MuPAD 012 34 12100 1400

Mathematic 000 00 00

13 128 1283 12700 l)

Builtin Chebyshev Polynomials Calculation of

As a consequence of thes considerations, Mathematica seems to have the most e f c i e n t builti implementation of the Chebyshev (and other families of orthogonal) polynomials. On the other hand, as we will see, appropriate implementations enable Maple, R E D U C E and MuPAD to calculate Tn(x) for large n much faster t h a n Mathematica.
with the setting $RecursionLimit=Inf i n i t y . If the user doesn't redefine $RecursionLimit, for n > 494 no results are obtained
3

Maple uses t h

t h r e e - e r m recurrence equation to obtain the polynomial list. Tabl Mapl 10 10 500 1000 5000 104 105 106 000 2870 34700 Mathematic 001 11 2 103 205 100 1000 4 REDUCE 005 MuPAD 007 12500 1000

8 of

Tabl

Builtin Chebyshev Polynomials: Approximation of

l)

gives a fair comparison for this approach between the four s y s e m s , which shows that for large n N Mathematica is faster for this approach and can c o m p u e a larger list t h a n Maple. However, since the memory and storage requirements are so immense, we think t h a t an eficien computation of a single Tn(x) is the most importan task. Hence we are mainly i n e r e s e d to compare the e f c i e n c y of the computation of Tn(x) for large n (as large as the computer memory of today's computers allow), and we do not deal with the computation of lists of all Tk(x) (k = 0 , . . . , n ) , but mainly with t h computation of a single Tn(x). In the following sections, we will consider t h e f c i e n c y of different approaches to calcula

Tn[x).

etermnants
Th Chebyshev polynomials have t h representation

-1

2x

-1 2x

-1 -1 2x -1 -1 2x

Tn[x)

as the determinant of an n x n almost) b a n d - m a r i x . In Maple, this is given as


with(linalg): hebyshevT:=proc(n,x) local f,A; A:=band([-l,2*x,-l],n); A[l,l]:=x; RETURN(det(A)); end:

Th

codes in Mathematica, R E D U C E and MuPAD can be defned analogously. lt 0.

All classical families of orthogonal polynomials have similar representations. Expanding t h above determinant y e l d s the wellknown t h r e e - e r m recurrence equation for Tn(x) which w consider in 6. To calculate Tn{x) via the above determinant is inherently ineffective since the computation of determinants of large matrices is very expensive. Obviously the special s r u c t u r e of t h Chebyshev polynomials is not s u f c i e n t l y utilized by this approach. Mapl 10 50 10 15 200 045 23000 Mathem 016 REDUCE 003 07 47 64600 ofTn(x MuPAD 2100 6

Table 5 Determinant Computation

For the sake of completeness, we give the timings for the determinant approach in Table 5. Determinant computations are very slow in Maple, Mathematica, and MuPAD, whereas RED U C E calculates Tiooo(l) m 78 seconds by this approach. Tn(x) cannot be computed for generic x with any of the four s y s e m s for n > 00.

enerating Functions
The function
/ n=0

is the generating function of the Chebyshev polynomials. By Taylor' theorem, one can therefore c o m p u e Tn(x) as T.(.) = n! In Mapl this is given as
hebyshevT:=proc(n,x) local F,z,Dn; F:=(l-x*z)/(l-2*x*z+z~2); Dn:=diff(F,z$n); RETURN(subs(z=0,Dn)/n!) end:

Note t h a t other t h a n the determinant approach the generating functions approach in principl is capable to c a l c u l a e the polynomial system iteratively. Table 6 gives the timings for the calculation of a single Tn(x) with this approach. R E D U C E brings each terated derivative of F(z to a rational normal representation which is qui expensive. Maple and Mathematica do not use such normal representations, hence they are much f a s e r . On the other hand, Maple fails very soon because of emory overflow: t h
with on cramer;. MuPAD's output is not in normalized polynomial form. This normalization can be done by normal, but needs e x t a time. this time with off cramer;
6 5

erated derivatives are too large objects. This is even wors if one defines :=((l-z~2)/(l-2*x*z+z~2)+l)/2, and hence in this case the timings are worse, too. The generating functions approach is littl better t h a n the determinant approach in c o m p u e r algebra s y s e m s without rational normal representation, but still is qui inefcient. Mapl 10 50 10 300 400 500 003 93 20 Mathematic 038 70 16 37100 68200 110100 REDUCE 8 MuPAD 9 022 11100 188

Tabl 6: Generating Function Computation of Tn(x

odrigues Formulas
Th Chebyshev polynomials have the Rodrigues representation (x) In Mapl this is given as hebyshevT:=proc(n,x) normal((-2)"n*n!/(2*n)!*sqrt(l-x~2)*diff((l-x~2)*(n-1/2),x$n)) end: All classical families of orthogonal polynomials have a similar Rodrigues representation. T h complexty is comparable to the one of the last section. The iterated derivatives of 1 2 ) 1 ' 2 , however, are simpler functions t h a n the derivatives of (z) so t h a the timings are b e t e r . I particular, this time the rational normal representation in R E D U C E is useful since t keeps the memory size small, see Tabl 7. Mapl 10 100 200 300 500 1000 Tabl 005 70 2398 8560 Mahe 015 1360 6010 13800 54 43100 200000 R E C E 005 85 1960 4980 10 19000 137500 10 MuPAD 212 2490 12700 40900 l) 2n

yr

: Rodrigues Formula Computation of Tn (x)

with off exp;. MuPAD's output is not in normalized polynomial form. This normalization can be done by normal, but needs extra time. 10 with set_heap_size 3000000;
9

ecurrence Equations
Now, we start to discuss the methods that are more efficient. The frst such method is the us of the recurrence equation Tn{x) = 2xTn(x) - Tn(x 2) with the initial functions T0(x) = and {x) = x rigonometric identity Not that via 1) this recurrence equation is equivalent to th

cos(nt) = 2cosi cos(n l)t) cos(n 2)i) .


Mapl 10 100 500 1000 2000 001 29.10 344.00 Mathematic 005 2 53.60 173.00 124600 REDUCE 002 11 28.2011 MuPAD 005 55 90.30

Tabl

: Recursive Computation

ofTn(x

With r e m e m r , w can use 2) recursivel by the Mapl procedure


hebyshevT:=proc(n,x) option remember; if n=0 then 1 e l i f n=l then e l s e expand(2*x*ChebyshevT(n-1,x)-hebyshevT(n-2,x)) fi end:

The remember option gives recursive rograms linea complexity since all calculations are don exactly once. Table 8 shows the timings for this approach. REDUCE generaes variable stack overflow. The timings for Maple are comparabl to those in Tabl 2, since this is Maple's builtin strat egy. As already mentioned, the remember feature has the disadvantage that all previously calculaed T^(x) have to be stored. Therefore the memory requirements are immense. One might have the idea to us th recurrence equation without expanding intermedia results. Indeed, this decreases th cost by the cost of the expansion, but it generaes so huge expressions that t turns out not to be a good idea at all, and the resulting expression is difcult to handl even for small n. Already T2o eeds more than 80kB of storage space with this approach, compare Tabl 1. Their complicaed esed structure makes an evaluation of these objects very time consuming. The following erative approach
hebyshevT:=proc(n,x) local T,i; if n=0 then e l i f n=l then T[-2]:=l; T[-l]:=x;
11 12

else

with set_bndstk_size(100000); lisp setq(simplimit!*,100000);. forthcoming vesion of REDUCE will include a remember option like the other systems

for from t o n do T[0]:=expand(2*x*T[-l]-T[-2]); T [ - 2 ] : = T [ - 1 ] ; T [ - l ] :=T[0] ; od; fi; RETURN(T[0]); end: remembers only the last two polynomials and does therefore not g e n e r a e memory overflow. Hence t h timings are much b e t e r . Mapl 10 100 1000 2000 4000 001 26 18900 124600 Mathem 005 16 1600 108700 24 REDUCE 000 44 3930 20700 54 117700 MuPAD 007 74 54400 281400

Table 9: I e r a t i v e Computation

oTn(x)

This is until now by fa the most successful approach. All the systems do rather well, with R E D U C E being most successful On the other hand, with none of the s y s e m s one can calculate iooooOs) using this approach. In the following sections, w consider ethods with which this is possible.

ifferential Equations
The Chebyshev polynomial Tn(x is the uniqu polynomial solution of the differential equation = 0

l - x f " ( x ) - x f ' ( x ) ( x ) with the initial valu if n is odd

(_1) jf n i s e v e n In [1] a very e f c i e n t algorithm to calculate the polynomial and rational solutions of certain operator equations was published, in particular for l i e a r ordinary differential equations with polynomial coeffcients like (3). Using the Maple implementation r a t l o d e of this algorithm, written by M. B r o n s e i n , and availabl the Maple share library [ , one gets t h timings of Table 10. Mapl 10 100 1000 10000 050 60 736 1200 oTn{x)

Table 1 : Differential Equations Computation

T h results are again given as expanded polynomials. Note t h a t this algorithm is the frst one to break t h complexity barrier in calculating Tn(x) for n > 10000. Moreover TIQQQ(X) is c a l c u l a e d in no more t h a n a few seconds! In the next section, we will see t h a t with more direct a p r o a c h even b e t e r timings are possible.

Serie

epresentations

Since Tn(x) for fixed n N is a polynomial, any closed form series representation might be helpful to calculate it. Several closed form series representations for T(x) are known of which we only utilize the Taylor expansion at x = 0
2

( - A - - 1 V
v

-<" = I < ! > & 5 ^ * >


=o
'

This representation has the advantage over others that is contains only [n/2] summands rather t h a n n. It corresponds exactly to the expanded polynomial which was the o u p u t of t h preceding algorithms anyway. Representation can be c a l c u l a e d by the Maple procedure 1 4 hebyshevT:=proc(n,x) local k,result; if n=0 then RETURN(1) fi; if n=l then RETURN(x) fi; result:=0; for k from to n/2 do result:=result+n/2*(-1)~k*(n-k-1)!/k!/(n-2*k!*(2*x)"(n-2*k) od; RETURN(result); end: This implementation yields t h timings of Table 11. Mapl 10 100 10 2000 3000 4000 003 28 70 33500 134800 340600 Table 11: 25100 78900 17100 62600 234000 Mathematic 001 33 REDUCE 003 37 MuPAD 008 38

eries Computation of

Tn(x)

T h timings are worse t h a n the timings of the last section. This behaviour is due to the fact that the calculation of the coefficients

The a l g i t h m e x s in p s of x a ertn a t t ren s i t n a = is chosen. 14 If one uses the sum command for large n, then Maple tries to find a closed form for the sum, without ucces hence we use a for loop. M a p l s timings are much better with the add procedure of Maple V 4

13

2]

of Tn(x)

^ is rather expensive: For any k = 0 [n/2] large factorials have to be k=o calculaed in both numerator and denominator, and fnally the fraction has to be converted to lowest terms. Since the coeffcients ^ are integers, this procedure has a large overhead which can be o m i e d if one calculaes eratively. Since th erm ratio is given by (n the series computation + 2)(n Akx{n-k) l)
)

can be done alernatively by the Mapl procedure

hebyshevT:=proc(n,x) local k,tmp,result; if n=0 then RETURN(1) fi; if n=l then RETURN(x) fi; mp:=(2*x)~/2; result:=tmp; for k from 1 to /2 do tmp:=-tmp/4/k*(n-2*k+2)*(n-2*k+l)/x~2/(n-k); result:=result+tmp od; RETURN(result); end:

Note that this approach can always be used if polynomials are given as hypergeometric series, which applies to all classical orthogonal polynomials. t turns out that this implementation by far is the most efcient way to calculat the expanded polynomial Tn(x) for large n N. Maple, REDUCE as well as MuPAD are very efcient in doing so, and leave Mathematica far behind them. On the other hand, the timings of Tables 2 and 12 suggest tha this is exactly th way how Mathematica's builtin implementation calculaes th Chebyshev polynomials. 15
Mapl 10 100 10 10000 20000 000 05 30400 176100 28 Mahe 001 25 165 302700 R E C E 003 18 20300 1600 127 MuPAD 0.02 13 50000 228200

Table 12: Iterative Series Computation of Tn(x The given iterative algorith gives a clue why the algorithm of Abramov, Bronstein and Petkovsek [1] presented i the last section is so fast: Their algorithm is based on the iterative computation of series representations, and it calculaes Tn{x) similarly as considered here.

ivde and Conquer A p r o a c h


In this section, we leave the road of trying to find the polynomials in expanded form. Since ) forms an alernating series with huge integer coefficients, by cancellation t cannot be used
Actually, Mathematica seems to calculat $RecursionLimit is involved
15

ak recursivel

ather than iteativel

by means of (5) since

for numerical purposes when using decimal representations of fixed precision, and t is rather ineffcient when using exact integer arithmetic. We will find a way to c a l c u l a e Tn (x) very e f c i e n t l y in a non-expanded form which furthermore elds also an efficient representation for numerical purposes. Therefore we utilize the formula ee e.g. [2] 22.7.24) 2 Tn(x) T(x) = Tn+(x+Tn(x (n > TO) . mplementation (6)

Using (6) for T = n and T = n 1, we get the Mapl

hebyshevT:=proc(n,x) option remember; if n=0 then 1 e l i f n=l then e l i f type(n,even) then 2*ChebyshevT(n/2,x)~2-l e l s e 2*ChebyshevT((n-1)/2,x)*ChebyshevT((n+1)/2,x)-x fi end: This is a typical divide and conquer approach since the problem of size n is carried out by t h computation of (at most) 2 subproblems of size n / 2 . W t h this approach it is necessary to us t h remember feature since otherwis i n t e r m e d i a e computations have to be carried ou several times, resulting in exponential complexty. the other hand for n = 10 15 e.g., onl 50 iterations are necessary. Table f shows t h timings for this a p r o a c h . Mapl 1000 106 10 1012 10 000 03 06 05 Mathem 005 10 16 2 25 REDUCE 2140 MuPAD 004 07 11 15 20 (x)

Table 1 : Divide and Conquer Computation of The effciency of the method is due to the fact t h a Tn(x) for large n. For T o o o ^ ) ) we have for exampl
() oo(20

yields very small representations of

= 2(2(2(2(2( (2 x (2 x
2

- x )(2(

(2 x - 1

l ) - x) y -

x)

( 2 y ) - x 2 (2 (2 x (2 x )

- x) ( (2 x - 1

- x

- x

(2y)-x(2y2-l
where y is an a b r e v i a t i o n for y= 2
with off exp;

- x - xf

- l

- 1

11

This obviously is a very compact way to write Tiooo(^)> compare with Table 1. Note t h a expansion of these expressions cannot be done with similar e f c i e n c y as t h direct approach that we considered in the preceding section. R E D U C E internal representation makes many evaluations of the expressions c o m p u e d nec essary, hence the timings are bad. Note t h a t the given representations furthermore enable the fast rationally exact calculation of Tn(xo) for XQ , and not too large n N , compare Table 16, e.g. 18
00

/1\ \J

251216227142750476878317151377 25120045645880299406410752

Tables 14-15 give t h timings of the exact and approximative calculations of T n ( l ) with t h current approach. These show that this is a very e f c i e n t way to c a l c u l a e the Chebyshev polynomials accuraely, in particular with rationally exact results. O the other hand, t h complexity of the calculation depends heavily on the complexity of the output. Since T n ( l ) = 1 was very simple, t h calculation was done almost instantly. If we c a l c u l a e Tn(xo) for rational i o / 1, then t h result typically is a rational number with huge numerators and denominators. Hence t h timings are much slower in these cases, the reason of which is the complexty of the result and not of the algorithm, though. Mapl 1000 10 10 1012 10 Table 14 003 03 05 Mahe 005 10 18 2 2 R E C E 006 20 71 MuPAD 004 08 1 1 19

ivide and Conquer Computation of T n ( l ) Mathem 006 16 20 28 R E C E 008 27 56 112 1 MuPAD 0.03 08 10 1 20 l)

Mapl 1000 106 10 1012 10 003 05 05 06

Table 15: Divide and Conquer Approximation of

In Table 16, we present the timings for the calculation of T n ( l / 4 ) , and in Tabl 17, the number of digits of b o t h numerators and denominators of the corresponding results are given. Furthermore, the method gives a very fast algorithm to compute high precision approximations for high n, e . g . 0 0 2 5 ) = 07208079782290876405505280948925418987994968000. . Note that the algorithm is much f a s e r t h a n Mathematica's builtin approach, see Tables
18 19

-4.

The numerators and denominators of TioooC^o) are too large to be presented here compare Table 17 Mathematica returns the wrong result 0.0 for n > 10 Try to calculate this with any other method!

12

Mapl
1000 104 10 106 003 48 3970

Mahe
005 13 208 7610

RECE
027 1010

MuPAD
007 185 1700

Table 1 : Divide and Conquer Computation of


mer. digits 1000 104 105 106 300 3010 30103 301029 enom. digits 301 3010 30103 301030

l/

Table 1 : Numerator and Denominator Size of

l/

How accurate are these computations? Table 18 gives the number of correct digits of th calculations of Tn (025), done with a precision of 16 digits, and the system specific approximate modes (evalf in Maple, N in Mathematica, on rounded in REDUCE, and f l o a t in MuPAD).
Mapl 1000 106 10 1012 10 14 11 Mahe 15 11 R E C E 18 15 11 MuPAD 18 15 11 10

Table 1 : Accuracy of Approximations of Tn ( 2 5 ) The table shows that the presened divide and conquer algorithm s rather wellconditioned ( e e e.g. [4]), hence the algorithm can be applied for quit large n N, up to n 106, say, without any further precautions. Unfortunately, such a divide and conquer approach is not available for all classical orthogonal polynomials. The Chebyshev polynomials of the second type Un(x), however, can be calculaed in a similar way by the identities ( e e e.g. [2] 22.6.26), 22.6.28) (x) = U+{x) for TO = 1 and 2Tn(x)Un{x) These give the Mapl implementation
hebyshevU:=proc(n,x) option remember; if n=0 then 1 elif n=l then 2*x elif type(n,even) then 2*hebyshevT(n/2,x)*ChebyshevU(n/2,x)-l else 2*ChebyshevU((n-l)/2,x)*ChebyshevT((n+l)/2,x) fi end:

+U { x

> t

U(x)

10

Conclusion

O r article presents algorithms for t h computation of orthogonal polynomials, especially Chebyshev polynomials, with which one can break the complexty barrier, and receive results that are not available with previously i m p l e m e n e d algorithms. r considerations show: 1. The emcieny of a specific ethod does not only depend on the underlying algorithm, but also heavily on the specifics of the c o m p u e r algebra system used. Here in particula the internal representation plays an mportant role, but also the efficiency of utilized subalgorithms (determinant computation in Tabl 5, computation of factorials of large i n e g e r s in Table 11, . is an issue. 2. E f c i e n t symbolic and efficient numeric computation mostl require different algorithms. . Remember options can enhance efficiency in specific situations, but often iterative programs are more adequate and f a s e r since memory should be used carefully in c o m p u e r algebra to avoid overflow. 4. For the computation of numerical values of the Chebyshev polynomials, b o t h rationally exact, and decimal approximation, the presented divide and conquer algorithm is mos eficient. The same applies to the computation of Tn(x) and Un(x) if the expanded form is not required. 5. If the expanded form of an orthogonal polynomial is needed, then the iterative use of t h closed form series representation is most efficient. This applies also to the computation of orthogonal p o l n o m i a l s for which no divide and conquer approach is available.

cknowledgments
I would like to thank Peter Deuflhard who initiated my s t u d e s on the given topic for his encouragement and support, and Winfried Neun for his help with R E D U C E .

14

ferenc
Abramow, S. A., Bronstein, M., Petkovsek, M.: On polynomial solutions of linear oper ator equations. Proc. of ISSAC 95, ACM ress, New York, 1995, 290296. Abramowitz, M. Stegun, I. A. 1964). Handbook of Mathematical Functions. Dover Publ, New York. ronsein, M.: r a t l o d e . Maple share library, 1995. Deuflhard, P., Homann, A.: Numerical Analysis. A First Course in ScientiEc Computation. Walter d ruyer, Berlin-New York, 1995. Melenk, H.: Th complexty barrier in REDUCE - a case study. Konrad-Zuse-Zenrum fr Informationsechnik Berlin (ZIB), Technical Report TR 94-06, 1994. Rivlin, Th. J.: The Chehyshev Polynomials. Pure & Applied Mathematics. John Wiley & Sons, New York-London-Sydney-Toronto, 1974. Szeg, G.: Orthogonal Polynomials. Amer. Math. Soc. Coll Publ. Vol. 23, New York ty, 1 9 9 . Tricomi, F. G : Vorlesungen ber Orthogonalreihen. Grundlehren der Mathematischen issenschafen 76, Sringer-Verlag, Berlin-Gttingen-Heidelberg, 1955.

15

You might also like