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

Python NumPyでチェビシェフ級数を微分し、各微分にスカラーを掛ける方法

チェビシェフ級数の微分とは

PythonのNumPyライブラリでは、チェビシェフ級数を微分する際に numpy.polynomial モジュールの chebder() メソッドを使用します。このメソッドは、与えられたチェビシェフ級数の係数配列を指定した回数だけ微分し、その導関数に対応する新しいチェビシェフ級数を返します。

chebder() は、係数配列 c を軸に沿って m 回微分します。各反復のたびに結果は scl 倍されるため、最終的な結果には scl**m が掛かることになります。引数 c は、次数の低い項から高い項へと並べられた係数の配列です。たとえば [1,2,3] は 1*T_0 + 2*T_1 + 3*T_2 という級数を表します。また、[[1,2],[1,2]] のように2次元配列を渡した場合は、axis=0 を x、axis=1 を y として、1*T_0(x)*T_0(y) + 1*T_1(x)*T_0(y) + 2*T_0(x)*T_1(y) + 2*T_1(x)*T_1(y) を表すことになります。

chebder()メソッドの主なパラメータ

第1パラメータ(c): チェビシェフ級数の係数配列です。c が多次元の場合、異なる軸はそれぞれ異なる変数に対応し、各軸における次数は対応するインデックスによって決まります。
第2パラメータ(m): 微分を行う回数です。負でない整数を指定する必要があります(デフォルト: 1)。
第3パラメータ(scl): 各微分の結果に掛けられるスカラー値です。最終的な結果は scl**m 倍になります。変数の線形変換(置換)を行いたい場合に便利です(デフォルト: 1)。
第4パラメータ(axis): 微分を適用する軸です(デフォルト: 0)。

実装の手順

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

まず、NumPyとチェビシェフ多項式モジュールをインポートします。

import numpy as np
from numpy.polynomial import chebyshev as C

ステップ2: チェビシェフ級数の係数配列を作成する

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

ステップ3: 係数配列を表示する

print("Our coefficient Array...\n",c)

ステップ4: 配列の次元を確認する

print("\nDimensions of our Array...\n",c.ndim)

ステップ5: データ型を確認する

print("\nDatatype of our Array object...\n",c.dtype)

ステップ6: 配列の形状を確認する

print("\nShape of our Array object...\n",c.shape)

ステップ7: chebder()メソッドで微分を実行する

chebder() メソッドを使ってチェビシェフ級数を微分します。ここでは scl = -1 を指定して、各微分の結果に -1 を掛けています。

print("\nResult...\n",C.chebder(c, scl = -1))

完全なサンプルコード

import numpy as np
from numpy.polynomial import chebyshev as C

# チェビシェフ級数の係数配列を作成
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)

# chebder()メソッドでチェビシェフ級数を微分(scl=-1を指定)
print("\nResult...\n",C.chebder(c, 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...
[-14. -12. -24.]

このように、chebder() メソッドを使えば、チェビシェフ級数の微分解析を簡単に実装できます。scl 引数を活用することで、変数の線形変換を伴う微分も柔軟に処理できる点がポイントです。

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

  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 を