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

Python NumPyのpolyder()で多項式を微分する方法:導関数の計算とスケーリング係数の適用

PythonのNumPyで多項式を微分するには、numpy.polynomialモジュールのpolynomial.polyder()メソッドを使用します。このメソッドは、多項式の係数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)。

このメソッドは、導関数の多項式係数を返します。

実装手順

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

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)

多項式を微分するには、Python NumPyのpolynomial.polyder()メソッドを使用します。ここでは、2回微分し、スケーリング係数として-1を指定しています。

print("\nResult...\n",P.polyder(c, 2, scl = -1))

完全なコード例

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)

# polyder()メソッドで2回微分し、スケーリング係数-1を適用
print("\nResult...\n",P.polyder(c, 2, scl = -1))

出力結果

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...
[ 6. 24.]

結果の解説

元の多項式 f(x) = 1 + 2x + 3x² + 4x³ を2回微分すると、1次微分で f'(x) = 2 + 6x + 12x²、2次微分で f''(x) = 6 + 24x となります。さらにスケーリング係数 (-1)² = 1 が乗算されるため、最終的な結果は [6., 24.] となります。このように、polyder()メソッドを使えば、微分回数とスケーリング係数を柔軟に指定しながら多項式の導関数を簡単に求めることができます。

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

  2. 【Python】polyint()で多項式を積分し、スカラー倍してから積分定数を追加する方法

    はじめにPythonで多項式を積分するには、NumPyの polynomial.polyint() メソッドを使用します。このメソッドは、係数配列 c を下限 lbnd から軸 axis に沿って m 回積分した結果の多項式係数を返します。各反復処理のたびに、得られた級数は scl 倍され、その後に積分定数 k が加算されます。このスケーリング係数は、変数の線形変換を行う際に活用されます。引数 c は、低次から高次の順に並んだ係数の配列です。例えば、[1,2,3] は多項式 1 + 2x + 3x² を表し、[[1,2],[1,2]] は axis=0 を x、axis=1 を y とした場合