# Question:Not all the zeros of LegendreP are computed

## Question:Not all the zeros of LegendreP are computed

Maple 2015

Hi,

Working with Legendre Polynomials (LegendreP) I observed that solve doesn't find the correct number of zeros.
More precisely, for N > 17, solve(LegendreP(N, x)) finds less zeros than N.

I wrote a procedure based on a theorem about the intertwined location of the zeros of orthogonal polynomial of successive degrees. So this problem is not blocking, but I would like to understand while solve(LegendreP(N, x)) doesn't always do the job.

 > restart:
 > Z := n -> op~(2, { allvalues(solve(LegendreP(n,x))) } );
 (1)
 > Digits:=10: Z(17): numelems(%);
 (2)
 > Z(18): numelems(%);
 (3)
 > Digits:=15: Z(18): numelems(%);
 (4)
 > Digits:=20: Z(18): numelems(%);
 (5)
 > Zf := n -> op~(2, { allvalues(solve(evalf(LegendreP(n,x)))) } ); Z(18): numelems(%);
 (6)
 > # Let z[N][i] the ith zero of any orthogonal polynomial P(N,x) of degree N. # # It is known that each open interval(z[N][i], z[N][i+1]) contains # exactly a unique zero of the of P(N+1,x). Z17 := [ -1, Z(17)[], 1]: Z18 := NULL: for n from 1 to 18 do   Z18 := Z18, fsolve(LegendreP(18,x),  x=Z17[n]..Z17[n+1]); end do: numelems({Z18})
 (7)
 > # A procedure to compute zeros of LegendreP up to degree N zeros := proc(N)   local zeros_table, Z, n, p, z:   zeros_table := table([0=[]]):   Z := [-1, 1]:   for n from 1 to N do     z := NULL:     for p from 1 to n do       z := z, fsolve(LegendreP(n,x),  x=Z[p]..Z[p+1]);     end do;     zeros_table[n] := [z]:     Z := [-1, z, 1]   end do;   return zeros_table end proc: