The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



CalcCenteredPolyFit


Unit: SDL_math2
Class: TCurveFit
Declaration: [1] function CalcCenteredPolyFit (const nOrder: integer; var kArray: TDoubleArray; var XShift: double; var FitQual: double; var NearSingular: boolean): boolean;
[2] function CalcCenteredPolyFit (const nOrder: integer; var kArray: TDoubleArray; var alpha: TDoubleArray; 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. Version [2] of CalcCenteredPolyFit additionally calculates the p-values of the coefficients and returns them in the variable array alpha.

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 to be resized to nOrder+1 before calling CalcCenteredPolyFit.

Example: This method is used in the following example program (see http://www.lohninger.com/examples.html for downloading the code): curvefit



Last Update: 2023-Feb-06