Guass---Seidel迭代算法的matlab代码
时间: 2024-02-25 11:56:51 浏览: 78
Gauss-Seidel迭代法的Matlab程序.docx
以下是一个简单的Matlab代码实现Guass-Seidel迭代算法,可以求解线性方程组Ax=b:
```matlab
function [x, iter] = gauss_seidel(A, b, x0, tol, max_iter)
% A: 系数矩阵
% b: 右端向量
% x0: 初始解向量
% tol: 迭代收敛的精度
% max_iter: 最大迭代次数
n = size(A,1);
x = x0;
iter = 0;
while iter < max_iter
iter = iter + 1;
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;
end
```
使用方法:
假设我们要求解线性方程组Ax=b,其中A为系数矩阵,b为右端向量,x为未知向量。
调用该函数:
```matlab
[x, iter] = gauss_seidel(A, b, x0, tol, max_iter);
```
其中,x为求解得到的未知向量,iter为实际迭代次数。
阅读全文