Python NumPyのpolyval()メソッドで点xにおける多項式を評価する方法
PythonのNumPyライブラリでは、polynomial.polyval()メソッドを使うことで、指定した点xにおいて多項式を簡単に評価できます。この記事では、polyval()の各パラメータの意味と、実際のコード例を使った使い方を詳しく解説します。
polyval()メソッドのパラメータ
第1引数: 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.polynomial import polyval
次に、多項式の係数配列を作成します。
c = np.array([1, 2, 3])
作成した配列を表示します。
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)最後に、polyval()メソッドを使って点x=1における多項式を評価します。
print("\nResult...\n", polyval(1, c))完全なサンプルコード
import numpy as np
from numpy.polynomial.polynomial import polyval
# 多項式の係数配列を作成
c = np.array([1, 2, 3])
# 配列を表示
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)
# polyval()で点x=1における多項式を評価
print("\nResult...\n", polyval(1, c))
実行結果
Our Array...
[1 2 3]
Dimensions of our Array...
1
Datatype of our Array object...
int64
Shape of our Array object...
(3,)
Result...
6.0
この例では、係数[1, 2, 3]からなる多項式「1 + 2x + 3x²」を点x=1で評価しています。計算結果は「1 + 2×1 + 3×1² = 6」となり、出力の6.0と一致します。このように、polyval()を使えばホーナー法による効率的な多項式評価を簡単に行えます。
-
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の
-
Python NumPyのpolyvalfromroots()で根から多項式を評価する方法
PythonのNumPyでは、polynomial.polyvalfromroots()メソッドを使うことで、根(解)によって指定された多項式を任意の点xで評価できます。この記事では、各パラメータの意味と、実際のコード例・実行結果をわかりやすく解説します。 polyvalfromroots()メソッドのパラメータ 第1引数:x 評価を行う点を指定します。リストやタプルを渡した場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素が、自身およびrの要素との加算・乗算をサポートしている必要があります。 第2引数:r 多項式の根を格納した配