高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab程序实现
时间: 2023-07-09 09:36:45 浏览: 73
matlab源程序——高斯赛德尔方法解线性方程组
4星 · 用户满意度95%
以下是高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab程序实现:
```matlab
function [x, iter] = gauss_seidel(A, b, x0, tol, maxiter)
% A: 系数矩阵
% b: 右侧项
% x0: 初始解
% tol: 允许误差
% maxiter: 最大迭代次数
n = size(A, 1);
x = x0;
iter = 0;
while iter < maxiter
for i = 1:n
x(i) = (b(i) - A(i,1:i-1)*x(1:i-1) - A(i,i+1:n)*x0(i+1:n)) / A(i,i);
end
if norm(x - x0) < tol
return;
end
x0 = x;
iter = iter + 1;
end
end
```
其中,A为系数矩阵,b为右侧项,x0为初始解,tol为允许误差,maxiter为最大迭代次数。函数返回解向量x和迭代次数iter。
阅读全文