当前位置:文档之家› SOR迭代法超松弛因子选取

SOR迭代法超松弛因子选取

《计算方法》实验报告(二)
实验名称: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<w<1时叫低松弛,w=1时就是Gauss-Seidel 迭代法。

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<N
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)<ep,break;end
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<w 时,分别取了以下情况
(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<w 时,w 越小,迭代的次数就越大,收敛速度就越慢,w 越接近1时,迭代的次数越小,收敛速度越快。

当SOR 迭代法松弛因子的范围是20<<w ;
n 对迭代次数的影响较小;
SOR 迭代法松弛因子w 越趋近与1,迭代次数越小,收敛越快,误差越小;。

相关主题