PythonのNumPyでルジャンドル級数を別の級数で割る方法
PythonのNumPyでは、numpy.polynomial.legendre.legdiv()メソッドを使用することで、あるルジャンドル級数を別の級数で割ることができます。このメソッドは、商(quo)と余り(rem)に対応するルジャンドル級数の係数を返します。
legdiv()メソッドは、2つのルジャンドル級数c1 ÷ c2の「商と余り」を計算します。引数には、低次の項から高次の項へと順に並べた係数のシーケンスを渡します。例えば、[1,2,3]はP_0 + 2*P_1 + 3*P_2という級数を表します。パラメータc1とc2は、低次から高次の順に並べられたルジャンドル級数の係数を格納した1次元配列です。
実行手順
まず、必要なライブラリをインポートします。
import numpy as np from numpy.polynomial import legendre as L
次に、ルジャンドル級数の係数を格納した1次元配列を作成します。
c1 = np.array([2,3,4]) c2 = np.array([4,3,2])
作成した係数の配列を表示します。
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)
ルジャンドル級数の除算を実行するには、polynomial.legendre.legdiv()メソッドを呼び出します。
print("\nResult (division)....\n",L.legdiv(c1, c2))
完全なコード例
import numpy as np
from numpy.polynomial import legendre as L
# ルジャンドル級数の係数を持つ1次元配列を作成
c1 = np.array([2,3,4])
c2 = np.array([4,3,2])
# 係数の配列を表示
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)
# legdiv()メソッドでルジャンドル級数の除算を実行
print("\nResult (division)....\n",L.legdiv(c1, c2))
出力結果
Array1...
[2 3 4]
Array2...
[4 3 2]
Array1 datatype...
int64
Array2 datatype...
int64
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(3,)
Shape of Array2...
(3,)
Result (division)....
(array([2.]), array([-6., -3.]))
結果の解説
実行結果を見ると、legdiv(c1, c2)はタプル(array([2.]), array([-6., -3.]))を返しています。第1要素のarray([2.])が商、第2要素のarray([-6., -3.])が余りに対応します。つまり、c1をc2で割ると、商は「2 * P_0」、余りは「-6 * P_0 - 3 * P_1」というルジャンドル級数になることを意味します。
-
Pythonで多項式を別の多項式で除算する方法 ― numpy.polydiv()の使い方
Pythonで1つの多項式を別の多項式で除算するには、numpy.polynomial.polynomial.polydiv()メソッドを使用します。このメソッドは、2つの多項式 c1 / c2 の「商と余り」を返します。引数には係数のシーケンスを渡します。係数は低次の項から高次の項へと順に並べます。たとえば、[1, 2, 3] は 1 + 2*x + 3*x**2 を表します。戻り値は、商と余りをそれぞれ表す係数列の配列です。パラメータ c1 および c2 は、「標準」基底に対する多項式を表す1次元の係数配列であり、こちらも低次の項から高次の項へと順に並べます。なお、numpy.polyno
-
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)