如果矩阵在对角线上的值在绝对意义上大于该行中所有其他绝对值的总和,则矩阵对角占优势(按行).列也是如此,只是相反.
在matlab中是否有一个函数可以解决这个问题?(我可以写一个简单的循环,但我试图退出那些).
小智 16
为什么循环?
您可以轻松地在给定行中形成绝对值的总和.
sum(abs(A),2)
Run Code Online (Sandbox Code Playgroud)
你能比较一下每行的绝对对角元素吗?
abs(diag(A)) >= sum(abs(A),2)
Run Code Online (Sandbox Code Playgroud)
当然,这是不正确的,因为对角项不应包括在第一个总和中.无论如何,我们可以轻松地修复问题.
(2*abs(diag(A))) >= sum(abs(A),2)
Run Code Online (Sandbox Code Playgroud)
最后,我们需要这个测试的结果.以上测试每行.如果对所有行进行该测试,则矩阵是对角占优势的.
all((2*abs(diag(A))) >= sum(abs(A),2))
Run Code Online (Sandbox Code Playgroud)