第二周上机作业

第二周上机作业

ID:37715718

大小:40.99 KB

页数:5页

时间:2019-05-29

第二周上机作业_第1页
第二周上机作业_第2页
第二周上机作业_第3页
第二周上机作业_第4页
第二周上机作业_第5页
资源描述:

《第二周上机作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二周上机作业张丁3140105614问题叙述:分别以单精度和双精度两种数据类型分析以下问题:第一题:计算n=10000时fn=in1i*1i*1i*1i的值,分别按从i=1到10000和i=10000到1计算对比误差并分析结果问题分析:首先先要明确:单精度和双精度区别:单精度实数在内存中占32bit有效数字为6~7位双精度实数占内存单元为64bit有效数字为15~16位所以从理论上来说,双精度计算精度更高一些。下面使用matlab进行操作:(在没有强调的情况下,matlab默认才用双精度,采用single函数能够定义数据

2、类型为单精度)1.单精度matlab程序sum1=0;sum2=0;sum1=single(sum1);%转化为单精度sum2=single(sum2);%转化为单精度forx=1:1:10000sum1=sum1+single(1/(x^4));%顺序计算,并且数据类型为单精度endfory=10000:-1:1sum2=sum2+single(1/(y^4));%倒序计算,并且数据类型为单精度enda=vpa(sum1)%显示小数b=vpa(sum2)%显示小数运行结果:1.双精度matlab程序sum1=0;sum2

3、=0;forx=1:1:10000sum1=sum1+1/(x^4);%顺序计算endfory=10000:-1:1sum2=sum2+1/(y^4);%倒序计算enda=vpa(sum1)%显示小数b=vpa(sum2)%显示小数运行结果:又将级数1/n^4进行傅立叶展开求得无穷级数趋近于:pi^4/90,运用公式:相对误差=abs(真值-计算值)/真值*100%,可求得相对误差整理结果:顺序计算倒序计算顺序相对误差倒序相对误差单精度计算结果1.082322120666503906251.0823231935501098

4、63281251.0284e-04%3.7106e-06%双精度计算结果1.0823232337108610323639368289151.08232323371080485507889079599412.5583e-11%3.0773e-12%结果分析:由matlab运算结果可知,双精度的运算结果相较单精度较为精确。符合我们之前的猜想。原因是由于双精度的有效数字更多,在运算过程中所产生的舍入误差较少,所以精度会更高。而关于倒序相加精度更高的原因是:在进行无穷级数求和时(实际操作中,项数为有限值),以升序对级数进行求和时,

5、通常初始项大于后面的项,不可避免的重复出现大数和小数相加的情况,而在计算机运算处理时,需对阶处理(即取相同的阶运算,小数的尾数会很小),会出现:大数+小数≈大数。因此,级数求和时,可反向相加;在本题中,由10000到1循环时,相加的数是由小到大的。这样随着相加结果的增大,所加上的数也越来越大,这样就使得相加的两个数相差较小,舍入误差较小。结果也就更加精确。问题叙述:第二题:已知x=10000;按下列公式计算y,哪种更准确?1.单精度程序:x1=10000;x=single(x1);%转化为单精度sum1=0;sum2=0;

6、sum1=sqrt(x+1/x)-sqrt(x-1/x);%第一种计算方法sum2=2/(x*(sqrt(x+1/x)+sqrt(x-1/x)));%第二种计算方法a=vpa(sum1)%显示小数b=vpa(sum2)%显示小数运行结果:1.双精度程序:x=10000;sum1=0;sum2=0;sum1=sqrt(x+1/x)-sqrt(x-1/x);%第一种计算方法sum2=2/(x*(sqrt(x+1/x)+sqrt(x-1/x)));%第二种计算方法a=vpa(sum1)b=vpa(sum2)运行结果:整理结果:第

7、一种算法第二种算法单精度计算结果0.00.00000099999999747524270787835121154785双精度计算结果0.000000999999997475242707878351211547850.000001结果分析:由matlab程序运算结果可知,双精度计算结果较单精度更为精确,这一现象分析与第一题相同;而在相同精度的条件下,第二种算法更为准确,原因是第一种算法的减号两端的数较为接近,而这种情况下,相减会发生减性抵消,所以误差较大。小结:在matlab使用过程中,这两道题都说明了,双精度浮点数所能表示

8、的数字范围比单精度大得多,计算也更加准确;所以我们编写时应注意到自己要用到的数字是否超出了单精度所能表示的范围,还有很重要一点:单精度和双精度在计算机中的表示格式虽一样,但由于位数不同,应注意数值的传递是否发生了类型的转换,否则很容易出现问题。然而单精度的好处在于所占的储存位数更少,运行更快,所以我们要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。