Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定された根を持つラゲール級数を生成する方法

はじめに

PythonのNumPyでは、numpy.polynomial.laguerre.lagfromroots()メソッドを使うことで、指定された根(root)を持つラゲール級数を簡単に生成できます。

このメソッドは、級数の係数を格納した1次元配列を返します。動作のポイントは以下のとおりです。

  • すべての根が実数の場合 → 実数型(float64)の配列が返される
  • 根の一部が複素数の場合 → 計算結果の係数がすべて実数であっても、複素数型の配列が返される

パラメータ: roots — 求めたい根を格納したシーケンス(タプルやリストなど)を指定します。

実行手順

ステップ1:必要なライブラリをインポートする

まず、NumPyのラゲール多項式モジュールをインポートします。

from numpy.polynomial import laguerre as L

ステップ2:lagfromroots()でラゲール級数を生成する

(-1, 0, 1) を持つラゲール級数を生成して表示します。

print("Result...\n", L.lagfromroots((-1, 0, 1)))

ステップ3:データ型を確認する

dtype 属性で、返された配列のデータ型を確認できます。

print("\nType...\n", L.lagfromroots((-1, 0, 1)).dtype)

ステップ4:配列の形状を確認する

shape 属性で、配列の形状(要素数)を確認できます。

print("\nShape...\n", L.lagfromroots((-1, 0, 1)).shape)

完全なコード例

from numpy.polynomial import laguerre as L

# 指定された根を持つラゲール級数を生成するには、
# Python NumPyのlaguerre.lagfromroots()メソッドを使用します。
# 戻り値は係数の1次元配列です。すべての根が実数なら実数配列、
# 一部の根が複素数なら、結果の係数が実数でも複素数配列になります。

# 根を含むシーケンスを引数として渡します
print("Result...\n", L.lagfromroots((-1, 0, 1)))

# データ型を確認
print("\nType...\n", L.lagfromroots((-1, 0, 1)).dtype)

# 形状を確認
print("\nShape...\n", L.lagfromroots((-1, 0, 1)).shape)

出力結果

Result...
    [ 5. -17. 18. -6.]

Type...
float64

Shape...
(4,)

出力の読み方

得られた係数 [5., -17., 18., -6.] は、次のラゲール級数を表しています。

5・L₀(x) − 17・L₁(x) + 18・L₂(x) − 6・L₃(x)

これを通常の多項式に展開すると x³ − x となり、確かに根 (-1, 0, 1) を持つ多項式になっていることが分かります。また、データ型は float64、形状は根が3個のため係数4個の (4,) という結果になりました。

  1. Python NumPyで複素数の根を持つチェビシェフ級数を生成する方法

    PythonのNumPyライブラリでは、指定した根を持つチェビシェフ級数を生成するために、chebyshev.chebfromroots()メソッドを使用します。このメソッドは、級数の係数を格納した1次元配列を返します。すべての根が実数であれば結果も実数配列になりますが、根の一部が複素数の場合は、計算結果の係数がすべて実数であっても、出力は複素数型(complex)になります。引数rootsには、根を要素とするシーケンスを渡します。なお、チェビシェフ級数とは、チェビシェフ多項式 Tn(x) を基底とした多項式の表現形式です。chebfromroots() を使えば、因数分解された形の情報(根)

  2. Pythonで与えられた根を持つモニック多項式を生成する方法

    PythonのNumPyで指定した根を持つモニック多項式(最高次の係数が1になる多項式)を生成するには、polynomial.polyfromroots()メソッドを使用します。このメソッドは、多項式の係数を1次元配列として返します。すべての根が実数の場合は出力も実数となり、虚数の根が含まれる場合は複素数となります。引数rootsには、根を要素として含むシーケンスを渡します。手順まず、必要なライブラリをインポートします。from numpy.polynomial import polynomial as Pモニック多項式を生成します。print(Result...\n,P.polyfromro