function [x, count] = lttfunSOR(A, b, x0, w, max, delta)
% 函数功能:对超松弛迭代法求解线性方程组;
% 输入:
% A:系数矩阵
% b:常数矩阵;
% x0:初始解;
% w:松弛因子;
% max:最大迭代次数;
% delta:精度阈值;
% 输出:
% x:近似解;
% count:迭代次数
n = length(x0);
x = ones(n, 1);
for k = 1:max
for j = 1:n
if j == 1
x(1) = x0(1) + w * (b(1) - A(1,1:n) * x0(1:n)) / A(1, 1);
else
x(j) = x0(j) + w * (b(j) - A(j,1:j-1) * x(1:j-1) - ...
A(j,j:n) * x0(j:n)) / A(j,j);
end
end
err = norm(x-x0, Inf);
x0 = x;
if err < delta
break;
end
end
count = k;
return