Main Content

Compute polynomial coefficients that best fit input data in least-squares sense

Math Functions / Polynomial Functions

`dsppolyfun`

The Least Squares Polynomial Fit block computes the coefficients of the
*n*th order polynomial that best fits the input data in the
least-squares sense, where you specify *n* in the **Polynomial
order** parameter. A distinct set of *n*+1 coefficients is
computed for each column of the *M*-by-*N* input,
*u*.

For a given input column, the block computes the set of coefficients,
*c _{1}*,

$$\sum _{i=1}^{M}{({u}_{i}-{\widehat{u}}_{i})}^{2}$$

where *u _{i}* is the

$${\widehat{u}}_{i}=f\left({x}_{i}\right)={c}_{1}{x}_{i}^{n}+{c}_{2}{x}_{i}^{n-1}+\text{}\mathrm{...}\text{}+{c}_{n+1}$$

The values of the independent variable, *x _{1}*,

c = polyfit(x,u,n) % Equivalent MATLAB code

For convenience, the block treats length-*M* unoriented vector input
as an *M*-by-1 matrix.

Each column of the (*n*+1)-by-*N* output matrix,
*c*, represents a set of *n*+1 coefficients
describing the best-fit polynomial for the corresponding column of the input. The
coefficients in each column are arranged in order of descending exponents,
*c _{1}*,

In the ex_leastsquarespolyfit_ref model below, the Polynomial Evaluation block uses the second-order polynomial

$$y=-2{u}^{2}+3$$

to generate four values of dependent variable *y* from four values of
independent variable *u*, received at the top port. The polynomial
coefficients are supplied in the vector `[-2 0 3]`

at the bottom port.
Note that the coefficient of the first-order term is zero.

The **Control points** parameter of the Least Squares Polynomial Fit
block is configured with the same four values of independent variable
*u* that are used as input to the Polynomial Evaluation block,
`[1 2 3 4]`

. The Least Squares Polynomial Fit block uses these
values together with the input values of dependent variable *y* to
reconstruct the original polynomial coefficients.

**Control points**The values of the independent variable to which the data in each input column correspond. For an

*M*-by-*N*input, this parameter must be a length-*M*vector. Tunable (Simulink).**Polynomial order**The order,

*n*, of the polynomial to be used in constructing the best fit. The number of coefficients is*n*+1.

Double-precision floating point

Single-precision floating point

Detrend | DSP System Toolbox |

Polynomial Evaluation | DSP System Toolbox |

Polynomial Stability Test | DSP System Toolbox |

`polyfit` | MATLAB |