python - 使用 numpy 的矩阵的条件数

标签 python numpy matrix linear-algebra matrix-inverse

[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/

相关文章:

python - 将 numpy 数组设置为 None 是否释放内存?

python - 提取 Pandas 中 dtype 为 'object' 的列的索引

python - Scipysolve_banded矩阵使用的求解方法

python - 如何替换嵌套字典中的值

python - 向量外积的泛化 : apply it to every column of a matrix

c++ - Eigen不同方法(LDLT、​​SVD、QR)同一个矩阵的不同解

c - 在 C 中使用多线程的矩阵乘法

二维数组可以这样初始化吗?

python - 在 Python Bokeh 中填充线条下方的区域

python - 在多进程中运行绘图时出现 matplotlib 错误