Python NumPyのpolyvalfromroots()で根から多項式を評価する方法
PythonのNumPyでは、polynomial.polyvalfromroots()メソッドを使うことで、根(解)によって指定された多項式を任意の点xで評価できます。この記事では、各パラメータの意味と、実際のコード例・実行結果をわかりやすく解説します。
polyvalfromroots()メソッドのパラメータ
第1引数:x
評価を行う点を指定します。リストやタプルを渡した場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素が、自身およびrの要素との加算・乗算をサポートしている必要があります。
第2引数:r
多項式の根を格納した配列です。rが多次元の場合、最初のインデックスが根のインデックスを表し、残りのインデックスは複数の多項式を列挙します。たとえば2次元の場合、各多項式の根はrの列に格納されていると考えることができます。
第3引数:tensor
Trueの場合、根の配列の形状が右側に1を追加して拡張されます。拡張される次元の数はxの次元数と同じで、スカラーはこの操作において次元0として扱われます。その結果、r内の係数のすべての列が、xのすべての要素に対して評価されます。
Falseの場合は、評価時にxがrの列に対してブロードキャストされます。このキーワードは、rが多次元である場合に特に有用です。デフォルト値はTrueです。
実行手順
1. 必要なライブラリをインポートする
from numpy.polynomial.polynomial import polyvalfromroots import numpy as np
2. 根の配列を作成する
c = np.array([1, 2, 3])
3. 配列を表示する
print("Our Array...\n",c)
4. 次元数を確認する
print("\nDimensions of our Array...\n",c.ndim)
5. データ型を取得する
print("\nDatatype of our Array object...\n",c.dtype)
6. 形状を取得する
print("\nShape of our Array object...\n",c.shape)
7. polyvalfromroots()で多項式を評価する
根によって指定された多項式を点xで評価するには、Pythonのpolyvalfromroots()メソッドを使用します。
print("\nResult...\n",polyvalfromroots(1, c))
完全なコード例
from numpy.polynomial.polynomial import polyvalfromroots
import numpy as np
# 根の配列を作成
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)
# 根によって指定された多項式を点xで評価
print("\nResult...\n",polyvalfromroots(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... 0.0
この例では、根が1、2、3である多項式を点x=1で評価したため、結果は0.0となりました。これは、x=1が多項式の根の一つだからです。根の値を含む点で評価すると必ず0になるという、多項式の基本的な性質が確認できます。
-
Python NumPyのpolyval()メソッドで点xにおける多項式を評価する方法
PythonのNumPyライブラリでは、polynomial.polyval()メソッドを使うことで、指定した点xにおいて多項式を簡単に評価できます。この記事では、polyval()の各パラメータの意味と、実際のコード例を使った使い方を詳しく解説します。polyval()メソッドのパラメータ第1引数: x多項式を評価する対象となる点です。リストやタプルを渡した場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素が、自身および係数cの要素との間で加算・乗算をサポートしている必要があります。第2引数: c多項式の係数を格納した配列です。
-
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の