public double ComputeError(double[][] input, double[] output)
{
double sumOfSquaredErrors = 0;
for (int i = 0; i < input.Length; i++)
{
double actual = Function(solution, input[i]);
double expected = output[i];
double e = expected - actual;
sumOfSquaredErrors += e * e;
}
return sumOfSquaredErrors / 2.0;
}