[python 2.7 和 numpy v1.11.1] 我正在查看矩阵条件数,并尝试在不使用函数 np.linalg.cond()
的情况下计算矩阵的条件数。
根据 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
我的计算哪里出错了?
谢谢!
最佳答案
您正在尝试使用 Frobenius 范数定义来计算条件。这是条件计算的可选参数。
print(np.linalg.norm(a)*np.linalg.norm(np.linalg.inv(a)))
print(np.linalg.cond(a, p='fro'))
产生
2.02745366071e+17
2.02745366071e+17
关于python - 使用 numpy 的矩阵的条件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47929814/