public override double Calculate(int n, double x)
        {
            double sum    = 0;
            double result = 0;
            double alpha  = _parameters.GetValue("alpha");
            double beta   = _parameters.GetValue("beta");
            double hama   = alpha + (beta / 2.0);
            double omega  = alpha + beta;

            for (int k = 0; k <= n - 1; ++k)
            {
                sum += _param.Calculate(n - 1, k) * _gSeries.Calculate(k, x);
            }

            if (n == 0)
            {
                result = Math.Sqrt(omega) * (Math.Exp(-Math.Sqrt(hama) * Math.Abs(x))) / (4.0 * Math.PI * Math.Abs(x));
            }
            else
            {
                if (n == 1)
                {
                    result = -(1 / (double)n) * sum;
                }
                else
                {
                    result = (1.0 - 1.0 / (double)n) * Calculate(n - 1, x) - (1 / (double)n) * sum;
                }
            }

            return(result);
        }
        public double Calculate(double x, double t)
        {
            double omega = _parameterProvider.GetValue("omega");
            double beta  = _parameterProvider.GetValue("beta");
            double res   = 0;

            for (int i = 0; i <= N; ++i)
            {
                res += _eFund.Calculate(i, x) * Math.Sqrt(omega)
                       * _laguerreFunc.Calculate(i, omega * t) * Math.Exp(-(beta / 2.0) * t);
            }

            return(res);
        }
Example #3
0
        // (-1)^k*omega^k*n!
        // -----------------
        //   (k!)^2*(n-k)!
        public double Calculate(int n, int k)
        {
            double alpha = _parameters.GetValue("alpha");
            double beta  = _parameters.GetValue("beta");
            double omega = alpha + beta;

            double product = 1;

            for (int i = 1; i <= k; ++i)
            {
                product *= (omega * (n - k + i)) / (i * i);
            }

            int coef = ((-2) * (k % 2) + 1);

            return(coef * product);
        }
Example #4
0
        public double Calculate(int n, double x)
        {
            double result = 0;
            double alpha  = _parameters.GetValue("alpha");
            double beta   = _parameters.GetValue("beta");
            double hama   = alpha + (beta / 2.0);
            double omega  = alpha + beta;

            if (n == 0)
            {
                result = Math.Sqrt(omega) * (Math.Exp(-Math.Sqrt(hama) * Math.Abs(x))) / (4.0 * Math.PI * Math.Sqrt(x));
            }
            else if (n == 1)
            {
                result = Math.Sqrt(omega) * ((Math.Exp(-Math.Sqrt(hama) * Math.Abs(x))) / (8.0 * Math.PI * Math.Sqrt(hama)));
            }
            else
            {
                result = (-2.0 / (2.0 * alpha + beta)) * ((Math.Abs(x) * Math.Abs(x) / 4.0) * Calculate(n - 2, x) + (n - 1.5) * Calculate(n - 1, x));
            }
            return(result);
        }
Example #5
0
        public double Calculate(double x, double t)
        {
            var omega = _parameters.GetValue("alpha") + _parameters.GetValue("beta");

            return(Math.Sqrt(omega) * (Math.Exp(-((Math.Abs(x) * Math.Abs(x)) / (4 * t)))) / (2 * Math.Pow(Math.Sqrt(Math.PI * t), 3.0)));
        }