数值分析第二次大作业SOR最优松弛因子选取方法及SOR迭代法的改进

2018-12-27 20:01

《数值分析》第二次大作业

题目:SOR最优松弛因子选取方法及SOR迭代法的改进 内容:

1.SOR最优松弛因子选取方法 2.SOR迭代法的改进(SSOR迭代法) 3.SSOR迭代法的Matlab程序

4.举例比较jacobi,Gauss-Seidel,SOR及SSOR 1111111迭代法的收敛速度

姓名:合肥工业大学

学号:2011

班级:信息与计算科学11-1班 参考资料:

1.《确定SOR最优松弛因子的一个实用算法》李春光等《计算力学学报》 2.《数值分析与实验》,薛毅,北京工业大学出版社.

3.《数值分析中的迭代法解线性方程组》,马云,科学出版社 4.《非线性互补问题的改进超松弛迭代算法》,段班祥等,江西师范大学出版社 5.《迭代法解线性方程组的收敛性比较》,郑亚敏,江西科学出版社.

一、SOR最优松弛因子选取方法

SOR迭代法迭代公式:

x(k?1)i?(1??)xi?(k)?bi??aijxjaii?j?1???i?1(k?1)?j?i?1?axijn(k)j?? ?i?1,2,..n.?, ??1.二分比较法 将松弛因子1/2,

?的区间(1,2)进行二分,每个小区间的长度为

?去中间值3/2,按照SOR迭代法迭代公式,求出跌代次数k,如果k不超过指定的发散常数,则可确定?的值;否则将(1,2)四等分,每个区间长度为1/4,?取各分点值,继续迭代,一般地,将

1区间(1,2)二分M次,每次二分步长为,?一次取取各分点值,

2M按照SOR迭代法迭代公式,求出跌代次数k,如果k不超过指定的发散常数,则可确定的

?的值,这样总能找到一个不超过指定发散常数

?值。

2.逐步搜索法

1??的取值区间(1,2)进行M等分,?分别取

?的值。

12M?1,1?,...,1?,通过迭代公式依次对同意精度要求求出迭代MMM次数k的值,并从中选出最优松弛因子

3.黄金分割法

依据黄金分割比的思想,通过计算机主动选取最优松弛因子的近似值,步骤如下

a.对(1,2)区间进行第一次0.618的分割,区间边界a1?1,b1?2,在区间?a1,b1?分割出黄金点p1?a1?0.618?b1?a1?,进行SOR迭代

法的迭代,求出迭代次数k的值,如果没有超过规定的发散常数,迭代结束,否则做步骤b。

b.在(1,1.618)和区间(1.618,2)之间进行第二次黄金分割,找出p2?a2?0.618?b2?a2?,其中a2和b2是新分割区间的左右边界,找出迭代次数最少的

?,若发散则改变区间继续进行黄金分割。

二、SOR迭代法的改进(SSOR迭代法)

SOR迭代法的计算公式为:

?(0)(0)(0)?(0)Tx?(x,x,?,x)1n2?i?1n?(k?1)(k)(k)?(k?1)1?xi?(bi??aijxj??aijxj)?xi??xiaiij?1j?i?1,?i?1n?(k?1)(k)??xi?(bi??aijxj??aijxj)?aii?j?1j?i?(k?0,1,?;i?1,2?,n)

则存在 Dx(k?1)?D x(k)??(b?Lx(k?1)?Ux(k)?D x(k))

?1?1f??(D??L)b B?(D??L)((1??)D??U)令S,S(k?1)(k)??B??fS 则 S 对称超松弛迭代法是对逐次超松弛迭代法的改进,在逐次超松弛迭代法的基础上,首先对线性方程组按照顺序方式依次求解xi,(i?1,2,?n),然后在此基础上对线性方程组逆序求解,得出SSOR迭代法。

求解步骤: Step 1 顺序求解得出

x(k?12):

?x(k?2)?L?x(k)?f1??1L?(D??L)((1??)D??U)??

?1?f1??(D??L)b?

Step 2 逆序求解由

1x(k?12)得出

x(k?1)1

?x(k?1)?U?x(k?2)?f2?U??(D??U)?1((1??)D??L)?

?1?f2??(D??U)b?

得出SSOR公式:

?x(k?1)?S?x(k)?f??S??U?L??

?f??(2??)(D??D?1U)?1(D??D?1L)?1D?1b??三、SSOR迭代法Matlab程序:

function [x,n]=SSOR(A,b,x0,w,eps,M) %对称逐次超松弛迭代法求线性方程组Ax=b的解 if nargin==4

eps= 1.0e-6; M = 200; elseif nargin<4 error return

elseif nargin ==5 M = 200; end

if(w<=0 || w>=2) error; return; end

D=diag(diag(A)); %求A的对角矩阵 L=-tril(A,-1); %求A的下三角阵 U=-triu(A,1); %求A的上三角阵 B1=inv(D-L*w)*((1-w)*D+w*U); B2=inv(D-U*w)*((1-w)*D+w*L); f1=w*inv((D-L*w))*b;

f2=w*inv((D-U*w))*b; x12=B1*x0+f1; x =B2*x12+f2;

n=1; %迭代次数 while norm(x-x0)>=eps x0=x;

x12=B1*x0+f1; x =B2*x12+f2; n=n+1; if(n>=M)

disp('Warning: 迭代次数太多,可能不收敛!'); return; end end

四、几种迭代方法的比较

下面我们用不同的迭代方法求解n元线性方程组Ax?b,其中

?4?1??3??????14?1???2??,b????. A??????????14?1???2???3??14?????(0)方程的精确解为x??1,1,?,1?.取n?10,初始向量x为零向量.利用

*TMatlab程序,下表给出了几种迭代方法达到不同精度时所需的迭代次数.

表1 不同的迭代法达到某一精度时所需迭代次数的比较

迭代法 参数值 迭代次数 精度 21 Jacobi迭代法 \\ 13 Gauss-Seidel迭代法 \\ 1?10?6 15 ??1.2 SOR迭代法 8 ??1.2 SSOR迭代法 27 Jacobi迭代法 \\ 17 Gauss-Seidel迭代法 \\ 1?10?8 17 ??1.2 SOR迭代法 10 ??1.2 SSOR迭代法 由上表可以看到,若合理的选取参数值,解系数矩阵为三对角矩阵的线性方程组时,SSOR迭代法收敛速度最快.


数值分析第二次大作业SOR最优松弛因子选取方法及SOR迭代法的改进.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:心理学 复习练习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: