Python NumPyのchebyshev.chebpow()でチェビシェフ級数をべき乗する方法
チェビシェフ級数をべき乗するには、PythonのNumPyが提供する numpy.polynomial.chebyshev.chebpow() メソッドを使用します。このメソッドは、引数に渡したチェビシェフ級数 c を指定したべき乗 pow で累乗し、その結果となるチェビシェフ級数を返します。
引数 c は、低次の項から高次の項へと順に並べた係数のシーケンスです。たとえば [1, 2, 3] は「T0 + 2・T1 + 3・T2」というチェビシェフ級数を表します。
chebpow()メソッドのパラメータ
- c … チェビシェフ級数の係数を低次から高次の順に格納した1次元配列
- pow … 級数を累乗する指数(べき乗)
- maxpower … 許容される最大のべき乗。級数が扱いきれないサイズに膨らむのを防ぐためのもので、デフォルトは16。
powがこの値を超えるとエラーが発生します
手順
まず、必要なライブラリをインポートします。
import numpy as np from numpy.polynomial import chebyshev as C
チェビシェフ級数の係数を持つ1次元配列を作成します。
c = np.array([1, 2, 3])
係数配列を表示します。
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)
チェビシェフ級数をべき乗するには、chebyshev.chebpow() メソッドを使います。ここでは、級数「T0 + 2・T1 + 3・T2」を3乗してみます。
print("\nResult...\n", C.chebpow(c, 3))
完全なコード例
import numpy as np
from numpy.polynomial import chebyshev as C
# チェビシェフ級数の係数の1次元配列を作成
c = np.array([1, 2, 3])
# 係数配列を表示
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)
# chebyshev.chebpow()メソッドでチェビシェフ級数をべき乗する
print("\nResult...\n", C.chebpow(c, 3))
出力結果
Our coefficient Array... [1 2 3] Dimensions of our Array... 1 Datatype of our Array object... int64 Shape of our Array object... (3,) Result... [29.5 57. 53.25 33.5 22.5 13.5 6.75]
結果の解説
元の級数 c = T0 + 2・T1 + 3・T2 を3乗すると、最高次数が6の新しいチェビシェフ級数が得られます。具体的には次の式になります。
(T0 + 2・T1 + 3・T2)³ = 29.5・T0 + 57・T1 + 53.25・T2 + 33.5・T3 + 22.5・T4 + 13.5・T5 + 6.75・T6
検算として x = 1 を代入すると、すべてのチェビシェフ多項式で Tn(1) = 1 となるため、係数の総和は 216 となり、(1 + 2 + 3)³ = 216 と一致します。このように chebpow() を使えば、チェビシェフ基底のまま数値誤差なくべき乗計算を行うことができます。
-
Python NumPyのchebmulx()メソッドでチェビシェフ級数に独立変数を掛ける方法
Python NumPyでは、numpy.polynomial.chebyshev.chebmulx()メソッドを使うことで、チェビシェフ級数に独立変数 x を掛ける(乗算する)ことができます。このメソッドは、乗算結果を表す配列を返します。引数として渡すのは、次数の低い項から高い項へと並べたチェビシェフ級数の係数からなる1次元配列です。 なお、チェビシェフ多項式には x・Tn(x) = (Tn+1(x) + Tn-1(x)) / 2 という関係が成り立つため、chebmulx() は係数を効率よく再計算して新しい級数を返します。 実行手順 まず、必要なライブラリをインポートします。 impo
-
Pythonで多項式を累乗する方法:numpy.polypow()の使い方
Pythonで多項式を累乗するには、numpy.polynomial.polynomialモジュールのpolypow()メソッドを使用します。このメソッドは、指定した多項式cをpow乗した結果を返します。引数cは、次数の低い順から高い順に並べられた係数のシーケンスです。たとえば、[1,2,3]は「1 + 2*x + 3*x**2」という級数を表します。polypow()メソッドのパラメータc:次数の低い順に並べられた係数からなる1次元配列pow:級数を累乗するためのべき指数maxpower:許容される最大のべき乗。主に級数が扱いきれないほど大きく成長するのを防ぐために使用され、デフォルト値は1