数值分析实验报告.doc
《数值分析实验报告.doc》由会员分享,可在线阅读,更多相关《数值分析实验报告.doc(29页珍藏版)》请在咨信网上搜索。
1、 数值分析实验报告数值分析实验报告学 院:学生姓名:学号:2016年11月目录实验一 插值法1一 实验内容1二 实验步骤1三 所编程序清单2四 例题验证3实验二 数据拟合5一 实验内容5二 实验步骤5三 难点分析6四 所编算法清单6五 例题验证6实验三 数值积分8一 实验内容8二 实验步骤8三 难点分析8四 所编算法清单9五 例题验证10实验四 线性方程组的直接求法之高斯消去法12一 实验内容12二 实验步骤12三 难点分析13四 所编算法清单13五 例题验证13实验五 线性方程组的迭代解法之雅可比迭代法15一 实验内容15二 实验步骤15三 难点分析16四 所编算法序清单16四 例题验证17
2、实验六 非线性方程的数值解法之Newton迭代法19一 实验内容19二 实验步骤19三 实验难点19四 所编程序详细清单19五 例题验证20实验七 矩阵特征值问题的数值计算之幂法21一 实验内容21二 实验步骤21三 难点分析21四 具体所编算法清单21五 例题验证22实验八 常微分方程的数值解法之改进的Euler法24一 实验内容24二 实验步骤24三 实验难点24四 具体所编算法24五 例题验证25II实验一 插值法本人选择Newton插值法进行编程。选择的例题为:教材(P25,例2.7)进行验证:题目:设,并已知的数据如表1-1试用2次Newton插值多项式计算计算的近似值,并讨论其误差
3、。表1-1x2.02.12.21.4142141.4491381.483240一 实验内容1. 根据Newton插值多项式 (*)使用Matlab编程实现Newton插值算法。2.使用教材上的例题验证所编算法的正确性。二 实验步骤Newton插值法的关键是求出的k阶均差,然后将k阶均差代入上式(*),求出插值多项式,最后将所选例题的条件代入Newton插值多项式,与正确答案进行比对,进而得出结论。1 难点分析在编写程序时需要考虑的难点之一是如何确定所选用的Newton插值法的次数,本人拟选用直接从Matlab中m文件中直接人工输入的方法,设一个未知量n作为选用Newton插值法的次数确定选用几
4、次的Newton插值多项式。在编写程序时的另一个难点是经过Newton插值公式计算之后,输出是什么?是直接列写多项式,还是以系数矩阵的形式输出?本人考虑到编程的简便性,拟直接以均差表形式输出。2 具体步骤详细步骤如下:(1)已知k阶均差的求解公式如下: k=1,2,.; (1) 通过上式分别求取一阶均差、二阶均差、.、k阶均差,并保存在与函数自变量x同阶的同一个大矩阵中。在大矩阵中,第一列用来存放自变量x,第二列用来存放因变量,第三列用来存放一阶均差,.,第(k+2)列用来存放k阶均差。具体矩阵表示如下表1-2所示表1-2一阶均差二阶均差三阶均差.注:表1-2未标示出的元素都以0填充。(2)根
5、据公式(*)求解n次(n为人为设定的Newton插值多项式系数)Newton插值多项式,并且在Matlab中Command Window输出该插值多项式。(3)在教材中随机选取某一例题来验证所编程序的正确性。三 所编程序清单所编程序对应的文件为Newton.m%Newton插值法function y=Newton(Xi,Yi,x,n)%-%计算均差表%根据教材,均差表一般列举到三阶均差即可%一阶均差f1=zeros(1,n);%一阶均差数值保存在f1中for i=1:n f1(1,i)=(Yi(1,i+1)-Yi(1,i)/(Xi(1,i+1)-Xi(1,i);enddisp(一阶均差数值为:
6、);disp(f1);%二阶均差 f2=zeros(1,n-1);%二阶均差数值保存在f2中 for i=1:(n-1) f2(1,i)=(f1(1,i+1)-f1(1,i)/(Xi(1,i+2)-Xi(1,i); enddisp(二阶均差数值为:);disp(f2);%三阶均差if n2f3=zeros(1,n-2);%三阶均差数值保存在f3中for i=1:(n-2) f3(1,i)=(f2(1,i+1)-f2(1,i)/(Xi(1,i+3)-Xi(1,i);enddisp(三阶均差数值为:);disp(f3);end%-%求3次插值多项式的值if n=3y=Yi(1,1)+f1(1,1)
7、*(x-Xi(1,1)+f2(1,1)*(x-Xi(1,1)*(x-Xi(1,2)+f3(1,1)*(x-Xi(1,1)*(x-Xi(1,2)*(x-Xi(1,3);elseif n=2 y=Yi(1,1)+f1(1,1)*(x-Xi(1,1)+f2(1,1)*(x-Xi(1,1)*(x-Xi(1,2);elseif n=1 y=Yi(1,1)+f1(1,1)*(x-Xi(1,1);endend四 例题验证选教材(P25,例2.7进行验证)题目:设,并已知的数据如表1-3.试用2次Newton插值多项式计算计算的近似值,并讨论其误差。表1-3x2.02.12.21.4142141.449138
8、1.483240编写m文件如下:(对应文件为t1.m)clear;clc;Xi=2.0 2.1 2.2;Yi=1.414214 1.449138 1.483240;x=2.15;n=2;result=Newton(Xi,Yi,x,n);disp(所求近似值为:)disp(result);输出结果为经与教材例题所给答案比对,完全正确。实验二 数据拟合本人选择多项式拟合进行编程。选教材(p62,例3.10)作为验证例题,题目如下:题目(P62,例3.10)用多项式拟合表2-1中的离散数据表2-1i01234xi0.000.250.500.751.00yi0.100.350.811.091.96一
9、实验内容 1.所谓多项式拟合是根据多项式: (1)做曲线拟合,其中为基函数。2.找教材上例题进行验证,根据程序仿真结果判断所编算法的正确性。二 实验步骤1. 设定子空间的基函数为,设定权数(为了使运算简便,不妨都设为1)。2. 计算克莱姆矩阵 (2)3. 根据下式计算系数 j=0,1,.,n (3)将代入(1)即可求得待求拟合模型多项式。4.根据3所求的多项式画出函数曲线三 难点分析1. 克莱姆矩阵的求解,需要使用嵌套一次的循环,容易出错。四 所编算法清单所编算法对应的文件为duoxiangshinihe.mfunction ai=duoxiangshinihe(i,Xi,Yi,N)wi=on
10、es(1,i);%定义权值矩阵,并不防设权值均为1ai=zeros(N+1,1);Cramer=zeros(N+1,N+1);for ii=1:(N+1) %列 for iii=1:(N+1)%行 Cramer(ii,iii)=0;%克莱姆矩阵元素初始化 for iiii=1:i Cramer(ii,iii)=Cramer(ii,iii)+Xi(1,iiii)(ii+iii-2); end endendYFAI=zeros(N+1,1); %求(y,)矩阵for iiiii=1:(N+1) for iiiiii=1:i YFAI(iiiii,1)=YFAI(iiiii,1)+Yi(1,iiii
11、ii)*Xi(1,iiiiii)(iiiii-1); endend ai=inv(Cramer)*YFAI;%由(a)=inv()*(y,)求系数矩阵 Ai=ai; Aii=rot90(Ai);%以上两行的作用是将(a0,a1,a2,a3)改成(a3,a2,a1,a0) x1=0:1; axis(0 1 0 2); plot(x1,polyval(Aii,x1),r); hold on plot(Xi,Yi,*); end五 例题验证选教材(p62,例3.10)作为验证例题,题目如下:题目(P62,例3.10)用多项式拟合表2-2中的离散数据表2-2i01234xi0.000.250.500.
12、751.00yi0.100.350.811.091.96编写例题m文件如下:(即t2.m文件)I=5;%离散点个数xi=0.00 0.25 0.50 0.75 1.00;%离散点横坐标yi=0.10 0.35 0.81 1.09 1.96;%离散点纵坐标N=2;%选用2次多项式拟合AI=duoxiangshinihe(I,xi,yi,N);disp(采用多项式拟合出来的多项式系数为:(从低次到高次));disp(AI);仿真结果为:图2-1 拟合曲线经与教材例题答案比对可知,所编算法完全正确。实验三 数值积分本人选择复化梯形求积公式(Complex_Quadrature)。选教材题目(P79,
13、例4.6)作为验证例题,题目如下:题目(P79,例4.6)分别用复化梯形公式和复化Simpson公式计算时,要使误差不超过,问各取多少个点。一 实验内容1. 通过复化梯形求积公式 (1)求解积分。2. 通过梯形公式的误差公式 (2)求解求积的误差并判断,当误差不超过允许值时即可认为求积结束。3. 找教材上的例题进行验证,验证所编程序的正确性。二 实验步骤1. 首先要对区间a,b进行n等分(n1),并且对都要对(2)进行判断误差是否已经不超过允许值,如果超过了,则对区间a,b进行(n+1)等分(记作n=n+1),然后再根据(2)判断误差是否不超过允许值,依次类推,直至找到能使误差不超过允许值时的
14、n.2. 在(1)的基础上,根据公式(1)求积,得出计算结果并输出。3. 找教材上例题进行验证。三 难点分析1. 因为误差需要和给定的误差要求比较大小,所以的取值范围是算法编程过程的一个难点。本人的思路是先求的极值点(假设在给定区间上只有一个极值点),然后求边界点的函数值以及极值点处的函数值分别为,通过比较这三个值的大小就可以找出函数的取值范围。2. 在确定步长的基础上,通过公式(*)求积。通过分析可知,公式(*)可分为常量和累加量两部分,我的编程思路是先给赋初值,然后再采用循环加上累加量。四 所编算法清单所编算法对应的文件为Complex_Quadrature.mfunction T nt=
15、Complex_Quadrature(f,a,b,deta)%T复化梯形求积结果,nt为运算次数%f待积分函数表达式,a,b待积分区间,nt表示复化梯形求积公式满足误差要求时需要将a,b区间nt等分,ns表示复化Simpson求积公式满足%误差要求时需要将a,b区间ns等分,deta表示积分时误差要求%首先复化梯形求积公式%-syms x;y=f(x);ddy=diff(y,x,2);dddy=diff(y,x,3);x0=solve(dddy,x,0);%求取函数f(x)的二阶导数极点 (为便于简便,不妨假设f(x)二阶导数只有一个极点)t=double(x0);ddfa=subs(ddy,
16、x,a);%f(a)ddfb=subs(ddy,x,b);%f(b)ddfx0=subs(ddy,x,t);%f(x0)ta=double(ddfa);tb=double(ddfb);%转换为常量tx0=double(ddfx0);%判断f(a),f(b),f(x0)值的最大值和最小值deta1=ta-tb;deta2=tb-tx0;deta3=ta-tx0; if deta1=0&deta2=0 tbiggest=ta; tsmallest=tx0;elseif deta1=0&deta2=0 tbiggest=ta; tsmallest=tb;elseif deta1=0&deta2=0&
17、deta3=0 tbiggest=tx0; tsmallest=tb;end if deta1=0&deta2=0 tbiggest=tx0; tsmallest=ta;elseif deta1=0&deta3=0 tbiggest=tb; tsmallest=tx0;elseif deta1=0&deta3=0 tbiggest=tb; tsmallest=ta;end for i=2:1000 %从2等分、3等分、4等分n等分依次逐个验证误差精度 h=(b-a)/i;%计算步长 RTmax=(-1)*(b-a)/12)*h2*tsmallest; if RTmax=deta nt=i; T
18、=(h/2)*(f(a)+f(b); for ii=1:i T=T+h*f(a+h*(ii-1); end break else continue endend ns=0;S=0; end 五 例题验证选教材题目(P79,例4.6)作为验证例题,题目如下:题目(P79,例4.6)分别用复化梯形公式和复化Simpson公式计算时,要使误差不超过,问各取多少个点。根据所选例题进行编程,如下:(对应文件为t3.m)syms x;f=inline(sin(x),x);a=0;b=pi;deta=2*10(-5);T nt ns S=Complex_Quadrature(f,a,b,deta);disp
- 配套讲稿:
如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。