javascript - 寻找一个 js 求解器库,通过改变参数来最小化函数返回值

标签 javascript solver

是否有一个 Javascript 库允许我传递以下函数,以便它找到导致最小返回值的 alpha。

var RMSE = runLES(this.monthlyData, this.alpha);

我在搜索中找不到任何内容,因为所有单词都与 Javascript 中其他更常见的问题相关(例如“最小化器”-> 缩小、“求解器”-> 求解方程等)。

或者有人对我如何自己实现这个有建议吗?

编辑: 这是函数体:

function runLES(data, alpha) {
    var errors = new Array(data.length - 2);
    for (var i = 2; i < data.length; i++) {
        var Y1 = 2 * data[i - 1].noSeasonSales;
        var Y2 = data[i - 2].noSeasonSales;
        var E1 = 2 * (1 - alpha) * data[i - 1].error;
        var E2 = Math.pow(1 - alpha, 2) * data[i - 2].error;
        data[i].forecast = Y1 - Y2 - E1 + E2;
        data[i].error = data[i].noSeasonSales - data[i].forecast;
        errors[i - 2] = data[i].error;
    }
    return getRMSE(errors);
}

RMSE 是方差的根加上误差的平方平均值。 (只是一个数字)。

最佳答案

我取决于你有什么样的功能。 runLES() 做什么?

如果您的 alpha 有上限和下限,您可以使用二分搜索来查找最小值。如果你可以导出你的函数,你可以使用 Newton's method关于你的函数的导数。 详情请看这里:Newton's method in Optimization

只有在只有一个最小值的情况下,此方法才能正常工作。 (你的函数图不是波浪)

关于javascript - 寻找一个 js 求解器库,通过改变参数来最小化函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42387276/

相关文章:

c++ - Eigen SparseLU 解决 error read access violation,this->m_sup_to_col was 0x111011101110112

javascript - 谷歌分析未显示商品价格

javascript - 谷歌图表不适用于 Wkhtmltopdf

c++ - 如何解析从末尾开始的字符串C++

excel - 使用 VBA 将约束添加到求解器工具

excel - SolverAdd 函数忽略了我的约束

algorithm - 高效的 Nonogram 求解器

javascript - 根据两个整数之间的值返回一个字符串

javascript - 文本区域未显示正确的列

javascript - 当我输出 p1.y 时,根据我的理解,我应该得到输出 201,因为 y 存储在 person 的原型(prototype)中。为什么我得到200?