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

【NumPy】hermeval()で点xにおけるエルミートE級数を評価する方法 ― tensor=Falseによるブロードキャスト

x におけるエルミートE級数(Hermite_e series)を評価するには、Python の NumPy が提供する hermite.hermeval() メソッドを使用します。エルミートE級数とは、「確率論者のエルミート多項式」(probabilists' Hermite polynomials)を基底とする級数展開のことで、統計や物理学の分野で広く利用されています。本記事では、各引数の意味と、多次元の係数配列に対して tensor=False を指定した場合のブロードキャスト動作を、具体的なコード例とともに解説します。

hermeval() メソッドの引数

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

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

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

手順

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

import numpy as np
from numpy.polynomial import hermite_e as H

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

c = np.arange(4).reshape(2,2)

配列を表示します。

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 におけるエルミートE級数を評価するには、Python NumPy の hermite.hermeval() メソッドを使用します。

print("\nResult...\n",H.hermeval([1,2],c, tensor = False))

実装例

import numpy as np
from numpy.polynomial import hermite_e as H

# 係数の多次元配列を作成
c = np.arange(4).reshape(2,2)

# 配列を表示
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におけるエルミートE級数を評価
tensor=False を指定してブロードキャスト
print("\nResult...\n",H.hermeval([1,2],c, tensor = False))

出力結果

Our Array...
    [[0 1]
    [2 3]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

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

Result...
    [2. 7.]

結果の解説

この例では tensor=False を指定しているため、x=[1, 2] が係数配列 c の列方向へブロードキャストされます。1列目の係数 [0, 2] からなる多項式 2x を x=1 で評価すると 2、2列目の係数 [1, 3] からなる多項式 1+3x を x=2 で評価すると 7 となり、結果として [2. 7.] が得られます。なお、エルミートE多項式の最初の2項は He₀(x)=1、He₁(x)=x であるため、このような計算になります。tensor=True(デフォルト)の場合は、各列の多項式が x のすべての要素に対して個別に評価され、結果の形状が異なる点にも注意してください。

  1. NumPyのchebval()で係数列にブロードキャストされた点xのチェビシェフ級数を評価する方法

    チェビシェフ級数を指定した点 x で評価するには、Python の NumPy が提供する chebyshev.chebval() メソッドを使用します。この記事では、各パラメータの意味と、多次元係数配列に対して tensor=False を指定して評価する具体的な手順を解説します。 chebval() メソッドのパラメータ 第1引数:x(評価する点) x がリストまたはタプルの場合は ndarray に変換され、それ以外の場合はそのままスカラーとして扱われます。どちらの場合でも、x またはその要素は、自身および係数配列 c の要素との加算・乗算をサポートしている必要があります。 第2引

  2. Python NumPyのpolyvalfromroots()で根から多項式を評価する方法 ― tensor=Falseでxをrの列にブロードキャスト

    根(解)で指定された多項式を任意の点 x で評価したい場合は、Python の NumPy が提供する polynomial.polyvalfromroots() メソッドを使用します。この記事では、各引数の意味と、tensor=False を指定した際に x が r の列にブロードキャストされる仕組みについて、具体的なコード例とともに解説します。polyvalfromroots() の主な引数第1引数:x評価を行う点を指定します。x がリストやタプルの場合は ndarray に変換され、それ以外の場合はそのままスカラーとして扱われます。どちらの場合でも、x(またはその要素)は自身および r