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

Python(NumPy)で多項式を微分する方法:polyder()の使い方を解説

PythonのNumPyライブラリを使って多項式を微分するには、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:多項式の係数を格納した配列。多次元配列の場合、異なる軸が異なる変数に対応し、各軸の次数は対応するインデックスによって決まります。
  • m:微分を行う回数。非負の整数である必要があります(デフォルト:1)。
  • scl:各微分の結果に乗算されるスケーリング係数。最終的な結果にはscl**mが乗算されます。変数の線形変換用です(デフォルト:1)。
  • axis:微分を行う対象の軸(デフォルト: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)

polyder()メソッドを使って多項式を3回微分します。この例では、(d**3/dx**3)(c) = 24という結果が得られます。

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

完全なコード例

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()メソッドで多項式を3回微分
print("\nResult...\n",P.polyder(c, 3))

出力結果

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

このように、NumPyの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 NumPyのpolygrid2dでxとyのデカルト積上の2次元多項式を評価する方法

    Pythonでxとyのデカルト積(直積)上の2次元多項式を評価するには、numpy.polynomial.polynomialモジュールのpolygrid2d(x, y, c)メソッドを使用します。このメソッドは、xとyのデカルト積の各点における2次元多項式の値を返します。polygrid2dメソッドのパラメータ第1パラメータ:x、yxとyは、それぞれデカルト積の各点で評価される配列です。xまたはyがリストやタプルの場合、まずndarrayに変換されます。すでにndarrayである場合はそのまま使用され、ndarrayでもリストでもない場合はスカラーとして扱われます。第2パラメータ:ccは係数