欢迎来到天天文库
浏览记录
ID:57409629
大小:222.00 KB
页数:29页
时间:2020-08-16
《东南大学数值分析资料报告上机.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一章一、题目设,其精确值为。(1)编制按从大到小的顺序,计算SN的通用程序。(2)编制按从小到大的顺序,计算SN的通用程序。(3)按两种顺序分别计算,并指出有效位数。(编制程序时用单精度)(4)通过本次上机题,你明白了什么?二、MATLAB程序N=input('请输入N(N>1):');AccurateValue=single((0-1/(N+1)-1/N+3/2)/2);%single使其为单精度Sn1=single(0);%从小到大的顺序fora=2:N;Sn1=Sn1+1/(a^2-1);endSn2=single(0);%从大到小的顺序fora=2:N
2、;Sn2=Sn2+1/((N-a+2)^2-1);endfprintf('Sn的值(N=%d)',N);disp('____________________________________________________')fprintf('精确值%f',AccurateValue);fprintf('从大到小计算的结果%f',Sn1);fprintf('从小到大计算的结果%f',Sn2);disp('____________________________________________________')三、结果请输入N(N>1):100Sn
3、的值(N=100)____________________________________________________精确值0.740049从大到小计算的结果0.740049从小到大计算的结果0.740050____________________________________________________请输入N(N>1):10000Sn的值(N=10000)____________________________________________________精确值0.749900从大到小计算的结果0.749852从小到大计算的结果0.749900_
4、___________________________________________________请输入N(N>1):1000000Sn的值(N=1000000)____________________________________________________精确值0.749999从大到小计算的结果0.749852从小到大计算的结果0.749999____________________________________________________四、结果分析可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。从以上的结
5、果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比较准确。第二章一、题目(1)给定初值及容许误差,编制牛顿法解方程f(x)=0的通用程序。(2)给定方程,易知其有三个根①由牛顿方法的局部收敛性可知存在当时,Newton迭代序列收敛于根x2*。试确定尽可能大的。②试取若干初始值,观察当时Newton序列的收敛性以及收敛于哪一个根。(3)通过本上机题,你明白了什么?二、MATLAB程序文件fx.mfunctionFx=fx(x)%%定义函数f(x)Fx=x^3/3-x;文件dfx.mfunctionFx=dfx(
6、x)%%定义导函数df(x)Fx=x^2-1;%%Newton法求方程的根%%clearef=10^-6;%这里取容许误差10^-6k=0;x0=input('请输入Xo的值:');disp('kXk');%使用空格将其分隔开fprintf('0%f',x0);flag=1;whileflag==1&&k<=10^3x1=x0-fx(x0)/dfx(x0);ifabs(x1-x0)7、hileflag==1delta=k*10^-6;%delta与k有关x0=delta;k=k+1;m=0;flag1=1;whileflag1==1&&m<=10^3x1=x0-fx(x0)/dfx(x0);ifabs(x1-x0)<10^-6flag1=0;%给定容许误差endm=m+1;x0=x1;endifflag1==18、9、abs(x0)>=10^-6%未小于给定误差时停止循环flag=0;endendfprintf('delta的最大值是%f',delta);三、结果1.运行search.m文件结果为:delta的最大值为0.774597即得最大10、的为0.774597,N
7、hileflag==1delta=k*10^-6;%delta与k有关x0=delta;k=k+1;m=0;flag1=1;whileflag1==1&&m<=10^3x1=x0-fx(x0)/dfx(x0);ifabs(x1-x0)<10^-6flag1=0;%给定容许误差endm=m+1;x0=x1;endifflag1==1
8、
9、abs(x0)>=10^-6%未小于给定误差时停止循环flag=0;endendfprintf('delta的最大值是%f',delta);三、结果1.运行search.m文件结果为:delta的最大值为0.774597即得最大
10、的为0.774597,N
此文档下载收益归作者所有