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

Python NumPyのchebcompanion()でチェビシェフ級数係数からスケーリングされたコンパニオン行列を求める方法

多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、Python NumPyの chebyshev.chebcompanion() メソッドを使用します。

このメソッドでは基底多項式がスケーリングされているため、引数 c がチェビシェフ基底多項式の係数列であれば、得られるコンパニオン行列は対称行列になります。その結果、スケーリングを行わない場合と比べてより精度の高い固有値推定が可能となり、さらに numpy.linalg.eigvalsh を使って固有値を計算すれば、固有値が必ず実数になることが保証されます。

メソッドの戻り値は、形状が (deg, deg) のスケーリングされたコンパニオン行列です。引数 c には、低次から高次の順に並べたチェビシェフ級数係数の1次元配列を指定します。

実行手順

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

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

2. 係数の1次元配列を作成する

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

3. 配列を表示する

print("Our 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. スケーリングされたコンパニオン行列を取得する

多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、chebyshev.chebcompanion() メソッドを呼び出します。

print("\nResult...\n", C.chebcompanion(c))

コード例全体

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

# 係数の1次元配列を作成
c = np.array([1, 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)

# チェビシェフ級数係数の1次元配列からスケーリングされたコンパニオン行列を取得
print("\nResult...\n", C.chebcompanion(c))

出力結果

Our Array...
    [1 2 3]

Dimensions of our Array...
1

Datatype of our Array object...
int64

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

Result...
    [[ 0.         0.47140452]
     [ 0.70710678 -0.33333333]]
  1. Pythonでエルミート級数係数の1次元配列からスケーリングされたコンパニオン行列を返す方法

    多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、PythonのNumPyでhermite.hermcompanion()メソッドを使用します。このメソッドでは、基底多項式がスケーリングされており、cがエルミート基底多項式である場合にコンパニオン行列が対称行列になります。スケーリングを行うことで、スケーリングなしの場合と比べてより良い固有値の推定値が得られます。さらに、numpy.linalg.eigvalshを使って固有値を求めれば、基底多項式の固有値は必ず実数になることが保証されます。このメソッドは、次数(deg)× 次数(deg)の次元を持つスケーリングされたコンパ

  2. Python NumPyのlinalg.norm()で行列・ベクトルのノルムを計算する方法

    線形代数において行列またはベクトルのノルム(Norm)を返すには、Python NumPyのnumpy.linalg.norm()メソッドを使用します。この記事では、LA.norm()メソッドの基本的な使い方と各パラメータの意味を、実際のコード例とともにわかりやすく解説します。numpy.linalg.norm()メソッドのパラメータ第1引数:xノルムを計算する対象となる入力配列です。axisがNoneの場合、xは1次元または2次元である必要があります(ordがNoneの場合を除く)。axisとordがどちらもNoneの場合は、x.ravel()の2-ノルムが返されます。第2引数:ordノルム