逐次超松弛迭代_SOR迭代_matlab程序

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

第k 次迭代值: xi( k ) (1 )xi(k 1) xi
贵州师范大学数学与计算机科学学院
Numerical Analysis
xi( k ) (1 ) xi( k 1) xi
1 ( k 1) (1 ) xi aii
n i 1 (k ) ( k 1) bi aij x j aij x j j i 1 j 1
end end
贵州师范大学数学与计算机科学学院
function y=fSOR(A,b,x,h,eps,M)
w=0:h:2;
n=2/h+1; K=zeros(1,n); for i=1:n [x,K(i),index]=sor(A,b,x,w(i),eps,M); %松弛因子w的个数
end
K;
贵州师范大学数学与计算机科学学院
贵州师范大学数学与计算机科学学院
Gauss-Seidel 迭代值
Baidu Nhomakorabea
xi( k ) (1 ) xi( k 1) xi
i 1 n ( k 1) (k ) ( k 1) xi aij x j aij x j bi aii j i j 1 (i 1, 2, , n) (5.10)
贵州师范大学数学与计算机科学学院
Numerical Analysis
逐次超松弛迭代(SOR迭代) 设已求得 n 元线性代数方程组 Ax = b第k -1次迭 代向量 x
( k 1)
x
( k 1) 1
,x
(k 1) 2
,
,x
(k 1) T n
及第k 次迭代向量
x ( k )的分量 x(jk ) ( j 1, 2,
i 1 n ( k 1) (k ) ( k 1) xi aij x j aij x j bi aii j i j 1 (i 1, 2, , n) (5.10)
0 2 . 其中 称为松弛因子,
♦ 1 (5.10)称为逐次超松弛迭代法(SOR迭代); ♦ 1 (5.10)为Gauss-Seidel 迭代法; ♦ 0 1 (5.10)称为低松弛迭代法.
scatter(w,K,'filled','r')
%绘制迭代次数与松弛因子关系的曲线
K0=find(K==0);
K(K0)=[]; K1=min(K); I=find(K==K1); w=w(I(1));
[x,c,index]=!
x( k ) (D L)1 (1 )D U x( k 1) (D L)1b
贵州师范大学数学与计算机科学学院
SOR 迭代的Matlab函数文件(求解线性方程组Ax=b)
function [y, k, v]=sor(A,b,x,w,tol,M) % x为迭代初值,w为松弛因子(0<w<2), tol为允许误差, % v为标志变量, M为最大迭代次数 D=diag(diag(A)); L=tril(A,-1); U=triu(A,1);
L1=D+w*L;
G1=((1-w)*D-w*U); d=w*b;
v=0;
k=0;
贵州师范大学数学与计算机科学学院
while 1 b=G1*x+d; y=inv(L1)*b; e=norm(y-x,inf);
x=y;
if e<=tol v=1; break;
end
k=k+1; if k>M
break
SOR迭代法的矩阵表示 ( A D L U )
x( k ) (1 ) x( k 1) D1 (b Lx( k ) Ux( k 1) )
I D 1 L x ( k ) (1 ) I D 1U x ( k 1) D 1b
, i 1) ,要计算分量 xi( k ) .
Step 1 用Gauss-Seidel 迭代求得
n i 1 1 (k ) ( k 1) xi aij x j aij x j bi aii j 1 j i 1
Step 2 计算 xi与第k -1次迭代值 xi( k 1)的加权平均作为
相关文档
最新文档