用matlap编写求解线性方程组的Gauss-Seidel迭代法。
时间: 2024-03-26 14:34:44 浏览: 70
好的,下面是用Matlab编写求解线性方程组的Gauss-Seidel迭代法的示例代码:
```matlab
function [x, k] = gauss_seidel(A, b, x0, tol, max_iter)
% A是系数矩阵,b是常数向量,x0是迭代初值,tol是误差容限,max_iter是最大迭代次数
% x是迭代解,k是实际迭代次数
% 判断是否能进行迭代
if det(A) == 0
error('系数矩阵奇异,无法进行迭代。');
end
n = length(b); % 未知数个数
x = x0; % 迭代初值
k = 0; % 迭代次数
while k < max_iter
x_old = x; % 保存上一次迭代的解
for i = 1:n
x(i) = (b(i) - A(i, 1:i-1) * x(1:i-1) - A(i, i+1:n) * x_old(i+1:n)) / A(i, i);
end
% 计算误差
err = norm(x - x_old) / norm(x);
% 判断是否满足误差要求
if err < tol
return;
end
k = k + 1; % 迭代次数加1
end
warning('达到最大迭代次数,迭代可能未收敛。');
```
使用方法:将上述代码保存为.m文件,例如gauss_seidel.m,然后在Matlab命令窗口中输入以下命令即可:
```matlab
A = [4 -1 0 0; -1 4 -1 0; 0 -1 4 -1; 0 0 -1 3];
b = [15; 10; 10; 10];
x0 = [0; 0; 0; 0];
tol = 1e-6;
max_iter = 1000;
[x, k] = gauss_seidel(A, b, x0, tol, max_iter);
```
其中A是系数矩阵,b是常数向量,x0是迭代初值,tol是误差容限,max_iter是最大迭代次数,x是解向量,k是实际迭代次数。
阅读全文
相关推荐


















