雅可比迭代法matlab
时间: 2023-07-13 15:21:17 浏览: 169
Jacobic.rar_jacobi_matlab 雅可比 迭代_雅可比矩阵_雅可比迭代_高斯迭代
雅可比迭代法是一种求解线性方程组的方法,可以用Matlab实现。下面是一个简单的雅可比迭代法Matlab程序示例:
```Matlab
function [x, n] = jacobi(A, b, x0, tol, Nmax)
% A: 系数矩阵
% b: 常数项向量
% x0: 初始解向量
% tol: 相对误差容限
% Nmax: 最大迭代次数
n = 0; % 迭代次数
x = x0;
D = diag(diag(A)); % 对角矩阵
L = tril(A, -1); % 下三角矩阵
U = triu(A, 1); % 上三角矩阵
while n < Nmax
n = n + 1;
x1 = D \ (b - (L + U) * x); % 迭代公式
err = norm(x1 - x) / norm(x); % 相对误差
x = x1;
if err < tol % 达到精度要求
return;
end
end
disp('达到最大迭代次数,未达到精度要求。');
```
使用时,可以按如下方式调用:
```Matlab
A = [4, 1, -1; 2, 7, 1; 1, -3, 12]; % 系数矩阵
b = [3; 19; 31]; % 常数项向量
x0 = [0; 0; 0]; % 初始解向量
tol = 1e-6; % 相对误差容限
Nmax = 100; % 最大迭代次数
[x, n] = jacobi(A, b, x0, tol, Nmax); % 调用函数求解
disp(['迭代次数:', num2str(n)]);
disp(['解向量:[', num2str(x'), ']']);
```
阅读全文