数值分析首次试做实验记录.doc
《数值分析首次试做实验记录.doc》由会员分享,可在线阅读,更多相关《数值分析首次试做实验记录.doc(26页珍藏版)》请在咨信网上搜索。
1、数值分析首次试做实验记录 作者: 日期:26 个人收集整理 勿做商业用途首次试做实验记录实验中心(室): 年 月 日实验课程名称数值分析面向专业信息与计算科学总学时数实验项目名称线性方程组的直接解法实验学时一、实验目的、要求目的:掌握解线性方程组直接法(特别是顺序高斯消去法)的基本思想,熟悉其算法,加强编程能力和编程技巧,练习从数值分析的角度看问题。要求:针对给定的实验题目,根据所学的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性.二、实验原理用高斯消去法解线性方程组的基本思想是设法消去方程组的系数矩阵A的主对角线下的元素,而将线性方程组化为等价的上三角形方程组,然后
2、再通过回代过程便可获得原方程组的解。三、使用仪器、材料计算机一台,Matlab、C、Mathematica等软件。四、实验内容:用高斯消去法求解下列方程组Ax=b,其中A =【2 2 2 3 2 4 1 3 9】b =【1.0000 0。5000 2。5000】五、实验过程原始记录(数据、图表、计算等)Matlab源代码:function x =Gauss_solve(A, b)n, n = size(A);for k = 1 : n1 if A(k,k)=0 disp(A is singular,stop.) end for i = k+1 : n mik = A(i, k) / A(k,
3、k); b(i) = b(i) - mik * b(k); for j=k+1:n A(i, j) = A(i, j) mik * A(k, j); end endend back substitutionx=zeros(n,1);x(n)=b(n)/A(n,n);for i=n-1:-1:1 sum=0; for j=i+1:n sum=sum+A(i,j)x(j); end x(i)=(b(i)-sum)/A(i,i);End六、实验结果及分析在命令窗口输入相关数据,运行上面定义的函数Gauss_solveA=2 2 2;3 2 4;1 3 9A = 2 2 2 3 2 4 1 3 9b=
4、1;1/2;5/2b = 1.0000 0。5000 2.5000x = Gauss_solve(A, b)x = -0。5000 1。0000 0结果分析:根据顺序高斯消去法的算法,使用Matlab编写了程序,对所给的题目进行了求解。利用高等代数中的基本内容,我们可以看出该程序能够成功求解所给的线性方程组。实验中心(室)验收审查意见实验中心(室)主任签字:首次试做实验记录实验中心(室): 年 月 日实验课程名称数值分析面向专业信息与计算科学总学时数实验项目名称线性方程组的迭代解法实验学时一、实验目的、要求目的:掌握解线性方程组几种常见的迭代解法的基本思想,熟悉其算法,练习引入迭代矩阵的形式来
5、解决方程组。要求:针对给定的实验题目,根据所学的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性.二、实验原理用迭代法求解方程组的基本思想:首先对A进行分解,A=D-LU,找出下三角阵L,再找出上对角阵U,还有主对角阵D,于是有 Jacobi迭代法的矩阵形式的迭代公式为x=inv(D)(L+U)x+inv(D)*bGaussSeidel迭代法的矩阵形式的迭代公式x=inv(D-L)Ux+inv(D-L)*b利用迭代即可在循环中实现的原则来完成此方程组的求解。注意在编程时也可使用分量形式的迭代公式.三、使用仪器、材料计算机一台,Matlab、C、Mathematica等软
6、件。四、实验内容:用Jacobi迭代法和G-S迭代法求方程组: AX=b,其中A =【10 1 2 0 -1 11 -1 3 2 1 10 -1 0 3 1 8】b =【6 25 1115】五、实验过程原始记录(数据、图表、计算等)Jacobi迭代法的Matlab源代码:function iter,x=Jacobi(A,b,x0,eps,M)n=length(x0);x=x0;iter=0;for k=1:M for i=1:n sum=0; for j=1:n if j=i sum=sum+A(i,j)x0(j);x0 stands for x_k end end x(i)=(b(i)sum
7、)/A(i,i); x stands for x_k+1 end if norm(xx0)eps iter=k; return end x0=x;enddisp(超过最大迭代次数)Gauss-Seidel迭代法的Matlab源代码:function iter,x=GS(A,b,x0,eps,M)n=length(x0);iter=0;for k=1:M x=x0; x stands for x_k, x0 stands for x_k+1 for i=1:n if i=1 sum=0; for j=2:n sum=sum+A(i,j)*x0(j); end t=(b(i)sum)/A(i,i)
8、; x0(i)=t; end end i=1 if 1in sum=0; for j=1:i1 sum=sum+A(i,j)x0(j); end for j=i+1:n sum=sum+A(i,j)*x0(j); end t=(b(i)sum)/A(i,i); x0(i)=t; end% end 1in if i=n sum=0; for j=1:n1 sum=sum+A(i,j)x0(j); end t=(b(i)-sum)/A(i,i); x0(i)=t; end end i=n end end i if norm(x-x0)A=10 -1 2 0;-1 11 -1 3;2 -1 10 1
9、;0 3 -1 8A = 10 1 2 0 1 11 -1 3 2 1 10 -1 0 3 1 8b=6;25;-11;15b = 6 25 -11 15x0=0;0;0;0x0 = 0 0 0 0M=100M = 100eps=1e4eps = 1。0000e004iter,x=Jacobi(A,b,x0,eps,M)iter = 13x = 1.0000 2。0000 -1.0000 1。0000然后运行上面定义的函数GSiter,x=GS(A,b,x0,eps,M)iter = 6x = 1。0000 2.0000 -1.0000 1.0000结果分析:根据Jacobi迭代法和Gauss
10、Seidel迭代法的算法,使用Matlab分别编写了程序,并对所给的题目进行了求解。利用高等代数中的基本内容,我们可以看出这两个程序都能够成功求解所给的线性方程组。从理论学习中我们知道,本题中的系数矩阵A为按行严格对角占优矩阵,所以理论上来说,Jacobi迭代法和Gauss-Seidel迭代法都应收敛,而且GaussSeidel迭代法的收敛速度应该更快。从实验我们可以得到同样的结论,所以理论分析和试验的结果是相吻合的。实验中心(室)验收审查意见实验中心(室)主任签字:首次试做实验记录实验中心(室): 年 月 日实验课程名称数值分析面向专业信息与计算科学总学时数实验项目名称解非线性方程的迭代法实
11、验学时一、实验目的、要求目的:掌握解非线性方程的几种常见的迭代解法的基本思想,熟悉其算法,加深理解迭代法的真谛,掌握其中的规律。要求:针对给定的实验题目,根据所学的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性。二、实验原理二分法的基本原理为将给定的初始有根区间逐步分半,直到找到满足一定精度要求的解,其基本思想为:对当前的有根区间,取其中点作为真解的近似值,若满足精度要求则停止计算,否则,从得到的两个小区间中选择一个作为新的有根区间,重复上述过程.程序中重要的是循环语句的使用和有根区间端点的判断。牛顿法是一种非常重要的不动点迭代方法,对于不动点迭代而言,最重要的是迭代
12、函数的构造。Newton法的迭代函数的构造依据是“由当前点的切线来代替原曲线,将该切线与x轴的交点作为下一个迭代点”.编程时注意用循环语句来实现迭代过程.三、使用仪器、材料计算机一台,Matlab、C、Mathematica等软件。四、实验内容:在区间1,3用二分法求.用牛顿法解方程。五、实验过程原始记录(数据、图表、计算等)二分法的Matlab源代码:function f=fun(x)f=2(x)+exp(x)+2cos(x)-6;function iter,x=bisection(a,b,eps)funa=fun(a);funb=fun(b);if funafunb=0 disp(Erro
13、r,please give the correct initial points a and b!);endk=0; k stands for the iterationwhile 1 c=(a+b)/2; func=fun(c); k=k+1; if (abs(c-a) a=1a = 1 b=3b = 3 eps=1e-4eps = 1.0000e004 iter,x=bisection(a,b,eps)iter = 15x = 1.8294 fun(x)ans = 9。4896e005在命令窗口输入相关数据,运行函数newton_equation得x0=-7x0 = -7M=20M = 2
14、0eps1=1e-3eps1 = 1。0000e003eps2=1e5eps2 = 1.0000e005iter,x=newton_equation(x0,M,eps1,eps2)iter = 4x = 14.1011fun(x)ans = 7.9958e-007 结果分析:根据二分法的算法和牛顿法的算法,使用Matlab分别编写了程序,并对所给的题目进行了求解。从结果我们可以看出,这两种算法都对所给的非线性方程成功地给予了求解,从而说明了这两种算法的可行性与有效性.事实上,我们可以进一步实验,针对同一道题目用两种不同的方法求解,从而进一步明确两种方法各自的特点:二分法简单,有全局收敛性,但收
15、敛速度比较慢;牛顿法解单根问题时可保证局部二阶的收敛性质。实验中心(室)验收审查意见实验中心(室)主任签字:首次试做实验记录实验中心(室): 年 月 日实验课程名称数值分析面向专业信息与计算科学总学时数实验项目名称解非线性方程组的迭代法实验学时一、实验目的、要求目的:掌握解非线性方程组的迭代法(重点是牛顿法)的基本思想,熟悉其算法,加深理解迭代法的真谛,掌握其中的规律。要求:针对给定的实验题目,根据所学的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性.二、实验原理解非线性方程组的牛顿法的迭代公式为其中,表示的Jacobi矩阵,即注意用循环语句来实现迭代过程。三、使用仪
16、器、材料计算机一台,Matlab、C、Mathematica等软件.四、实验内容:用牛顿法求解非线性方程组五、实验过程原始记录(数据、图表、计算等)该方程组可等价写成,其中。Matlab源代码:%程序funf。m给出了非线性方程组所对应的非线性函数function f=funf(x)f=cos(x(1)/81+x(2)2/9+sin(x(3))/3x(1); sin(x(1))/3+cos(x(3)/3x(2);cos(x(1))/9+x(2)/3+sin(x(3))/6x(3);%程序发funJ。m给出了非线性函数的雅可比矩阵function J=funJ(x)J=sin(x(1)/81-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 首次 试做 实验 记录
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。