Classroom Tips and Techniques: Nonlinear Curve Fitting Robert J. Lopez Emeritus Professor of Mathematics and Maple Fellow Maplesoft
Introduction
I was recently asked for help in fitting a nonlinear curve to data, and then drawing related graphs of the data and the fitting curve. This month's article summarizes all the advice about nonlinear least squares I generated in response to the user's questions.
Initializations
Problem Statement
Table 1 contains, with simplified notation, the data and fitting function presented to me. The data points , were presented in the form of two vectors X and Y, and the fitting function was given as , with and as two parameters to be found. The fitting function is indeed nonlinear in these parameters.
, ,
Table 1 The data for the nonlinear least squares fit
Graph of the Data Points
Table 2 shows how the data can be entered in a syntax-free manner.
Figure 1, a graph of the points and their piecewise linear interpolant, can be obtained with the Curve Fitting Assistant, as per the steps articulated in Table 3.
Table 3 Use of the Curve Fitting Assistant to graph data points and their piecewise linear interpolant
The points in Figure 1 were rendered as solid dots by using the Context Menu for the graph (click on one of the points) and selecting Symbol?Circle (Solid).
Figure 1 Data points and piecewise linear interpolant
If the Curve Fitting Assistant is not used, the graph in Figure 1 would have to be constructed by overlaying the separate graphs of the points and the interpolant.
Least Squares
The Fit command in the Statistics package decides if a linear or nonlinear algorithm is called. The fitting function is obtained with
where the numeric value of the option "iterationlimit" was found by trial-and-error. Additional information about the fitting function and its calculation can be obtained by generating the module
and interrogating it with
The module content is a sequence we have displayed elementwise by use of the for-loop. The values of the parameters, the minimum value of the sum of squares of deviations, and the individual residuals are amongst the items recovered from the calculation. In particular, the values of the parameters and can be accessed via
That the product in the numerator of the fitting function is ? can be verified by the following evaluation.
In Figure 2, we have graphed the least-squares fitting function, and added to it the graph of the data and their piecewise linear interpolant from Figure 1. The graph of the least-squares function is obtained with the Plot Builder, launched from the Context Menu. The graph in Figure 1 is added by simply copying and pasting . Of course, the alternative would be creating two separate plots and joining them with the display command in the plots package.
Figure 2 The least-squares fitting function, the data points, and their piecewise linear interpolant.
First Principles
The nonlinear fit can also be obtained by forming and minimizing the sum of squares of deviations
differentiating to obtain the normal equations
and solving numerically to obtain
The value of at this solution is
in agreement with the value found earlier.
Alternatively, can be minimized with the Optimization assistant, as per Figure 3.
Figure 3 Minimization of sum of squares by the Optimization Assistant
The Edit button is used to insert the Objective Function, and this can be referenced by its name, . On the left, select as solver the nonlinear simplex method. Setting the number of function evaluations to 200 will allow the Solve button to find the minimum.
Functions of the Optimal Parameters
After having provided this nonlinear least-squares solution, I was further asked how another function could make use of the optimal parameters in an expression such as
The simplest way to form the desired function is shown in Table 4. The alternative would involve use of the unapply command.
Proof that the desired function has been generated is given by
To evaluate this function at the nodes , we could use the new syntax for elementwise operations, as in
Alternatively, in the Context Menu for , select "Map Command Onto," and in the pop-up, provide the name .
Figure 4, a graph of and the points can be constructed from separate plots of the points and of (using the display command from the plots package), or it can be constructed interactively via the Context Menu.
Figure 4 Graph of and the points
The interactive construction of Figure 4 begins with juxtaposing the two vectors and selecting Plots?Plot Builder from the Context Menu. The domain for a plot of the six points is . The expression for can be dropped onto the graph of the points, with the Context Menu for the resulting composite graph used to re-adjust the plot window. Select Axes?Properties, and in the dialog that appears, uncheck "Use Data Extents" so appropriate Range values can be inserted.
Legal Notice: Maplesoft, a division of Waterloo Maple Inc. 2009. Maplesoft and Maple are trademarks of Waterloo Maple Inc. This application may contain errors and Maplesoft is not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact Maplesoft for permission if you wish to use this application in for-profit activities.