《SOR迭代法超松弛因子选取》由会员分享,可在线阅读,更多相关《SOR迭代法超松弛因子选取(3页珍藏版)》请在金锄头文库上搜索。
1、计算方法实验报告(二)实验名称: SOR迭代法松弛因子的选取班级: 数学 1402 班姓名:高艺萌学号: 14404210 一、实验目的通过本实验学习线性方程组的SOR 迭代解法以及SOR 迭代法的编程与应 用。对比分析不同条件下的超松弛因子w的取值大小会对方程组的解造成影响, 通过这个实验我们可以了解的w不同取值会对方程组的解产生的影响。 培养编程 与上机调试能力。二、实验题目用逐次超松弛( SOR )迭代法求解方程组bAx,其中555555122-12-122-112-122-112-122-112-122-12-12201918321xxxxxxA(1)给定迭代误差, 选取不同的超松弛因
2、子1进行计算,观察得到的近似解 向量并分析计算结果,给出你的结论; (2)给定迭代误差, 选取不同的超松弛因子1进行计算,观察得到的近似解 向量并分析计算结果,给出你的结论;三、实验原理1. 逐次超松弛迭代法可以看作Gauss-Seidel 迭代法的加速,bDUxDLxDxkkk1)(1)1(1)1(2.SOR迭代计算格式bDLwDIwxUwDIwLwDxkk111)(111)1()()1()-1(其中,w叫松弛因子,当 w1时叫超松弛, 0w1时叫低松弛, w=1时就是 Gauss-Seidel 迭代法。3. 利用 SOR 迭代算法进行求解。4.算法原理 :SOR迭代法%masor.m fu
3、nction x=masor(A,b,omega,x0,ep,N) n=length(b); if nargin6,N=500;end if nargin5,ep=1e-6;end if nargin4,x0=zeros(n,1);end if nargin3,omega=1.5;end x=zeros(n,1);k=0; while kN 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
4、;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)ep,break;end k=k+1;x0=x; end if k=N Warning; end disp( k=,num2str(k) 运行程序四、实验内容根据实验题目,分别对问题一,问题二进行求解。SOR迭代法松弛因子的选取1. 当 SOR迭代法松弛因子1w时,分别取了以下情况(1)5.1w,k=26; (2)25.1w,k=64;(3)03.1w,k=8;(4)01.1w,k=8;2. 当 SOR迭代法松弛因子1w时,分别取了以下情况(1)9 .0w,k=9; (2)5.0w,k=23;(3)75.0w,k=13;(4)25.0w,k=51;五、实验结果当 SOR 迭代法松弛因子1w时, w越大,迭代的次数就越大,收敛速 度就越慢, w越接近 1 时,迭代的次数越小,收敛速度越快。当 SOR 迭代法松弛因子1w时, w越小,迭代的次数就越大,收敛速 度就越慢, w越接近 1 时,迭代的次数越小,收敛速度越快。当 SOR迭代法松弛因子的范围是20w;n对迭代次数的影响较小;SOR迭代法松弛因子 w越趋近与 1, 迭代次数越小, 收敛越快 ,误差越小;