【NumPy】Pythonでラゲール多項式係数の1次元配列からコンパニオン行列を返す方法
概要
PythonのNumPyを使って、ラゲール多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、numpy.polynomial.laguerreモジュールのlagcompanion()関数を使用します。
ラゲール多項式の通常のコンパニオン行列は、係数cが基底ラゲール多項式である場合にはすでに対称行列となっているため、追加のスケーリングは適用されません。
この関数は、(deg, deg)という形状のコンパニオン行列を返します。引数cには、低次から高次の順に並べたラゲール級数の係数を格納した1次元配列を指定します。
なお、コンパニオン行列とは、その固有値が元の多項式の根と一致する特性を持つ行列です。多項式の根を数値的に求めたい場合などに活用されます。
実装の手順
まず、必要なライブラリをインポートします。
import numpy as np from numpy.polynomial import laguerre as L
続いて、係数の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次元配列からコンパニオン行列を返すには、lagcompanion()関数を使用します。
print("\nResult...\n",L.lagcompanion(c))
サンプルコード
import numpy as np
from numpy.polynomial import laguerre as L
# 係数の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)
# lagcompanion()でコンパニオン行列を求める
print("\nResult...\n",L.lagcompanion(c))
出力結果
Our Array...
[1 2 3]
Dimensions of our Array...
1
Datatype of our Array object...
int64
Shape of our Array object...
(3,)
Result...
[[ 1. -0.33333333]
[-1. 4.33333333]]
まとめ
この記事では、NumPyのlagcompanion()関数を使って、ラゲール多項式係数の1次元配列からコンパニオン行列を取得する方法を解説しました。コンパニオン行列の固有値は元の多項式の根に対応するため、多項式方程式の求解や数値解析の場面で非常に有用です。ぜひ実際のコードで試してみてください。
-
Pythonでエルミート級数係数の1次元配列からスケーリングされたコンパニオン行列を返す方法
多項式係数の1次元配列からスケーリングされたコンパニオン行列を返すには、PythonのNumPyでhermite.hermcompanion()メソッドを使用します。このメソッドでは、基底多項式がスケーリングされており、cがエルミート基底多項式である場合にコンパニオン行列が対称行列になります。スケーリングを行うことで、スケーリングなしの場合と比べてより良い固有値の推定値が得られます。さらに、numpy.linalg.eigvalshを使って固有値を求めれば、基底多項式の固有値は必ず実数になることが保証されます。このメソッドは、次数(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ノルム