Pythonでエルミート級数係数の1次元配列からスケーリングされたコンパニオン行列を返す方法
多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、PythonのNumPyでhermite.hermcompanion()メソッドを使用します。このメソッドでは、基底多項式がスケーリングされており、cがエルミート基底多項式である場合にコンパニオン行列が対称行列になります。
スケーリングを行うことで、スケーリングなしの場合と比べてより良い固有値の推定値が得られます。さらに、numpy.linalg.eigvalshを使って固有値を求めれば、基底多項式の固有値は必ず実数になることが保証されます。
このメソッドは、次数(deg)× 次数(deg)の次元を持つスケーリングされたコンパニオン行列を返します。引数cには、低い次数から高い次数の順に並べられたエルミート級数の係数を含む1次元配列を指定します。
手順
まず、必要なライブラリをインポートします。
import numpy as np from numpy.polynomial import hermite 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)
多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、PythonのNumPyでhermite.hermcompanion()メソッドを使用します。
print("\nResult...\n",H.hermcompanion(c))サンプルコード
import numpy as np
from numpy.polynomial import hermite 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)
# 多項式係数の1次元配列からスケーリングされたコンパニオン行列を返す
print("\nResult...\n",H.hermcompanion(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.58925565] [ 0.70710678 -0.33333333]]
-
Python NumPyのpolycompanion()メソッドで多項式係数からコンパニオン行列を求める方法
多項式係数の1次元配列からコンパニオン行列(companion matrix)を返すには、PythonのNumPyが提供する polynomial.polycompanion() メソッドを使用します。コンパニオン行列とは、モニック多項式の係数から構成される正方行列であり、その固有値は元の多項式の根と一致するという重要な性質を持ちます。なお、冪級数(べき級数)の場合は基底のスケーリングによってコンパニオン行列を対称化することができないため、この関数は直交多項式向けの類似関数とは挙動が異なる点に注意してください。polycompanion() メソッドは、次数 deg の多項式に対して (deg
-
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ノルム