예제 #1
0
        public Gqf(Func <double, double> mainFunction, Iqf iqfHelper)
        {
            var d = 1.0 / 3;
            var a = 1.5;

            _defaultIntegralsFunction = new Func <double, double> [6];

            _defaultIntegralsFunction[0] = x =>
                                           Math.Pow(x - a, 1 - d) / (1 - d);

            _defaultIntegralsFunction[1] = x =>
                                           Math.Pow(x - a, 1 - d) / (d - 2) * (a - d * x + x) / (d - 1);
            _defaultIntegralsFunction[2] = x =>
                                           - Math.Pow(x - a, 1 - d) * (2 * a * a - 3 * (d - 1) * x + (d * d - 3 * d + 2) * x * x) / (d - 3) /
                                           (d - 2) / (d - 1);
            _defaultIntegralsFunction[3] = x =>
                                           Math.Pow(x - a, 1 - d) * (6 * Math.Pow(a, 3) - 6 * Math.Pow(a, 2) * (d - 1) * x +
                                                                     3 * a * (d * d - 3 * d + 2) * Math.Pow(x, 2) -
                                                                     (d * d * d - 6 * d * d + 11 * d - 6) * Math.Pow(x, 3)) / (d - 4) / (d - 3) / (d - 2) / (d - 1);
            _defaultIntegralsFunction[4] = x =>
                                           - (Math.Pow(x - a, 1 - d) * (24 * Math.Pow(a, 4) - 24 * Math.Pow(a, 3) * (d - 1) * x +
                                                                        12 * a * a * (d * d - 3 * d + 2) * x * x -
                                                                        4 * a * (d * d * d - 6 * d * d + 11 * d - 6) * x * x * x +
                                                                        (d * d * d * d - 10 * d * d * d + 35 * d * d - 50 * d + 24) *
                                                                        Math.Pow(x, 4))) / (d - 5) / (d - 4) / (d - 3) / (d - 2) / (d - 1);
            _defaultIntegralsFunction[5] = x =>
                                           Math.Pow(x - a, 1 - d) * (120 * Math.Pow(a, 5) - 120 * Math.Pow(a, 4) * (d - 1) * x +
                                                                     60 * Math.Pow(a, 3) * (d * d - 3 * d + 2) * x * x -
                                                                     20 * a * a * (d * d * d - 6 * d * d + 11 * d - 6) * x * x * x + 5 *
                                                                     a *
                                                                     (Math.Pow(d, 4) - 10 * d * d * d + 35 * d * d - 50 * d + 24) *
                                                                     Math.Pow(x, 4) -
                                                                     (Math.Pow(d, 5) - 15 * Math.Pow(d, 4) + 85 * d * d * d - 225 * d * d +
                                                                      274 * d - 120) *
                                                                     Math.Pow(x, 5)) / (d - 6) / (d - 5) / (d - 4) / (d - 3) / (d - 2) / (d - 1);
            _mainFunction = mainFunction;
            _iqfHelper    = iqfHelper;
        }
예제 #2
0
 public Cqf(Func <double, double> mainFunction)
 {
     _iqfHelper = new Iqf(mainFunction);
     _gqfHelper = new Gqf(mainFunction, _iqfHelper);
 }