Mathematical Solutions.........

Regression analysis

Equation graph plotter

Desktop calculators

Conversion utilities

Generic applications

 

Independent, non-profitable software & technology developments of Dr. Larry Nylund

Regression Analysis - Graphing - Scientific Calculator - Unit Conversion


Nonlinear regression analysis - CurveFitter v4.5.67 

Fit thousands of data into your equations in seconds
CurveFitter gives scientists, researchers and engineers the power to find the ideal model for even the most complex data, including equations that might never have been considered. You can build equation set which can include a wide array of linear and nonlinear models for any application. CurveFitter's state-of-the-art data fitting includes the following capabilities:

  • Any user-defined equations of up to nine parameters and eight variables.
  • Linear equations.
  • Nonlinear exponential, logarithmic and power equations.
  • A 38-digit precision math emulator for properly fitting high order polynomial and rational coefficients.
  • A robust fitting capability for nonlinear fitting that effectively copes with outliers and a wide dynamic Y data range.

Graphically Review Curve Fit Results
Once your data have been fitted, CurveFitter automatically sorts and plots the fitted equations by the statistical criteria of Standard Error. A residual graph as well as parameter output is generated for the selected fitted equation within the Review Curve Fit window.

With All This Power, it is Still Easy to Use
CurveFitter takes full advantage of the Windows user interface to simplify every aspect of operation -- from data import to output of results. Import data from text file. Once your data are in the editor, create a custom equation set and start the automatic fitting process with a single mouse click. CurveFitter is highly intuitive, easy-to-use and remarkably simple to learn.

Note: Right-clicking on the program's panel initiates popup menu to display list of additional tasks.

How to work with the program.

1. First, you must formulate an equation.

You can use next operations (as expression syntax):

*, /, +, -, ( )

and some standard functions:

sqrt(x), square(x), power(x,z) [= x raised to power of z; Use "comma" as the list-separator],

exp(x), ln(x), log10(x), log2(x), sin(x), cos(x), tan(x),

cotan(x), sec(x), cosec(x), arcsin(x), arccos(x), arctan(x),

arccotan(x), arcsec(x), arccosec(x), sinh(x), cosh(x), tanh(x),

coth(x), sech(x), cosech(x), arcsinh(x), arccosh(x), arctanh(x),

arccoth(x), arcsech(x), arccosech(x), abs(x)

Constants: Pi [=3.14...], Deg [=180/Pi = 57.2...]

Built-in functions (with the exception of Power function) take a single numeric argument, enclosed in parentheses after the name of the function.

As operands you can use numeric constants in any form (2, 2.0, 2e5, 2e-3 with decimal delimiter "period" or "comma", depending on your computer system configuration), parameters that are named "kn" and variables named "xn", where n is any positive integer.

Note: Program is case-sensitive, so make sure you type function names exactly as you see them above.

Note: All angle parameters and results of trigonometric functions are in radians. For degrees, multiply or divide by the Deg variable.
For example: sin(30/Deg) will return 0.5, and arctan(1)*Deg will return 45.

2. Parse the formula for the equation to be fitted. Before entering parsed formula, you must set necessary quantity of parameters and variables, otherwise when you use an index of a parameter or a variable greater than one quantity there will be an exception. Number of independent parameters (1 - 9; i.e. k1, k2, ..., k9) and number of independent variables (1 - 8; i.e. x1, x2, ..., x8) are automatically generated.

3. Next you can manually enter or load the [x1, x2, ..., x8, y] data from external *.txt files. The independent variable (x1) or variables (x1, x2, ..., etc.) should come first, followed by the dependent variable (y). Loading variables from text files is accomplished with popup menu on right mouse button. The "options" menu opens up a dialog box, where you can define the nature of the input text files by the value delimiter. Text file can have any value delimiter from the set ( space(  ),  comma(,),  semi-colon(;),  point(.) ) excluding decimal delimiter from the computer system configuration. (Note! If your computer system configuration uses "comma" as decimal delimiter, for example, an input number-format 2.1 must be written as 2,1)

4. Find parameters for a task utilising the "fitting" button. Click the "fitting" button to perform a single iteration cycle. After each iteration step, you observe how the fitted parameters’ values change in the values-column of the parameters-grid. Click the “fitting” button again, and continue until the parameters converge. When you re-enter a formula, you need to parse it again with the corresponding parameter's or variable's quantity. Thus, you can set quantities for parameters and variables and recalculate the formula many times with "fitting" button.

5. The "chart" button opens the dialog with diagram of a real and modelling data or residuals of the approximation. In case of a multivariable function, you can choose a variable that will be used to build the diagram. The chart can be saved right-clicking with the mouse.

6. You can save (in text files) different parts of a model or a model in a whole, and correspondingly load them later in order to see the data and graph. It is made by popup menu.

