我目前有这个功能:
public double Max(double[] x, double[] y)
{
//Get min and max of x array as integer
int xMin = Convert.ToInt32(x.Min());
int xMax = Convert.ToInt32(x.Max());
// Generate a list of x values for input to Lagrange
double i = 2;
double xOld = Lagrange(xMin,x,y);
double xNew = xMax;
do
{
xOld = xNew;
xNew = Lagrange(i,x,y);
i = i + 0.01;
} while (xOld > xNew);
return i;
}
这将在斜率减小的曲线上找到最小值......但是,鉴于这条曲线,我需要找到三个最小值。
如何找到三个最小值并将它们作为数组或单个变量输出?这条曲线只是一个例子——它可以倒置——无论如何,我需要找到多个变量。因此,一旦找到第一个分钟,它就需要知道如何克服拐点并找到下一个...:/
*拉格朗日函数可以在这里找到。** 出于所有实际目的,当我输入 x 时,拉格朗日函数会给我 f(x)...在视觉上,它表示由 wolfram alpha 提供的曲线。
*这个难题的数学方面可以在这里找到。**
可能的解决方案? 生成一个输入数组,比如 x[1,1.1,1.2,1.3,1.4...],从拉格朗日函数返回一个数组。然后找出这个函数的三个最低值?然后得到与值对应的键?我该怎么做?