Navigation

Operators and Keywords

Function List:

C++ API

: p = polyfit (x, y, n)
: [p, s] = polyfit (x, y, n)
: [p, s, mu] = polyfit (x, y, n)

Return the coefficients of a polynomial p(x) of degree n that minimizes the least-squares-error of the fit to the points [x, y].

If n is a logical vector, it is used as a mask to selectively force the corresponding polynomial coefficients to be used or ignored.

The polynomial coefficients are returned in a row vector.

The optional output s is a structure containing the following fields:

R

Triangular factor R from the QR decomposition.

X

The Vandermonde matrix used to compute the polynomial coefficients.

C

The unscaled covariance matrix, formally equal to the inverse of x’*x, but computed in a way minimizing roundoff error propagation.

df

The degrees of freedom.

normr

The norm of the residuals.

yf

The values of the polynomial for each value of x.

The second output may be used by polyval to calculate the statistical error limits of the predicted values. In particular, the standard deviation of p coefficients is given by

sqrt (diag (s.C)/s.df)*s.normr.

When the third output, mu, is present the coefficients, p, are associated with a polynomial in

xhat = (x - mu(1)) / mu(2)
where mu(1) = mean (x), and mu(2) = std (x).

This linear transformation of x improves the numerical stability of the fit.

See also: polyval, polyaffine, roots, vander, zscore.

Package: octave