1 / 9
文档名称:

数学实验“线性方程组的J迭代GS迭代SOR迭代解法”实验报告内含matlab程序代码.doc

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

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

分享

预览

数学实验“线性方程组的J迭代GS迭代SOR迭代解法”实验报告内含matlab程序代码.doc

上传人:雨林书屋 2023/2/20 文件大小:225 KB

下载得到文件列表

数学实验“线性方程组的J迭代GS迭代SOR迭代解法”实验报告内含matlab程序代码.doc

相关文档

文档介绍

文档介绍:该【数学实验“线性方程组的J迭代GS迭代SOR迭代解法”实验报告内含matlab程序代码 】是由【雨林书屋】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【数学实验“线性方程组的J迭代GS迭代SOR迭代解法”实验报告内含matlab程序代码 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。西京学院数学软件实验任务书
课程名称数学软件实验班级数0901
学号0912020107姓名李亚强
实验课题线性方程组的J-迭代,GS-迭代,SOR迭-代方法。
熟****线性方程组的J-迭代,GS-迭代,SOR迭-代方法。
实验目的
运用Matlab/C/C++/Java/Maple/Mathematica等此中
实验要求
一种语言完成。
线性方程组的J-迭代;
线性方程组的GS-迭代;
线性方程组的SOR迭-代。
实验内容
成绩教师
实验四实验报告
一、实验名称:线性方程组的J-迭代,GS-迭代,SOR迭-代。
二、实验目的:熟****线性方程组的J-迭代,GS-迭代,SOR迭-代,
SSOR迭-代方法,编程实现雅可比方法和高斯-赛德尔方法求解非线
5x12x210
性方程组6x14x2x318的根,提升matlab编程能力。
x12x25x314
三、实验要求:已知线性方程矩阵,利用迭代思想编程求解线性方
程组的解。
四、实验原理:
1、雅可比迭代法(J-迭代法):
线性方程组A*Xb,可以转变成:
迭代公式X
(0)
BJX(k)
X
(k1)
fk0,1,2,....
此中BJI
M1AM1(LU),fM1b,称BJ为求解
A*Xb的雅可比迭代法的迭代矩阵。以下给出雅可比迭代的
重量计算公式,令


X(k)(X1(k),X2(k),....Xn(k)),由雅可比迭代公式
i1
n
MX(k1)
(L
U)X(k)
b,既有aijXi(k1)
aijXi(k)
aijXi(k)
bi,于
j1
j
i1
是,解A*X
b的雅可比迭代法的计算公式为
-1-
X(0)
(X1(0),X2(0),....Xn(0))T
1
i
1
n
Xi(k1)
(bi
aijX(jk)
aijXj(k))
aii
j
1
ji1
2、高斯-赛德尔迭代法(GS-迭代法):
GS-迭代法可以看作是雅可比迭代法的一种改进,给出了
X(0)(X1(0),X2(0),....Xn(0))T
迭代公式:
i1
n
Xi(k1)1(bi
aijX(jk1)
aijX(jk1))
aii
j1
ji
1
其他部分和雅克比迭代近似。
3、逐次超废弛迭代法(SOR迭-代法):
采用矩阵A的下三角矩阵重量并给予参数
w,将之作为分
裂矩阵
1
(
D
)
,此中,
,为可选择的废弛因子,
M,M
wL
w
w>0
又(1)公式构造一个迭代法,其迭代矩阵为Bs
Iw(DwL)1A
从而获取解A*Xb的逐次超废弛迭代法。
X(0)
X(k1)
BsX(k)
fk
0,1,2,....
此中:
Bs
(D
wL)1((1
w)DwU)
f
w(D
wL)1b
由此,解A*Xb的SOR迭-代法的计算公式为
X(0)(X1(0),X2(0),....Xn(0))T
Xi(k)w(bi
i1
n
(2)
Xi(k1)
aijX(jk1)
aijX(jk1))
aii
j1
ji1
观察(2)式,可得结论:
-2-
1)、当w=1时,SOR迭-代法为J-迭代法。
2)、当w>1时,称为超废弛迭代法,当w<1时,称为低废弛迭代法。
五、实验内容:
%-迭代
functionx1=jacobi(A,b,y);
m=input('请输入迭代次数m:');
eps=input('请输入精度eps:');
D=diag(diag(A));
L=triu(A)-A;
U=tril(A)-A;
M=D\(L+U);
g=D\b;
a=1;
k=0;
whilea>eps
x2=M*x1+g;
a=norm(x2-x1,inf);
x1=x2;
-3-
k=k+1;
end
%输出方程组的近似解、精确值及偏差
disp('近似解:');
disp(x1);
x2=x1-y;
a=norm(x2,inf);
fprintf('偏差:%.6f;迭代次数:%d\n',a,k);
%-迭代
functionx1=G_S(A,b,y)
n=100;
m=input('请输入迭代次数m:');
eps=input('请输入精度eps:');
D=diag(diag(A));
L=triu(A)-A;
U=tril(A)-A;
%生成矩阵M,向量g
M=(D-L)\U;
g=(D-L)\b;
-4-
%迭代首项
x1=eye(n-1,1);
x2=eye(n-1,1);
fori=1:n-1
x1(i)=1;
x2(i)=0;
end
a=1;
k=0;
whilea>eps
x2=M*x1+g;
a=norm(x2-x1,inf);
x1=x2;
k=k+1;
end
%输出方程组的近似解、精确值及偏差
disp('近似解:');
x2=x1-y;
a=norm(x2,inf);
-5-
fprintf('偏差:%.4f;迭代次数:%d\n',a,k);
%-代
functiona=p(A)
[n,n]=size(A);
x=eig(A);
a=0;
fori=1:n
b=abs(x(i));
ifb>a
a=x(i);
end
end
a=abs(a);
functionx1=SOR(A,b,y)%y为精确解
%超废弛迭代
D=diag(diag(A));
L=triu(A)-A;
U=tril(A)-A;
%求最正确废弛因子w
-6-
M=D\(L+U);
w=p(M);
w=2/(1+sqrt(1-w^2));
ifw<0||w>2
disp('迭代不收敛');
return;
end
%生成矩阵M,向量g
M=(D-w*L)\((1-w)*D+w*U);
g=(D-w*L)\b*w;
%进行迭代
w=1;
k=0;
%x1=eye(n,1);
whilew>1e-6
x2=M*x1+g;
w=norm(x2-x1,inf);
x1=x2;
k=k+1;
-7-
end
%输出方程组的近似解、精确值及偏差
disp('近似解:');
disp(x1);
x2=x1-y;
w=norm(x2,inf);
disp('偏差:');
disp(w);
disp('迭代次数:');
disp(k);
六、实验结果:
A=[520;641;125];b=[1018-14]';
X1=G_S(A,b,[000]')
X1=
-

-
-8-