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

【Python NumPy】4次元の係数配列を使って点(x, y, z)における3Dチェビシェフ級数を評価する方法

点(x, y, z)における3次元チェビシェフ級数を評価するには、Python NumPyの polynomial.chebval3d() メソッドを使用します。このメソッドは、x、y、zの対応する値の組み合わせから構成される各点における多次元多項式の値を返します。

チェビシェフ級数とは

チェビシェフ多項式は、数値解析や関数近似の分野で広く利用されている直交多項式の一種です。NumPyの numpy.polynomial.chebyshev モジュールには、1次元から3次元までのチェビシェフ級数を簡単に評価できる関数群が用意されており、特に chebval3d() は3変数のチェビシェフ級数を一括で計算できる便利なメソッドです。

パラメータの説明

x、y、z: 3次元級数を評価する対象の点です。x、y、zはすべて同じ形状(shape)を持つ必要があります。いずれかがリストやタプルの場合は、まずndarrayに変換されます。それ以外の場合はそのまま渡され、ndarrayでなければスカラーとして扱われます。

c: 係数を格納した配列です。多項式の次数 i, j, k に対応する係数は c[i, j, k] に格納されている必要があります。c の次元が3より大きい場合、残りのインデックスは複数の係数セットを表すものとして解釈されます。

実行手順

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

import numpy as np
from numpy.polynomial import chebyshev as C

次に、4次元の係数配列を作成します。

c = np.arange(48).reshape(2,2,6,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)

最後に、polynomial.chebval3d() メソッドを使って点(x, y, z)における3次元チェビシェフ級数を評価します。

print("\nResult...\n",C.chebval3d([1,2],[1,2],[1,2], c))

完全なコード例

import numpy as np
from numpy.polynomial import chebyshev as C

# 4次元の係数配列を作成
c = np.arange(48).reshape(2,2,6,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)

# chebval3d()メソッドで点(x, y, z)における3Dチェビシェフ級数を評価
print("\nResult...\n",C.chebval3d([1,2],[1,2],[1,2], c))

出力結果

Our Array...
[[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]]

[[12 13]
[14 15]
[16 17]
[18 19]
[20 21]
[22 23]]]


[[[24 25]
[26 27]
[28 29]
[30 31]
[32 33]
[34 35]]

[[36 37]
[38 39]
[40 41]
[42 43]
[44 45]
[46 47]]]]

Dimensions of our Array...
4

Datatype of our Array object...
int64

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

Result...
[[ 552. 148176.]
[ 576. 152631.]]

このように、4次元の係数配列を用意すれば、chebval3d() は最後の次元を複数の係数セットとして扱い、それぞれのセットに対して評価結果をまとめて返してくれます。多次元のチェビシェフ近似を効率的に処理したい場合に非常に有用な手法です。

  1. Python NumPyのpolyval3d()メソッドで、点(x, y, z)における3D多項式を係数の2D配列から評価する方法

    PythonのNumPyライブラリには、3次元多項式を指定した点で評価するためのpolynomial.polyval3d()メソッドが用意されています。このメソッドは、x、y、zに対応する値の組み合わせ(トリプル)から構成される各点において、多次元多項式の値を返します。polyval3d()メソッドのパラメータx、y、z:3次元級数を評価する点の座標です。x、y、zは同じ形状である必要があります。いずれかがリストやタプルの場合は、まずndarrayに変換されます。ndarrayでない場合はスカラーとして扱われます。c:係数を格納する配列です。多項式の次数 i, j, k に対応する項の係数は

  2. Python NumPyのpolyval3d()メソッドで4D係数配列を使って点(x, y, z)の3D多項式を評価する方法

    3D多項式を点(x, y, z)で評価するには、Python NumPyのpolynomial.polyval3d()メソッドを使用します。このメソッドは、x、y、zの対応する値から構成される三つ組の点における多次元多項式の値を返します。polyval3d()メソッドのパラメータ引数として渡すx、y、zは、同じ形状を持つ必要があります。いずれかがリストまたはタプルの場合は、まずndarrayに変換されます。ndarrayでない場合はスカラーとして扱われます。パラメータcは係数の配列で、多項式の次数 i, j, k に対応する項の係数が c[i,j,k] に格納されるように並べられています。cの