我试图通过Gauss-Seidel迭代法解决系统问题。但我也希望收到使用的迭代矩阵作为答案。我有这个方法
function [x0,iter] = gaussSeidel(A,b,iterMax,tol)
D = diag(diag(A));
Lower = -tril(A,-1);
Upper = -triu(A,1);
M = D - Lower;
N = Upper;
n = size(A);
n = n(1);
x0 = ones(n,1);
iter = 1;
for i = 1:1:iterMax
iter = i;
x = M\(N*x0+b);
normC = norm(x-x0,inf);
x0 = x;
if normC <tol
break
end
end
我想知道迭代矩阵((D-Lower)^( - 1))* Upper 中的什么,但为此我必须计算逆,这在计算上是昂贵的,还有另一种获得价值的方法吗?
答案 0 :(得分:0)
“\”是一种通过逆向求解线性常系数系统的优化方法。 如果要查看系数矩阵的反函数,则必须使用
inv(A)
而不是
A\b
没有出路!或者,如果您只处理逆矩阵的 N th 列,那么您也可以使用
I=eye(n);
A\I(:,N);