Pythonで複素数係数のルジャンドル級数の根を計算する方法
Pythonでルジャンドル級数の根を計算するには、numpy.polynomial.legendreモジュールのlegroots()メソッドを使用します。このメソッドは、級数の根を配列として返します。すべての根が実数である場合、結果も実数型の配列になりますが、一つでも虚数の根が含まれる場合は複素数型の配列として返されます。引数cには、級数の係数を格納した1次元配列を指定します。
手順
まず、必要なライブラリをインポートします。
from numpy.polynomial import legendre as L
次に、複素数の係数を持つルジャンドル級数の根を計算します。
j = complex(0,1)
print("Result...\n",L.legroots((-j, j)))続いて、結果のデータ型を確認します。
print("\nType...\n",L.legroots((-j, j)).dtype)最後に、結果の配列の形状を確認します。
print("\nShape...\n",L.legroots((-j, j)).shape)コード例
from numpy.polynomial import legendre as L
# ルジャンドル級数の根を計算するには、
# numpy.polynomial.legendre の legroots() メソッドを使用します。
# このメソッドは級数の根を配列として返します。
# すべての根が実数の場合、結果も実数型になりますが、
# 虚数の根が含まれる場合は複素数型になります。
# 引数 c は係数を格納した1次元配列です。
j = complex(0,1)
print("Result...\n",L.legroots((-j, j)))
# データ型を確認
print("\nType...\n",L.legroots((-j, j)).dtype)
# 形状を確認
print("\nShape...\n",L.legroots((-j, j)).shape)出力
Result...
[1.+0.j]
Type...
complex128
Shape...
(1,)結果の解説
この例では、係数(-j, j)は定数項が-j、一次の項がjに対応し、多項式としては -j・P₀(x) + j・P₁(x) = j(x − 1) を表します。したがって、根は x = 1 となり、出力結果は [1.+0.j] という複素数型(complex128)の配列になっています。入力に複素数の係数が含まれているため、根が実数であっても結果は complex128 型で返される点に注意してください。
-
NumPyのchebyshev.chebroots()でチェビシェフ級数の根を計算する方法
多項式の根を計算するには、PythonのNumPyが提供する chebyshev.chebroots() メソッドを使用します。このメソッドは、チェビシェフ級数の根を配列として返します。すべての根が実数の場合は結果も実数配列となり、虚数を含む場合は複素数配列となります。引数 c には、係数を格納した1次元配列を指定します。根の推定値は、コンパニオン行列の固有値として求められます。複素平面上で原点から大きく離れた根は、そのような値において級数が数値的に不安定になるため、誤差が大きくなる傾向があります。また、重複度が2以上の根についても、根の近傍で級数の値が根の誤差に比較的鈍感なため、誤差が拡大し
-
Python NumPyで複素数の根を持つチェビシェフ級数を生成する方法
PythonのNumPyライブラリでは、指定した根を持つチェビシェフ級数を生成するために、chebyshev.chebfromroots()メソッドを使用します。このメソッドは、級数の係数を格納した1次元配列を返します。すべての根が実数であれば結果も実数配列になりますが、根の一部が複素数の場合は、計算結果の係数がすべて実数であっても、出力は複素数型(complex)になります。引数rootsには、根を要素とするシーケンスを渡します。なお、チェビシェフ級数とは、チェビシェフ多項式 Tn(x) を基底とした多項式の表現形式です。chebfromroots() を使えば、因数分解された形の情報(根)