CAD教程 行业资讯 3D模型下载 Pro/E教程 CAD书店 软件下载 联系我们
技术资料 CAD招聘 发布招聘 CAD问答 设计竞赛 CAD认证 北京CAD培训
视频教程 PS教程 CAD图纸 图书推荐 Solidworks教程 CAD培训 CAD软件商

 最新视频教程Pro/ENGINEER Wildfire2.0 工业设计实例视频教程 (全套免费在线学习)   AutoCAD视频教程每日更新
 
首页 > CAD在线问答 > matlab

eps在MATLAB中是什么意思

2014-10-06 51自学网



问题描述:eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高。默认a=1。
我们知道浮点数其实是离散的,有限的,而且间隔是不均匀的。我们可以说一个数旁边的数是什么,而它们之间的距离就反应了其精度。越

回答:eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高。默认a=1。
我们知道浮点数其实是离散的,有限的,而且间隔是不均匀的。我们可以说一个数旁边的数是什么,而它们之间的距离就反应了其精度。越靠近0,数和数之间就越密集,精度就越高。
_______________________
楼上的说法是错误的,eps不是matlab所能表示的最小的正数。楼主可以试试eps和eps/2,如果eps真的是最小的正数,那么eps/2就应该四舍五入到0或eps,但实际上却能精确表示出来。正确的说法是eps=eps(1),是1的精度。也就是说matlab无法表示介于1和1+eps之间的数,这些数将被四舍五入到1或1+eps。比如1+0.3*eps被舍入到1,而1+0.7*eps被舍入到1+eps。楼主可以用下面的语句进行验证:
1+0.3*eps==1%true
1+0.7*eps==1%false
1+0.7*eps==1+eps%true
正如前面所说,对浮点数而言,越靠近0,精度就越高。因此2的精度就比1的精度要低。事实上,matlab无法区分介于2和2+2*eps之间的数。也就是说eps(2)=2*eps,下面是验证:
2+eps==2%true,说明matlab无法区分2和2+eps
1+eps==1%false,说明matlab可以区分1和1+eps,因此1的精度比2高
0的精度是最高的,也就是说eps(0)才是matlab所能表示的最小的正数。它和eps相比相差了300多个数量级,eps和它相比大的简直是个天文数字。



 

 

matlab if语句
matlab求解带参数方程组
我来回答 共有条 回答
用户名: 密码:
验证码: 匿名发表
| AutoCAD | Pro/E | UG | 3Dmax | catia | solidworks | maya | photoshop | 模具设计 | 有限元 | matlab | 计算机图形学 | 室内设计 |