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

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

エルミート級数を特定の点 x で評価したい場合、Python NumPy の numpy.polynomial.hermite.hermval() メソッドを使用します。本記事では、このメソッドの各パラメータの意味と、多次元の係数配列に対して tensor=False を指定してブロードキャスト評価を行う手順を、コード例とともにわかりやすく解説します。

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

第1引数:x(評価する点)

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

第2引数:c(係数配列)

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

第3引数:tensor(テンソル評価の切り替え)

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

実装手順

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

import numpy as np
from numpy.polynomial import hermite 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)

最後に、hermite.hermval() メソッドを使って点 [1, 2] におけるエルミート級数を評価します。ここでは tensor=False を指定し、x を係数配列の列にブロードキャストしています。

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

完全なコード例

import numpy as np
from numpy.polynomial import hermite 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)

# hermite.hermval() で点xにおけるエルミート級数を評価
print("\nResult...\n",H.hermval([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...
[ 4. 13.]

このように、tensor=False を指定することで、点 x = [1, 2] が係数配列 c の各列にブロードキャストされ、それぞれの列に対応するエルミート級数の値が一度に計算されます。結果として得られる [4., 13.] は、2つの多項式それぞれを x=1 と x=2 で評価した値に対応します。

  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