Pythonの線形代数で行列の無限大ノルム(∞ノルム)を求める方法
線形代数において行列やベクトルのノルムを計算するには、Python NumPyのLA.norm()メソッドを使用します。無限大ノルム(∞ノルム)を求めたい場合は、第2引数のordにnp.infを指定します。
行列における無限大ノルムとは、各行の要素の絶対値の合計の中で最大の値を指します。この記事では、具体的なサンプルコードとともにその使い方をわかりやすく解説します。
LA.norm()メソッドの主なパラメータ
- x(第1引数):入力配列です。
axisがNoneの場合、xは1次元または2次元である必要があります(ordがNoneでない場合)。また、axisとordがどちらもNoneの場合は、x.ravel()の2ノルムが返されます。 - ord(第2引数):ノルムの次数を指定します。
infはNumPyのnp.infオブジェクトを意味し、無限大ノルムを表します。デフォルトはNoneです。 - axis(第3引数):整数を指定した場合、ベクトルノルムを計算する対象の軸を指定します。2要素のタプルを指定した場合は、2次元行列を保持する軸を意味し、それらの行列に対して行列ノルムが計算されます。Noneの場合、
xが1次元ならベクトルノルム、2次元なら行列ノルムが返されます。 - keepdims(第4引数):Trueに設定すると、ノルムを計算した軸がサイズ1の次元として結果に残ります。このオプションにより、元の配列
xに対して正しくブロードキャストできるようになります。
実行手順
まず、必要なライブラリをインポートします。
import numpy as np from numpy import linalg as LA
次に、配列を作成します。
arr = np.array([[ -4, -3, -2], [-1, 0, 1], [2, 3, 4] ])
作成した配列を表示します。
print("Our Array...\n",arr)配列の次元数を確認します。
print("\nDimensions of our Array...\n",arr.ndim)配列のデータ型を取得します。
print("\nDatatype of our Array object...\n",arr.dtype)配列の形状を取得します。
print("\nShape of our Array object...\n",arr.shape)最後に、LA.norm()メソッドを使って行列の無限大ノルムを計算します。
print("\nResult...\n",LA.norm(arr, np.inf))完全なサンプルコード
import numpy as np
from numpy import linalg as LA
# 配列を作成
arr = np.array([[ -4, -3, -2],
[-1, 0, 1],
[2, 3, 4] ])
# 配列を表示
print("Our Array...\n",arr)
# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)
# データ型を取得
print("\nDatatype of our Array object...\n",arr.dtype)
# 形状を取得
print("\nShape of our Array object...\n",arr.shape)
# LA.norm()メソッドで無限大ノルムを計算
print("\nResult...\n",LA.norm(arr, np.inf))実行結果
Our Array... [[-4 -3 -2] [-1 0 1] [ 2 3 4]] Dimensions of our Array... 2 Datatype of our Array object... int64 Shape of our Array object... (3, 3) Result... 9.0
結果の解説
この例では、無限大ノルムは「各行の要素の絶対値の合計」の最大値として計算されます。
- 1行目:|-4| + |-3| + |-2| = 9
- 2行目:|-1| + |0| + |1| = 2
- 3行目:|2| + |3| + |4| = 9
最大値は9となるため、実行結果は9.0となります。このように、LA.norm(arr, np.inf)を使うことで、行列の無限大ノルムを簡単に求めることができます。
-
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ノルム
-
【Python入門】numpy.linalg.cholesky()でコレスキー分解を求める方法
線形代数におけるコレスキー分解(Cholesky decomposition)とは、エルミート行列かつ正定値である正方行列 a を、下三角行列 L とその共役転置 LH の積「L * LH」に分解する手法です。NumPyでは numpy.linalg.cholesky() メソッドを使うことで、この分解を簡単に求めることができます。numpy.linalg.cholesky()メソッドの概要numpy.linalg.cholesky() は、引数として渡された正方行列のコレスキー分解を計算し、下三角行列 L を返します。このメソッドには以下のような特徴があります。前提条件: 入力行列 a はエ