Questions tagged «numeric-precision»



9
为什么在科学/工程中经常使用浮点数?
在研究浮点数的准确性时,我在一些地方看到了类似于 “ float和double是(设计 / 经常用于)工程和科学计算 “ 根据我的理解,浮点数和双精度数的强度是它们用于(良好但不是完美的)精度所使用的内存量。 我觉得我几乎从这个答案中得到了理解 “浮点数使您可以为连续数量建模” 我仍然不相信我的理解。工程学和科学听起来都像是您希望从计算中获得精确结果的领域,据我所知,浮点数不会给出。我也不确定我到底遵循什么“连续数量”。 有人可以进一步解释一下,也许举个例子吗?

6
为什么计算机不将小数存储为第二个整数?
当分母不是2 ^ x的解时,计算机很难存储分数。这是因为小数点后的第一个数字为1/2,第二个为1/4(或1 /(2 ^ 1)和1 /(2 ^ 2))等。 当计算机将数字的小数部分存储为另一个整数(因此是准确的)时,为什么要处理各种舍入错误? 我唯一想到的就是处理重复的小数(以10为基数),但是可能有一个边缘解决方案(就像我们目前使用无穷大)。

5
浮点舍入误差的解决方案
在构建处理大量数学计算的应用程序时,我遇到了某些数字会导致舍入错误的问题。 虽然我知道浮点数不是精确的,但问题是我如何处理确切的数字,以确保在对它们进行计算时,浮点数舍入不会引起任何问题?

4
如何识别不稳定的浮点计算?
在数字中,能够识别不稳定的方案并提高其稳定性非常重要。如何识别不稳定的浮点计算? 我正在做一个非常复杂的仿真,其中许多数值方案一起工作,我正在寻找一种方法来识别其薄弱部分。我正在研究涉及微分方程的物理模型。整个过程的鸟瞰图是: (初步步骤)收集物理观测P。 确定模拟的初始参数。这使用了一种优化算法,在该算法中,我们进入参数空间并查找参数C,以使某些误差函数E(F(C),P)降至最小,其中F为参数的某些导出量。 将C插入仿真引擎。这是EDP的Euler方案,因此,在每个时间步上,我们都会计算驱动动态项(每个项都是一个复杂的函数,可能会受到不稳定性的影响),并向Euler方案提供这些动态项以计算下一个州。这持续了数千个时间点。 在模拟结束时,我们计算最终状态S的某些函数Proof(S),并将其与从观察到的数量推导出的一些Require(P)进行比较。这不是结果的正式证明,更多是真实性检查。 此外,我看到了一个复杂的操作塔(在Euler方案中,在Proof中,动态项的计算)。并希望识别并修复“不良零件”。 我推测使用精度降低的浮点数的软件实现会放大数值方案的不稳定性,从而简化了不同实现之间的比较。这是调查这个问题的常用技术吗?是否可以使用虚拟机(例如Bochs)来实现此目的而无需更改程序? 为了适当地处理稳定性问题,有时可以将数值过程的典型输入作为目标,因此可以对其进行调整以使其在该输入上效果很好,而在其他有效但不太可能的输入上效果可能不太好。给定典型输入的样本,就有可能窥探一些中间结果并为它们准备统计数据。同样,这是研究稳定性问题的常用技术吗?虚拟机对此有用吗?

4
用一种无法处理的语言处理大量数字?
我正在尝试思考如果语言构造无法处理大于某个特定值的数字时,我将如何对极大的数字进行计算(无穷大-整数不浮点数)。 我确定我不是第一个也不是最后一个问这个问题的人,但是我使用的搜索字词并未给我提供处理这些情况的算法。相反,大多数建议都会提供语言更改或变量更改,或谈论似乎与我的搜索无关的事情。所以我需要一些指导。 我会勾勒出这样的算法: 确定该语言的整数变量的最大长度。 如果数字大于变量最大长度的一半,则将其拆分为数组。(给一点游戏室) 数组顺序[0] =最右边的数字[n-max] =最左边的数字 例如 编号:29392023 Array [0]:23,Array [1]:20,array [2]:39,array [3]:29 由于我将变量的长度的一半确定为标记的起点,因此我可以计算出它们的十分之一,十分之一,百分之一等。通过中途标记进行放置,这样,如果可变的最大长度为0到9999999999之间的10位数字,那么我知道减半到五位数给我一些游戏空间。 因此,如果我加或乘,我可以使用一个变量检查​​器函数,该函数可以看到array [0]的第六个数字(从右)与array [1]的第一个数字(从右)在同一位置。 除法和减法都有自己的问题,我还没有考虑过。 我想知道支持比程序更大数量的最佳实现。

1
浮点函数的隐含精度
在回顾另一位程序员对某个函数的实现以计算正态分布CDF的实现时,我建议用Python的内置函数替换整个实现,或者使用通用的科学库SciPy。 另一位程序员指出,他们的文档中也math.erfc()没有scipy.stats.norm.cdf()提供任何精度保证。因此,在替换近似算法(该算法取自颇受好评的源,并记录了错误范围)时,我应该格外谨慎。 老实说,怀疑内置或库函数的准确性和精确度的想法从来没有想到。毕竟,多年来我一直在不停地调用诸如sin()和之类的函数,sqrt()为什么math.erf()还是scipy.stats.norm.cdf()应该有所不同呢? 但是现在,我很担心。我的问题是: 通常,如果文档中没有特别提及,是否暗示这些功能在IEEE双精度浮点提供的精度范围内完全精确到最后一位小数? 尤其是对于Python math.erf()或SciPy而言,这是真的scipy.stats.norm.cdf()吗?你怎么知道? 此手册页sin()说…… 当它们的参数接近pi的倍数或远离0.0时,这些函数可能会失去准确性。 当正弦函数是周期性且对称的时,为什么要存在这样的警告?似乎给调用者增加了规范输入以获取最佳准确性的负担。 另一方面,Mozilla的文档中Math.sin()没有提及准确性或精度。这是否意味着它是完全准确的,还是Math.sin()仅在某些情况下才像其他地方一样在JavaScript中才是准确的“常识” ?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.