精度,Precision

柏拉图认为,尽管世间万物是不完美的,但存在一种永恒不变的形式,这个形式是完美的,而生命的意义就是让这个世界尽可能的接近这个完美的形式。

怎么理解这句话,和我们今天讲的精度有什么关系。我们先举一个例子,方便大家的理解。比如一个圆,对应的数学形式为:

相信大家都不会否认这个公式很优雅,真的可以用完美无瑕来形容了。现在画出来,去其中的一段圆弧,你就意识到,要达到形式上的完美,步步维艰。

可见,在现实生活中不存在绝对的完美,总有更高的标准,让它变得完美。对应到数字上,不完美就是精度的损失。当然,这种损失是不可避免的,甚至是有益的,首先,它能降低成本,比如有损压缩技术。其次,也有助于我们对事物的理解,比如地球是一个不规则球体,我们会认为它是一个椭球,甚至会进一步简化,认为它是一个圆球。

这就有了矛盾点,精度损失本来是一件坏事,怎么让你三言两语说成了一件好事。问题的症结就在于我们对“形式”的理解深度,帮助我们更好的取舍,当我们合理的评估这种精度的损失,达到刚刚好的平衡,也是一种退而求其次的完美。

上一节我们讲了球心坐标和本地坐标之间的转换,这里也有一个精度的问题。假设赤道上相距1米的两个点之间的delta,如果是球心坐标,我们用经纬度来表示的话,地球半径R为6378137米,两点之间的经度差为x,推算如下。而我们采用以其中一点为原点的本地坐标时,两点之间的差就是1米(b)。

两个答案哪一个更准确。分为三种情况,一部分人认为答案a详细准确,比如我们在星战类电影里面都会有一个画面,舰长说,距离地球还有多远,总会有一个人说出一串长长的的数字,让人觉得准确无误;一部分人认为答案b简单准确;还有一部分人认为,两者一样准确。确实,两个答案都是通过数学公式推到出来的,理论上讲可以做到一样准确,但从程序员的角度,浮点型是有精度损失,这是浮点型的存储规范导致的,通常精度能够满足多数需求,但一旦满足不了,损失是巨大的,而且难发现难解决。比如哥伦比亚号爆炸,就是因为double精度问题导致。

浮点型格式

这部分之前做过一个视频,可以在百度搜索:[编程]1 C++类型简析,会有详细介绍。如果不想花时间,只需要记住,float可以有7位有效数字,而double可以有16位,选择合适的浮点类型,当你的精度需求超过这个范围时,你就要小心了。

相机抖动

如果精度达不到要求,怎么办?不妨把原点换到一个相对近的位置,这样就可以大大提高精度。这不就是坐标转换的意义吗?

通常,我们都会有一个基准点,保证它是准确的,周边的物体都是相对该基准点的位置,成为RTC,Relative to centre。但在Virtual Earth中,如果我们近地面浏览,RTC-rendering还是会出现浏览范围超过float精度的情况,就会出现精度的丢失,也就是相机抖动。

这里有两个步骤,第一将RTC改为RTE(eye),以前以某一个事先约定的中心点为基准点,在浏览中,总会出现偏离该点的情况,越远精度损失就越大,这时我们改为以相机位置为中心点有机会在介绍相关的推导,目前还有一点不明白的地方。不管怎样,你能看到的,要么范围大,精度低,要么范围小,精度高。

同时,因为shader中仅支持float类型,这里,Cesium提供了一种编码方式,用float-float模拟一个double,来确保精度问题,对应EncodedCartesian3.encode方法。这样,通过一个high的float和一个low的float,分别运算,解决抖动的问题,也算是GPU之duoble运算的一种思路吧。

本文主要介绍了我对精度的理解,float精度为何会有损失,以及RTC和RTE解决相机抖动的思路,因为孩子发烧,无能为力,夜不能寐,索性写写文章,聊以自慰,因而写的过程比较压抑。

可怜下父母心,希望儿子早日康复。

原文发布于微信公众号 - LET(LET0-0)

原文发表时间:2017-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

怎样分析样本调研数据(译)

从一个群体样本中获取群体的整体特征是许多研究设计和统计方法发展的基础。根据数据收集的算法、调研问题的类型和调研的目标,分析样本调研数据的方法各不相同。这篇文章会...

3264
来自专栏AI研习社

机器人参加高考数学22分钟拿105分,究竟怎么做到的?

AI 研习社按:2017 年高考刚刚结束,据相关媒体报道,7 日下午,在没有网络和题库支持的情况下,一个名为 Al-Maths 的机器人在 22 分钟内完成了文...

3527
来自专栏鸿的学习笔记

The Brain vs Deep Learning(五)

Estimation of cerebellar input/output dimensions

602
来自专栏AI科技评论

清华大学王延森:如何利用提问增强开放领域对话系统互动性

AI 科技评论按:现如今,诸如小冰这类闲聊机器人逐渐进入了大众的视野,甚至成为了一部分人打发闲暇时光的伴侣。然而,现在的闲聊机器人在对话的互动性、一致性以及逻辑...

463
来自专栏专知

机器学习是“炼金术”?

1396
来自专栏华章科技

【干货】为什么你的数据分析那么好,图表做得那么烂?

原文链接:http://blog.sina.com.cn/s/blog_691ac57d0102vmx8.html

321
来自专栏数据小魔方

竟然是一个升级版的数据透视表,Tableau真的没有那么神秘~

前一篇跟大家详述了关于Excel在作图理念上的诸多细节,今天让我们把聚焦于多分类维度的数据呈现问题。 当然今天这篇我会把视角从Excel切换到Tableau,没...

7217
来自专栏机器之心

专栏 | 如何对比评价各种深度神经网络硬件?不妨给它们跑个分

矽说专栏 作者:唐杉 作者简介:唐杉博士先后在 T3G(STE)、中科院计算所、紫光展锐(RDA)工作。具有 15 年以上的芯片设计经验,在 3G/4G 通信基...

3277
来自专栏WOLFRAM

Mathematica 11 在几何方面的新功能

1713
来自专栏大数据挖掘DT机器学习

天池大赛—商场中精确定位用户所在店铺 作品分享

题目回顾 题目地址: 题目要求给定一条用户的消费记录,求该用户当前所在的店铺。 下面介绍题目数据和评测方式 1. 店铺和商场信息表(mall) ? 2. 用户...

4166

扫码关注云+社区