%
雅克比迭代
clear
all
;
close
all
;
clc;
tic;
format
longe
disp(
'
请输入参数
'
);
K=input(
'
维数
K='
);
tic
A=100*rand(K);
% A
元素是
0-100
for
i=1:K
A(i,i)=sum(abs(A(i,:)))+25*rand(1);
%
对角占优的量为
0~25
end
b=zeros(K,1);
for
i=1:K;
x=0;
for
r=1:K;
x=x+A(i,r);
end
b(i,1)=x;
end
%
产生
b
矩阵,
b
中的元素为
A
中对应行的和,目的是使方程解全为
1
jd=input(
'
控制精度
jd='
);
I=eye(K);
%
单位阵
L=-tril(A,-1);
%
下三角
U=-triu(A,1);
%
上三角
D=diag(diag(A));
%
对角矩阵
B=D\(L+U);
%
迭代矩阵
或
B=I-D\A;
f=D\b;
%f
x0=zeros(K,1);
%
初始迭代矩阵
y=B*x0+f;
%
迭代公式
s=1;
%
迭代次数
while
norm(y-x0)>=jd&&s<3000;
%
迭代条件
x0=y;
y=B*x0+f;
%
迭代公式
s=s+1;
end
y
s
toc
t=1:K;
yy=abs(y'-1)/1;