私は現在この機能を持っています:
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;
}
これにより、傾きが減少する曲線の最小値が見つかります...ただし、この曲線を考えると、3つの最小値を見つける必要があります。
3つの最小値を見つけて、配列または個々の変数として出力するにはどうすればよいですか?この曲線は単なる例であり、反転する可能性がありますが、複数の変数を見つける必要があります。したがって、最初の分が見つかったら、変曲点を乗り越えて次の分を見つける方法を知る必要があります...:/
*ラグランジュ関数はここにあります。**すべての実用的な目的で、x ...を視覚的に入力すると、ラグランジュ関数はf(x)を返します。これは、wolframalphaによって提供される曲線を意味します。
考えられる解決策は? x [1,1.1,1.2,1.3,1.4 ...]などの入力の配列を生成し、ラグランジュ関数から配列を取得します。次に、この関数の3つの最低値を見つけますか?次に、値に対応するキーを取得しますか?どうすればいいですか?