7. Squared Error is the Weighted Standard Error of Estimate, i.e. the average scatter of the points from the fitted curve. This is relative to the estimated error of the points themselves. Values much above 1 indicate the curve is not fitting the points to within their intrinsic errors.

8. All grids and columns in them can be resized.

9. Examples of formula:

Be sure to adhere to the expression syntax rules described here. Parse and enter only the part after the = sign (if you're fitting y=a+b*x, corresponding to parsed y=k1+k2*x1, just enter k1+k2*x1 in the formula-box). Refer to the parameters as k1, k2, k3, k4, k5, k6, k7, k8 and k9. If there are fewer than nine parameters in the equation, start with k1, and don't skip characters in the sequence (for example, if there are 3 parameters, don't use k1, k2, and k4). If there's a single independent variable, call it x1; if there are more than one, use x1, x2, x3, ..., x8.
(Note: In particular, you cannot use ^ for exponentiation, you must use the Power function instead.)

i) y = a - b*x1 + c/x2
Parsing equation: k1 - k2*x1 + k3/x2
Parameters' quantity: 3
Variables' quantity: 2

ii) y = (a - c) * exp(-b * x) + c
Parsing equation: (k1 - k3) * exp(-k2*x1) + k3
Parameters' quantity: 3
Variables' quantity: 1

iii) y = a*x + b
Parsing equation: k1*x1 + k2
Parameters' quantity: 2
Variables' quantity: 1

iv) y = a + (b*x) + (c*x*ln(x)) + (d * x^2) + (e * x^-1) + (f * x^3) + (i * x^4) + (j * x^7) + (k * x^-9)
Parsing equation: k1 + (k2 * x1) + (k3 * x1 * ln(x1)) + (k4 * power(x1,2)) + (k5 * power(x1,-1)) + (k6 * power(x1,3)) + (k7 * power(x1,4)) + (k8 * power(x1,7)) + (k9 * power(x1,-9))
Parameters' quantity: 9
Variables' quantity: 1

v) y = a + b*x + c*sqrt(x)
Parsing equation: k1 + k2*x1 + k3*sqrt(x1)
Parameters' quantity: 3
Variables' quantity: 1

vi) y = a + b*ln(x) + c*x
Parsing equation: k1 + k2*ln(x1) + k3*x1
Parameters' quantity: 3
Variables' quantity: 1

vii) y = a + exp((-b)*x) + c
Parsing equation: k1 + exp((-k2)*x1) + k3
Parameters' quantity: 3
Variables' quantity: 1

viii) y = a + b*x + x^2
Parsing equation: k1 + k2*x1 + square(x1)
Parameters' quantity: 2
Variables' quantity: 1

ix) y = a*10^3 - (b*(x -15)); where 10^3 and 15 are some constants
Parsing equation: k1*1.0e3 - (k2*(x1 -15)) OR k1*power(10,3) - (k2*(x1 -15))
Parameters' quantity: 2
Variables' quantity: 1

x) y = a*exp(b/(8.314*10^-2*x)); where 8.314*10^-2 is a constant
Parsing equation: k1*exp(k2/(8.314e-2*x1))
Parameters' quantity: 2
Variables' quantity: 1

xi) y = a + b*ln(x) + c/x
Parsing equation: k1 + k2*ln(x1) + k3/x1
Parameters' quantity: 3
Variables' quantity: 1

xii) y = a + (b * x) + (c * x * ln(x))
Parsing equation: k1 + (k2 * x1) + (k3 * x1 * ln(x1))
Parameters' quantity: 3
Variables' quantity: 1

xiii) y = a + b*x1 + c*x2 + d*x3 + e*x4 + f*x5 + g*x6 + h*x7 + j*x8
Parsing equation: k1 + k2*x1 + k3*x2 + k4*x3 + k5*x4 + k6*x5 + k7*x6 + k8*x7 + k9*x8
Parameters' quantity: 9
Variables' quantity: 8

xiv) y = a + b*x1 + c*x3^2*ln(x2) + 4*d*x4
Parsing equation: k1 + k2*x1 + k3*square(x3)*ln(x2) + 4*k4*x4
Parameters' quantity: 4
Variables' quantity: 4

xv) y = a + b * x1 + c * x2
Parsing equation: k1 + k2 * x1 + k3 * x2
Parameters' quantity: 3
Variables' quantity: 2

xvi) y = a + b*c^x
Parsing equation: k1 + k2*power(k3,x1)
Parameters' quantity: 3
Variables' quantity: 1


The software presented on these pages are for Save-the-Children charity.

Copyright © 2024 Larry Nylund
Institute of Mathematics and Statistics
Helsinki, Finland
North Europe
All Rights Reserved