function [rankA, rankB, N, X, ite, tol] = CNumbericGaussSeidelIteration(A, b, TOL, ITE, initX)
% 调用格式: [rankA, rankB, N, X, ite, tol] = CNumbericGaussSeidelIteration(A, b, TOL, ITE, initX)
% [rankA, rankB, N, X, ite, tol] = CNumbericGaussSeidelIteration(A, b, TOL, ITE)
%
% 任务: Gauss-Seidel迭代法求解线性方程组的解 Ax = b
% 构建 x(k+1) = Gx(k) + f
% G = (D - L)^-1*U, f = (D - L)^-1*b
%
% 输入: A = 系数矩阵, 方阵
% b = 常系数向量, 行向量
% initX = 初始解
% ITE = 迭代次数上限
% TOL = 解的精度(范数)
%
% 输出: rankA = 系数矩阵 A 的秩
% rankB = 增广矩阵 B 的秩, 其中 B = [A|b]
% N = 方程组未知量个数
% X = 方程组的解向量
% ite = 求解的迭代次数
% tol = 实际误差
%
if nargin == 5
X = initX;
elseif nargin == 4
X = zeros(size(b));
end
B = [A, b];
rankA = rank(A);
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载