Associated legendre polynomials fail after certain degree
조회 수: 6 (최근 30일)
이전 댓글 표시
Hi,
I am using legendre polynomials for an application on spherical harmonics. However the code
legendre(170,0.5)
where 170 is the degree/order fail, giving me Inf or NaN. Is this considered a bug or is there way to aid the issue using higher precision somehow?
Best
댓글 수: 0
채택된 답변
David Goodmanson
2017년 12월 19일
Hi ailbeildce,
Try legendre(n,x,'norm') or legendre(n,x,'sch'). Each of these normalizes the associated legendre function slightly differently, and both leave out a factor in front that gets out of hand in a big way as m gets large [where m is the upper parameter in Pmn, 0<=m<=n, and m=0 corresponds to the usual Pn].
With either of those options, n can go up to at least 2400.
You can see what the factors are in 'doc legendre'. You will have to check, but I think the 'norm' option for Pmn gives you
Int{-1,1} Pmn(x)^2 dx = 1,
appropriate for spherical harmonics.
댓글 수: 3
David Goodmanson
2018년 3월 30일
You're very welcome. I should probably know, but what is a PM feature?
Elvis Alexander Agüero Vera
2023년 1월 16일
편집: Elvis Alexander Agüero Vera
2023년 1월 16일
I guess he refers to a private mesage.
Somewhat related question: I also need to calculate with efficiency the derivatives of the legendre Polynomials. I would appreciate a fast way of computing that.
Also, why is it that
f = matlabFunction(diff(legendreP(50, x), x))
is so unstable for degrees greater than, say, 50?
추가 답변 (1개)
Walter Roberson
2017년 12월 16일
If you have the symbolic toolbox you can work with it
댓글 수: 2
Walter Roberson
2017년 12월 17일
For integer m you can see https://en.wikipedia.org/wiki/Associated_Legendre_polynomials#Definition_for_non-negative_integer_parameters_%E2%84%93_and_m which the formula given in terms of derivatives. As the different orders correspond to different numbers of derivatives of the Legendre polynomial, you can find the different orders in a loop.
참고 항목
카테고리
Help Center 및 File Exchange에서 Polynomials에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!