(2021年整理)数值分析实验报告_第1页
(2021年整理)数值分析实验报告_第2页
(2021年整理)数值分析实验报告_第3页
(2021年整理)数值分析实验报告_第4页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值分析实验报告数值分析实验报告 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(数值分析实验报告)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为数值分析实验报告的全部内容。实验一、误差分析一、实验目的1通过上机编程,复习巩固以前所学程序设计语言及上机操作指令;2通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概

2、念;3通过上机计算,了解舍入误差所引起的数值不稳定性.二实验原理误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度.三实验内容对,计算定积分 。算法1:利用递推公式 , ,取 。算法2:利用递推公式 。注意到,取 。:四.实验程序及运行结果程序一: t=log(6)-log(5);n=1;y(1)=t;for k=2:1:20 y(k)=1/

3、k5*y(k1); n=n+1;endyy =0.0884y =0。0581y =0.0431y =0.0346y =0.0271y =0.0313y =-0.0134y =0.1920y =-0。8487y =4.3436y =21.6268y =108.2176y =541。0110y =2。7051e+003y =-1。3526e+004y =6.7628e+004y =-3.3814e+005y =1.6907e+006y =8。4535e+006y =4.2267e+007程序2:y=zeros(20,1);n=1;y1=(1/105+1/126)/2;y(20)=y1;for k=

4、20:-1:2 y(k1)=1/(5*k)-(1/5)*y(k); n=n+1;end运行结果:y = 0.0884 0.0580 0.0431 0。0343 0。0285 0.0212 0。0188 0。0169 0.0154 0。0141 0.0130 0.0120 0.0112 0。0105 0.0099 0.0093 0。0089实验二、插值法一、实验目的1、理解插值的基本概念,掌握各种插值方法,包括拉格朗日插值和牛顿插值等,注意其不同特点;2、通过实验进一步理解并掌握各种插值的基本算法。二实验原理插值法是函数逼近的一种重要方法,它是数值积分、微分方程数值解等数值计算的基础与工具,其中

5、多项式插值是最常用和最基本的方法。拉格朗日插值多项式的优点是表达式简单明确,形式对称,便于记忆,它的缺点是如果想要增加插值节点,公式必须整个改变,这就增加了计算工作量。而牛顿插值多项式对此做了改进,当增加一个节点时只需在原牛顿插值多项式基础上增加一项,此时原有的项无需改变,从而达到节省计算次数、节约存储单元、应用较少节点达到应有精度的目的。三实验内容1、 已知函数表 0。56160 0。56280 0。56401 0。56521 0.82741 0.82659 0。82577 0.82495用二次拉格朗日插值多项式求时的函数近似值.2、 已知函数表 0.4 0.55 0.65 0。8 0。9

