8.16 Chebyshev Polynomials (15.10.96)

8.16.1 Wanjun Mi
8.16.2 Robert Corless
8.16.3 Ferdinand Gleisberg

8.16.1 Wanjun Mi

I have been working on the following problem for several days:

Given L(x):=(x^2-1)* diff( T(n,x) ) / ( x- c) where \(T(n,x)\) is the nth order Chebyshev polynomial and c is constant.

I try to evaluate diff( L(x),x) and diff(L(x),x,x,x,x) at certain x,including x=c.

How can I get simplifed results? Has anyone written packages that rewrite expressions such as diff(T(n,x),x),etc in terms of { T(i,x),i=0...n-1 )?

8.16.2 Robert Corless

Wanjun Mi asks how to differentiate Chebyshev polynomials. The code to do this is on p. 68 of my book "Essential Maple". I’ve just re-typed this here (it’s short enough that that is easier than finding my package, so watch out for errors):

`diff/T` := proc(k, expr, x) 
  local j, ans; 
  if not type(k, 'integer') then 
    'diff(T(k,expr), x)' 
  elif k=0 then 0 
  elif k<0 then diff(T(-k,expr),x) 
  elif k=1 then T(0,expr)*diff(expr,x) 
  else 
    ans := -k*((-1)^(k-1)+1)/2*T(0,expr); 
    for j from 0 to trunc((k-1)/2) do 
      ans := ans + 2*k*T(k-1-2*j, expr); 
    od; 
    ans*diff(expr, x) 
  fi 
end:
 

Now diff(T(5,x), x) returns the derivative in terms of T(0,x), T(2,x), and T(4,x).

More on Chebyshev polynomials coming up in Symbolic Recipes Vol II (as soon as Vol I is finished).

8.16.3 Ferdinand Gleisberg

I don’t have packages for your problem, but may be some hints are useful for a novice:

1)  Start with command: 
 
        with(orthopoly); 
 
    to have a bulk or orthonormal polynomials available. 
 
2)  Then avoid the name L in your session 
    (it's reserved for another polynomial) 
 
3)  Never define a function like this: L(x):=(x^2-1)*... 
    Use instead: 
 
    f:=x->(x^2-1)* ... ; 
 
    Then use f(x), f(2.5), ... 
 
4)  To simplify relations which contain   diff( L(x), x, x, ... ) 
    you have either to make n in T(n,x) explicit e.g. 5 or 10 or so 
    or (you don't have to write a package for that) define an 
    equation like (I hope I did not overlook that this relation 
    is already present somewhere inside Maple Rel. 3): 
 
    eq:=diff(T(n,x),x)= (... * T(n,x) + ... * T(n-1,x))/(1-x^2); 
 
    (see the handbook of Abramowics/Stegun for the details) and 
    then use '' substitute '', e.g. 
 
    subs(subs(n=m,eq),diff(T(m,x),x)); 
 
    (do you understand the meaning of the "double" substitution?).