Associated legendre polynomials fail after certain degree

조회 수: 6 (최근 30일)
ailbeildce
ailbeildce 2017년 12월 16일
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

채택된 답변

David Goodmanson
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
David Goodmanson 2018년 3월 30일
You're very welcome. I should probably know, but what is a PM feature?
Elvis Alexander Agüero Vera
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
Walter Roberson 2017년 12월 16일
If you have the symbolic toolbox you can work with it
  댓글 수: 2
ailbeildce
ailbeildce 2017년 12월 17일
편집: ailbeildce 2017년 12월 17일
legendre() gives out more information than legendreP. Although I don't know if there's a way to generate Y_l^m where m!=0 with legendreP.
Walter Roberson
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 CenterFile Exchange에서 Polynomials에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by