private static double EstimateN(double[] x, double[] y, int ic)
        {
            double dm = x[ic];

            for (int i = 0; i < y.Length; i++)
            {
                x[i] -= dm;
                y[i]  = Math.Log(y[i]);
            }
            //int im = ic - 1;
            //int ip = ic + 1;
            //double a2 = (y[im] * (x[ip] - x[ic]) + y[ic] * (x[im] - x[ip]) + y[ip] * (x[ic] - x[im])) /
            //            (x[im] * x[im] * (x[ip] - x[ic]) + x[ic] * x[ic] * (x[im] - x[ip]) + x[ip] * x[ip] * (x[ic] - x[im]));
            //double a1 = (y[ic] - y[im] - a2 * (x[ic] * x[ic] - x[im] * x[im])) / (x[ic] - x[im]);
            //double a0 = y[im] - a1 * x[im] - a2 * x[im] * x[im];
            //double[] a = new double[] {a0, a1, a2};
            double[] a = new double[3];
            NumUtil.LinFit2(x, y, a, Qwert);
            return(dm - a[1] / a[2] * 0.5);
        }