ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:167.60KB ,
资源ID:11097734      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11097734.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(东南大学数值分析上机作业汇总.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

东南大学数值分析上机作业汇总.docx

1、东南大学数值分析上机作业汇总东南大学数值分析上机作业汇总 数值分析上机报告院系:学号:姓名: 作业1、舍入误差与有效数设,其精确值为.(1)编制按从小到大的顺序,计算的通用程序;(2)编制按从大到小的顺序,计算的通用程序;(3)按两种顺序分别计算,并指出有效位数;(4)通过本上机你明白了什么?程序:1、函数文件cxdd.mfunction S=cxdd(N)S=0;i=2.0;while(i):S=cxdd(80)S= 0.7375772、函数文件cddx.mfunction S=cddx (N)S=0;for i=N:-1:2 S=S+1/(i*i-1);endscript运行结果(省略):

2、S=cddx(80)S=0.7375773、两种方法有效位数对比精确值函数:function S=jqz(N)S=0.5*(1.5-1.0/N-1.0/(N+1);script运行结果(省略)NS精确值从小到大从大到小值有效位数值有效位数1000.7400500.74005060.7400496100000.7499000.74990040.749852410000000.7499990.74999960.74985234、心得本题重点体现了数值计算中“大数吃小数”的问题,由于计算机计算的截断特点,从大到小的计算会导致小数的有效数被忽略掉。从题中可以看出,看出按不同的顺序计算的结果是不相同的,

3、按从小到大的顺序计算的值与精确值吻合,而按从大到小的顺序计算的值与精确值有较大的误差。计算机在进行数值计算时会出现“大数吃小数”的现象,导致计算结果的精度有所降低。作业2、Newton迭代法(1)给定初值x0及容许误差,编制Newton法解方程f(x)=0根的通用程序。(2)给定方程f(x)=x3/3-x=0,易知其有三个根x1=,x2=0,x3=。由Newton方法的局部收敛性可知存在0,当x0(,),Newton迭代序列收敛于根x2 ,试确定尽可能大的;试取若干个初始值,观察当x0(-,-1),(-1,),(,),(,1),(1,+)时,Newton序列是否收敛以及收敛于哪一个根。(3)通

4、过本上机题,你明白了什么?1、通用程序函数文件定义f(x)函数function f=fun(x)f=x3/3-x;end定义f(x)导函数function f=dfun(x)f=x*x-1;end定义求近似解函数 function f,n=newton(x0,ep)flag=1;n=0;while(flag=1) x1=x0-fun(x0)/dfun(x0); n=n+1; if(abs(x1-x0)100000) flag=0; end x0=x1;endf=x1;end script运行结果clear;x0=input(请输入初始值x0:);ep=input(请输入容许误差:);f,n=n

5、ewton(x0,ep);fprintf(方程的一个近似解为:%fn,x1);2、局部收敛性(1)最大值文件flag=1;k=1;x0=0;while flag=1 sigma=k*10-6; x0=sigma; k=k+1; m=0; flag1=1; while flag1=1 & m=103 x1=x0-fun(x0)/dfun(x0); if abs(x1-x0)=10-6) flag=0; endendfprintf(最大值为: %fn,sigma); 运行结果为:最大值为:0.774597即得最大的为0.774597,Newton迭代序列收敛于根=0的最大区间为(-0.774597

6、,0.774597)。(2)验证局部收敛性在x0(-,-1)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数-100-1.73205115-20-1.73205111-5-1.7320518-1.5-1.7320515结果显示,以上初值迭代序列均收敛于-1.732051,即根。显然,迭代格式初值的选择对于迭代的收敛速度是至关重要的,当初值接近真实值的时候,迭代次数减少。在x0(-1,)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数-0.951.7320519-0.851.7320516-0.801.73205110-0.78

7、1.73205115计算结果显示,迭代序列局部收敛于1.730251,即根。在x0(,)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数-0.700.0000005-0.200.0000003-0.050.00000030.050.00000030.200.00000030.700.0000005由newton1.m的运行过程表明,在整个区间上均收敛于0,即根。在x0(,1)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数0.80-1.732051100.90-1.73205170.95-1.73205190.98-1.732

8、05112计算结果显示,迭代序列局部收敛于-1.732051,即根。在x0(1,+)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数1.51.732051551.7320518201.732051111001.73205115结果显示,以上初值迭代序列均收敛于1.732051,即根。综上所述:(-,-1)区间收敛于-1.73205,(-1,)区间局部收敛于1.73205,局部收敛于-1.73205,(-,)区间收敛于0,(,1)区间类似于(-1,)区间,(1,)收敛于1.73205。3、心得牛顿迭代法对于初值的选择要求较高,因此,在牛顿迭代时可现通过简单迭代法

9、寻找相对准确一些的值来进行牛顿迭代。对于方程有多解的问题,Newton法求方程根时,牛顿迭代要考虑局部收敛的问题,迭代序列收敛于某一个根有一定的区间限制,在一个区间上,可能会局部收敛于不同的根。作业3、列主元素Gauss消去法对于某电路的分析,归结为求解线性方程组RI=V。 32 -13 0 0 0 -10 0 0 0 -13 35 -9 0 -11 0 0 0 0 0 -9 31 -10 0 0 0 0 0R= 0 0 0 -30 57 -7 0 -5 0 0 0 0 0 -7 47 -30 0 0 0 0 0 0 0 -30 41 0 0 0 0 0 0 -5 0 0 27 -2 0 0

10、0 -9 0 0 0 -2 29VT=-15,27,-23,0,-20,12,-7,7,10T(1)编制解n阶线性方程组Ax=b的列主元Gauss消去法的通用程序;(2)用所编程序解线性方程组RI=V,并打印出解向量,保留5位有效数字;(3)在本编程之中,你提高了那些编程能力。1、列主元Gauss消去法的通用程序函数:找每列的主元的函数function B=zhuyuan(B,t,N,M)for i=0:N-1-t if B(N-i,t)B(N-i-1,t) c=zeros(1,M); for j=1:M c(j)=B(N-i,j); B(N-i,j)=B(N-i-1,j); B(N-i-1,

11、j)=c(j); end endend 进行列消去的函数function B=xiaoqu(B,t,N,M)for i=t+1:N l=B(i,t)/B(t,t); for j=t:M B(i,j)=B(i,j)-l*B(t,j); endend进行三角矩阵下的解函数function X=jie(X,B,N,M)for i=1:N-1 s=B(N-i,M); for j=N-i+1:N s=s-B(N-i,j)*X(j); end X(N-i)=s/B(N-i,N-i);end执行主程序:N=input(请输入线性方程组的阶数: N=); M=input(请输入增广矩阵阶数: M=); b=z

12、eros(1,N);A=zeros(N,N);A=input(请输入系数矩阵:);b(1,:)=input(请输入方程组的右端向量:); b=b; B=A,b; for t=1:N-1 B=zhuyuan(B,t,N,M); B=xiaoqu(B,t,N,M);end X=zeros(N,1); X(N)=B(N,M)/B(N,N); X=jie(X,B,N,M); X2、解题中线性方程组执行程序,输入矩阵A(即题中的矩阵R)和列向量b(即题中的V),如下:请输入线性方程组的阶数: n=9请输入增广矩阵阶数: m=10请输入系数矩阵A:A=31,-13,0,0,0,-10,0,0,0,-15;

13、-13,35,-9,0,-11,0,0,0,0,27;0,-9,31,-10,0,0,0,0,0,-23;0,0,-10,79,-30,0,0,0,-9,0;0,0,0,-30,57,-7,0,-5,0,-20;0,0,0,0,-7,47,-30,0,0,12;0,0,0,0,0,-30,41,0,0,-7;0,0,0,0,-5,0,0,27,-2,7;0,0,0,-9,0,0,0,-2,29,10;请输入方程组的右端向量b:-15 27 -23 0 -20 12 -7 7 10得到如下结果:A = 31 -13 0 0 0 -10 0 0 0 -15 -13 35 -9 0 -11 0 0

14、0 0 27 0 -9 31 -10 0 0 0 0 0 -23 0 0 -10 79 -30 0 0 0 -9 0 0 0 0 -30 57 -7 0 -5 0 -20 0 0 0 0 -7 47 -30 0 0 12 0 0 0 0 0 -30 41 0 0 -7 0 0 0 0 -5 0 0 27 -2 7 0 0 0 -9 0 0 0 -2 29 10x = -0.28923 0.34544 -0.71281 -0.22061 -0.43040 0.15431 -0.057823 0.20105 0.290233、心得列主元Gauss最重要的就是如何通过找到最大主元,并交换行,如何进行

15、消去,这需要很细心的循环,和很复杂的嵌套,通过本题的编程,感觉个人对于这种多层嵌套循环的处理能力提高了很多。通过对软件的编程,也更加理解了Gauss消去法的实质。作业4、三次样条插值函数(1)编制求第一型3次样条插值函数的通用程序;(2)已知汽车门曲线型值点的数据如下:i012345678910xi012345678910yi2.513.34.044.75.225.545.785.45.575.75.8端点条件为=0.8,=0.2,用所编程序求车门的3次样条差值函数S(x),并打印出S(i+0.5),i=0,19。1、第一型三次样条插值函数通用程序:n=input(请输入节点数n:);n=n+

16、1;xn=zeros(1,n);yn=zeros(1,n);xn(1,:)=input(请输入X的值:);yn(1,:)=input(请输入Y的值:);dy0=input(请输入边界条件y(0):); dyn=input(请输入边界条件y(n):); d=zeros(n,1); h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:n-1 h(i)=xn(i+1)-xn(i); %求一阶差商 f1(i)=(yn(i+1)-yn(i)/h(i);endfor i=2:n-1 f2(i)=(f1(i)-f1(i-1)/(xn(i+1)-xn(

17、i-1); %求二阶差商 d(i)=6*f2(i);endd(1)=6*(f1(1)-dy0)/h(1);d(n)=6*(dyn-f1(n-1)/h(n-1); A=zeros(n); %求M值u=zeros(1,n-2);r=zeros(1,n-2);for i=1:n-2 u(i)=h(i)/(h(i)+h(i+1); r(i)=1-u(i);endA(1,2)=1;A(n,n-1)=1;for i=1:n A(i,i)=2;endfor i=2:n-1 A(i,i-1)=u(i-1); A(i,i+1)=r(i-1);endM=Ad; syms x for i=1:n-1 %求节点插值

18、Sx(i)=collect(yn(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i)*(x-xn(i)+M(i)/2*(x-xn(i)2+(M(i+1)-M(i)/(6*h(i)*(x-xn(i)3); Sx(i)=vpa(Sx(i),4);endS=zeros(1,n-1);for i=1:n-1 x=xn(i)+0.5; S(i)=yn(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i)*(x-xn(i) +M(i)/2*(x-xn(i)2+(M(i+1)-M(i)/(6*h(i)*(x-xn(i)3;enddisp(S(x)=); %结果输出for i=1:n

19、-1 fprintf( %s (%d,%d)n,char(Sx(i),xn(i),xn(i+1); disp();enddisp(S(i+0.5);disp( i x(i+0.5) S(i+0.5)for i=1:n-1 fprintf( %d %.4f %.4fn,i,xn(i)+0.5,S(i)end2、数据输入及计算结果请输入节点数n:10请输入X的值:0 1 2 3 4 5 6 7 8 9 10请输入Y的值:2.51 3.30 4.04 4.70 5.22 5.54 5.78 5.40 5.57 5.70 5.80请输入边界条件y(0):0.8请输入边界条件y(n):0.2S(x)=

20、- 0.008514*x3 - 0.001486*x2 + 0.8*x + 2.51 (0,1) - 0.0044579*x3 - 0.013654*x2 + 0.81217*x + 2.5059 (1,2) - 0.0036544*x3 - 0.018475*x2 + 0.82181*x + 2.4995 (2,3) - 0.040924*x3 + 0.31696*x2 - 0.18448*x + 3.5058 (3,4) 0.10735*x3 - 1.4624*x2 + 6.9328*x - 5.9839 (4,5) - 0.26848*x3 + 4.1752*x2 - 21.255*x

21、+ 40.996 (5,6) 0.42659*x3 - 8.3361*x2 + 53.813*x - 109.14 (6,7) - 0.26786*x3 + 6.2474*x2 - 48.272*x + 129.06 (7,8) 0.054872*x3 - 1.4983*x2 + 13.694*x - 36.184 (8,9) 0.058376*x3 - 1.5929*x2 + 14.545*x - 38.738 (9,10)S(i+0.5) i x(i+0.5) S(i+0.5) 1 0.5000 2.9086 2 1.5000 3.6784 3 2.5000 4.3815 4 3.5000 4.9882 5 4.5000 5.3833 6 5.5000 5.7237 7 6.5000 5.5944 8 7.5000 5.4299 9 8.5000 5.6598 10 9.5000 5.7323

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1