SOR迭代法超松弛因子选取

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,迭代次数越小,收敛越快,误差越小;

相关文档
最新文档