# Curve Fitting

Whether you’re using C#, Visual Basic (VB.NET), F#, IronPython, *Numerics.NET*
makes it easy to include curve fitting functionality in your .NET applications.
*Numerics.NET* is a complete math,
vector/matrix data analysis,
and statistics package for the Microsoft .NET platform.
Curve fitting features include:

- Interpolation using polynomials, cubic splines, piecewise constant and linear curves.
- Linear least squares fit using polynomials, Chebyshev polynomials, or arbitrary functions.
- Nonlinear least squares using predefined functions or your own.
- Predefined nonlinear curves: exponential, rational, Gaussian, Lorentz, 4 and 5 parameter logistic.
- Weighted least squares, with 4 predefined weight functions.
- Scaling of curve parameters.
- Constraints on curve parameters.
- Confidence and prediction bands New!

## Curve fitting classes

The classes that implement the curve fitting functionality live in the Extreme.Mathematics.Curves namespace. The principal classes are:

### Curve Fitting Algorithms

- LinearCurveFitter Represents an algorithm that calculates a linear least squares fit of a curve.
- NonlinearCurveFitter Represents an algorithm that fits a nonlinear curve to data.
- LevenbergMarquardtOptimizer Implements the Levenberg-Marquardt algorithm for non-linear least-squares.
- WeightFunctions Contains a set of standard weight functions that can be used in linear and nonlinear curve fitting.

### Curve objects

- Curve Represents a curve in two-dimensional space. This is the abstract base class of all curve objects.
- ParameterCollection Represents the set of parameters that determine the shape of a particular type of Curve.
- Polynomial Represents a polynomial.
- ChebyshevSeries Represents a Chebyshev polynomial series.
- CubicSpline Represents a cubic spline curve.
- GeneralCurve Represents a curve in two-dimensional space whose value is defined by a RealFunction delegate.
- NonlinearCurve Represents a Curve that can be used for a non-linear regression calculation.

The Curve Fitting section of the Mathematics Library User’s Guide explains their use in detail.

## Curve Fitting Sample Application

With only a few lines of code, you can fit data points to a set of arbitrary functions. This sample shows you how. For more information, click on the image to the right. This sample is also part of our trial version. |

## Curve fitting QuickStart Samples

Our library comes with a large number of QuickStart samples that help you to get started in minutes. The following samples illustrate how to use the curve fitting functionality:

Project | Description | View source | ||
---|---|---|---|---|

LinearCurveFitting | Illustrates curve fitting of polynomials and arbitrary linear functions using linear least squares. | C# | VB.NET | |

NonlinearCurveFitting | Illustrates curve fitting of nonlinear functions using nonlinear least squares. | C# | VB.NET |

## Trial version

If you would like to evaluate *Extreme Numercs.NET*,
you can download a free, fully functional 60-day trial version.
In addition to the code samples discussed here, it includes about 70 other samples
as well as complete documentation for the entire library.