Accord.Tests.Math.BroydenFletcherGoldfarbShannoTest.rosenbrockGradient C# (CSharp) Method

rosenbrockGradient() public static method

public static rosenbrockGradient ( double x ) : double[]
x double
return double[]
        public static double[] rosenbrockGradient(double[] x)
        {
            double a = x[1] - x[0] * x[0];
            double b = 1 - x[0];

            double f0 = -2 * b - 400 * x[0] * a;
            double f1 = 200 * a;

            return new[] { f0, f1 };
        }

Usage Example

Example #1
0
        public void ComputeTest()
        {
            int numberOfParameters   = 2;
            FiniteDifferences target = new FiniteDifferences(numberOfParameters);

            double[] inputs = { -1, 0.4 };

            target.Function = BroydenFletcherGoldfarbShannoTest.rosenbrockFunction;

            double[] expected = BroydenFletcherGoldfarbShannoTest.rosenbrockGradient(inputs);
            double[] actual   = target.Compute(inputs);

            Assert.IsTrue(expected.IsEqual(actual, 0.05));
        }