6.65 Associated Legendre functions (24.9.99)

6.65.1 TANGUY Christian
6.65.2 Helmut Kahovec (30.9.99)

6.65.1 TANGUY Christian

There seem to be something curious about the associated Legendre function of the first kind, LegendreP(v,u,x) (I am using version 5.1 on a PC under NT 4.0):

> g1 := sum('binomial(2*n+1,2*k+1)*2^(3*k)','k'=0..n); 
 
                                       (3/4)     n 
         g1 := 1/8 (2 n + 1) sqrt(Pi) 8      (-7)  LegendreP(n, -1/2, -9/7)
 

let us see g1 for n=0 and 1

> for n from 0 to 1 do g1 od; 
 
                                    (3/4) 
                             -2 (-1) 
 
                            (3/4) 
           - 21/8 sqrt(Pi) 8      LegendreP(1, -1/2, -9/7)
 

first surprise, we would have expected 1 and 11, respectively, and certainly not a complex number in the case n=0. I found no way to obtain the answers expressed as integers, so I decided to force the floating point evaluation of g1

> for n from 0 to 3 do evalf(g1) od; 
 
                     1.414213562 - 1.414213562 I 
 
                             22.00000000 
 
                             298.0000001 
 
                             4286.000004
 

Hmmm, truncation errors... AND, apart from the spurious complex value for n=0, what seems to be TWICE the correct result.

Let us try something else, using the inert operator Sum.

> g1b := Sum(binomial(2*n+1,2*k+1)*2^(3*k),k=0..n): 
> for n from 0 to 3 do value(g1b) od; 
 
                                  1 
 
                                  11 
 
                                 149 
 
                                 2143
 

correct results at last!

In fact, the result is the sum of the nth powers of 9 +- 4sqrt(2) with appropriate coefficients. It can also be calculated using

h := proc(n) option remember; 
if n<2 then 10*n+1 
else 18*h(n-1)-49*h(n-2) 
fi 
end;
 

I have two questions:

- why are the LegendreP functions used in the simplification of sums when even the Help about them acknowledges that their definition is a bit tricky, with _EnvLegendreCut being -1..1 or 1..infinity?

- is the numerical evaluation of these functions correctly implemented? LegendreP(0,-1/2,cos(phi)) differs from 2*sqrt(tan(phi/2)/Pi), as given in the Gradshteyn-Ryzhik (eq. 8.753.1).

6.65.2 Helmut Kahovec (30.9.99)

Apparently there is a bug in Release 5 concerning Legendre functions. Release 4 uses hypergeometric functions for the sum:

> restart; 
> g1a:=sum(binomial(2*n+1,2*k+1)*2^(3*k),k=0..n); 
 
         g1a := (2 n + 1) hypergeom([-n + 1/2, -n], [3/2], 8) 
 
> for n from 0 to 3 do simplify(g1a) od; 
 
                                  1 
                                  11 
                                 149 
                                 2143
                                                                                    
                                                                                    
 

This is the correct result.