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

Python NumPyのlegval2d()を使って点(x, y)における2次元ルジャンドル級数を評価する方法

PythonのNumPyライブラリには、多項式演算のための便利なモジュールが多数用意されています。その中でもnumpy.polynomial.legendreモジュールは、ルジャンドル多項式に関する各種計算をサポートしています。

本記事では、polynomial.legendre.legval2d()メソッドを使用して、指定した点(x, y)における2次元ルジャンドル級数の値を評価する方法を解説します。このメソッドは、xとyの対応する値のペアから構成される点群における、2次元ルジャンドル級数の値を返します。

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

第1パラメータ:x, y

2次元級数を評価する対象となる点(x, y)を指定します。ここで、xとyは同じ形状(shape)である必要があります。xまたはyがリストやタプルの場合は、まずndarrayに変換されます。変換後もndarrayでない場合はスカラーとして扱われます。

第2パラメータ:c

係数の配列です。次数i, jの項に対応する係数がc[i, j]に格納されるように並べます。cの次元が2より大きい場合、残りのインデックスは複数の係数セットを列挙するために使用されます。

実装手順

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

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

次に、np.arange()とreshape()を組み合わせて、3次元の係数配列を作成します。

c = np.arange(24).reshape(2, 2, 6)

作成した配列を表示して確認します。

print("Our Array...\n", c)

配列の次元数(ndim)、データ型(dtype)、形状(shape)もあわせて確認しておきましょう。

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)

最後に、legval2d()メソッドを使って、点(1, 1)と(2, 2)における2次元ルジャンドル級数を評価します。

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

完全なコード例

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

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

# 配列を表示
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)

# 点(1, 1)と(2, 2)で2次元ルジャンドル級数を評価
print("\nResult...\n", L.legval2d([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]]]

Dimensions of our Array...
3

Datatype of our Array object...
int64

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

Result...
    [[ 36. 108.]
     [ 40. 117.]
     [ 44. 126.]
     [ 48. 135.]
     [ 52. 144.]
     [ 56. 153.]]

まとめ

NumPyのlegval2d()メソッドを使うことで、3次元の係数配列を用いて複数の点(x, y)における2次元ルジャンドル級数の値を簡単に評価できます。係数配列の次元が3以上ある場合は、残りの軸が複数の係数セットとして扱われるため、一度の呼び出しで複数の級数をまとめて計算できるのが大きな特徴です。数値解析や近似計算において、ルジャンドル級数の評価が必要な場面でぜひ活用してみてください。

  1. Python NumPyで多次元係数配列を使って点xにおけるラゲール級数を評価する方法

    PythonのNumPyライブラリでは、polynomial.laguerre.lagval()メソッドを使用することで、指定した点xにおいてラゲール級数を評価できます。この記事では、多次元の係数配列を扱う場合の使い方を、具体的なコード例とともに詳しく解説します。lagval()メソッドのパラメータ第1引数: x評価を行う点を指定します。xがリストやタプルの場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素が、自身および係数cの要素との加算・乗算をサポートしている必要があります。第2引数: C係数の配列です。次数nの項に対応する係

  2. Python NumPyのhermite.hermval()で多次元係数配列を使って点xにおけるエルミート級数を評価する方法

    エルミート級数を特定の点xで評価したい場合、PythonのNumPyライブラリが提供する hermite.hermval() メソッドを使用します。エルミート多項式は物理学や確率論などの分野で広く利用される直交多項式の一種であり、NumPyを活用すればその計算をシンプルかつ効率的に行うことができます。hermite.hermval()メソッドの主なパラメータ第1パラメータ:xxがリストまたはタプルの場合はndarrayに変換され、それ以外の場合は変更されずにスカラーとして扱われます。いずれの場合も、xまたはその要素は、自身同士および係数配列cの要素との加算・乗算をサポートしている必要があります