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

Python NumPyで係数配列の列に点xをブロードキャストし、ラゲール級数を評価する方法


PythonのNumPyライブラリには、polynomial.laguerre.lagval()メソッドが用意されており、これを使うことで指定した点xにおけるラゲール級数の値を簡単に評価できます。本記事では、tensor引数にFalseを指定し、点xを係数配列の列方向へブロードキャストしながら評価を行う方法を、具体的なコード例とともに解説します。

lagval()メソッドの主な引数

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

ラゲール級数を評価する対象となる点です。xがリストやタプルとして渡された場合は自動的にndarrayへ変換され、それ以外の場合はスカラーとしてそのまま扱われます。どちらの場合でも、xまたはその要素は、自身同士および係数配列cの要素との加算・乗算が可能である必要があります。

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

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

第3引数:tensor(ブロードキャスト方式の指定)

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

実装の手順

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

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

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

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)

最後に、lagval()メソッドを使って点[1, 2]におけるラゲール級数を評価します。tensor=Falseを指定しているため、評価点xは係数配列cの列方向にブロードキャストされます。

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

完全なコード例

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

# 多次元の係数配列を作成
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)

# tensor=Falseで点xを係数配列の列方向にブロードキャストして評価
print("\nResult...\n",L.lagval([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...
    [ 0. -2.]

実行結果より、点1と点2におけるラゲール級数の評価値はそれぞれ0.0と-2.0となりました。tensor=Falseを指定したことで、2つの評価点が係数配列cの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