Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia中对角占优矩阵的检验_Julia - Fatal编程技术网

Julia中对角占优矩阵的检验

Julia中对角占优矩阵的检验,julia,Julia,我在朱莉娅做一个项目,我用随机数创建了一个13x13矩阵,然后我检查这个矩阵是否是对角占优的。我对Julia还很陌生,但我对其他一些PRG做了很多工作,所以这个程序是python的一种迭代 function checkD() A=2*rand(13,13).-1 G=A'A j=1 i=1 for i=1:13 sum = 0 for j=1:13 sum = sum + abs.(G[i,j]) end sum = sum - abs.(G[i,

我在朱莉娅做一个项目,我用随机数创建了一个13x13矩阵,然后我检查这个矩阵是否是对角占优的。我对Julia还很陌生,但我对其他一些PRG做了很多工作,所以这个程序是python的一种迭代

function checkD()
A=2*rand(13,13).-1
G=A'A
j=1
i=1
for i=1:13
    sum = 0
    for j=1:13
        sum = sum + abs.(G[i,j])
    end
    sum = sum - abs.(G[i,i])
    if(abs.(G[i,i]) < sum)
        return false
    end
    return true
end
函数checkD()
A=2*兰特(13,13)。-1
G=A'A
j=1
i=1
因为i=1:13
总和=0
对于j=1:13
总和=总和+绝对值(G[i,j])
结束
sum=sum-abs(G[i,i])
if(abs.(G[i,i])

我知道j和I在开始时的声明有点多余,但现在我把它们放在那里了。我的问题是,即使我知道矩阵G=A'A是对角占优的,我还是不断地得到错误的结果。

假设您的定义如下:

对角占优矩阵是一个平方矩阵,使得在每一行中,对角项的绝对值大于或等于该行中其余项的绝对值之和

您可以使用此代码检查矩阵
a
是否为对角占优矩阵(需要
使用LinearAlgebra
):


all(总和(abs.(a),dims=2)。在REPL中一步一步地检查您的逻辑可能是值得的,以检查您的函数实际上在做什么。例如,您在未使用的变量
j
上有一个循环,并且在第一次迭代后退出的
i
上有一个循环。我认为这不是您打算在这里做的。下面是一个示例不分配和提前退出的离子:
all(sum(view(G,i,:)@DNF+1。我的目标是尽可能减少字符数:-)啊。那么,我可以建议:
all(sum(abs,G;dims=2)。太好了!你赢了:-)
all(sum(abs.(a),dims=2) .<= 2abs.(diag(a)))