# CurveExpert Basic

OS Requirements: Windows 95 to Windows 7 only. Does not operate on Windows 8, 10, or later.

## Overview

CurveExpert Basic is a comprehensive curve fitting system for Windows. XY data can be modelled using a toolbox of linear regression models, nonlinear regression models, interpolation, or splines.

Over 30 models are built-in, but custom regression models may also be defined by the user. Full-featured graphing capability allows thorough examination of the curve fit. The process of finding the best fit can be automated by letting CurveExpert compare your data to each model to choose the best curve.

CurveExpert Basic was designed to be simple but powerful, so that all users can obtain a model for their data quickly and easily.

## Capabilities

- Over 30 distinct data modeling equations to choose from
- User-defined models allow you to input, design, and manage your own regression functions with up to 19 parameters.
- Toolbox of fitting techniques includes linear/nonlinear regression and many types of interpolation/spline fitting.
- Uses the Levenberg-Marquardt algorithm for quick nonlinear regression performance.
- Different weighting schemes give flexibility to how the regression is performed. In particular, the regression can be weighted by uncertainties that are known for each data point.
- Unlimited number of data points.
- CurveFinder, which tests each available curve fit against your data, and chooses the best fit
- Graphing capability with customizable, dynamic graphs gives immediate feedback on curve fit quality.
- User has the ability to terminate a computation at any time
- Integration and differentiation of the fitted model function can be quickly performed
- Customizable plots can be copied directly to the clipboard for use in another Windows application
- Easy to use point-and-click interface
- QuickCalc evaluates your model at any point you choose
- Reads simple ASCII data file and can ignore comments or text in the file. A large amount of flexibility is available for this text file import.
- Data set can be scaled, translated, sorted, the outliers removed, or edited by hand similarly to a spreadsheet
- As curve fits are applied, a ranking chart keeps track of the best to worst models
- Full-featured toolbar and status bar increase your productivity

## Details

## Graphing Capability

CurveExpert Basic has flexible graphing so that you can obtain immediate feedback for a particular model's performance. These graphs are very customizable so that you can give them the look that feels most comfortable. The plot window shown below shows a Weibull model fit (a member of the sigmoidal family of curves) of some agricultural data:

CurveExpert Basic also has the ability to manipulate the plots on the fly: zoom in and zoom out, without your hands ever leaving the mouse. Panning and autoscaling are also just one keypress away. You can have as many graphing windows open as you have curve fits, so that different data fits can be easily compared.

Of course, the graph is only half the story. The model equation, coefficients, the covariance matrix, residuals, comments, and error information are obtained simply by clicking the right mouse button to display a context-sensitive menu, and selecting "Information."

The graphing menu also allows you to analyze the model, generate a table, print the plot, copy the plot, and adjust the plot properties. CurveExpert allows extensive customization of plots, partially demonstrated by the following graphs:

## Data Modeling Equations

There are two types of curve fitting used by CurveExpert Basic. The first group falls under the category of regression curves (which can be further subdivided into linear and nonlinear), which attempt to minimize the difference between themselves and the data points. The second group, interpolations, ensure that the curve passes exactly through each data point.

In CurveExpert Basic, the regression models are divided into families according to their typical behavior. Of course, you are not limited to only these models; if the model that you would like to use does not appear below, simply define a custom model and let CurveExpert Basic apply that model to your data set.

## Regressions

#### Linear Family

- Linear Fit, y=a+bx
- Quadratic Fit, y=a+bx+cx^2
- nth order Polynomial Fit, y=a+bx+cx^2+...

#### Exponential Family

- Exponential Fit, y=a*exp(bx)
- Modified Exponential Fit, y=a*exp(b/x)
- Logarithm Fit, y=a+b*ln(x)
- Reciprocal Logarithm Fit, y=1/(a+b*ln(x))
- Vapor Pressure Model, y=exp(a+b/x+c*ln(x))

#### Power Law Family

- Power Fit, y=a*x^b
- Modified Power Fit, y=ab^x
- Shifted Power Fit, y=a*(x-b)^c
- Geometric Fit, y=ax^(bx)
- Modified Geometric Fit, y=ax^(b/x)
- Root Fit, y=a^(1/x)
- Hoerl Model, y=a*(b^x)*(x^c)
- Modified Hoerl Model, y=a*b^(1/x)*(x^c)

#### Yield-Density Models

- Reciprocal Model, y=1/(a+bx)
- Reciprocal Quadratic, y=1/(a+bx+cx^2)
- Bleasdale Model, y=(a+bx)^(-1/c)
- Harris Model, y=1/(a+bx^c)

#### Growth Models

- Exponential Association Fit, y=a*(1-exp(-bx))
- Three-Parameter Exponential Association Fit, y=a*(b-exp(-cx))
- Saturation-Growth Rate Model, y=a*x/(b+x)

#### Sigmoidal Models

- Gompertz Relation, y=a*exp(-exp(b-cx))
- Logisitic Model, y=a/(1+exp(b-cx))
- Richards Model, y=a/(1+exp(b-cx))^(1/d)
- MMF Model, y=(ab+cx^d)/(b+x^d)
- Weibull Model, y=a-b*exp(-cx^d)

#### Miscellaneous Models

- Sinusoidal Function, y=a+b*cos(cx+d)
- Gaussian Model, y=a*exp((-(b-x)^2)(2*c^2))
- Hyperbolic Fit, y=a+b/x
- Heat Capacity Model, y=a+bx+c/x^2
- Rational Function, y=(a+bx)/(1+cx+dx^2)

## Interpolations

- Lagrangian Interpolation, y=a+bx+cx^2+...
- Linear Spline, y=a+bx, piecewise
- Quadratic Spline, y=a+bx+cx^2, piecewise
- Cubic Spline, y=a+bx+cx^2+dx^3, piecewise
- Tension Spline

## Customized nonlinear regression models

If the model that you had in mind is not already included in CurveExpert's repertoire, feel free to define your own. Models can be easily typed in, and CurveExpert Basic will perform the nonlinear regression for you. Also, any model that you type in can be saved in a library for future use.

## CurveFinder selects the best model for your data

Using the built-in CurveFinder essentially does all of the hard work for you. You provide the data file, and CurveFinder does the rest. It sifts through every possible built-in curve fit (as well as one user-defined model), ranks the fits from best to worst, and presents you with the best one. Choosing CurveFinder from the Tools menu will invoke a dialog box that will ask you for input on which families of of regression models to search.