clc;
A=[4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,0,0,-1;
-1,0,0,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4]; %输入方程组系数矩阵
b=[0,5,0,6,-2,6]; %输入方程组右端列向量
if (any(diag(A))==0)
error('主对角存在零元素,雅可比迭代无法进行,程序终止')
end
eps=10^-5; %给定误差限
N=10; %给定最大允许的迭代次数
D=diag(diag(A)); %主对角线元素
B=inv(D)*(D-A); %雅可比迭代矩阵
f=inv(D)*b; %迭代列向量
k=0; %给迭代次数计算变量赋初值
x0=zeros(size(b)); %迭代初始向量取与b同型的零向量
while 1
x1=B*x0+f; %雅可比迭代
k=k+1; %迭代次数增1
fprintf('第%2d次迭代的近似解为',k);
disp(x1');
if norm(x1-x0,inf)
disp(x1');
break
end
if k>N
fprintf('迭代次数超限\n')
break
end
x0=x1; %为下一次迭代准备初值
end
两个inv底下有波浪线
运行提示??? Error using ==> mldivide
Matrix dimensions must agree.