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

【Python】NumPyのpolyder()メソッドで多項式を微分する方法

PythonのNumPyで多項式を微分するには、numpy.polynomial.polynomial.polyder()メソッドを使用します。このメソッドは、指定した軸(axis)に沿って多項式の係数cをm回微分した結果を返します。各反復処理のたびに結果はscl(スケーリング係数)で乗算され、これは変数の線形変換を行う際に役立ちます。

引数cは、各軸に沿って次数の低い順から高い順に並べられた係数の配列です。例えば、[1,2,3]は「1 + 2*x + 3*x**2」という多項式を表し、axis=0がx、axis=1がyの場合、[[1,2],[1,2]]は「1 + 1*x + 2*y + 2*x*y」を表します。

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

このメソッドは導関数の多項式係数を返します。主なパラメータは以下の通りです。

  • c(第1引数):多項式の係数の配列。cが多次元の場合、異なる軸が異なる変数に対応し、各軸の次数は対応するインデックスで決まります。
  • m(第2引数):微分を繰り返す回数。非負の整数である必要があります。(デフォルト:1)
  • scl(第3引数):各微分ごとに乗算されるスケーリング係数。最終的な結果はscl**m倍になります。変数の線形変換に使用します。(デフォルト:1)
  • axis(第4引数):微分を適用する軸。(デフォルト:0)

例えば、c = [1, 2, 3, 4]、つまり「1 + 2x + 3x² + 4x³」を微分すると、結果は (d/dx)(c) = 2 + 6x + 12x² となります。

実行手順

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

import numpy as np
from numpy.polynomial import polynomial as P

次に、多項式「1 + 2x + 3x**2 + 4x**3」を表す係数の配列を作成します。

c = np.array([1,2,3,4])

係数配列を表示します。

print("Our coefficient 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)

最後に、NumPyのpolynomial.polyder()メソッドを使って多項式を微分します。

print("\nResult...\n",P.polyder(c))

完全なコード例

import numpy as np
from numpy.polynomial import polynomial as P

# 多項式の係数の配列を作成
# 1 + 2x + 3x**2 + 4x**3 を表す
c = np.array([1,2,3,4])

# 係数配列を表示
print("Our coefficient 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)

# NumPyのpolynomial.polyder()メソッドで多項式を微分
# 指定した軸に沿って係数cをm回微分した結果を返す
# 各反復で結果はscl倍される(スケーリング係数は変数の線形変換用)
# cは各軸に沿って低次から高次の順に並べた係数の配列
# 例:[1,2,3]は 1 + 2*x + 3*x**2 を表す

print("\nResult...\n",P.polyder(c))

出力結果

Our coefficient Array...
    [1 2 3 4]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(4,)

Result...
    [ 2. 6. 12.]
  1. Python NumPyのpolyval()メソッドで点xにおける多項式を評価する方法

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

  2. Python NumPyのpolyder()で多項式を微分し、各微分にスカラー倍を適用する方法

    PythonのNumPyライブラリでは、多項式を微分するために polynomial.polyder() メソッドを使用します。このメソッドは、多項式の係数配列 c を指定した軸に沿って m 回微分した結果を返します。さらに、各微分のたびに結果へスケール係数 scl が掛けられます(このスケーリングは、変数の線形変換を行う際に役立ちます)。polyder()メソッドの引数について引数 c は多項式の係数を格納した配列で、次数の低い項から高い項へと順に並べます。例えば、[1,2,3] は多項式 1 + 2x + 3x² を表し、2次元配列の場合は [[1,2],[1,2]] が axis=0 を