Esempio n. 1
0
        /// <summary>
        /// Numerical integral in R+ assuming the integrand
        /// is exponential decaying.
        /// </summary>
        /// <param name="a">The left bound.</param>
        /// <param name="b">The right bound.</param>
        /// <returns>The integral.</returns>
        double PerformIntegral(double a, double b, TAEDelegateFunction1D f)
        {
            double sum = 0;
            double dt  = a / 10;
            double x   = a;
            double y0  = f(a);
            double s0  = 1.05;

            do
            {
                if (x + dt > b)//fix for the last step
                {
                    dt = b - x;
                }

                x += dt;
                double y1 = f(x);
                sum += 0.5 * (y0 + y1) * dt;
                y0   = y1;
                dt  *= s0;
                //s0 *= 1.0005;
            } while (x < b);
            return(sum);
        }
Esempio n. 2
0
        /// <summary>
        /// Numerical integral in R+ assuming the integrand
        /// is exponential decaying.
        /// </summary>
        /// <param name="a">The left bound.</param>
        /// <param name="b">The right bound.</param>
        /// <returns>The integral.</returns>
        double PerformIntegral(double a, double b,TAEDelegateFunction1D f)
        {
            double sum = 0;
            double dt = a/10;
            double x=a;
            double y0 = f(a);
            double s0 = 1.05;
            do
            {
                if (x + dt > b)//fix for the last step
                  dt = b - x;

                x += dt;
                double y1 = f(x);
                sum += 0.5 * (y0 + y1) * dt;
                y0 = y1;
                dt *= s0;
                //s0 *= 1.0005;
            } while (x < b);
            return sum;
        }