gpt4 book ai didi

python - 检查矩阵在 Numpy 中是否对称

转载 作者:太空狗 更新时间:2023-10-29 17:00:26 26 4
gpt4 key购买 nike

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

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 is not 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)

感谢任何帮助,谢谢!

最佳答案

您可以使用 allclose 将其与其转置进行简单比较

def check_symmetric(a, rtol=1e-05, atol=1e-08):
return numpy.allclose(a, a.T, rtol=rtol, atol=atol)

关于python - 检查矩阵在 Numpy 中是否对称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42908334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com