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