SOR迭代(算法分析和数值算例)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SOR 迭代

基本思想

Gauss-Seidel 迭代(1)

1()

(1)

()()

k k x D L U x

D L +--=-+-的结果作为中间值,记为

(1)

k x

+ 。SOR 方法是将(1)

k x

+ 与上次计算的结果()

k x 做加权平均作为最后结果。迭

代格式为:

1(1)

(1)

()()

1

1

1[](1),1,2i n

k k k k i

i ij j

ij j i

j j i ii

x b a x a x x i n

a ω

ω-++==+=-

-

+-=∑

或者

1(1)

()

(1)

()

1

1[],1,2i n

k k k k i

i

i ij j

ij j j j i

ii

x x b a x a x i n

a ω

-++===+-

-

=∑

算法: 1.

0,,,A b x t e ω输入迭代初值松弛参数,为迭代次数初始值为0,为记录误差

2. 当1,2i

n

= 时,1

1:[]n

i i i i j j j ii

x x b a x a ω

==

+-

,结果仍然存储在i

x 中。迭

代次数:1t t =+ 3.

计算误差*

e x x

=-(真解已知)

4.

如果6

510

e -<⨯,则已达到精确度要求,否则继续第2步

数值结果

04

10101

41,4,001

430A b x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪=--== ⎪ ⎪ ⎪

⎪ ⎪ ⎪--⎝⎭⎝⎭⎝⎭

迭代初值,用Gauss 消去法求的其真解为

*

12112x ⎛⎫

⎪ ⎪=

⎪ ⎪- ⎪⎝

依次取1,1.03,1.1ω=,数值结果见下表

总结

从实验结果可以看出,当取松弛参数为1.03时只需五步就能达到所需精度。

附录(M文件)

function [t,x]=successiive_over_Rellaxatiion(A,b,x0,w,rx)

n=length(A);

x=x0; %% x0为迭代初值

e=norm(rx-x0,inf); %% rx为真解,e为误差

t=0; %% t为迭代次数

while e>5*10^(-6)

for i=1:n

temp=0;

for j=1:n

temp=temp+A(i,j)*x(j,1);

end

x(i,1)=x(i,1)+w*(b(i,1)-temp)/A(i,i);

end

e=norm(rx-x,inf);

t=t+1;

x

end

相关文档
最新文档