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

Python NumPyのpolyval()で多次元係数の多項式を評価する方法

Pythonで点xにおける多項式を評価するには、numpy.polynomial.polynomialモジュールのpolyval()メソッドを使用します。このメソッドは、係数が多次元配列の場合にも柔軟に対応できる強力な機能です。

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

第1引数:x

xは評価を行う点です。リストやタプルを指定した場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素は、自身および係数cの要素との加算・乗算をサポートしている必要があります。

第2引数:c

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

第3引数:tensor

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

実装手順

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

import numpy as np
from numpy.polynomial.polynomial import polyval

次に、多次元の係数配列を作成します。

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)

polyval()メソッドを使って、点[1, 2]における多項式を評価します。tensor=Trueを指定することで、各係数列がxの全要素に対して評価されます。

print("\nResult...\n",polyval([1,2], c, tensor=True))

完全なコード例

import numpy as np
from numpy.polynomial.polynomial import polyval

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

# polyval()メソッドで多項式を評価
print("\nResult...\n",polyval([1,2], c, tensor=True))

実行結果

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...
[[2. 4.]
[4. 7.]]

結果の解説

この例では、2×2の係数配列c=[[0,1],[2,3]]を作成しています。polyval([1,2], c, tensor=True)を実行すると、各列の係数が多項式として解釈されます。

例えば、最初の列[0, 2]は多項式0 + 2xを表し、x=1では2、x=2では4となります。同様に、2番目の列[1, 3]は多項式1 + 3xを表し、x=1では4、x=2では7となります。これが結果[[2., 4.],[4., 7.]]の各行に対応しています。


  1. 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の

  2. Python NumPyのpolyvalfromroots()で根から多項式を評価する方法

    PythonのNumPyでは、polynomial.polyvalfromroots()メソッドを使うことで、根(解)によって指定された多項式を任意の点xで評価できます。この記事では、各パラメータの意味と、実際のコード例・実行結果をわかりやすく解説します。 polyvalfromroots()メソッドのパラメータ 第1引数:x 評価を行う点を指定します。リストやタプルを渡した場合はndarrayに変換され、それ以外の場合はスカラーとしてそのまま扱われます。いずれの場合も、xまたはその要素が、自身およびrの要素との加算・乗算をサポートしている必要があります。 第2引数:r 多項式の根を格納した配