如何在C#中找到多元函数的最大值

时间:2018-07-31 18:33:41

标签: c# .net math numerical-methods

有什么方法可以使用开源资源在特定的变量范围内找到多元函数的最大值(变量的值)?

背景

我有一个返回函数的代码,例如:

0.17-0.05 * x + 0.06 * y-0.02 * x ^ 2 + 0.03 * x * y + 0.07 * x * y ^ 2

每个变量的范围是已知的。现在,我只需要找到每个变量的最大值。

我只找到允许我在函数的特定点(例如AutoDiff .NET)中计算一阶导数的库,但是感觉到必须找到一种简单的方法来查找最大值而不是计算无数个导数可能的要点。

注意

我对C#和编程一般还是有点陌生​​,我花了很多时间来寻找答案,但不幸的是失败了。任何建议/见解/帮助都将受到欢迎。

1 个答案:

答案 0 :(得分:0)

在导数为null的情况下,您可以具有最大值或最小值或拐点(例如S的中间部分)。因此,您必须首先计算导数的空值。

如果此时二阶导数(即导数的导数)为负,则您有一个最大值,如果为正,则有一个最小值,如果为零,则有一个拐点。

您只需测试一阶导数为空的点。