Interpolates values at intermediate points.
||Type of curve to be fitted to calculate the interpolated value (
||Type of interpolation required (
||Observations from which interpolation is to be done|
||Results of each interpolation|
||Points at which each set of
||Points for each set of
If you have a set of pairs of observations (x, y), you can use interpolation to estimate either a value y for a value x that need not be in the set, or a value x for a value y that likewise need not be in the set. The simplest way to interpolate is by joining successive pairs of observations by straight lines and reading off the appropriate values in between: then the two cases are called linear interpolation (obtaining y from x) and inverse linear interpolation (obtaining x from y). Genstat can alternatively join the points by cubic functions instead of straight lines. Genstat uses the term values to describe the set of y-values and intervals for the set of x-values, no matter whether you are doing direct or inverse interpolation.
Genstat does the interpolation for each parallel set of variates in the parameter lists. Each variate in the
OLDINTERVALS list specifies the x-values of a set of observed points; the corresponding variate in the
OLDVALUES list specifies the corresponding y-values. The variates in the
NEWVALUES lists are for the x-values and y-values of the interpolated points.
If you set
METHOD=value, Genstat does ordinary interpolation, and you use the
NEWINTERVALS variate to specify the x-values for which you require interpolated y-values. Genstat calculates the y-values and stores them in the corresponding
NEWVALUES variate; this variate will be declared implicitly if you have not declared it already.
For the interpolation to take place, the x-values must be in either monotonically increasing or decreasing order; thus, if necessary, Genstat takes a copy of the x-values and y-values and sorts these (in parallel) to put the x-values into ascending order.
Assume that wheat plants have been sampled on five occasions and their growth stage (Zadoks) assessed.
INTERPOLATE interpolates values, which it stores in variate
Nzad, to estimate the growth stage that the plant has reached after 50, 100 and 150 days.
VARIATE [NVALUES=6] Zadoks,Days;\
& [NVALUES=3] Nzadoks,Ndays; VALUES=!(25,50,75),!(50,100,150)
INTERPOLATE [METHOD=value] Zadoks; NEWVALUES=Nzad;\
Similarly, if you set
METHOD=interval, Genstat does inverse interpolation. You must then specify the y-values in the
NEWVALUES variate. Genstat calculates the x-values and stores them in the corresponding
NEWINTERVALS variate, which will be declared implicitly if necessary. Again the x-values must be in monotonically increasing or decreasing order, and Genstat will produce a sorted copy if necessary. Inverse interpolation is the default.
This statement would use inverse linear interpolation to estimate how long after planting we have to wait for the plant to reach growth stages 25, 50 and 75 Zadoks.
INTERPOLATE [METHOD=interval] Zadoks; NEWVALUES=Nzadoks;\
If you set
METHOD=missing, Genstat ignores the
NEWINTERVALS parameters; it estimates values for x or y when the other is missing, placing the results in the previously missing position of the
OLDVALUES or the
OLDINTERVALS variates. Ordinary interpolation is used when the missing value is in y, and inverse interpolation when it is in x. If both the x-value and the y-value are missing for a particular unit, no values can be interpolated for it, and it remains missing. To do linear interpolation requires that both the x-value and the y-value should be non-missing for the point on each side of the unit with the missing value. For cubic interpolation, there must be two non-missing points on each side of the unit.
CURVE option has two settings,
cubic. By default,
CURVE=linear, and successive pairs of observations are connected by straight-line segments for linear, or inverse-linear, interpolation. For cubic interpolation you set
CURVE=cubic; there must then be at least four values in each of the
For linear & inverse linear interpolation between variates you can use the
Either or both of the
OLDINTERVALS variates can be restricted to arrange for only a subset of the observed points to be used. Similarly, either or both of the
NEWINTERVALS variates can be restricted to arrange that values are calculated for only a subset of units of the new variates.
Commands for: Calculations and manipulation.
CAPTION 'INTERPOLATE Example'; STYLE=meta DELETE [REDEFINE=yes] X,Y,iX,iY,pX,pY VARIATE [VALUES=0,1,2,4,7,9,11,12,13,16,18,20] X CALCULATE Y = (1 + SIN(ABS(X-10)/4))**2 - 1 + (X/4)**2 - (X/9)**3 CALCULATE iX = !(1...200)/10 "Interpolate Y values using cubic interpolation" INTERPOLATE [CURVE=cubic; METHOD=VALUE]\ OLDVALUE=Y; OLDINTERVAL=X;\ NEWVALUE=iY; NEWINTERVAL=iX "Graph Interpolated Function" PEN 1,2; METHOD=POINT,MONOTONIC; SYMBOL=2,0;\ COLOUR=2,4; CFILL=2,0; THICKNESS=1,3 XAXIS [RESET=yes] 1; TITLE='X' XAXIS [RESET=yes] 1; TITLE='Function' DGRAPH [TITLE='Cubic Interpolation'] X=X,iX; Y=Y,iY;\ DESCRIPTION='Function Points','Cubic Interpolation' "Interpolate X values for given Y values" VARIATE [VALUES=1...15] GivenY INTERPOLATE [CURVE=cubic;METHOD=INTERVAL]\ OLDVALUE=Y; OLDINTERVAL=X;\ NEWVALUE=GivenY; NEWINTERVAL=PredictedX PRINT GivenY,PredictedX; FIELD=8; DECIMALS=0,4