The function may be called by the names: e02adc, nag_fit_dim1_cheb_arb or nag_1d_cheb_fit.
e02adc determines least squares polynomial approximations of degrees to the set of data points with weights , for .
The approximation of degree has the property that it minimizes the sum of squares of the weighted residuals , where
and is the value of the polynomial of degree at the th data point.
Each polynomial is represented in Chebyshev series form with normalized argument . This argument lies in the range to and is related to the original variable by the linear transformation
Here and are respectively the largest and smallest values of . The polynomial approximation of degree is represented as
where is the Chebyshev polynomial of the first kind of degree with argument .
For , the function produces the values of , for , together with the value of the root mean square residual . In the case the function sets the value of to zero.
The method employed is due to Forsythe (1957) and is based upon the generation of a set of polynomials orthogonal with respect to summation over the normalized dataset. The extensions due to Clenshaw (1960) to represent these polynomials as well as the approximating polynomials in their Chebyshev series forms are incorporated. The modifications suggested by Reinsch and Gentleman (Gentleman (1969)) to the method originally employed by Clenshaw for evaluating the orthogonal polynomials from their Chebyshev series representations are used to give greater numerical stability.
On exit: the coefficients of in the approximating polynomial of degree . contains the coefficient , for and .
8: – doubleOutput
On exit: contains the root mean square residual , for , as described in Section 3. For the interpretation of the values of the and their use in selecting an appropriate degree, see the E02 Chapter Introduction.
9: – NagError *Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).
6Error Indicators and Warnings
On entry, while the number of distinct values, . These arguments must satisfy .
On entry, the sequence , is not in nondecreasing order.
On entry, the weights are not strictly positive: .
No error analysis for the method has been published. Practical experience with the method, however, is generally extremely satisfactory.
8Parallelism and Performance
Background information to multithreading can be found in the Multithreading documentation.
e02adc is not threaded in any implementation.
The time taken by e02adc is approximately proportional to .
The approximating polynomials may exhibit undesirable oscillations (particularly near the ends of the range) if the maximum degree exceeds a critical value which depends on the number of data points and their relative positions. As a rough guide, for equally spaced data, this critical value is about . For further details see page 60 of Hayes (1970).
Determine weighted least squares polynomial approximations of degrees , , 2 and 3 to a set of 11 prescribed data points. For the approximation of degree , tabulate the data and the corresponding values of the approximating polynomial, together with the residual errors, and also the values of the approximating polynomial at points half-way between each pair of adjacent data points.
The example program supplied is written in a general form that will enable polynomial approximations of degrees to be obtained to data points, with arbitrary positive weights, and the approximation of degree to be tabulated. e02aec is used to evaluate the approximating polynomial. The program is self-starting in that any number of datasets can be supplied.