private double GetK(PiecewiseLinearApproximationData approximationData) { // k = (f1 - f0)/(x1 - x0); double k = (approximationData.YForNextExistingX - approximationData.YForPreviousExistingX) / (approximationData.NextExistingX - approximationData.PreviousExistingX); return(k); }
private double CalculateY(PiecewiseLinearApproximationData approximationData, LinearFunctionParameters linearFunctionParameters) { // y = k * x+ b linearFunctionParameters.K = GetK(approximationData); linearFunctionParameters.B = GetB(approximationData.YForPreviousExistingX, linearFunctionParameters.K, approximationData.PreviousExistingX); double y = linearFunctionParameters.K * linearFunctionParameters.X + linearFunctionParameters.B; return(y); }
public double GetY(double x) { PiecewiseLinearApproximationData approximationData = GetApproximationData(x); LinearFunctionParameters linearFunctionParameters = new LinearFunctionParameters(); linearFunctionParameters.X = x; double y = CalculateY(approximationData, linearFunctionParameters); return(y); }