高斯赛德尔matlab
时间: 2023-10-27 14:08:19 浏览: 49
高斯赛德尔方法是一种迭代求解线性方程组的方法。在Matlab中,可以使用循环来实现高斯赛德尔方法。以下是一个示例代码:
```matlab
function x = gauss_seidel(A, b, x0, tol, max_iter)
n = size(A, 1);
x = x0;
iter = 0;
err = tol + 1;
while err > tol && iter < max_iter
x_prev = x;
for i = 1:n
sigma = 0;
for j = 1:i-1
sigma = sigma + A(i, j) * x(j);
end
for j = i+1:n
sigma = sigma + A(i, j) * x_prev(j);
end
x(i) = (b(i) - sigma) / A(i, i);
end
err = norm(x - x_prev);
iter = iter + 1;
end
if iter == max_iter && err > tol
disp('达到最大迭代次数但未收敛');
else
disp(['迭代次数:', num2str(iter)]);
end
end
```
使用此函数可以求解形如 Ax=b 的线性方程组。参数说明如下:
- A:系数矩阵
- b:常数向量
- x0:初值向量
- tol:迭代收敛的容差
- max_iter:最大迭代次数