1 / 12
文档名称:

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

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

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

分享

预览

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

上传人:taotao0b 2019/12/6 文件大小:193 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:数学实验“线性方程组的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-迭代方法,编程实现雅可比方法和高斯-赛德尔方法求解非线性方程组的根,提高matlab编程能力。实验要求:已知线性方程矩阵,利用迭代思想编程求解线性方程组的解。实验原理:1、雅可比迭代法(J-迭代法):线性方程组,可以转变为:迭代公式其中,称为求解的雅可比迭代法的迭代矩阵。以下给出雅可比迭代的分量计算公式,令,由雅可比迭代公式有,既有,于是,解的雅可比迭代法的计算公式为高斯-赛德尔迭代法(GS-迭代法):GS-迭代法可以看作是雅可比迭代法的一种改进,给出了迭代公式:其余部分与雅克比迭代类似。逐次超松弛迭代法(SOR-迭代法):选取矩阵A的下三角矩阵分量并赋予参数w,将之作为分裂矩阵M,,其中,w>0,为可选择的松弛因子,又(1)公式构造一个迭代法,其迭代矩阵为从而得到解的逐次超松弛迭代法。其中:由此,解的SOR-迭代法的计算公式为(2)观察(2)式,可得结论:、当w=1时,SOR-迭代法为J-迭代法。、当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>epsx2=M*x1+g;a=norm(x2-x1,inf);x1=x2;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,向量gM=(D-L)\U;g=(D-L)\b;%迭代首项x1=eye(n-1,1);x2=eye(n-1,1);fori=1:n-1x1(i)=1;x2(i)=0;enda=1;k=0;whilea>epsx2=M*x1+g;a=norm(x2-x1,inf);x1=x2;k=k+1;end%输出方程组的近似解、精确值及误差disp('近似解:');x2=x1-y;a=norm(x2,inf);fprintf('误差:%.4f;迭代次数:%d\n',a,k);%-迭代functiona=p(A)[n,n]=size(A);x=eig(A);a=0;fori=1:nb=abs(x(i));ifb>aa=x(i);endenda=abs(a);functionx1=SOR(A,b,y)%y为精确解%超松弛迭代D=diag(diag(A));L=triu(A)-A;U=tril(A)-A;%求最佳松弛因子wM=D\(L+U);w=p(M);w=2/(1+sqrt(1-w^2));ifw<0||w>2disp('迭代不收敛');return;end%生成矩阵M,向量gM=(D-w*L)\((1-w)*D+w*U);g=(D-w*L)\b*w;%进行迭代w=1;k=0;%x1=eye(n,1);whilew>1e-6x2=M*x1+g;w=norm(x2-x1,inf);