用直接法雅可比迭代法、赛德尔迭代法解方程.doc

用直接法雅可比迭代法、赛德尔迭代法解方程.doc

ID:51926580

大小:247.93 KB

页数:10页

时间:2020-03-19

上传者:renjiaojingp
用直接法雅可比迭代法、赛德尔迭代法解方程.doc_第1页
用直接法雅可比迭代法、赛德尔迭代法解方程.doc_第2页
用直接法雅可比迭代法、赛德尔迭代法解方程.doc_第3页
用直接法雅可比迭代法、赛德尔迭代法解方程.doc_第4页
用直接法雅可比迭代法、赛德尔迭代法解方程.doc_第5页
资源描述:

《用直接法雅可比迭代法、赛德尔迭代法解方程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

用直接法、雅可比迭代法和高斯赛德尔迭代法解方程一、课程设计的目的1、巩固和加深学生对数值分析课程的基本知识的理解和掌握;2、更好的了解各种算法的计算方法,熟悉并加以掌握;3、掌握Matlab的编程和程序调试的基本能力;4、掌握课题的设计方法;5、提高运用计算机解决实际问题以及说明文档的能力。二、课程设计的基本要求1、根据所确定的课程设计题目,分析该题目的需求;2、编写程序代码,要能够解决所提到的问题;3、对程序进行分析,写出详细的设计说明文档;4、可组队完成。三、课程设计的内容3.1矩阵的输入此次课程设计的题目为用直接法、雅可比迭代法和高斯赛德尔迭代法三种方法解线性方程组AX=b。, 首先,我们需要进行矩阵的输入,通过观察矩阵,很容易能够发现,A矩阵的对角线上的元素都是5。除了第一、二行和倒数一、二行以外,其他行的元素都有1,-2,5,-2,1的排列,位置与对角线的相对位置一致。因此我们采用for循环进行矩阵的输入以节约时间,并且添加if进行逻辑判断。矩阵输入代码如下(完全代码见附录Ⅲ):a=1;b=-2;c=5;%在行列式A中仅出现了1、-2、5这三个元素A=[];%先将A矩阵置空,方便进行数据的填充fori=1:20%矩阵为20行,所以我们只需要考虑1到20的情况forj=1:20%矩阵为20列ifi==j%当行数等列数时,矩阵中元素值为5A(i,j)=5;elseifi==j+1||i==j-1%当行数i=列数加1或者减1时,元素值为-2A(i,j)=-2;elseifi==j+2||i==j-2%当行数i=列数加2或者减2时,元素值为1A(i,j)=1;endendendA%输出矩阵A矩阵b的输入相对简单,如下:b=zeros(20,1);%矩阵b为20行1列的全零矩阵b(1,1)=1;%将矩阵b第一行第一列的元素赋值为13.2直接法的思想以及编程采用直接法是解线性方程组结果最精准的一种方法,人工进行运算需要更多的时间,计算过程不复杂,直接就能得出答案,但是当数据太多的时候,人工计算就太浪费精力了,而且没法保证其正确率,用计算机进行操作就会很简单,仅仅需要一句编程就可以输出结果,如下:x=Ab;%将未知数x与矩阵A和矩阵b的关系说明清楚3.3雅可比迭代法的思想以及编程雅可比迭代法将系数矩阵A分成三部分如下: 设,选取为的对角元素部分,为负的下三角部分,为负的上三角部分,从而得到的雅可比迭代法:其中,,称为解的雅可比迭代法的迭代矩阵。矩阵的代码如下(完整代码见附录代码Ⅰ):D=diag(diag(A));%D为矩阵A的主对角线上的元素L=-tril(A,-1);%L为矩阵A的负的下三角矩阵U=-triu(A,1);%U为矩阵A的负的上三角矩阵B=D(L+U);%B矩阵的值f=Db;%f矩阵的值x=B*x0+f;%x的迭代表达式迭代公式为:使用雅可比迭代法计算公式简单,没迭代一次只需要计算一次矩阵和向量的乘法且计算过程中原始矩阵始终不变3.4高斯赛德尔迭代法的思想以及编程高斯赛德尔迭代法中矩阵和与雅可比中矩阵和的定义有些许不同,如下,迭代公式为:其中和以及与雅可比迭代法中的一致,由迭代公式可看出高斯赛德尔迭代法与雅可比迭代法相比,最大的特点是高斯赛德尔迭代法使用最新的信息进行计算,计算的第个分量时,利用了已经计算出的最新分量 ,同样高斯赛德尔迭代法也只需计算一次矩阵与向量的乘法。其编程与雅可比类似(具体详见附录代码Ⅱ)。3.5最终结果以及三种方法在此题应用上的比较通过计算机的计算,我们得到如下结果,现截屏如下图:三种计算方法的结果以及迭代次数(图1)三种计算方法的结果以及迭代次数(图2) 为使得结果更容易进行比较,我们使用fprintf以及各种格式控制的matlab命令使得结果的表达界面更加简洁以及清晰。通过比较我们发现直接法和高斯赛德尔迭代法求出来的解几乎一致,而雅可比迭代法的解精确度却不高,因此在这个题中高斯赛德尔迭代法是收敛的,而雅可比迭代法是发散的。并且高斯赛德尔迭代法的迭代次数远远小于雅可比迭代法,所以就这个题而言,高斯赛德尔迭代法优于雅可比迭代法。一、课程设计的心得和体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术发展的日新月异,程序软件已经已经成为当今计算机应用中空前活跃的领域,在生活领域中的应用可以说得是无处不在。因此作为二十一世纪的大学来说掌握简单的软件的开发技术是十分重要的。 回顾起此次数值分析的课程设计,至今我尤感颇多,的确,从选题到定稿,从理论到实践,我们学到了很多东西,不仅巩固了以前所学习的知识,而且学到了很多书本上没有的知识。通过这次课程设计使我们懂得了理论与实践结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。课程设计中也会有困难,大家一起思考动脑解决。团队合作最大的好处是集思广益,有人随时在旁边更正你的错误,因此我们能学到别人了解而自己不是很擅长的知识,也使每个人都对知识有了更加深刻的理解。附录: 代码ⅠJacobi函数文件Jacobi.mfunction[x,n]=jacobi(A,b,x0,eps,varargin)%A为方程的系数矩阵,b为方程组的右端项%x为方程组的解%n为迭代次数ifnargin==3eps=1.0e-6;%eps为精度要求默认值le-5M=200;elseifnargin<3errorreturnelseifnargin==5M=varargin{1};%varargin为最大迭代次数,值100endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=D(L+U);f=Db;x=B*x0+f;n=1;whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend代码ⅡGauseidel函数文件Gauseidel.mfunction[x,n]=gauseidel(A,b,x0,eps,varargin)%A为方程的系数矩阵,b为方程组的右端项%eps为精度要求默认值le-5%varargin为最大迭代次数,值100%x为方程组的解%n为迭代次数ifnargin==3 eps=1.0e-6;M=200;elseifnargin==4M=200;elseifnargin<3errorreturn;endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);G=(D-L)U;f=(D-L)b;x=G*x0+f;n=1;whilenorm(x-x0)>=epsx0=x;x=G*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend代码Ⅲ直接法和主文件clear;clc;formatshortga=1;b=-2;c=5;A=[];fori=1:20forj=1:20ifi==jA(i,j)=5;elseifi==j+1||i==j-1A(i,j)=-2;elseifi==j+2||i==j-2A(i,j)=1;endendendb=zeros(20,1);b(1,1)=1;x=Ab;x1=x;%直接法求解x0=ones(20,1); [x,n]=jacobi(A,b,x0);%雅可比迭代法函数的调用x2=x,n2=n;x0=zeros(20,1);[x,n]=gauseidel(A,b,x0);%高斯赛德尔迭代法函数的调用x3=x,n3=n;%%%%%%%%%%%%%%%%%%%%%%%%%%%以下均为输出,为了方便查看,使用fprintf以及各种格式控制,使得输出更美观%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fprintf('%11s%25s%25s ','直接法','雅可比迭代法','赛德尔迭代法');fori=1:20fprintf(' x%1d:%9.4f%9.4f%9.4f ',i,x1(i,:),x2(i,:),x3(i,:));%中间空格不能省略endfprintf(' n1=%.0fn2=%.0fn3=%.0f ',n1,n2,n3);%中间空格不能省略三种方法的结果以及迭代次数:直接法雅可比迭代法赛德尔迭代法x1:0.2421-26749447448.13360.2421x2:0.094445712614410.28750.0944x3:-0.0218-65639269368.5677-0.0218x4:-0.031483632895853.8203-0.0314x5:-0.0069-99972951165.9014-0.0069x6:0.0049114129244225.84410.0049x7:0.0036-125846301721.78600.0036x8:0.0002134859553647.75300.0002x9:-0.0008-140979012956.9617-0.0008x10:-0.0004144072334309.9111-0.0004x11:0.0001-144073299495.30350.0001x12:0.0001140981826129.22000.0001x13:0.0000-134863974643.06100.0000 x14:-0.0000125851953227.7102-0.0000x15:-0.0000-114135643525.3420-0.0000x16:-0.000099979553032.4654-0.0000x17:0.0000-83639132947.58890.0000x18:0.000065644623037.84220.0000x19:-0.0000-45716577534.9843-0.0000x20:-0.000026751864129.1486-0.0000n1=0n2=200n3=13

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