Skip to main content
 首页 » 编程设计

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

2025年05月04日12langtianya

[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