0

我使用 Gauss-Seidel 方法解决了以前的线性系统。现在我正在尝试为 10 种不同的欧米茄值添加过度松弛。我已将 GS 方法编码为以下函数:

function [x,m,res]=GaussSeidel(x,A,B,maxit,toll); %Defining GS as a function

res=sum(abs(B-A*x))/sum(abs(diag(A).*x));
m=0;

while (res>toll & m<maxit);
    m=m+1;
    
    for i=1:numel(x);
        x(i)=B(i)/A(i,i)-A(i,1:i-1)/A(i,i)*x(1:i-1)-A(i,i+1:end)/A(i,i)*x(i+1:end); 
    end 
    
    res(m)=sum(abs(B-A*x))/sum(abs(diag(A).*x));
end

我正在尝试将这个等式实现为x(i)

方程 到目前为止我已经想出了这个

x(i)=x(i+1:end)+omega(-A(i,1:i-1)/A(i,i)*x(1:i-1)-A(i,i+1:end)/A(i,i)*x(i+1:end)+B(i)/A(i,i))

我知道omega > 1过度放松,但我真的坚持如何在 GS 函数中实现过度放松。

4

0 回答 0