下面是我写的代码。
我在函数声明上有问题,但在代码里面写了“minimizeM”,所以不知道错在哪里?
static double minimizeM(HerbivoreParameters p, int k, double[] c)
{
double minM = 0;
double maxCj = Double.NaN;
for (double cj:c)
{
p.gamma = cj;
if (!areParametersValid(p))
{
maxCj = Double.NaN;
break;
}
double[] resultArr = solveModel(p,k);
double maxMTemp = getMaxM(resultArr);
if (maxMTemp < minM || minM == 0)
{
minM = maxMTemp;
maxCj = cj;
}
System.out.println("maxCj:" + maxCj + "the minimum M" + minM);
}
System.out.println("===================the final result:" + maxCj);
return maxCj;
}
/**
* to compute the maximum value in the array of arguments
*
* @param resultArr
* @return max
*/
public static double getMaxM(double[] resultArr)
{
double max = 0;
for (int i = 0; i < resultArr.length; i++)
{
if (resultArr[i] > max)
{
max = resultArr[i];
}
}
return max;
}
public static double minimizeM(HerbivoreParameters p, int k, double[] c)
加上public
方法未加 public,调用时不在一个包的话,不行的