1 / 11
文档名称:

线性方程组的J迭代GS迭代SOR迭代SSOR迭代方法模板.doc

格式:doc   大小:271KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

线性方程组的J迭代GS迭代SOR迭代SSOR迭代方法模板.doc

上传人:梅花书斋 2021/1/9 文件大小:271 KB

下载得到文件列表

线性方程组的J迭代GS迭代SOR迭代SSOR迭代方法模板.doc

文档介绍

文档介绍:西京学院数学软件试验任务书
课程名称
数学软件试验
班级
数0901
学号
姓名
王震
试验课题
雅克比迭代、 高斯—赛德尔迭代、 超松弛迭代
试验目标
熟悉雅克比迭代、 高斯—赛德尔迭代、 超松弛迭代
试验要求
利用Matlab/C/C++/Java/Maple/Mathematica等其中一个语言完成
试验内容
雅克比迭代法
高斯—赛德尔迭代法、
超松弛迭代法
成绩
老师
【试验课题】
雅克比迭代、 高斯—赛德尔迭代、 超松弛迭代
【试验目标】
学****和掌握线性代数方程组雅克比迭代、 高斯—赛德尔迭代、 超松弛迭代法, 而且能够熟练利用这些迭代法对线性方程组进行求解。
【试验内容】
1、 问题重述:
对于线性方程组, 即:
(1),
其中,
怎样利用雅克比迭代、 高斯—赛德尔迭代、 超松弛迭代法对线性方程组进行求解。
2、 方法原理:

迭代思想: 首先经过结构形如等式, 然后给定一个初值, 再经过进行迭代。
step1 : 对(1)对应第行中用其它元素表示为:
即:
Step 2 : 进行迭代
, ,
取它判定条件为小于一个确定误差值, 跳出循环。 其中, 为循环次数, 则为所求近视解。 (参考程序)
、 高斯—赛德尔迭代
迭代思想: 以雅克比迭代法为基础, 假定每一次迭代得到数据全部优越于, 即中每一个分量全部优越于中对应分量。 因为在求解第个分量过程中, 前个分量已经求出, 所以能够直接调用所求出来前个分量。
考虑雅克比迭代: ,
即:
所以,
当可逆时, 因为在求解第个分量过程中, 前个分量已经求出, 将上式改写为:
即:
所以,
设, , 上式改写为:
,
迭代算法:
得出计算步骤:
,
因为再代入数据时尽可能采取最新数值, 所以, 高斯—赛德尔迭代法收敛速度大于雅克比迭代法。
、 逐次超松弛迭代法(SOR)
逐次超松弛迭代法是对高斯—赛德尔迭代一个改善, 在高斯—赛德尔迭代基础上加入松弛因子, 使得和误差由控制。
由高斯—赛德尔迭代公式:
得出SOR迭代算法:
, 其中, 为松弛因子。 迭代控制条件为:
,
得出SOR计算公式为:
,
则存在,
令, 则,
、 对称超松弛迭代法
对称超松弛迭代法是对逐次超松弛迭代法改善, 在逐次超松弛迭代法基础上, 首先对线性方程组根据次序方法依次求解, 然后在此基础上对线性方程组逆序求解, 得出SSOR迭代法。
求解步骤:
Step 1 次序求解得出:
Step 2 逆序求解由得出
得出SSOR公式:
【试验总结】
由以上试验得出SSOR在求解线性方程时最优。 当初, 逐次超松弛迭代法(SOR)等价于
高斯赛德尔迭代法。 (参考程序)
【程序】
%%%%%%%%%%%%%%%%%%%%%% 程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function maintest1(A,b)
N=input('请输入最大迭代次数N(足够大): ');
esp=input('请输入近视解误差限: ');
X0=input('请输入初始值: ');
if any(diag(A))==0
error('系数矩阵错误, 迭代终止! ')
end
D=diag(diag(A));
U=-triu(A);
L=-tril(A);


%%%%%%%%%%%%%%%jacobi%%%%%%
fJ=inv(D)*b;
BJ=inv(D)*(L+U);
PJ=max(abs(eig(BJ)));
fprintf('用雅克比求解谱半径为: %2d\n',PJ)


%%%%%%%%%%%%%%%GS%%%%%%
fG=inv(D-L)*b;
BG=inv(D-L)*U;
PG=max(abs(eig(BG)));
fprintf('用GS求解谱半径为: %2d\n ',PG)

%%%%%%%%%%%%% SOR %%%%%%%%%%
omega=1;
fS=omega*inv(D-omega*L)*b;
BS=inv(D-omega*L)*((1-omega)*D+omega*U);
PS=max(abs(eig(BS)));
fprintf('用SOR求解谱半径为: %2