ルジャンドル陪関数の計算

C++ライブラリ使用

Python パッケージを使用 Scipy?用

scipy.special.lpmv() scipy.special.legendre()

まともに計算

注:ここでは,$m$ は屈折率ではなく整数.
\begin{align} P_l^m(x) &= (-1)^m(1-x^2)^{m/2} \frac{d^m}{dx^m} P_l(x), \hspace{3mm} 0\leq m\leq l, \hspace{2mm} |x|\leq1 \label{eqn:aLp} \end{align} $P_l(x)$ は,Legendre polynomials. 名前が似ているけど別物.
$m=0$ とすると,$P_l^0(x) = P_l(x)$ となる.

Legendre polynomials (1) Rodrigues' formulaより \begin{align} P_n(x) = \frac{1}{2^n n!}\frac{d^n}{dx^n}(x^2-1)^n \ \ |x|\leq 1 \end{align}
計算例 例えば,$n=0, 1$として \begin{eqnarray} P_0(x) &= \frac{1}{2^0\ 0!} \left[(x^2-1)^0\right] &=& 1 \notag\\ P_1(x) &= \frac{1}{2^1\ 1!} \frac{d }{dx } \left[(x^2-1)^1\right] &=& x \notag\\ P_2(x) &= \frac{1}{2^2\ 2!} \frac{d^2}{dx^2} \left[(x^2-1)^2\right] &=& \frac{1}{2} (3x^2-1) \notag\\ P_3(x) &= \frac{1}{2^3\ 3!} \frac{d^3}{dx^3} \left[(x^2-1)^3\right] &=& \frac{1}{2} (5x^3-3x) \notag \end{eqnarray}

(2) Bonnet's recursion formula, \begin{eqnarray} (n+1) P_{n+1}(x) = (2n+1) x P_n(x) - n P_{n-1}(x) \notag\\ P_0(x) = 1 , \ \ P_1(x) = x \end{eqnarray} を用い,$n=1,2,3,...$にたいして \begin{eqnarray} P_{n+1}(x) &=& \frac{1}{(n+1)}\left((2n+1) x P_n(x) - n P_{n-1}(x)\right) \notag \end{eqnarray} により任意の $n$ について関数が得られる.
計算例 たとえば,$n=1,2$として \begin{eqnarray} P_2(x) &=& \frac{1}{2}\left(3 x P_{1}(x) - P_0(x)\right) &=& \frac{1}{2} (3x^2 - 1)\notag\\ P_3(x) &=& \frac{1}{3}\left(5 x P_2(x) - 2 P_1(x)\right) &=& \frac{1}{2}(5x^3 - 3x) \notag\\ \end{eqnarray}

(3) $P_n$ の微分 $P'_n$ に関しては,以下の関係が知られている.(共立出版,物理と特殊関数,p.44) \begin{eqnarray} nP_n(x) = x\frac{dP_n}{dx} - \frac{dP_{n-1}}{dx} \notag\\ nP_n(x) = xP'_n(x) - P'_{n-1}(x) \notag \end{eqnarray} 変形して \begin{eqnarray} P'_n(x) &=& \frac{1}{x}(nP_n(x) + P'_{n-1}(x)) \notag \end{eqnarray} 初項は$P'_0(x)=0$ .
計算例 $n=1,2,3$として \begin{eqnarray} P'_1(x) &=& \frac{1}{x}( P_1(x) + P'_0(x)) &=& 1 \notag\\ P'_2(x) &=& \frac{1}{x}(2P_2(x) + P'_1(x)) &=& 3x \notag\\ P'_3(x) &=& \frac{1}{x}(3P_3(x) + P'_2(x)) &=& \frac{1}{2}(15x^2 - 3) \notag\\ \end{eqnarray}

散乱の計算では,$m=1$,1階微分を使用する. また,$x=\cos\theta$とおくと, \begin{align} P_l^1(x) &= -(1-x^2)^{1/2} \frac{d}{dx} P_l(x), \hspace{3mm} 1\leq l \\ P_l^1(\cos\theta) &= -\sin\theta \frac{d}{d(\cos\theta)} P_l(\cos\theta) \end{align}

いくつかの具体例(1): \begin{align} l=1 &: P_1^1(x) = -(1-x^2)^{1/2} \frac{d}{dx} P_1(x) &= -(1-x^2)^{1/2} \notag\\ l=2 &: P_2^1(x) = -(1-x^2)^{1/2} \frac{d}{dx} P_2(x) &= -3x(1-x^2)^{1/2} \notag\\ l=1 &: P_1^1(\cos\theta) = -\sin\theta \frac{d}{d(\cos\theta)} (\cos\theta) &= -\sin\theta \notag\\ l=2 &: P_2^1(\cos\theta) = -\sin\theta \frac{d}{d(\cos\theta)} \frac{1}{2}(3\cos^2\theta-1) &= -3\cos\theta\sin\theta\notag \end{align}

漸化式

公式どおりに計算するとうまくいかない場合が多いので,Recurrence formula(漸化式)が用いられる.

\begin{align} (l-m)P_{l}^m(x) - (2l-1)xP_{l-1}^m(x) + (l+m-1)P_{l-2}^m(x) = 0 \notag \end{align} を用いる.ただし,出発点として, \begin{align} P_{m-1}^m(x) = 0 \\ P_{m}^m(x) = (-1)^m(2m-1)!!(1-x^2)^{m/2} \end{align} を用いる.

漸化式において,$m=1$を代入 \begin{align} (l-1)P_{l}^1(x) - (2l-1)xP_{l-1}^1(x) + l P_{l-2}^1(x) = 0 \notag \end{align} これを変形して \begin{align} P_{l}^1(x) = \frac{(2l-1)}{(l-1)}xP_{l-1}^1(x) - \frac{l}{(l-1)} P_{l-2}^1(x) \notag \end{align} とあらわされる.
初期値は \begin{eqnarray} P_1^1(x) &=& -(1-x^2)^{1/2} \notag\\ P_2^1(x) &=& -(1-x^2)^{1/2} (3x) \notag \end{eqnarray}

たとえば,$l=3,4$ として \begin{eqnarray} P_3^1(x) &=& \frac{5}{2}xP_{2}^1(x) - \frac{3}{2} P_{1}^1(x) \notag\\ &=& -\frac{3}{2}(1-x^2)^{1/2} (5x^2 - 1) \notag\\ P_4^1(x) &=& \frac{7}{3}xP_{3}^1(x) - \frac{4}{3} P_{2}^1(x) \notag\\ &=& -\frac{5}{2}(1-x^2)^{1/2} (7x^3 - 3x) \notag\\ \end{eqnarray}