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

Python NumPyのlegval()メソッドで多次元配列の点xにおけるルジャンドル級数を評価する方法

多次元配列の点xにおけるルジャンドル(Legendre)級数を評価するには、PythonのNumPyが提供する polynomial.legendre.legval() メソッドを使用します。このメソッドを使うことで、2次元以上の配列に含まれるすべての点に対して、一度にルジャンドル級数の値を効率的に計算できます。

legval()メソッドのパラメータ

x(第1引数)

評価を行う点の配列です。リストやタプルが渡された場合はndarrayに変換され、それ以外の場合は変更されずにスカラーとして扱われます。いずれの場合も、xまたはその要素は自身との加算・乗算、および係数cの要素との加算・乗算をサポートしている必要があります。

c(第2引数)

係数の配列です。次数nの項に対応する係数がc[n]に格納されるように並べます。cが多次元の場合、残りのインデックスは複数の多項式を表します。2次元の場合、係数はcの列に格納されていると考えることができます。

tensor(第3引数)

Trueの場合、係数配列の形状は右側に1を追加して拡張されます。拡張される次元の数は、xの各次元に対して1つずつです。スカラーの次元はこの操作において0として扱われます。その結果、c内の係数の各列がxのすべての要素に対して評価されます。Falseの場合、xはcの列に対してブロードキャストされて評価されます。このキーワードは、cが多次元である場合に特に有用です。デフォルト値はTrueです。

実行手順

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

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

係数の配列を作成します。

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

配列を表示します。

print("Our Array...\n",c)

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

print("\nDimensions of our Array...\n",c.ndim)

データ型を取得します。

print("\nDatatype of our Array object...\n",c.dtype)

形状を取得します。

print("\nShape of our Array object...\n",c.shape)

ここでは、xを2次元配列とします。

x = np.array([[1,2],[3,4]])

多次元配列の点xにおけるルジャンドル級数を評価するには、Python NumPyの polynomial.legendre.legval() メソッドを使用します。

print("\nResult...\n",L.legval(x,c))

完全なコード例

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

# 係数の配列を作成
c = np.array([1, 2, 3])

# 配列を表示
print("Our Array...\n",c)

# 次元を確認
print("\nDimensions of our Array...\n",c.ndim)

# データ型を取得
print("\nDatatype of our Array object...\n",c.dtype)

# 形状を取得
print("\nShape of our Array object...\n",c.shape)

# xは2次元配列
x = np.array([[1,2],[3,4]])

# 多次元配列の点xにおけるルジャンドル級数を評価
print("\nResult...\n",L.legval(x,c))

出力結果

Our Array...
[1 2 3]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(3,)

Result...
[[ 6. 21.5]
 [46. 79.5]]

結果の解説

出力されたResultを見ると、2×2の配列xの各点に対応するルジャンドル級数の値が計算されています。ルジャンドル級数は c[0]·P₀(x) + c[1]·P₁(x) + c[2]·P₂(x) の形式で評価されます。例えば、x=1の場合、P₀(1)=P₁(1)=P₂(1)=1 となるため、1 + 2 + 3 = 6 という結果が得られます。同様に、x=2の場合は 1 + 2×2 + 3×5.5 = 21.5 となり、出力結果と一致します。このように legval() を使えば、多次元配列の全要素に対する評価をベクトル化された形で一括処理できるため、大量のデータポイントを扱う科学技術計算や数値解析で非常に便利です。

  1. Python NumPyのhermite.hermval()で点xにおけるエルミート級数を評価する方法

    PythonのNumPyで点xにおけるエルミート級数(Hermite series)を評価するには、numpy.polynomial.hermiteモジュールのhermite.hermval()メソッドを使用します。この記事では、各パラメータの意味と実際のコード例を使った使い方をわかりやすく解説します。hermite.hermval()のパラメータ第1引数:xxは評価を行う点です。リストやタプルを指定した場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素が自身およびcの要素との加算・乗算をサポートしている必要があります。第2引数:

  2. Python・NumPyで点xにおけるエルミート級数を評価する方法

    PythonのNumPyライブラリでは、hermite.hermval() メソッドを使用することで、指定した点xにおけるエルミート級数を評価できます。本記事では、このメソッドのパラメータの詳細と、実際のコード例をわかりやすく解説します。hermite.hermval()メソッドのパラメータ第1引数: x評価を行う点を指定します。xがリストまたはタプルの場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素は、自身および係数cの要素との加算・乗算をサポートしている必要があります。第2引数: C係数の配列です。次数nの項に対応する係数が