matlab 中 eps 的分析
eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高。默认a=1:
这里直接在matlab中输入:eps == eps(1)(true).
我们知道浮点数其实是离散的,有限的,而且间隔是不均匀的。我们可以说一个数旁边的数是什么,
而它们之间的距离就反应了其精度。越靠近0,数和数之间就越密集,精度就越高。
下面引用百度知道中 greatdju 的详细回答:
首先,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和它相比大的简直是个天文数字。 好了看了上面的分析应该知道怎么回事了,不过知道了eps是什么,但是对于为什么精度这样变化,我提出我的理解:
这里的精度跟数字在电脑的存储方式有关,计算机的存储位数是一定的,可是表示 1 只要一位,表示 2 要两位数,
比如:eps(2)==eps(3) %true; 另外:eps(4) = eps(7) != eps(8)...
对照上边的例子:2+eps==2%true 而 2 + eps(2) == 2 %false...这里不写太多例子了,分析下这个例子,
第一个eps默认为eps(1)加上2以后,由于表示的位数限制,不能表示到eps(1)的精度,所以小数部分直接溢出
了,而第二个等式在表示精度范围内所以小数部分不会略去,还不懂的话,我再给大家看一下:
3 + eps(2) == 3 %false; 4 + eps(2) == 4 %ture.....不知道懂了没有,自己再体会一下。。。
matlab 中 eps 的分析的更多相关文章
- [转载]Matlab中fft与fftshift命令的小结与分析
http://blog.sina.com.cn/s/blog_68f3a4510100qvp1.html 注:转载请注明出处——by author. 我们知道Fourier分析是信号处理里很重要的技术 ...
- MATLAB中FFT的使用方法
MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...
- matlab中的xcorr 自相关函数
转载自 http://blog.163.com/to_be_myself/blog/static/176060227201101762159227/ Matlab中用于计算自相关函数的指令是xcorr ...
- 【caffe-windows】 caffe-master 之Matlab中model的分类应用
此篇讲述在matlab中,如何将训练好的model用于图像分类.将以mnist为例,主要用到caffe-master\matlab\demo 下的classification_demo.m ,可参考我 ...
- Matlab中rand('state',sum(clock))解析
一.问题来源 来自于一份PSO代码,PSO中需要初始化粒子位置和速度. 二.问题探究 众所周知,Matlab中的rand()函数产生的是伪随机数,但一般用来也可以接受.但是,如果我们知道伪随机数的初始 ...
- 关于MATLAB中的tic toc的问题
关于MATLAB中的tic toc的问题 其一) MATLAB实际单位时间计时函数的具体应用,在编写程序时,经常需要获知代码的执行实际时间,这就需要在程序中用到计时函数,matlab中提供了以下三种方 ...
- MATLAB中的分类器
MATLAB中的分类器 目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机.现将其主要函数使用方法总结如下,更多细节需参考MAT ...
- Matlab 中movie函数的使用
MATLAB中,创建电影动画的过程分为以下四步: step1:调用moviein函数对内存进行初始化(该步骤在Matlab5.3以上均可省略),创建一个足够大的矩阵,使之能够容纳基于当前坐标轴大小的一 ...
- Matlab中调用VS编译的exe文件并传递变量 的方法
经历::在网上找了很多方法,都没有实现在matlab中调用vs的exe文件并且能够传递变量参数,一些小细节花费了自己很多时间,比喻忽略了一些空格! 网上很多的方法都是纯粹复制别人的方法,自己都没有去 ...
随机推荐
- jstl自定义时间格式
<fmt:formatDate value='${time}' pattern='yyyy-MM-dd HH:mm:ss'/> <s:iterator>下的<s:prop ...
- 【Java EE 学习 71 下】【数据采集系统第三天】【分析答案实体】【删除问题】【删除页面】【删除调查】【清除调查】【打开/关闭调查】
一.分析答案实体 分析答案实体主要涉及到的还是设计上的问题,技术点几乎是没有的.首先需要确定一下答案的格式才能最终确定答案实体中需要有哪些属性. 答案格式的设计是十分重要的,现设计格式如下: 在表单中 ...
- [BI项目记]-TFS Express备份和恢复
在项目中对TFS进行备份操作是日常重要的工作之一,此篇主要描述如何对TFS Express进行备份,并且在另外一台服务器上进行恢复. 以下是操作的几个关键点: 备份数据库,在TFS管理工具中就可以完成 ...
- Global Translator
Global Translator插件可以把已经通过翻译服务翻译好的内容生成对应语种的“静态”页面,或者说“缓存”起来,这样在一段时间内(可设置)想访问该语种的这 个页面的访客,就可以在不调用翻译服务 ...
- [leetcode] 390 Elimination Game
很开心,自己想出来的一道题 There is a list of sorted integers from 1 to n. Starting from left to right, remove th ...
- EditText键盘弹出时,会将布局底部的导航条顶上去(解决方法之一)
这只是其中一种方法android:windowSoftInputMode有很多属性可以添加,必须是一个state...|ajust... 我只是觉得这种比较好用 在项目的AndroidManifest ...
- iOS路径沙盒文件管理(转载)
iOS路径沙盒文件管理,看到博主总结的很好,转载过来,原文:http://www.aichengxu.com/view/35264 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文 ...
- checkBox 开关按钮
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- c#比较两个List相等
1.if(ListA.Count == ListB.Count && ListA.Count(t => !ListB.Contains(c)) == 0) 数量相等,元素值相等即 ...
- CC countari & 分块+FFT
题意: 求一个序列中顺序的长度为3的等差数列. SOL: 对于这种计数问题都是用个数的卷积来进行统计.然而对于这个题有顺序的限制,不好直接统计,于是竟然可以分块?惊为天人... 考虑分块以后的序列: ...