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

Pythonで係数の4次元配列を使ってx、y、zのデカルト積上の3次元多項式を評価する方法

3次元多項式をx、y、zのデカルト積上で評価するには、Pythonの polynomial.polygrid3d(x, y, z, c) メソッドを使用します。このメソッドは、x、y、zのデカルト積の各点における3次元多項式の値を返します。

第1パラメータのx、y、zは、3次元級数を評価するデカルト積上の点を指定します。x、y、zがリストまたはタプルである場合、まずndarrayに変換されます。それ以外の場合はそのまま変更されず、ndarrayでなければスカラーとして扱われます。

第2パラメータのcは係数の配列で、次数i、j、kの項に対応する係数がc[i,j,k]に格納されるように順序付けされています。cの次元が3より大きい場合、残りのインデックスは複数の係数セットを列挙します。cの次元が3未満の場合は、3次元にするために形状へ暗黙的に1が追加されます。結果の形状は c.shape[3:] + x.shape + y.shape + z.shape となります。

手順

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

import numpy as np
from numpy.polynomial.polynomial import polygrid3d

係数の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)

3次元多項式をx、y、zのデカルト積上で評価するには、Pythonの polynomial.polygrid3d(x, y, z, c) メソッドを使用します。このメソッドは、x、y、zのデカルト積の各点における3次元多項式の値を返します。

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

サンプルコード

import numpy as np
from numpy.polynomial.polynomial import polygrid3d

# 係数の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)

# polygrid3dメソッドを使って、x、y、zのデカルト積上で3次元多項式を評価
print("\nResult...\n",polygrid3d([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. 6600.]
    [ 900. 10656.]]

    [[ 972. 11412.]
    [ 1566. 18252.]]]


    [[[ 576. 6852.]
    [ 936. 11034.]]

    [[ 1008. 11790.]
    [ 1620. 18819.]]]]

まとめ

polygrid3d は、個別の点ごとに評価する polyval3d とは異なり、x、y、zの各要素のすべての組み合わせ(デカルト積)に対して多項式を一括で評価できるため、グリッド上での数値計算や可視化の前処理に非常に便利です。係数配列の次元数が3を超える場合は、複数の多項式を同時に評価できる点も覚えておくと良いでしょう。

  1. Python NumPyのpolygrid2dでxとyのデカルト積上の2次元多項式を評価する方法

    Pythonでxとyのデカルト積(直積)上の2次元多項式を評価するには、numpy.polynomial.polynomialモジュールのpolygrid2d(x, y, c)メソッドを使用します。このメソッドは、xとyのデカルト積の各点における2次元多項式の値を返します。polygrid2dメソッドのパラメータ第1パラメータ:x、yxとyは、それぞれデカルト積の各点で評価される配列です。xまたはyがリストやタプルの場合、まずndarrayに変換されます。すでにndarrayである場合はそのまま使用され、ndarrayでもリストでもない場合はスカラーとして扱われます。第2パラメータ:ccは係数

  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の