epsilon.js

/**
 * 我们使用 `ε`(epsilon)作为迭代过程中的停止准则,直到我们达到“足够接近”的程度。Epsilon 是一个非常小的数字:
 * 在 simple-statistics 中,这个数字是 **0.0001**。
 *
 * 这个值被用于像二项分布这样的计算中,在这些计算中,寻找值的过程是[迭代的](https://en.wikipedia.org/wiki/Iterative_method):
 * 它会一直进行,直到达到足够接近的程度。
 *
 * 下面是一个在[梯度下降](https://en.wikipedia.org/wiki/Gradient_descent)中使用 epsilon 的例子,
 * 我们试图找到一个函数导数的局部最小值,该导数由 `fDerivative` 方法给出。
 *
 * @example
 * // 通过计算,我们预计局部最小值出现在 x=9/4
 * var x_old = 0;
 * // 算法从 x=6 开始
 * var x_new = 6;
 * var stepSize = 0.01;
 *
 * function fDerivative(x) {
 *   return 4 * Math.pow(x, 3) - 9 * Math.pow(x, 2);
 * }
 *
 * // 循环会一直运行,直到前一个值与当前值之间的差异小于 epsilon —— 这是“足够接近”的一个粗略衡量标准
 * while (Math.abs(x_new - x_old) > ss.epsilon) {
 *   x_old = x_new;
 *   x_new = x_old - stepSize * fDerivative(x_old);
 * }
 *
 * console.log('局部最小值出现在', x_new);
 */
const epsilon = 0.0001;

export default epsilon;