数值计算方法
第一章作业
1.对一个数求和100000次。对数1以单精度方式求和,对数0.00001分别以单精度和双精度方式求和。 问题分析:单精度方式使用函数single(),双精度求和为matlab自动调整,不需要特别说明。
程序编写如下:
1
运行结果:
实验结果分析: 不难看出,对于1进行单精度求和得到的结果和期望值一致,但是对0.00001进行单精度求和的结果却存在误差,对0.00001进行双进度求和,误差得到减小。这是由于量化误差造成的,0.00001在计算机中并不能准确表示,只能对其进行量化处理,得到一个和真值有一点区别的量化值,小量计算中可以忽略,但在计算了100000后误差积累,导致了最后的结果误差较大。双精度的情况下,该误差小得多。
数值计算方法
11xx2x3… 1x11开始,当x=0.1时,从然后每次加入一项来分别计算1/0.9。在每加入一个新项后,1x2.如果|x|1,计算近似百分比相对误差,直到近似误差估计值的绝对值小于与五位有效数字一致的误差准2 则时停止计算。 问题分析:
本例中,要保证5位有效数字,因此容限误差为:
5s(0.5102)%5106
近似百分比误差为:
当前近似值-前一近似值a当前近似值100%
真误差为:
真值-近似值真值100%
跳出循环的标准为:a|s 程序编写如下:
数值计算方法
运行结果如下:
3
实验结果分析: 实验结果表明,当计算到第6次时,近似误差就已经小于了容限值,循环结束。随着添加多的项数,实际误差和近似误差都减小了,说明了计算精度在逐步提高。我们可以通过改变s的值来调节所需要的计算精度。