Polynomial evaluation


y = polyval(p,x)
[y,delta] = polyval(p,x,S)
y = polyval(p,x,[],mu)
[y,delta] = polyval(p,x,S,mu)


y = polyval(p,x) returns the value of a polynomial of degree n evaluated at x. The input argument p is a vector of length n+1 whose elements are the coefficients in descending powers of the polynomial to be evaluated.

y = p1xn + p2xn–1 + … + pnx + pn+1

x can be a matrix or a vector. In either case, polyval evaluates p at each element of x.

[y,delta] = polyval(p,x,S) uses the optional output structure S generated by polyfit to generate error estimates delta. delta is an estimate of the standard deviation of the error in predicting a future observation at x by p(x). If the coefficients in p are least squares estimates computed by polyfit, and the errors in the data input to polyfit are independent, normal, and have constant variance, then y±delta contains at least 50% of the predictions of future observations at x.

y = polyval(p,x,[],mu) or [y,delta] = polyval(p,x,S,mu) use x^=(xμ1)/μ2 in place of x. In this equation, μ1=mean(x) and μ2=std(x). The centering and scaling parameters mu = [μ1,μ2] are optional output computed by polyfit.


The polynomial p(x)=3x2+2x+1 is evaluated at x = 5, 7, and 9 with

p = [3 2 1];
polyval(p,[5 7 9])

which results in

ans =

    86   162   262

For another example, see polyfit.

More About

collapse all


The polyvalm(p,x) function, with x a matrix, evaluates the polynomial in a matrix sense. See polyvalm for more information.

Introduced before R2006a

Was this topic helpful?