Application Center - Maplesoft

App Preview:

Taylor-Newton-Gauss method for nonlinear regression

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Taylor-Newton-Gauss

 

A program to find the unknown parameters of a nonlinear or linear

function from a series of observations {X,Y}.

 

The method used is a truncated Taylor series, Gauss least squares and Newton differentiation.

 

We assume that reasonable initial approximations, {Guess values}, of the desired unknowns, , are known.

 

Enter as many guesses as unknowns, . Each guess must be "within range" of the final value.

 

Start with guess = 1.

If the calculation diverges, try guess = -1 or 0.1 or -0.1 or 10 or -10.
If the calculation still diverges, plot the equation (Fit) using various values for for better Guesses.

 

RMS_error is the Root Mean Square.

SSQ is the average of the sum of the squares.

The RMS_percent_avg_response is a normalized RMS in percent. This relative quantity should be a few percent and is a good measure to use (along with correlation, RMS_error and SSQ).

 

Change the iterations as necessary. Some Fits will converge with as few as 3 iterations; others take more iterations.

The number of X and Y values must be the same. As a check, the nops of X and Y will show this.

How to:

Start with a truncated Taylors series about the point . We can use a truncation because, if the Guess values are reasonable approximations to the required solution, the quantities and will be small; hence their squares, products and higher powers will be negligible in comparison with the quantities themselves.

 

 

This truncated Taylor series is now linear and can be solved using the Gauss method.

 

 

 

 

The procedure is best explained by an example:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Find least squares of:

 

 

 

Now iterate, using the new Guess = Guess [1.41,.676].

 

 

 

Some caveats:

 

Check the inputs.

        Is the Fit equation properly entered?

        Are the X values sorted low to high?

        Do the Y values match the X values?

        Do the number of X values equal the number of Y values? (N = Ny)

        Are the Guess values within range? Start with all ones [1,1,1].

Try various values: [0.1,0.1,0.1]

[-0.1,-0.1,-0.1]

If the program wont converge to valid coefficients, plot the Fit equation

using various values for a[1], a[2]. etc.

        Is the iteration value too large? Usually, 3 to 5 iterations should be sufficient.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Example of Guess and iteration anomalies:

 

 

X := [.12,.2,.51,.84,1.25,1.98,3.4,4.8]

 

Y := [13.8,21,39.5,50.6,58.6,66.3,72.7,75.5]

 

Actual coefficients [85.50589158, .5913770708]

 

If one starts with Guess = [1,1] and iterations = 10, the program wont converge.

 

If one changes Guess = [10,1] and keeps iterations = 10, the program will converge, but the coefficients are too far off.

 

If one keeps Guess = [10,1] and changes iterations = 5, the program will converge, but the coefficients remain too far off.

 

If one changes Guess = [10, 0.5] and keeps iterations = 10 (or 5), then the program will converge to the actual coefficients.

 

 

 

Comments? Wayne Allen

Wayne94@iname.com