《高斯赛德尔与超松弛迭代法》由会员分享,可在线阅读,更多相关《高斯赛德尔与超松弛迭代法(2页珍藏版)》请在金锄头文库上搜索。
1、0 Y X )24111X3024X24八3/74分别运用高斯赛德尔迭代法和超松弛迭代法解线性方程组:3、01.高斯赛德尔迭代法编程思路:高斯赛德尔迭代法实在雅克比迭代法的基础上进行优化得到的,即在进行迭 代时,将已经算得的第k+1步的迭代值代入第k+1步后边的变量的计算当中去,从而加 快了迭代速度。程序代码:function varargout=Gauss_Seidelli(varargin)A=4 3 0;3 4 -1;0 -1 4;b=24 30 -24;x0=0;0;0;x=Gauss_Seidel(A,b,x0) function x=Gauss_Seidel(A,b,x0) n=1
2、00;%最大迭代次数 ee=0.0001;% 精度n1=length(b);for i=1:nx1=x0;for j=1:n1s=0;for k=1:n1if k=j s=s+A(j,k)*x0(k);endendx0(j)=(b(j)-s)/A(j,j);endif norm(x1-x0)ee breakendendx=x0;2.超松弛迭代法该方法是在高斯赛德尔迭代法的基础上将前一步的结果x(k)和x(k 1)进行适当的线性组 ii合以加速收敛,松弛因子3的选择是关键,当132时,即为超松弛迭代法。程序代码:function varargout=SORli(varargin)clcA=4 3
3、 0;3 4 -1;0 -1 4;b=24;30;-24;x0=0;0;0;w=1.3;x=SOR(A,b,x0,w);for i=1:3fprintf(%4.2f ,x (i);endfprintf(n);function x=SOR(A,b,x0,w)%AX=b%x0初始点%w为松弛因子n=100;%最大迭代次数ee=0.0001;% 精度n1=length(b);for i=1:nx1=x0;for j=1:n1s=0;for k=1:n1if k=js=s+A(j,k)*x0(k);endendx0(j)=(1-w)*x0(j)+w*(b(j)-s)/A(j,j);endif norm(x1-x0)eebreakendendx=x0;