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);
        }
Beispiel #2
0
        public double Calculate(int k, double x)
        {
            double sum = 0;

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

            return(sum);
        }
        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);
        }