欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    超松弛迭代法解线性方程组.docx

    • 资源ID:10214586       资源大小:236.24KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    超松弛迭代法解线性方程组.docx

    1、超松弛迭代法解线性方程组超松弛迭代法解线性方程组设计题目: 超松弛迭代法解线性方程组 摘要本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变量超松弛迭代法的理论基础对方程组求解。 首先,本文以微分方程边值问题为例,导出了离散化后线性方程组即稀疏线性方程组,转化对稀疏线性方程组求解问题。其次,用超松弛( SOR) 迭代法编写matlab程序,对产生的稀疏线性方程组进行迭代法求解。然后,分别改变松弛因子和分段数n的值,分析其收敛性和收敛速度,做出各个方面的分析和比较得到相关结论。最后,将超松弛迭代算法在计算机上运用matlab语言实现, 得出了一组与精确解较接近的数值解,并画图比较,

    2、验证逐次超松弛( SOR) 迭代法的精确性。关键词 : 稀疏线性方程组 逐次超松弛迭代法 松弛因子 matlab编程1、问题提出考虑两点边值问题容易知道它的精确解为为了把微分方程离散,把区间等分,令,得到差分方程简化为从而离散后得到的线性方程组的系数矩阵为对,分别用、和的超松弛迭代法求解线性方程组,要求有4位有效数字,然后比较与精确解的误差,探讨使超松弛迭代法收敛较快的取值,对结果进行分析。改变,讨论同样问题。二、超松弛迭代法产生的背景 对从实际问题中得到维数相当大的线性代数方程组的求解仍然十分困难, 以至使人们不能在允许的时间内用直接方法得到解, 因此, 客观上要求用新的方法来解决大维数方程

    3、组的求解问题。 现有大多数迭代法不是对各类线性方程组都有收敛性, 在解题时, 要对原方程组矩阵作一根本的变换, 从而可能使条件数变坏, 也可能破坏了变换前后方程组的等价性, 以及丧失使原方程组的对称性等。探求新的有效的解题方法依然是迫切的任务。逐次超松弛(Successive Over Relaxation)迭代法是在高斯-赛德尔(GS)迭代法基础上为提高收敛速度,采用加权平均而得到的新算法。 在求解过程中由于线性方程组的系数矩阵维数较大, 采用计算机编写算法来求解, 从而实现了对解析模型的计算机数值逼近的计算方法#本论文以逐次超松弛迭代法为主要的求解方法。三、超松弛迭代法的理论基础(1)逐次

    4、超松弛迭代法逐次超松弛(Successive Over Relaxation)迭代法,简称SOR迭代法,它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法,设解方程的GS法记为 (1)再由与加权平均得 这里0称为松弛参数,将(1)代入则得 (2)该法称为SOR迭代法,WTBX0称为松弛因子,当=1时(2)式即为高斯-赛德尔迭代法,简记GS法,将(2)写成矩阵形式,则得 即于是得SOR迭代的矩阵表示 (3)其中 (4) 分解后,有.(2)逐次超松弛迭代法的收敛性根据迭代法收敛性定理,SOR法收敛的充分必要条件为,收敛的充分条件为,但要计算比较复杂,通常都不用此结论,而直接根据方程组的系

    5、数矩阵A判断SOR迭代收敛性,下面先给出收敛必要条件. 定理1设,则解方程的SOR迭代法收敛的必要条件是02. 该定理为SOR迭代法收敛的必要条件。 定理 2若对称正定,且02,则解Ax=b的SOR迭代法对迭代收敛.对于SOR迭代法,松弛因子的选择对收敛速度影响较大,关于最优松弛因子研究较为复杂,且已有不少理论结果.下面只给出一种简单且便于使用的结论。 定理3设为对称正定的三对角矩阵,是解方程的J法迭代矩阵,若,记,则SOR法的最优松弛因子为 (5)且(6)根据定理,,如图1所示.由(6)可知,当=1,时,收敛速度为.说明GS法比J法快一倍.图1定理4 设,如果:(1)A为严格对角占优矩阵;(

    6、2)0=1.则解的SOR迭代法收敛。4、实验内容1.自定义函数 sor(A, b, nm, e, w),以实现SOR方法求解线性方程组AX=B,其中A系数矩阵;b常数列向量;w松弛因子;nm迭代的最大次数e达到的精度上限由离散后的差分方程:得到的线性方程组的系数矩阵为 常数列向量b=其中,则有。A为(aij)200*200型矩阵,b为(bij)200*1型矩阵。在本次试验中,由于所提供数据较小,当最大迭代次数nm较小时,在nm迭代次数范围内,不能判断该超松弛迭代法是否收敛,此次取nm=30000。迭代精度e也应取较小值才能使误差更小,此次取e=。由定理1可知,本次试验中,的取值范围为:02才能

    7、保证迭代法收敛。取,为的矩阵。用SOR迭代公式得取不同值时,对应的迭代次数、与精确解的误差如下表1。表1 取不同值时对应的迭代次数与误差松弛因子 区间等分数=200迭代次数误差 1811111036848913945301720871113满足误差的迭代次数 图1 计算值与精确值图形比较 从本组的实验中,可以看出w 值的取定十分重要,它对求解的迭代次数影响十分明显。一个不好的w 值甚至会导致迭代超过10000次仍未能求得需要精度的值。由表1可得,当=时SOR迭代法收敛速度最快,误差最小。取=,nm=30000,等各个因子相同时,当分段点n取不同值时,对应的迭代次数、与精确解的误差如下表2。区间

    8、等分数n松弛因子 =迭代次数误差120416150416200416250416满足误差的迭代次数从本组的实验中,当其他各个因子取适当值时,改变分段数时,对结果没有影响。 图3 精确图形由图3可得,当各个参数取值适当时,用SOR迭代法所得线性方程组的解与精确解误差极小,从而验证了SOR迭代法的准确性。五、结论1.通过本次的课程设计,可知逐次超松弛迭代法与Jacobi 迭代法, Seidel 迭代法相比, 收敛速度较快。由逐次超松弛迭代法求出的方程组的数值解与该方程组的精确解十分接近, 离散化后线性方程组的逐次超松弛迭代法的精确性较高。逐次超松弛迭代法可以广泛地应用于实际。该算法不仅可以用来求解

    9、高阶稀疏线性方程组, 还可以用来求解热传导问题这样可以大大减少计算量和计算机的内存储量, 从而提高计算效率。本次的课程设计,我们运用了matlab语言来实现相关的计算,这样不仅对逐次超松弛迭代法有了更深层的了解掌握,还提高了对matlab的操作技术,深刻体会到了MATLAB功能的强大之处。通过本次试验,我掌握了用Jacobi、Gauss-Seidel、SOR迭代法求解线性方程组的方法;六、参考文献1李庆扬,王能超,易大义.数值分析M, 清华大学出版社,2008.2刘卫国. MATLAB程序设计与应用M,高等教育出版社,2008.3王诗然. 稀疏线性方程组求解的逐次超松弛迭代法J,沈阳师范大学学

    10、报,4,407-409,2006.4李建宇,黎燕. 牛顿一SOR迭代方法中最佳松弛因子的算法J,四川大学学报,4,381-382,1995.5蔡大用.数值分析与实验学习指导M,清华大学出版社,2001.附录1.超松弛迭代法function n,x=cscdd(A,b,X,nm,e,w)n=1;D=diag(diag(A); %令A=D-L-U,计算矩阵DL=tril(-A)+D; %令A=D-L-U,计算矩阵LU=triu(-A)+D; %令A=D-L-U,计算矩阵UM=inv(D-w*L)*(1-w)*D+w*U); %计算迭代矩阵g=w*inv(D-w*L)*b; %计算迭代格式中的常数项

    11、%下面是迭代过程while n=nm x=M*X+g; %用迭代格式进行迭代 r=norm(x-X,inf); if re return; end X=x; n=n+1; enddisp(在最大迭代次数内不收敛!)2.输入初始值并调用SOR迭代法n0=200;m=1;a=;h=1/n0;A=zeros(n0,n0);for i=1:n0 A(i,i)=-(2*m+h);endfor i=2:n0-1 A(i,i-1)=m; A(i,i+1)=m+h;endA(1,2)=m+h;A(n0,n0-1)=m;for i=1:n0-1 b(i,1)=a*h2;endb(n0,1)=a*h2-(m+h)

    12、;for i=1:n0 xi=i/n0; y0(i,1)=(/(1-exp(-1)*(1-exp(-xi)+*xi; x0(i,1)=1; endn1,x1=cscdd(A,b,x0,30000,;n1u1=norm(x1-y0,2)n2,x2=cscdd(A,b,x0,30000,;n2u2=norm(x2-y0,2)n3,x3=cscdd(A,b,x0,30000,;n3u3=norm(x3-y0,2)t=1/200:1/200:1;plot(t,y0)hold onplot(t,x1,g)hold onplot(t,x2,r)hold onplot(t,x3,k)legend(精确解,w=,w=1,w=);title(计算值与精确值图形比较)hold off


    注意事项

    本文(超松弛迭代法解线性方程组.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开