numpy.polyval — NumPy v2.2 Manual (original) (raw)
Evaluate a polynomial at specific values.
Note
This forms part of the old polynomial API. Since version 1.4, the new polynomial API defined in numpy.polynomial is preferred. A summary of the differences can be found in thetransition guide.
If p is of length N, this function returns the value:
p[0]x(N-1) + p[1]x(N-2) + ... + p[N-2]*x + p[N-1]
If x is a sequence, then p(x)
is returned for each element of x
. If x is another polynomial then the composite polynomial p(x(t))
is returned.
Parameters:
parray_like or poly1d object
1D array of polynomial coefficients (including coefficients equal to zero) from highest degree to the constant term, or an instance of poly1d.
xarray_like or poly1d object
A number, an array of numbers, or an instance of poly1d, at which to evaluate p.
Returns:
valuesndarray or poly1d
If x is a poly1d instance, the result is the composition of the two polynomials, i.e., x is “substituted” in p and the simplified result is returned. In addition, the type of x - array_like or poly1d - governs the type of the output: x array_like => _values_array_like, x a poly1d object => values is also.
See also
A polynomial class.
Notes
Horner’s scheme [1] is used to evaluate the polynomial. Even so, for polynomials of high degree the values may be inaccurate due to rounding errors. Use carefully.
If x is a subtype of ndarray the return value will be of the same type.
References
[1]
I. N. Bronshtein, K. A. Semendyayev, and K. A. Hirsch (Eng. trans. Ed.), Handbook of Mathematics, New York, Van Nostrand Reinhold Co., 1985, pg. 720.
Examples
import numpy as np np.polyval([3,0,1], 5) # 3 * 52 + 0 * 51 + 1 76 np.polyval([3,0,1], np.poly1d(5)) poly1d([76]) np.polyval(np.poly1d([3,0,1]), 5) 76 np.polyval(np.poly1d([3,0,1]), np.poly1d(5)) poly1d([76])