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

Pythonでaxis=1を指定して多次元係数のエルミート級数を微分する方法

Pythonでエルミート級数を微分するには、numpy.polynomial.hermiteモジュールが提供するhermite.hermder()メソッドを使用します。この記事では、多次元の係数配列に対して、微分を行う軸(axis)として「1」を指定する方法を解説します。

hermite.hermder()メソッドのパラメータ

hermite.hermder()メソッドには、以下の4つのパラメータがあります。

  • c(第1引数):エルミート級数の係数を格納した配列です。cが多次元の場合、各軸は異なる変数に対応し、各軸における次数は対応するインデックスによって決まります。
  • m(第2引数):微分の回数です。負でない整数である必要があります。デフォルト値は1です。
  • scl(第3引数):スカラー値です。各微分ごとにsclが乗算され、最終的な結果にはscl**mが掛けられます。これは変数の線形変換を行う際に使用します。デフォルト値は1です。
  • axis(第4引数):微分を行う対象の軸です。デフォルト値は0ですが、本記事では軸1を指定します。

実行手順

ステップ1:必要なライブラリをインポートする

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

import numpy as np
from numpy.polynomial import hermite as H

ステップ2:多次元の係数配列を作成する

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

c = np.arange(4).reshape(2,2)

ステップ3:配列の内容と属性を確認する

作成した配列を表示し、次元数・データ型・形状を確認しましょう。

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)

ステップ4:hermite.hermder()で微分する

エルミート級数を微分するために、hermite.hermder()メソッドを呼び出します。ここでは、微分の対象となる軸としてaxis = 1を指定しています。

print("\nResult...\n",H.hermder(c, axis = 1))

完全なコード例

import numpy as np
from numpy.polynomial import hermite 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.hermder()メソッドでエルミート級数を微分(axis=1)
print("\nResult...\n",H.hermder(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...
   [[2.]
   [6.]]

結果の解説

元の配列cは[[0, 1], [2, 3]]という2×2の行列です。axis=1を指定すると、各行(横方向)に沿って微分が行われます。エルミート級数の微分規則により、係数[0, 1]からは[2]が、係数[2, 3]からは[6]が得られます。そのため、結果は[[2.], [6.]]という形状(2, 1)の配列になります。なお、微分後の係数は浮動小数点型(float64)に変換される点にも注意してください。

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

  2. 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である場合、