Pythonで軸1に沿って多次元係数のHermite_e級数を微分する方法
Hermite_e級数を微分するには、PythonのNumPyライブラリが提供する hermite_e.hermeder() メソッドを使用します。第1引数の c は、Hermite_e級数の係数を格納した配列です。c が多次元の場合、各軸はそれぞれ異なる変数に対応し、各軸における次数は対応するインデックスによって決まります。
第2引数の m は微分の回数を表し、非負の整数である必要があります(デフォルト: 1)。第3引数の scl はスカラー値で、微分のたびにこの値が乗算されます。最終的な結果には scl**m が掛けられることになり、変数の線形変換を行う際に役立ちます(デフォルト: 1)。第4引数の axis は、微分を実行する対象の軸を指定します(デフォルト: 0)。本記事では、この axis パラメータに1を指定して、軸1に沿った微分を行う方法を解説します。
手順
まず、必要なライブラリをインポートします。
import numpy as np from numpy.polynomial import hermite_e as H
次に、係数の多次元配列を作成します。
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)Hermite_e級数を微分するために、hermite_e.hermeder() メソッドを呼び出します。ここでは axis = 1 を指定しています。
print("\nResult...\n",H.hermeder(c, axis = 1))完全なコード例
import numpy as np
from numpy.polynomial import hermite_e as H
# 係数の多次元配列を作成
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)
# 軸1に沿ってHermite_e級数を微分
print("\nResult...\n",H.hermeder(c, axis = 1))出力結果
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... [[1.] [3.]]
結果の解説
axis = 1 を指定したため、微分は各列方向(軸1)に沿って実行されています。元の係数配列 [[0, 1], [2, 3]] の場合、Hermite_e級数の微分では定数項が消え、一次の係数が残るため、結果として [[1.], [3.]] という形状 (2, 1) の配列が得られます。出力のデータ型が float になっている点にも注目してください。微分処理の過程で浮動小数点数に変換されるためです。
-
Python NumPyのpolyder()で軸1に沿って多次元係数の多項式を微分する方法
PythonのNumPyで多項式を微分するには、polynomial.polyder()メソッドを使用します。このメソッドは、指定した軸(axis)に沿って多項式係数cをm回微分した結果を返します。各反復処理のたびに結果はscl(スケーリング係数、線形変数変換の際に使用)で乗算されます。引数cは、各軸に沿って低次から高次へと並んだ係数の配列です。例えば、[1,2,3]は多項式 1 + 2*x + 3*x**2 を表し、[[1,2],[1,2]]はaxis=0がx、axis=1がyである場合、1 + 1*x + 2*y + 2*x*y を表します。polyder()メソッドのパラメータc(第1パ
-
Python NumPyのpolyder()で特定の軸に沿って多項式を微分する方法
PythonのNumPyでは、polynomial.polyder()メソッドを使うことで多項式を微分できます。このメソッドは、指定した軸(axis)に沿って多項式の係数cをm回微分した結果を返します。各反復処理のたびに、結果はscl(スケーリング係数)と掛け合わされます。このスケーリング係数は、変数の線形変換を行う際に使用されます。polyder()メソッドの引数について係数配列cは、各軸に沿って次数の低いものから高いものへと並べられます。例えば、[1,2,3]は「1 + 2*x + 3*x**2」という多項式を表し、[[1,2],[1,2]]はaxis=0がx、axis=1がyである場合、