Ejemplo n.º 1
0
 //последовательность для заданного N
 double[] Sequence(DataTable optSource, Statistics stat, int N, double r, double Cv, double Eta,double eps)
 {
     double r0 = stat.r0(r, Cv,eps);
     List<double> P = new List<double>(N);
     Double[] m_vK = new Double[N];
     Double[] x = BigOptSource(optSource, Cv, Eta);
     int NSrc = x.Length;
     int index;
     double next, dP;
     for (int i = 0; i < N; ++i)
     {
         next = (i == 0 ? 0.5 : stat.nextP(P[i - 1], r0, Rand.NextDouble(),eps));
         P.Add(next);
         index = (int)(next * NSrc);
         dP = next * NSrc - index;
         next = (index == 0 ? x[1] : x[index]) * dP + (index >= NSrc - 1 ? 0 : x[index + 1]) * (1 - dP);
         if (next < 0) next = 0;
         m_vK[i] = next;
     }
     Average_p = stat.Average(P);
     Sigma_p = stat.Sigma(P);
     return m_vK;
 }