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