[python 2.7とnumpy v1.11.1]行列の条件数を調べていて、関数np.linalg.cond()
を使わずに行列の条件数を計算しようとしています。numpyを使った行列の条件番号
numpyのドキュメントに基づいて、行列の条件番号の定義は、「xのノルムのノルムはxの逆数のノルム」となります。
|| X || * || X^-1 ||行列のため
a = np.matrix([[1, 1, 1],
[2, 2, 1],
[3, 3, 0]])
print np.linalg.cond(a)
1.84814479698e + 16
print np.linalg.norm(a) * np.linalg.norm(np.linalg.inv(a))
2.027453660713377e + 17私の計算に誤りがある
?
ありがとうございます!
行列特異値0 det、inf逆など – hpaulj
再生できません。私のPython/Numpyは、 'inv(a)'を呼び出すと 'LinAlgError("特異行列 ")'を生成します。 – Pavel