我有一些函数(例如,双函数(双值))和一些范围(例如,从 A 到 B)。我需要计算这个范围内函数的最大值。是否有针对它的库?请给我建议。
问问题
1025 次
4 回答
2
如果函数需要处理浮点值,您将不得不使用Golden section search之类的东西。请注意,对于这种特定方法,可以处理的功能有很大的限制(特别是它必须是unimodal)。您可以对算法进行一些调整,将其扩展到更多功能,特别是这些修改将允许它适用于连续功能。
于 2013-02-20T15:59:46.893 回答
0
我不知道 Java 中是否有任何库可以解决您的问题。但我知道您可以使用 MatLab(或 OpenSource 等价物的 Octave)轻松做到这一点。
于 2013-02-20T16:20:19.773 回答
0
这是一个连续函数,还是一组离散值?如果是离散值,那么您可以遍历所有值,并按照 808sound 的建议设置最大/最小标志,或者您可以将所有值加载到数组中。
如果它是一个连续函数,那么您可以使用函数在离散输入处的值填充一个数组,并如上所述找到最大值,或者如果它是可微分的,那么您可以使用基本微积分来找到 df(x)/ dx 为 0。后一种情况更抽象一些,而且可能比你想要的更复杂,但是?
一个快速的谷歌搜索让我明白了这一点: http ://code.google.com/p/javacalculus/
但我自己从未使用过它,所以我不知道它是否实现了所需的功能。不过,它确实有微分方程,所以我认为它们会有像基本微分这样的“婴儿用品”。
于 2013-02-20T16:13:12.353 回答