返回顶部

我正在尝试使用(a,tol=1e-8)返回布尔值的参数创建一个函数,该布尔值告诉用户矩阵是否对称(对称矩阵等于其转置)。到目前为止,我有: def check_symmetric(a, tol=1e-8): if np.transpose(a, axes=axes) == np.transpose(a, axes=axes): return True def sqr(s): rows = len(s) for row in sq: if len(row) != rows: return False return True if a != sqr(s): raise ValueError 虽然我不断收到一条axes isn't defined消息,所以我很确定这根本不起作用......我想通过的测试是: 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) 任何帮助表示赞赏,谢谢!

1

0/300

评论 1

cc果冻儿

您可以简单地将它与它的转置进行比较 allclose def check_symmetric(a, rtol=1e-05, atol=1e-08): return numpy.allclose(a, a.T, rtol=rtol, atol=atol)

2022-01-13 14:43:15

- 没有更多了 -