The value of a polynomial represented by the vector c can be evaluated at the point x very easily, as the following example shows:
N = length(c)-1; val = dot( x.^(N:-1:0), c );
While the above example shows how easy it is to compute the value of a
polynomial, it isn't the most stable algorithm. With larger polynomials
you should use more elegant algorithms, such as Horner's Method, which
is exactly what the Octave function polyval
does.
In the case where x is a square matrix, the polynomial given by
c is still well-defined. As when x is a scalar the obvious
implementation is easily expressed in Octave, but also in this case
more elegant algorithms perform better. The polyvalm
function
provides such an algorithm.
Evaluate the polynomial p at the specified values of x. When mu is present, evaluate the polynomial for (x-mu(1))/mu(2). If x is a vector or matrix, the polynomial is evaluated for each of the elements of x. — Function File: [y, dy] = polyval (p, x, s)
— Function File: [y, dy] = polyval (p, x, s, mu)
In addition to evaluating the polynomial, the second output represents the prediction interval, y +/- dy, which contains at least 50% of the future predictions. To calculate the prediction interval, the structured variable s, originating from
polyfit
, must be supplied.See also: polyvalm, polyaffine, polyfit, roots, poly.