Matlab
clc clear n=input('请输入矩阵的阶数n:'); A=zeros(n); %构造矩阵A for m=1:n A(m,m)=20; end for m=1:n-1 A(m,m+1)=-8; A(m+1,m)=-8; end for m=1:n-2 A(m,m+2)=1; A(m+2,m)=1; end disp(A) %%%%%%%%%%%%%%Jacobi迭代法求解 %用矩阵X的行向量来存放每一次迭代的解 for m=1:n X(1,m)=1; Y(1,m)=0; end fs=1; %设置初始值,以便开始下方的循环 t=1; while fs >10^(-6) for p=1:n Y(t,:)=X(t,:); %第t次迭代 Y(t,p)=0; %与解有关,与第几次迭代无关 X(t+1,p)=-Y(t,:)*A(p,:)'/A(p,p); %第t次迭代的第p个解 end C=zeros(1,n); for u=1:n C(u)=abs(X(t+1,u)); end fs=max(C); t=t+1; end t-1 %显示迭代次数
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!