【发布时间】:2017-06-26 23:57:09
【问题描述】:
logistic map 是浮点数失败的经典示例。这也是一个很好的例子,即使在处理 bignums 时,错误在数值算法中通常传播得非常糟糕。我想知道是否有任何已知的算法可以解决这个问题?有没有一种高效的方法来计算逻辑图,而不需要天真地以极高的精度计算它?
【问题讨论】:
logistic map 是浮点数失败的经典示例。这也是一个很好的例子,即使在处理 bignums 时,错误在数值算法中通常传播得非常糟糕。我想知道是否有任何已知的算法可以解决这个问题?有没有一种高效的方法来计算逻辑图,而不需要天真地以极高的精度计算它?
【问题讨论】:
这是一个经典的例子,因为它是一个混沌系统。混沌系统的全部意义在于它对初始条件表现出难以置信的敏感性。要在 n 次迭代后得到正确率在 5% 以内的答案,需要从数字的 O(n) 位开始。不是因为你的算法不好,而是因为改变这些数字中的任何一个都会改变答案。
所以,不。虽然您可能会在一定程度上加快计算速度,但您无法从较低的精度开始。
【讨论】:
r 是什么。同样,我所说的 5% 在一般原则上是正确的,如果我说 5% 或 1% 或 0.1% 也没关系。一般原则是,在这样的混沌系统中,每次迭代,附近点之间的距离都会扩大一个常数因子f > 1。因此在n 步骤之后,它们被f^n 分隔。因此....
n 步骤之后彼此保持恒定距离d,他们必须在f^(-n) 内开始。但这意味着您需要知道以 10 为底的 n*log(f)/log(10) 数字内的值。(这并不排除处于 0999 与 1000 转换之一的可能性......)这意味着要得到答案您需要知道O(n)开头的数字。