gpt4 book ai didi

python - 检查矩阵是否可以用 Jacobi 方法求解的代码不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:42 25 4
gpt4 key购买 nike

def checkJacobi(m):
row = m.shape[0]
col = m.shape[1]
solv = 0
for i in range(row):
x = abs(m[i,i])
y = 0
for j in range(col):
y = y + abs(m[i,j])
y = y - x
if (y < x):
solv = solv + 1
if (solv == col):
return True
else:
return False

到目前为止,这是我的代码,用于简单地检查矩阵,看看它们是否可以使用 Jacobi 方法求解(Jacobi 方法只能在每行对角线元素的绝对值支配绝对值之和的情况下使用同一行中的其他元素)。我用应该有效的矩阵对其进行了测试,但它们返回了 False。我的代码有什么问题?

最佳答案

RTFM:https://en.m.wikipedia.org/wiki/Diagonally_dominant_matrix

测试是 abs(m[i, i]) >= sum(abs(m[i, j]) for j in range(cols)) - abs(m[i, i])。所以,你的代码应该是:

if y <= x: # not y < x
solv = solv + 1

您的代码正在检查严格 对角线优势,而 Jacobi 方法甚至适用于简单的“非严格”方法。

关于python - 检查矩阵是否可以用 Jacobi 方法求解的代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335247/

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