Declaration: TCurveFit.CalcCenteredPolyFit (const nOrder: byte; var kArray: array of double; var XShift: double; var FitQual: double; var NearSingular: boolean): boolean;
The method CalcCenteredPolyFit calculates the best fit for a polynomial of order nOrder which is shifted along the x-axis by XShift. If XShift is set to a zero value, the method automatically determines the optimal shift and returns it in XShift; any other value forces CalcCenteredPolyFit to use this value as shift. The regression equation of the shifted polynomial is given by

y = kArray[0] + S(kArray[j](x-XShift) j)

The order of the polynomial is restricted to values between 1 and MaxPolyFitOrder. Higher orders may result in numerical instabilities. The variable array parameter kArray returns the polynomial coefficients, the variable parameter FitQual returns the goodness of fit. The function CalcCenteredPolyFit returns a TRUE value if the fit has been calculated successfully, and the returned parameters are valid. Numerical instabilities which may arise from near-singular equations are indicated by returning a TRUE value in the variable parameter NearSingular. In this case the calculated polynomial coefficients should not be used.

Hint 1: The number of data used for the polynomial fit has to exceed the order of the polynomial at least by one.

Hint 2: The open array parameter kArray has be resized to nOrder+1 before calling CalcCenteredPolyFit.