コード例 #1
0
        public void DerivativeTest()
        {
            double[] expected =
            {
                0.25,     0.249376, 0.247517, 0.244458, 0.240261, 0.235004,
                0.228784, 0.221713,  0.21391,   0.2055, 0.196612
            };

            LogitLinkFunction target = new LogitLinkFunction();

            for (int i = 0; i < 11; i++)
            {
                double x = i / 10.0;
                double y = target.Inverse(x);

                double d1 = target.Derivative(x);
                double d2 = target.Derivative2(y);

                Assert.AreEqual(expected[i], d1, 1e-6);
                Assert.AreEqual(expected[i], d2, 1e-6);

                Assert.IsFalse(Double.IsNaN(d1));
                Assert.IsFalse(Double.IsNaN(d2));
            }
        }
コード例 #2
0
        public void DerivativeTest2()
        {
            double beta     = 4.2;
            double constant = 0.57;

            double[] expected =
            {
                0.230745,   0.197519,  0.157726,  0.119128, 0.0862579,
                0.0605722, 0.0416275, 0.0281864, 0.0188941,   0.01258, 0.00833836
            };

            LogitLinkFunction target = new LogitLinkFunction(beta, constant);

            for (int i = 0; i < 11; i++)
            {
                double x = i / 10.0;
                double y = target.Inverse(x);

                double d1 = target.Derivative(x);
                double d2 = target.Derivative2(y);

                Assert.AreEqual(expected[i], d1, 1e-6);
                Assert.AreEqual(expected[i], d2, 1e-6);

                Assert.IsFalse(Double.IsNaN(d1));
                Assert.IsFalse(Double.IsNaN(d2));
            }
        }