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

Pythonで指定した根を持つチェビシェフ級数を生成する方法

PythonのNumPyで、指定した根(ルーツ)を持つチェビシェフ級数を生成するには、numpy.polynomial.chebyshevモジュールのchebfromroots()メソッドを使用します。

このメソッドは、計算結果として係数の1次元配列を返します。すべての根が実数であれば戻り値は実数型の配列になりますが、根の一部に複素数が含まれる場合は、結果の係数がすべて実数であったとしても、戻り値は複素数型の配列になる点に注意してください。

引数rootsには、生成したいチェビシェフ級数の根を要素とするシーケンス(タプルやリストなど)を渡します。

手順

1. 必要なライブラリをインポートする

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

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

2. chebfromroots()メソッドでチェビシェフ級数を生成する

ここでは、根として -1, 0, 1 を指定してチェビシェフ級数を生成してみます。

print("Result...\n", C.chebfromroots((-1, 0, 1)))

3. データ型を確認する

生成された配列のデータ型は、dtype属性で確認できます。

print("\nType...\n", C.chebfromroots((-1, 0, 1)).dtype)

4. 配列の形状を確認する

同様に、配列の形状はshape属性で確認できます。

print("\nShape...\n", C.chebfromroots((-1, 0, 1)).shape)

サンプルコード全体

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

# 指定した根を持つチェビシェフ級数を生成する
print("Result...\n", C.chebfromroots((-1, 0, 1)))

# データ型を取得
print("\nType...\n", C.chebfromroots((-1, 0, 1)).dtype)

# 配列の形状を取得
print("\nShape...\n", C.chebfromroots((-1, 0, 1)).shape)

実行結果

Result...
    [ 0.   -0.25  0.    0.25]

Type...
float64

Shape...
(4,)

解説

実行結果から、根 -1, 0, 1 を持つチェビシェフ級数は、係数 [0, -0.25, 0, 0.25] の配列として表されることがわかります。これは次の式に対応しています。

T₃(x) / 4 = 0・T₀(x) − 0.25・T₁(x) + 0・T₂(x) + 0.25・T₃(x)

また、すべての根が実数のため、データ型はfloat64(実数型)となり、係数が4個あるため形状は(4,)の1次元配列になっています。根に複素数を含めたい場合は、complex型の値を渡すことで複素数係数のチェビシェフ級数も同様に生成できます。

  1. Python NumPyで2D係数配列を使って点(x, y, z)における3Dチェビシェフ級数を評価する方法

    点(x, y, z)における3次元チェビシェフ級数を評価するには、PythonのNumPyが提供するpolynomial.chebval3d()メソッドを使用します。このメソッドは、x、y、zの対応する値の組み合わせから構成される各点における多次元多項式の値を返します。 パラメータの説明 x、y、z:3次元級数は点(x, y, z)において評価されます。x、y、zはすべて同じ形状を持つ必要があります。いずれかがリストやタプルの場合は、まずndarrayに変換されます。ndarrayでない場合は、スカラーとして扱われます。 c:係数の配列です。多重次数i, j, kの項に対応する係数はc[i,

  2. Pythonで与えられた根を持つモニック多項式を生成する方法

    PythonのNumPyで指定した根を持つモニック多項式(最高次の係数が1になる多項式)を生成するには、polynomial.polyfromroots()メソッドを使用します。このメソッドは、多項式の係数を1次元配列として返します。すべての根が実数の場合は出力も実数となり、虚数の根が含まれる場合は複素数となります。引数rootsには、根を要素として含むシーケンスを渡します。手順まず、必要なライブラリをインポートします。from numpy.polynomial import polynomial as Pモニック多項式を生成します。print(Result...\n,P.polyfromro