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

Python NumPyのleggrid3d()メソッドで4次元係数配列を使い、x・y・zのデカルト積上の3次元ルジャンドル級数を評価する方法

x、y、zのデカルト積(直積)上で3次元ルジャンドル級数を評価するには、PythonのNumPyライブラリが提供する polynomial.legendre.leggrid3d() メソッドを使用します。このメソッドは、x、y、zそれぞれの点のすべての組み合わせ(直積)における3次元ルジャンドル級数の値を返します。

なお、係数配列cの次元数が3未満の場合は、その形状に「1」が暗黙的に追加され、自動的に3次元配列として扱われます。計算結果の形状は c.shape[3:] + x.shape + y.shape + z.shape となります。

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

第1パラメータ:x、y、z
3次元級数は、x、y、zのデカルト積上の各点で評価されます。引数がリスト(list)やタプル(tuple)の場合は、まずndarrayに変換されます。それ以外の場合は元のまま変更されず、ndarrayでなければスカラーとして処理されます。

第2パラメータ:c
係数の並び順は、多項式次数 i、j、k の項の係数が c[i,j,k] に格納されるように指定します。cの次元数が3より大きい場合、残りのインデックスは複数組の係数セットを表すことになります。

実行手順

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

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

次に、係数用の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)

最後に、x、y、zのデカルト積上で3次元ルジャンドル級数を評価するため、polynomial.legendre.leggrid3d()メソッドを呼び出します。

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

完全なコード例

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

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

# leggrid3d()メソッドでx、y、zのデカルト積上の3次元ルジャンドル級数を評価
print("\nResult...\n",L.leggrid3d([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. 28911. ]
    [ 900. 46566. ]]

    [[ 972. 49765.5 ]
    [ 1566. 79447.5 ]]]


    [[[ 576. 29977.5 ]
    [ 936. 48165.75 ]]

    [[ 1008. 51365.25 ]
    [ 1620. 81847.125]]]]
  1. Pythonで係数の1次元配列を使い、xとyのデカルト積上の2次元エルミートE級数を評価する方法

    xとyのデカルト積(直積)上で2次元エルミートE級数(Hermite_e series)を評価するには、Pythonのhermite_e.hermegrid2d(x, y, c)メソッドを使用します。このメソッドは、xとyのデカルト積の各点における2次元多項式の値を返します。パラメータの詳細x、y:2次元級数は、xとyのデカルト積の点において評価されます。xまたはyがリストやタプルの場合は、まずndarrayに変換されます。それ以外の場合はそのまま保持され、ndarrayでなければスカラーとして扱われます。c:係数の配列です。次数i、jの項に対応する係数がc[i,j]に格納されるように順序付け

  2. Pythonで1次元の係数配列を使ってxとyのデカルト積上の2次元多項式を評価する方法

    polygrid2d()メソッドとはxとyのデカルト積(直積)上で2次元多項式を評価するには、Pythonの polynomial.polygrid2d(x, y, c) メソッドを使用します。このメソッドは、xとyのデカルト積に含まれる各点における2次元多項式の値を返します。第1引数の x と y は、2次元級数を評価する対象となる点の座標です。x または y がリストやタプルである場合は、まず ndarray に変換されます。それ以外の場合はそのまま変更されず、ndarray でなければスカラーとして扱われます。第2引数の c は係数の配列で、次数 i,j の項に対応する係数が c[i,j