在Numpy中检查矩阵是否对称。

10 浏览
0 Comments

在Numpy中检查矩阵是否对称。

我试图创建一个带有参数 (a, tol=1e-8) 的函数,该函数返回一个布尔值,告诉用户矩阵是否对称(对称矩阵等于其转置)。到目前为止,我有:

def check_symmetric(a, tol=1e-8):
    if np.transpose(a) == a:
        return True
    else:
        return False

虽然我一直收到一个 axes未定义 的消息,所以我相当确定这根本不起作用......我想要通过以下测试:

e = np.eye(4)
f = np.diag([1], k=3)
g = e[1:, :]
print(check_symmetric(e))
print(not check_symmetric(e + f))
print(check_symmetric(e + f * 1e-9))
print(not check_symmetric(e + f * 1e-9, 1e-10))
try:
    check_symmetric(g)
    print(False)
except ValueError:
    print(True)

感谢任何帮助!

0