matlab中出现1.7764e-15是不是意味该项为0

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 17:19:00
matlab中出现1.7764e-15是不是意味该项为0

matlab中出现1.7764e-15是不是意味该项为0
matlab中出现1.7764e-15是不是意味该项为0

matlab中出现1.7764e-15是不是意味该项为0
显然不是.不知道你的这个数的来源是什么?
 
通常说到比较小的双精度浮点数有这样几个概念:
1、eps(=2.2204e-016),是double数据类型的分辨率,也就是大于1(和1同等精度)的浮点数当中,和1之间最小的的差值.按英语的说法是,the distance from 1.0 to the next larger double
 precision number.
2、realmin(=2.2251e-308),是最小的规格化(normalized)双精度浮点数(关于什么是规格化,准确的定义请查阅IEEE 754标准).简单点说,realmin是能够正常运算的最小的双精度浮点数.比realmin更小的浮点数还有,但属于非规格化的(denormal).
3、比realmin更小的浮点数也有,那么最小的浮点数究竟是多大?可以这样得到:
>> realmin*eps
ans =
  4.9407e-324
>> eps(0)
ans =
  4.9407e-324
其中,后面的做法需要MATLAB 7.0之后的版本.这样的浮点数不能正常运算,也就是说,运算的结果有可能是错误的,例如
>> realmin*eps*0.6 == realmin*eps
ans =
     1
上面说的都是针对double类型而言,对于single类型而言,也有一些概念类似对应的数.不过,无论single还是double,你所说的数都不能算是0.
 
但是,另一方面,应该指出,eps在很多场合会被作为默认的误差限,即小于eps的数被作为0看待.至于你说的这个数,在实际应用中被看作0,也是有可能的.