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