1

我正在尝试通过 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中的内容,但为此我必须计算逆矩阵,而且计算成本很高,是否有另一种获取值的方法?

4

1 回答 1

0

"\" 是一种通过取逆来求解线性常系数系统的优化方法。如果你想看看系数矩阵的逆是什么,那么你必须使用

inv(A)

代替

A\b

没有出路!或者,如果您只处理逆矩阵的第 N列,那么您也可以使用

I=eye(n);
A\I(:,N);
于 2012-06-23T14:21:19.447 回答