Example #1
0
        public void InfiniteGaussKronrodTest()
        {
            for (int i = -10; i < 10; i++)
            {
                Func <double, double> pdf = (x) => Normal.Derivative(x - i);

                Func <double, double> E = (x) => x *pdf(x);

                UFunction UE = (x) => x *pdf(x);

                double expected = Quadpack.Integrate(UE,
                                                     Double.NegativeInfinity, Double.PositiveInfinity);

                double actual = InfiniteAdaptiveGaussKronrod.Integrate(E,
                                                                       Double.NegativeInfinity, Double.PositiveInfinity);

                Assert.AreEqual(expected, actual, 1e-3);
                Assert.AreEqual(i, actual, 1e-3);
            }
        }
Example #2
0
        public void InfiniteGaussKronrodTest()
        {
            NormalDistribution norm;

            for (int i = -10; i < 10; i++)
            {
                norm = new NormalDistribution(i, 1);

                Func <double, double> E = (x) => x *norm.ProbabilityDensityFunction(x);

                UFunction UE = (x) => x *norm.ProbabilityDensityFunction(x);

                double expected = Quadpack.Integrate(UE,
                                                     Double.NegativeInfinity, Double.PositiveInfinity);

                double actual = InfiniteAdaptiveGaussKronrod.Integrate(E,
                                                                       Double.NegativeInfinity, Double.PositiveInfinity);

                Assert.AreEqual(expected, actual, 1e-3);
                Assert.AreEqual(norm.Mean, actual, 1e-3);
            }
        }