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

Python NumPyでチェビシェフ多項式のファンデルモンド行列を生成する方法

PythonのNumPyライブラリでは、numpy.polynomial.chebyshevモジュールのchebvander()関数を使うことで、チェビシェフ多項式のファンデルモンド行列を簡単に生成できます。この関数は、指定した各点におけるチェビシェフ多項式の値を列として持つ行列を返します。

返される行列の形状は x.shape + (deg + 1,) となります。最後のインデックスは、対応するチェビシェフ多項式の次数を表します。また、データ型(dtype)は変換後のxと同じものが使用されます。

パラメータの説明

  • x:点の配列です。要素に複素数が含まれる場合は complex128 に、含まれない場合は float64 に変換されます。スカラー値を渡した場合は、自動的に1次元配列へ変換されます。
  • deg:結果として得られる行列の次数です。

実行手順

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

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

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

2. 配列を作成する

サンプル用の点の配列を作成します。

x = np.array([0, 1, -1, 2])

3. 配列の情報を確認する

作成した配列の中身や、次元・データ型・形状を確認しておきましょう。

print("Our Array...\n",x)
print("\nDimensions of our Array...\n",x.ndim)
print("\nDatatype of our Array object...\n",x.dtype)
print("\nShape of our Array object...\n",x.shape)

4. ファンデルモンド行列を生成する

chebvander() 関数に配列と次数を渡すことで、チェビシェフ多項式のファンデルモンド行列を生成できます。

print("\nResult...\n",C.chebvander(x, 2))

完全なサンプルコード

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

# 配列を作成
x = np.array([0, 1, -1, 2])

# 配列を表示
print("Our Array...\n",x)

# 次元を確認
print("\nDimensions of our Array...\n",x.ndim)

# データ型を取得
print("\nDatatype of our Array object...\n",x.dtype)

# 形状を取得
print("\nShape of our Array object...\n",x.shape)

# chebvander()でチェビシェフ多項式のファンデルモンド行列を生成
print("\nResult...\n",C.chebvander(x, 2))

実行結果

Our Array...
    [ 0 1 -1 2]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(4,)

Result...
    [[ 1. 0. -1.]
     [ 1. 1. 1.]
     [ 1. -1. 1.]
     [ 1. 2. 7.]]

このように、入力配列 [0, 1, -1, 2] の各点に対して、次数0から2までのチェビシェフ多項式 T₀(x)=1、T₁(x)=x、T₂(x)=2x²−1 の値が計算され、4行3列のファンデルモンド行列が得られます。例えば x=2 の場合、T₂(2) = 2×(2)²−1 = 7 となり、出力結果の最終行 [1. 2. 7.] と一致していることが分かります。

  1. Python NumPyで複素数点配列からチェビシェフ多項式のファンデルモンド行列を生成する方法

    PythonのNumPyライブラリでは、chebyshev.chebvander()関数を使用することで、チェビシェフ多項式のファンデルモンド行列を簡単に生成できます。この関数は、指定した点の配列と次数をもとに、チェビシェフ多項式のファンデルモンド行列を返します。戻り値となる行列の形状は x.shape + (deg + 1,) であり、最後のインデックスは対応するチェビシェフ多項式の次数を表します。また、dtypeは変換後のxと同じになります。パラメータについてx(点の配列): 点の配列を指定します。要素に複素数が含まれる場合はcomplex128に、そうでない場合はfloat64に変換され

  2. PythonとNumPyでチェビシェフ多項式のファンデルモンド行列を生成する方法

    PythonのNumPyライブラリを使用して、チェビシェフ多項式のファンデルモンド行列を生成するには、chebyshev.chebvander() 関数を利用します。この関数はファンデルモンド行列を返し、返される行列の形状は x.shape + (deg + 1,) となります。最後のインデックスは、対応するチェビシェフ多項式の次数を表します。また、dtypeは変換後のxと同じになります。引数について説明します。第1引数の x は点の配列です。要素に複素数が含まれるかどうかに応じて、dtypeはfloat64またはcomplex128に変換されます。xがスカラーの場合は1次元配列に変換されます