%*********ZIBAI*********
%Jacobi迭代求解
clear all;
format long;
%设置方程参数
A = [10,-1,-2;-1,10,-2;-1,-1,5];
b = [7.2;8.3;4.2];
x0 = [1.1;1.2;1.3];
%设置精度,最大迭代次数,
eps = 1.0e-8;
M = 200;
%Jacobi迭代求解
D = diag(diag(A))%求A的对角矩阵
L = -tril(A,-1)%求A的下三角矩阵
U = -triu(A,1)%求A的上三角矩阵
B = D\(L+U);
f = D\b;
x00 = [0;0;0];
x = B*x00+f;
n = 1;%迭代次数
while norm((x-x0), 'inf')>=eps
xk = x;
x = B*xk+f;
n = n+1;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!')
break;
end
end
fprintf ('%d次迭代后,相邻无穷范数误差小于:1.0e-8\n', n)
fprintf ('迭代解:');x