ルジャンドル陪関数の計算
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}