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つの列に対応づけられて計算されています。
-
NumPyのchebval()で係数列にブロードキャストされた点xのチェビシェフ級数を評価する方法
チェビシェフ級数を指定した点 x で評価するには、Python の NumPy が提供する chebyshev.chebval() メソッドを使用します。この記事では、各パラメータの意味と、多次元係数配列に対して tensor=False を指定して評価する具体的な手順を解説します。 chebval() メソッドのパラメータ 第1引数:x(評価する点) x がリストまたはタプルの場合は ndarray に変換され、それ以外の場合はそのままスカラーとして扱われます。どちらの場合でも、x またはその要素は、自身および係数配列 c の要素との加算・乗算をサポートしている必要があります。 第2引
-
Python NumPyのpolyvalfromroots()で根から多項式を評価する方法 ― tensor=Falseでxをrの列にブロードキャスト
根(解)で指定された多項式を任意の点 x で評価したい場合は、Python の NumPy が提供する polynomial.polyvalfromroots() メソッドを使用します。この記事では、各引数の意味と、tensor=False を指定した際に x が r の列にブロードキャストされる仕組みについて、具体的なコード例とともに解説します。polyvalfromroots() の主な引数第1引数:x評価を行う点を指定します。x がリストやタプルの場合は ndarray に変換され、それ以外の場合はそのままスカラーとして扱われます。どちらの場合でも、x(またはその要素)は自身および r