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

PythonでHermite_e級数の係数1次元配列からスケーリングされたコンパニオン行列を返す方法

多項式係数の1次元配列からスケーリングされたコンパニオン行列(companions matrix)を取得するには、Python NumPy の hermite_e.hermecompanion() メソッドを使用します。このメソッドは、基底多項式が Hermite_e 基底である場合に、コンパニオン行列が対称行列になるようスケーリングを行います。

スケーリングによって対称性が確保されるため、非スケーリングの場合と比べて固有値の推定精度が向上します。さらに、numpy.linalg.eigvalsh を使って固有値を求めれば、基底多項式に対して固有値が必ず実数になることが保証されます。

メソッドは、次数 deg に対して (deg, deg) の寸法を持つスケーリング済みコンパニオン行列を返します。引数 c には、低次から高次の順に並べられた Hermite 級数の係数を含む1次元配列を指定します。

実行手順

まず、必要なライブラリをインポートします。

import numpy as np
from numpy.polynomial import hermite_e as H

次に、係数の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)

最後に、hermite_e.hermecompanion() メソッドを呼び出して、スケーリングされたコンパニオン行列を取得します。

print("\nResult...\n",H.hermecompanion(c))

サンプルコード

import numpy as np
from numpy.polynomial import hermite_e as H

# 係数の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)

# hermite_e.hermecompanion() メソッドでスケーリングされたコンパニオン行列を取得
print("\nResult...\n",H.hermecompanion(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.66666667]
     [ 1.        -0.66666667]]

以上のように、hermecompanion() メソッドを使うことで、Hermite_e 級数の係数配列から簡単にスケーリングされたコンパニオン行列を生成できます。得られる行列は対称性を持つため、数値計算における固有値解析の安定性が向上する点が大きなメリットです。

  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ノルム