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

Python(NumPy)でラゲール級数を乗算する方法|lagmul()の使い方を解説

2つのラゲール級数を乗算するには、PythonのNumPyが提供する numpy.polynomial.laguerre.lagmul() メソッドを使用します。このメソッドは、2つのラゲール級数 c1 * c2 の積を計算して返します。

ラゲール多項式は、量子力学や数値解析などの分野で用いられる直交多項式の一種です。係数の並びは低次の項から高次の項へと順に並べられ、たとえば [1,2,3]P_0 + 2*P_1 + 3*P_2 という級数を表します。引数 c1c2 には、低次から高次の順に並べたラゲール級数の係数を格納した1次元配列を指定します。

手順

まず、必要なライブラリをインポートします。

import numpy as np
from numpy.polynomial import laguerre as L

次に、ラゲール級数の係数を格納した1次元配列を作成します。

c1 = np.array([1,2,3])
c2 = np.array([3,2,1])

係数の配列を表示します。

print("Array1...\n",c1)
print("\nArray2...\n",c2)

各配列のデータ型を表示します。

print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)

両方の配列の次元を確認します。

print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)

両方の配列の形状を確認します。

print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)

2つのラゲール級数を乗算するには、lagmul() メソッドを呼び出します。

print("\nResult (multiply)....\n",L.lagmul(c1, c2))

完全なコード例

import numpy as np
from numpy.polynomial import laguerre as L

# ラゲール級数の係数を持つ1次元配列を作成
c1 = np.array([1,2,3])
c2 = np.array([3,2,1])

# 係数の配列を表示
print("Array1...\n",c1)
print("\nArray2...\n",c2)

# データ型を表示
print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)

# 両方の配列の次元を確認
print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)

# 両方の配列の形状を確認
print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)

# lagmul()メソッドで2つのラゲール級数を乗算
print("\nResult (multiply)....\n",L.lagmul(c1, c2))

出力結果

Array1...
    [1 2 3]

Array2...
    [3 2 1]

Array1 datatype...
int64

Array2 datatype...
int64

Dimensions of Array1...
1

Dimensions of Array2...
1

Shape of Array1...
(3,)

Shape of Array2...
(3,)

Result (multiply)....
    [ 10.   4.  16. -12.  18.]

結果の解説

出力された [10., 4., 16., -12., 18.] は、2つの級数の積が 10*L_0 + 4*L_1 + 16*L_2 - 12*L_3 + 18*L_4 であることを意味します。入力はどちらも2次までの級数でしたが、積の結果は4次のラゲール級数になります。一般に、次数 n の級数同士の積は最大で次数 2n の級数となり、戻り値の配列の長さは len(c1) + len(c2) - 1 になります。

まとめ

  • ラゲール級数の乗算には numpy.polynomial.laguerre.lagmul() を使用する。
  • 係数は低次から高次の順に並べた1次元配列で指定する。
  • 加算・減算には lagadd()lagsub()、除算には lagdiv() など、関連するメソッドも用意されている。
  1. Pythonで多項式を乗算する方法|numpy.polynomial.polymul()の使い方

    Pythonで多項式同士を乗算するには、numpy.polynomial.polynomial.polymul()メソッドを使用します。このメソッドは、2つの多項式c1とc2の積(乗算結果)を返します。引数には、低次の項から高次の項へと並べた係数のシーケンスを指定します。例えば、[1,2,3]は「1 + 2*x + 3*x**2」という多項式を表します。戻り値は、乗算結果の多項式を表す係数配列です。パラメータc1およびc2は、「標準」基底における多項式を表す1次元の係数配列で、低次の項から高次の項の順に並べられている必要があります。なお、numpy.polynomial.polynomialモ

  2. Pythonでset()とnext()を使って、あるリストの要素が別のリスト内で最初に出現する値を見つける方法

    はじめにPythonプログラミングでは、あるリストの要素が別のリスト内で最初に出現する箇所を見つけたいケースがよくあります。このような場合、「set()」関数と「next()」関数を組み合わせることで、簡潔かつ効率的に実装できます。本記事では、サンプルコードと実行結果をもとに、その仕組みをわかりやすく解説します。サンプルコード以下に具体的な実装例を示します。my_list_1 = [23, 64, 34, 77, 89, 9, 21] my_list_2 = [64, 10, 18, 11, 0, 21] print(The first list is :) print(my_list_1)