#region//最小二乘估计
private void LMS(double[] dataIn, ref double[] esValue)
{
double A = (double)dataIn.Length;
double B = 0;
double C = 0;
for (int i = 0; i < dataIn.Length; i++)
{
B = B + dataIn[i];
C = C + dataIn[i] * dataIn[i];
}
B = B * (-2);
if (A != 0 && (B * B - 4 * A * C >= 0))
{
esValue[0] = -B / (2 * A) + Math.Sqrt((B * B - 4 * A * C) / (4 * A * A));
esValue[1] = -B / (2 * A) - Math.Sqrt((B * B - 4 * A * C) / (4 * A * A));
}
else
{
esValue[0] = -B / (2 * A);//方程无解,取最小值
esValue[1] = -B / (2 * A);
}
}
#endregion