您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java中单变量非线性函数的最小发现

Java中单变量非线性函数的最小发现

通常,Apache Commons Math是开始使用Java进行数值计算的好地方。通过示例,通过查看API文档以及各种类和方法的@L_301_3@,可以最佳地了解用法

正如您已经指出的,不建议使用用户指南中引用的优化类。仍然可以调用它们,但是最终它们当然会从库中淘汰。由于我不知道的原因,正在进行的优化开发现在是在优化中 而不是 优化 子程序包中进行的。

为了最小化单变量(局部最优), Apache Commons Math 提供了 Brent 方法的实现。在的单元测试中概述了用法BrentOptimizer,我从中复制了此摘录:

@Test
public void testSinMin() {
    UnivariateFunction f = new Sin();
    UnivariateOptimizer optimizer = new BrentOptimizer(1e-10, 1e-14);

    Assert.assertEquals(3 * Math.PI / 2, 
        optimizer.optimize(new MaxEval(200),
                           new UnivariateObjectiveFunction(f),
                           GoalType.MINIMIZE,
                           new SearchInterval(4, 5)).getPoint(), 1e-8);

    Assert.assertTrue(optimizer.getEvaluations() <= 50);
    Assert.assertEquals(200, optimizer.getMaxEvaluations());
    ...
}
java 2022/1/1 18:26:38 有532人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