POLYEVAL Function
Evaluates a polynomial in n variables.
Usage
y = POLYEVAL ( p, x)
Input Parameters
p—n-dimensional array of polynomial coefficients: p(j1, ..., jn) is the coefficient for:
where the xi are the indeterminants of the polynomial.
x—(m,n) array of m points at which to evaluate the polynomial.
Returned Value
y—m-element vector containing the value of the polynomial at each of the m input points.
Keywords
Form—If set and n=1 then x need not be 1-dimensional but instead can have any desired dimensionality, and output y has the same dimensions as x. Also, setting Form invokes a faster algorithm specific to the case n=1.
Discussion
POLYEVAL evaluates a n-variate polynomial which is defined by an n-dimensional array of coefficients. The coefficients usually represent a regression model obtained by POLYFITN.
Example 1
; make 10 points in 3-space and store the range of the data
seed = 0
data = [ [RANDOMU(seed,10,2)], [RANDOMU(seed,10)/10] ]
drng = [ MIN(data,Dimension=0,Max=dmax), dmax ]
; coefficients of an exact bivariate 3rd order polynomial fit
MATH_INIT
coef = POLYFITN(data, [[1,1,1,1],[1,1,1,0],[1,1,0,0],[1,0,0,0]])
; grid of points that spans the range of the 2 independent
; variables
axes = LIST( INTERPOL(drng(*,0),101), INTERPOL(drng(*,1),101) )
grid = CPROD(axes)
; evaluate the polynomial on the grid; display the surface and
; data
surf = POLYEVAL( coef, grid )
vtkWINDOW, /Norender
vtkSURFACE, REFORM(surf,101,101), axes(0), axes(1)
vtkSCATTER, TRANSPOSE(data), Color=255L, Scale=0.2, /Noerase, $
/ Noaxes
vtkRENDERWINDOW
Example 2
See wave/lib/user/examples/polyexam.
This routine displays a univariate polynomial fit to random data, a bivariate polynomial fit to random data, and an image warping accomplished with a bivariate polynomial fit to each of two image coordinate mappings.