超松弛迭代法解线性方程组.docx
- 文档编号:18563073
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:12
- 大小:120KB
超松弛迭代法解线性方程组.docx
《超松弛迭代法解线性方程组.docx》由会员分享,可在线阅读,更多相关《超松弛迭代法解线性方程组.docx(12页珍藏版)》请在冰点文库上搜索。
超松弛迭代法解线性方程组
设it题目:
摘要
本文是在matlabll境下熟悉的运用计算机编程培言并结合超松弛变量起松弛迭代法的理论基础对方程组求解。
首先,本文以愉分方程边值问题为例,导出了离散化后线11方程组即稀疏线性方程组,转化对柿蔭线性方程组求解冋題。
其次,用起松弛(SOR)选代法编写matlab程序,湘产生的柿疏线性方程组进行迭代法求解。
然后,分别改变松弛因子3和分段数n的值,分桥其收敛性和收敛速H,18出各个方面的分林和比较需到相关结论。
最后,将起松弛迭代算法在it算机上运用matlab言实现,借岀了一组与猜确解较接近的数值解,并画图比较,騎iil逐次超松弛(SOR)选代法的績确性。
关键词:
柿匾线性方程组逐次超松弛迭代法松弛因子
matlab编程
-、间题提岀
考虑两点逆值冋题
容易知道它的精确解为
为了把做分方程离IL把[oj]E间“等分,令/亠丄,脸=〃?
,山12…山一1,得到n
差分方程
°治一2)1+X+—畑一X_“
or十—C<-
h2h
简化为
(£+必+i-©+心+%=肿,
从而离散后得到的线性方程组的系数矩阵为
一(2g+/?
)£+h
£+h
—(2w+h)
£-(2£+h)
A=£
£+/?
一(2w+h)_
对£=19a=0.4,n=200,分别用e=1、6?
=0.5和e=1.5的超松弛迭代法
求解线性方程组,要求有4也有效数字,然后比较与精确解的淚差,探讨使超松弛选代法收敛较快的0取值,对结果进行分轿。
改变»论同wrOo
二、超松弛迭代法产生的背景
对从实际间题中借到维数相当夫的线11代数方程组的求解仍然十分困难,以至使人们不能在允许的时间内用貞接方法得到解,Slit,客观上要求用新的方法来解决大维数方程组的求解I'nJSo
现有大名数迭代法不是对各类线11方程组都有收敛性,在解题时,要对原方程组葩晖作一根本的变换,从而可能使条件数变坏,也可能破坏了变换前后方程组的等价性,以员丧失使原方程组的对称II等。
探求新的有效的解题方法依然是迫to的任务。
逐次起松弛(SuccessiveOverRelaxation)jj代法是在高斯-赛德尔(GS)选代法基础上为提高收敛速度,釆用加权平均而得到的新算法。
在求解il程巾由干线性方程组的系数葩晖维数较大,采用it算机编写算法来求解,从而实现了对解析模塑的廿算机数值逼近的廿算方法#本论文以逐次超松弛ii代法为主要的求解方法。
三、超松弛迭代法的理论基础
(一)逐次起松弛选代法
逐次超松弛(SuccessiveOverRelaxation)jj代法,简称SOR迭代法,它是在
GS法基础上为提高收敛速度,采用加权平血而得到的新算法,设解方程(7.1.3)
的GS法记为
对叽丄0厂士叫#4£叫•罗)”127
aiiJ=1J*】
(1)
再由泊与严
严)=(i)屮)+闵讪)=护)十①(晋小-和=12…卫
这里3>0称为松弛参数,将
(1)代人!
M得
彳的=(1-眄护+皀©
该法称为SORii代法,[WTBXJO>0#为松弛因子,当3=1时⑵式即为高斯
-赛德尔迭代法,简记GS法,将
(2)写成矩晖形式,则得
D+向)=(1一㈤Dr")十(D(b十£卫上砂十以⑸)
|!
|)〔D—q£)x(u1)=[(1一少)D十十妙
于是得S0R迭代的矩阵表示
严>=巳严F(3)
其巾
G®=(口_址)珂(1一㈢)D+少U](4)
(二)逐次起松弛选代法的收敛性
根幽迭代法收敛性定理,S0R法收敛的充分必要条件为°(6)<1,收敛的充分条件为©1",(1要廿算①比较复杂,通常都不用此结论,而直接根据方程组的系数矩萍A判BiSOR迭代收敛性,下面先给岀收敛必要条件.
定理[设:
人二(呦)w疋巴砌工0(21,2,..」),则辭方程AS的S0R选代法收敛的必要条杵是0<3<2.
该定理为S0R选代法收敛的必要条件。
定理2若AuR时对称正定,冃0<3<2,则解Ax"的S0R选代法对说胆計选代收敛.
对于SORii代法,松弛因子的选择对收敛速度影响较大,关干最优松弛因子少0研究较为夏杂,且已有不少理论结果.下面只给出一种简单目便干使用的结论。
法迭代葩阵,
定理3设为对称正定的三对角葩取為是斛方程的J
若"(勺)<1,记则SOR法的最优松弛因子叫为
_2
%1十7^⑸
皿帖p"即也收敛速度为
R(C?
)=-111”Q)=-21nq3j)=2氏(勺).
说明GS法比J法快一倍.
定理4设心如果:
(1)人为严格对角占优犯阵;
(2)0 则解加"的SOR迭代法收敛。 四、实验内容 1•自定义函数以实现SOR方法求解线性方程组力足从其中力一系数矩阵; b—常数列向量; w松弛因子; nm—选代的最大次数 e—||X“+)—X⑷匸这到的 由离散后的差分方程: @+必+i-@+脈+%二ah2,i=1,2,…/一1, 得到的线性方杈组的系数矩眸为 s+h 一(2£+力)£+h 8—(2£+力) 肪Y儿 ah2 常数列向量归 ah' 如'-(£+力儿0. H中£=1,Cl=0.4,n=200,h=-,B有 n —(2$+/? )=—2.005,£+/? =1.005=0.000010A力(缶)200-200型迪阵,b为(bij)mom塑 在本次试验中,由数据较小,当最大迭代SSnmSt小时,在nm迭代次数范围内,不能MBiiliS松弛迭代法是否收爼,litftWnm=30000og代精度e也应取较小值才能使误差更小,此次取20.00001。 由定91Wffl,本次试验中,血的取値范围为: 0 取汕=(1丄1,…丄1)7: 为200x1的矩阵。 用SORg代公式得 彳Z=*)一d_00000]+2005召⑹一]005七血)/2.005; x2a+n=x2a)-0(-0.00001—召曲)+2.005心⑷-1.005®⑷)/2.005; 兀如)=寸)_0.0000l-x2a+n+2.005®⑹-1.005x/j/2.005; x4u+n=x4(m-4-0.00001-x3u+I>4-2.005x4u>-1.005x5a>)/2.005; 西J""=西99⑷一丛一°°°°°1一心8曲)+2.005“J)一1.005吃0(/))/2.005;x200(^n=心0⑷一d—0・00001_xQZ+2・005吃22⑷)/2・005・ Q取不BffiW,对应的选代次数、与精埔解的误差如下表1。 表1Q取不冋值时对应的迭代次数与误差 松彈因子3 区间等分数77=200 迭代次数 误差 0.5 18111 1.1581 1 10368 0.3693 1.5 4891 0.1053 1.6 3945 0.0731 1.7 3017 0.0460 1.8 2087 0.0261 1.9 1113 0.0236 满足淚差 兀⑹—打 2Vi。 "的迭代次数 计算值与精确值图形比较 @1廿算值与精備値图形比较 从本组的实验巾,可以看岀0值的取定十分重要,它对求解的迭代次数影哨 十分明显。 一f不好的0值甚至会导致选代超过10000«ffi未能求得需iffig的 fflo 由表1可得,当^=1.90^S0R迭代法收敛速度最快,误差最小。 ®血=1.9,nm=30000,*°)=(060.6,0.6,…,0.6,0.6)7等各f因子相同时,当分段点n取不同値时,对应的选代次数、与精确解的误差如下表2。 区同等分数n 松弛因子血=1.9 迭代次数 误差 120 416 0.2477 150 416 0.2477 200 416 0.2477 250 416 0.2477 满足误差\x{k)-x 2<10_4的迭代次釵 从本组的实验中,当其他各个因子取适当值时,改变分段数时,对结果没有彫哨。 计算值与精确值图形比较 图3精确图形 由图3可得,当各个参数取值适当时,用SOR迭代法所得找性方程组的解与 精确解娱差极小,从而验iiTSORg代法的准确性。 五、第论 1.通it本次的课程设计,可知逐次曲松弛选代法与Jacobi选代法,Seidel&代法相比,收敛速度较快。 由逐次超松弛迭代法求岀的方程组的数值齡与该方程组的精晞解十分接近,离散化后线性方程组的逐次超松弛选代法的精确性较高。 逐次超松弛迭代法可以广泛地应用于实际。 该算法不仅可以用来求解高阶晞磴线性方程组,还可以用来求解热传导IO3样可以夫夫减少汁算量和it算机的内存Hi量,从而提高廿算效率。 本次的课程设计,我们运用了matlab蜡言来实现相关的it算,这样不仅对逐次趙松弛迭代法有了更深层的了解掌握,还提高了对matlab的操作技术,深刻It会到了MATLAB助能的強大之处。 通il本次试验,我掌握了用Jacobi、Gauss-SeidekSOR迭代法求解线性方程组的方法; 九参考文献 [11李庆畅,壬能超,易大义•数值分析[M],清华大学,2008. [2]X卫H.MATLAB程序设廿与应用[M],高等教育,2008. [3]壬诗然.榆聽线性方程组求解的逐次超松弛选代法[J],XX師范大学学报4407-409,2006. [4]李建宇,黎燕.牛顿一SOR迭代方法中最佳松弛因子的算法[J],XX大学学报,4,381-382,1995. [5]蔡大用.魏值分析与实验学习指导[M],清华大学,2001. 附录 1・趙松弛迭代法function[n,x]=cscdd(A,b,X,nmJe,w) n=1; D=diag(diag(A)); %令A=D-L-U,it算葩阵D L=tril(-A)+D; %令A=D-L-U,it算矩眸L U=triu(-A)+D; %令A=D-L-U,it算矩晖U M=inv(D-w*L)*((1-w)*D+w*U);%廿算迭代矩阵 g=w*inv(D-w*L)*b; %廿算送代格式中的常数项 %下面是选代ii程 whilen<=nm x=M*X+g; %用迭代怡式aITS代 r=norm(x-X;inf,); ifr return; end X=x;n=n+1; end dispC在最大选代次数内不收敛! ') 2.输人初始値并调用SOR迭代法 n0=200;m=1;a=0.4;h=1/n0;A=zeros(n0,n0); fori=1: n0 A(i,i)=-(2*m+h); end fori=2: n0-1 A(i,i-1)=m; A(i,i+1)=m+h; end A(1,2)=m+h;A(nO,nO-1)=m; fori=1: n0-1 b(i,1)=a*h^2; endb(n0,1)=a*h'2-(m+h); fori=1: n0 xi=i/nO; y0(i,1)=((1-0.4)/(1-exp(-1)))*(1-exp(-xi))+0.4*xi; x0(i,1)=1; end [n1,x1]=cscdd(A,b,xO,30000,0.00001,0.5); n1 u1=norm(x1-y0,2) [n2,x2]=cscdd(A,b,xO,30000,0.00001,1.0); n2u2=norm(x2-y0,2) [n3,x3]=cscdd(A,b,xO,30000,0.00001,1.5); n3 u3=norm(x3-y0,2)t=1/200: 1/200: 1; plot(t.yO) holdon plot(t,x1,'g') holdon plot(t,x2,T) holdon plot(t,x3,'k') legend(韦确解',’w=0.5Tw=1Tw=1.5'); titleCit算值号精确值图形比较') holdoff
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 松弛 迭代法 线性方程组