SOR迭代法超松弛因子选取
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算方法》实验报告(二)
实验名称:SOR 迭代法松弛因子的选取
班级: 数学1402班 姓名: 高艺萌 学号:14404210
一、 实验目的
通过本实验学习线性方程组的SOR 迭代解法以及SOR 迭代法的编程与应用。对比分析不同条件下的超松弛因子w 的取值大小会对方程组的解造成影响,通过这个实验我们可以了解的w 不同取值会对方程组的解产生的影响。培养编程与上机调试能力。
二、 实验题目
用逐次超松弛(SOR )迭代法求解方程组b Ax =,其中
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=555555122-12-122-112-122-112-122-112-122-12-12201918321 x x x x x x A (1)给定迭代误差,选取不同的超松弛因子1>ω进行计算,观察得到的近似解向量并分析计算结果,给出你的结论;
(2)给定迭代误差,选取不同的超松弛因子1<ω进行计算,观察得到的近似解向量并分析计算结果,给出你的结论;
三、 实验原理
1.逐次超松弛迭代法可以看作Gauss-Seidel 迭代法的加速,
b D Ux D Lx D x k k k 1)(1)1(1)1(--+-+++=
2.SOR 迭代计算格式
b D L wD I w x U wD I w L wD x k k 111)(111)1()(])1[()-1(------+-++-= 其中,w 叫松弛因子,当w>1时叫超松弛,0 3.利用SOR 迭代算法进行求解。 4.算法原理:SOR 迭代法 %masor.m function x=masor(A,b,omega,x0,ep,N) n=length(b); if nargin<6,N=500;end if nargin<5,ep=1e-6;end if nargin<4,x0=zeros(n,1);end if nargin<3,omega=1.5;end x=zeros(n,1);k=0; while k for i=1:n if i==1 x1(1)=(b(1)-A(1,2:n)*x0(2:n))/A(1,1); else if i==n x1(n)=(b(n)-A(n,1:n-1)*x(n:n-1)/A(n,n); else x1(i)=(b(i)-A(i,1;i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n))/A( i,i); end end x(i)=(1-omega)*x0(i)+omega*x1(i); end if norm(x0-x,inf) k=k+1;x0=x; end if k==N Warning; end disp([’k=’,num2str(k)]) 运行程序 四、实验内容 根据实验题目,分别对问题一,问题二进行求解。 SOR迭代法松弛因子的选取 1.当SOR迭代法松弛因子1 w时,分别取了以下情况 > (1)5.1 w,k=26; = (2)25 w,k=64; .1 = (3)03 = w,k=8; .1 (4)01 w,k=8; .1 = 2. 当SOR 迭代法松弛因子1 (1)9.0=w ,k=9; (2)5.0=w ,k=23; (3)75.0=w ,k=13; (4)25.0=w ,k=51; 五、 实验结果 当SOR 迭代法松弛因子1>w 时,w 越大,迭代的次数就越大,收敛速度就越慢,w 越接近1时,迭代的次数越小,收敛速度越快。 当SOR 迭代法松弛因子1 当SOR 迭代法松弛因子的范围是20< n 对迭代次数的影响较小; SOR 迭代法松弛因子w 越趋近与1,迭代次数越小,收敛越快,误差越小;