超松弛迭代法方法的应用

超松弛迭代法方法的应用

ID:47467388

大小:513.50 KB

页数:6页

时间:2020-01-11

超松弛迭代法方法的应用_第1页
超松弛迭代法方法的应用_第2页
超松弛迭代法方法的应用_第3页
超松弛迭代法方法的应用_第4页
超松弛迭代法方法的应用_第5页
资源描述:

《超松弛迭代法方法的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CENTRALSOUTHUNIVERSITY数值分析实验报告超松弛迭代法的应用一、问题背景在科学计算和工程设计中,经常会遇到求解线性方程组的问题,而快速精确求解一直是我们追求的目标,随着计算机技术的发展,我们可以借助计算机使用很多方法来帮助求解,如直接法等,但通常都只能适用于经过有限步运算能求得解的方程,对于方程数和未知数都很多的方程组,计算量往往相当大,因而人们在寻求其他求解方法的时候,发现了迭代法的巨大优点,从最初的Jacobi迭代法到Gauss-Seidel迭代法,计算过程变得快速简洁。在Guass-Seidel迭代

2、法的基础上,人们发现迭代—松弛—再迭代的方法,能更加减少计算步骤,极大地缩短计算时间,在此基础上,人们进一步发现超松弛迭代法的收敛速度最快,而且超松弛迭代法具有计算公式简单,编制程序容易等突出优点。通过选择合适恰当的松弛因子能直接控制算法的收敛性和收敛速度。二、数学模型一般而言,因Jacobi迭代收敛速度不够快,所以在工程中用的不是太多。在Jacobi迭代手链速度很慢的情况下,通常Guass-Seidel也不会很快。因此,可以对Guass-Seidel做修改,提高收敛速度,这就是这里要介绍的超松弛迭代法。三、算法及流程在G

3、uass-Seidel中迭代格式为可以将迭代格式改写为其中如果在修正项上加上一个参数,便使得松弛迭代法公式上式可以改写为当时候,就退化为Guass-Seidel迭代法;时,称为逐次超松弛迭代法;时,称为逐次低松弛迭代法。通常,统称为逐次松弛迭代法。MATLAB实现代码:打开编辑器,输入以下语句并保存为Fsor.m文件。function[x,k]=Fsor(A,b,x0,w,tol)max=300;if(w<=0

4、

5、w>=2)error;return;endD=diag(diag(A));L=-tril(A,-1);U=-t

6、riu(A,1);B=inv(D-L*w)*((1-w)*D+w*U);f=w*inv((D-L*w))*b;x=B*x0+f;k=1;whilenorm(x-x0)>=tolx0=x;x=B*x0+f;k=k+1;if(k>=max)disp('迭代次数过多,SOR方法可能不收敛');return;end[k,x']end四、计算结果及分析用超松弛迭代法,求解方程组要求计算精度为打开编辑器输入以下命令并以文件名sor.m保存文件。a=[5-1-1-1-110-1-1-1-15-1-1-1-110];b=[-412834]

7、';x0=[1111]';[x,k]=Fsor1(a,b,x0,1.2,1e-7)运行程序,在命令窗口输入>>sor运行得到:x=1.0000000098338771.9999999950286383.0000000007133604.000000002119737k=14计算结果表明迭代到14次时,已经满足精度。为了进一步分析迭代过程中的收敛情况,下面给出的是每一步的迭代值:ans=Columns1through42.0000000000000001.0206936064000002.0521260359680003.2

8、40994000568320Column53.985238565152359ans=Columns1through43.0000000000000001.0626673431252832.0242427818679152.969116885521270Column54.009675528231265ans=Columns1through44.0000000000000000.9881949783238511.9911899306755833.003551127831114Column53.996017218773414an

9、s=Columns1through45.0000000000000001.0001429908824562.0017273743633222.998782794598383Column54.000874935426618ans=Columns1through46.0000000000000001.0003038268767061.9996499119555413.000442322902451Column53.999872540322841ans=Columns1through47.0000000000000000.999

10、9307806680592.0000994948760942.999888211227589Column54.000015710348041ans=Columns1through48.0000000000000001.0000146638148021.9999703312716333.000022527

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。