6、0.41075 0。57815 0。69675 0。88811 1.02652用牛顿插值多项式求和。四实验程序及运行结果1. 程序如下:function y,r=lagranzi(x,y,x,m)n=length(x); m=length(x);for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1。0; c1=1。0;for j=1:n if j=kp=p(z-x(j))/(x(k)-x(j)); end q1=abs(q1(z-x(j));c1=c1*j; end s=p*y(k)+s; end y(i)=s;endr=mq1/c1;在matlab工作窗

7、口输入程序: x=0。5635; m=1; x=0。56280,0。56401; y=0.82659,0.82577; y,r=lagranzi(x,y,x,m)实验结果如下:y =0.8261r =1.7850e-0072. 程序如下: function y,r= newcz(x,y,x,m)n=length(x); m=length(x);for t=1:m z=x(t); a=zeros(n,n);a(:,1)=y; s=0。0; p=1.0; q1=1.0; c1=1。0; for j=2:n for i=j:n a(i,j)=(a(i,j-1)-a(i-1,j-1))/(x(i)x(

8、i-j+1)); end q1=abs(q1*(z-x(j-1));c1=c1j; end c=a(n,n);q1=abs(q1(zx(n));for k=(n-1):1:1c=conv(c,poly(x(k));d=length(c); c(d)=c(d)+a(k,k);end y(k)= polyval(c, z);endr=m*q1/c1;在matlab工作窗口输入程序:三次牛顿差值程序如下: x=0。4,0.55,0。6; y=0.41075,0.57815,0。69675; y,r= newcz(x,y,x,m)实验结果如下:y =0.6861r =6。0107e006四次牛顿差值程

9、序如下: x=0。895; x=0.55,0.65,0.8,0.9; y=0。57815,0。69675,0.88811,1.02652;实验结果如下:y =1。0194r =1。6729e-006实验三、解线性方程组的直接法一、实验目的1了解求线性方程组的直接法的有关理论和方法;2会编制列主元消去法、lu分解法的程序;二实验原理解线性方程组的直接法是指经过有限步运算后能求得方程组精确解的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形,即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计算过程中舍入误差的增长,

10、减少舍入误差的影响。一般说来,列主元消去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算量不大和算法组织容易等优点,是目前计算机上解中、小型稠密矩阵方程组可靠而有效的常用方法。三实验内容1。用列主元高斯消去法求解方程组.2用矩阵直接三角分解法求解方程组,其中, .四实验程序及运行结果1。主程序function ra,rb,n,x=liezhu(a,b)b=a b; n=length(b); ra=rank(a); rb=rank(b);zhica=rb-ra;if zhica0,disp(请注意:因为ra=rb,所以此方程组无解。)returnendif ra=rb if ra=n

11、disp(请注意:因为ra=rb=n,所以此方程组有唯一解。) x=zeros(n,1); c=zeros(1,n+1); for p= 1:n1y,j=max(abs(b(p:n,p)); c=b(p,:);b(p,:)= b(j+p-1,:); b(j+p1,:)=c;for k=p+1:n m= b(k,p)/ b(p,p); b(k,p:n+1)= b(k,p:n+1)-m* b(p,p:n+1);endend b=b(1:n,n+1);a=b(1:n,1:n); x(n)=b(n)/a(n,n); for q=n1:1:1 x(q)=(b(q)-sum(a(q,q+1:n)x(q+1

12、:n)))/a(q,q); endelse disp(请注意:因为ra=rbn,所以此方程组有无穷多解.)endend在matlab工作窗口输入程序: a=0.101 2.304 3。555;-1.347 3.712 4.623;-2。835 1.072 5.643;b=1。183;2。137;3。035;ra,rb,n,x=liezhu(a,b)运行结果ra = 3rb = 3n = 3x = -0。3982 0.01380。33512.主程序function x=lujfcz(a,b)n,n =size(a); x=zeros(n,1); y=zeros(n,1); c=zeros(1,n

13、);r=1:n;for p=1:n-1max1,j=max(abs(a(p:n,p));c=a(p,:); a(p,:)= a(j+p-1,:); a(j+p1,:)=c;g=r(p); r(p)= r(j+p1);r(j+p1)=g;if a(p,p)=0 disp(a是奇异阵,方程组无唯一解); break;endfor k=p+1:nh= a(k,p)/a(p,p); a(k,p) = h; a(k,p+1:n)=a(k,p+1:n) h a(p,p+1:n);endendy(1)=b(r(1);for k=2:ny(k)= b(r(k))- a(k,1:k1)* y(1:k-1); e

14、ndx(n)= y(n)/ a(n,n);for i=n-1:1:1 x(i)= (y(i)- a(i, i+1:n) x (i+1:n))/ a(i,i);end在matlab工作窗口输入程序: a=1 2 12 8;5 4 7 2;3 7 9 5;6 -12 8 3;b=27;4;11;49;x=lujfcz(a,b)运行结果x = 3。0000 -2。0000 1.00005.0000实验四、解线性方程组的迭代法一、实验目的 1、熟悉迭代法的有关理论和方法;2、会编制雅可比迭代法、高斯-塞德尔迭代法的程序;3、注意所用方法的收敛性及其收敛速度问题。二实验原理解线性方程组的迭代法是用某种极

15、限过程去逐步逼近线性方程组精确解的方法,即是从一个初始向量 出发,按照一定的迭代格式产生一个向量序列 ,使其收敛到方程组 的解.迭代法的优点是所需计算机存储单元少,程序设计简单,原始系数矩阵在计算过程中始终不变等。但迭代法存在收敛性及收敛速度问题.迭代法是解大型稀疏矩阵方程组的重要方法。三.实验内容1。用改进欧拉法解。2用龙格库塔方法求解四.实验程序及运行结果1。主程序function x=jacdd(a,b,x0,p,wucha,max1)n m=size(a);for j=1:ma(j)=sum(abs(a(:,j)2*(abs(a(j,j)));endfor k=1:max1k for

16、j=1:mx(j)=(b(j)-a(j,1:j1,j+1:m)*x0(1:j-1,j+1:m))/a(j,j);endx,djwcx=norm(xx0,p); xdwcx=djwcx/(norm(x,p)+eps); x0=x;x1=ab;if (djwcxwucha)&(xdwcx a=1 2 2;1 1 1;2 2 1;b=7;2;5;x=jacdd(a,b,x0,p,wucha,max1)运行结果x = 1 2 12。主程序function x=gsdddy(a,b,x0,p,wucha,max1)d=diag(diag(a);u=-triu(a,1);l=-tril(a,-1); dd

17、=det(d);if dd=0disp(请注意:因为对角矩阵d奇异,所以此方程组无解。)elsedisp(请注意:因为对角矩阵d非奇异,所以此方程组有解.)id=inv(dl); b2=idu;f2=id*b;jx=ab; x=x0; n m=size(a);for k=1:max1x1= b2x+f2; djwcx=norm(x1-x,p);xdwcx=djwcx/(norm(x,p)+eps);if (djwcxwucha)|(xdwcxwucha) return else k,x1,k=k+1;x=x1;endendif (djwcxwucha)(xdwcxwucha) disp(请注意

18、:高斯-塞德尔迭代收敛,此a的分解矩阵d,u,l和方程组的精确解jx和近似解x如下: ) elsedisp(请注意:高斯-塞德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数max1,方程组的精确解jx和迭代向量x如下: )x=x;jx=jxendendx=x;d,u,l,jx=jx在matlab工作窗口输入程序: a=1 0。9 0.9;0.9 1 0.9;0。9 0.9 1;b=1。9;2.0;1.7;x0=0 0 0;x=gsdddy(a,b,x0,inf, 0。001,100)运行结果k = 1ans = 1.9000 0。2900 -0。2710k = 2ans =

19、1。8829 0。5493 -0。4890k = 3ans = 1。8457 0。7789 0.6622k = 4ans = 1.7949 0。9805 0.7979k = 5ans = 1。7356 1.1560 -0.9025k = 6ans = 1.6718 1.3076 0.9815k = 7ans = 1.6065 1。4375 1。0396k = 8ans = 1。5419 1。5479 -1.0808k = 9ans = 1.4796 1。6411 1。1086k = 10ans = 1。4208 1。7191 1。1259k = 11ans = 1.3661 1.7838 1.1349k = 12ans = 1。3160 1。8370 1.1377k = 13ans = 1.2706 1.8804 -1。1359k = 14ans = 1.2300 1.9153 -1.1308k = 15ans = 1。1939 1.9432 1.1234k = 16ans = 1.1622 1。9651 1。1145k = 17ans = 1。1345 1。9820 1.1049k = 18ans = 1。1106 1。994

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论