Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics.Curves
    • BarycentricBasis Class
    • BarycentricSeries Class
    • ChebyshevBasis Class
    • ChebyshevSeries Class
    • CubicSpline Class
    • CubicSplineKind Enumeration
    • Curve Class
    • CurveFitter Class
    • FunctionBasis Class
    • GeneralCurve Class
    • GeneralFunctionBasis Class
    • LinearCombination Class
    • LinearCurveFitter Class
    • LinearLeastSquaresMethod Enumeration
    • NonlinearCurve Class
    • NonlinearCurveFitter Class
    • NonlinearCurveFitter(T) Class
    • NonlinearCurveFittingMethod Enumeration
    • PiecewiseConstantCurve Class
    • PiecewiseCurve Class
    • PiecewiseLinearCurve Class
    • Point Structure
    • Polynomial Class
    • PolynomialBase Class
    • PolynomialBasis Class
    • WeightFunctions Class
  • NonlinearCurve Class
    • NonlinearCurve Constructor
    • NonlinearCurve Properties
    • Methods

NonlinearCurve Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents a Curve that can be used for a non-linear regression calculation.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.CurvesCurve
    Extreme.Mathematics.CurvesNonlinearCurve
      More...

Namespace:  Extreme.Mathematics.Curves
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
public abstract class NonlinearCurve : Curve
Public MustInherit Class NonlinearCurve
	Inherits Curve
public ref class NonlinearCurve abstract : public Curve
[<AbstractClassAttribute>]
type NonlinearCurve =  
    class
        inherit Curve
    end

The NonlinearCurve type exposes the following members.

Constructors

  NameDescription
Protected methodNonlinearCurve
Constructs a new NonlinearCurve object.
Top
Properties

  NameDescription
Public propertyParameters
Gets the collection of parameters that determine the shape of this Curve.
(Inherited from Curve.)
Top
Methods

  NameDescription
Public methodClone
Constructs an exact copy of this instance.
(Inherited from Curve.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodFillNumericalPartialDerivatives
Fills a dense vector with the partial derivatives of the curve with respect to each of the curve parameters computed using numerical differentiation.
Public methodFillPartialDerivatives
Fills a dense vector with the partial derivatives of the curve with respect to each of the curve parameters.
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFindRoots
Gets the set of X-coordinates where the curve crosses the X-axis.
(Inherited from Curve.)
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodStatic memberFromExpression(ExpressionFuncDouble, Double)
Returns a nonlinear curve defined by the specified expression.
Public methodGetCurveFitter
Returns a CurveFitter object that can be used to fit the curve to data.
(Overrides CurveGetCurveFitter.)
Public methodGetDerivative
Returns a Curve that represents the derivative of this Curve.
(Inherited from Curve.)
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodStatic memberGetGeneratorFromExpression(ExpressionFuncDouble, Double)
Returns a function that on each call returns a new nonlinear curve defined by the specified expression.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetInitialFitParameters
Returns a vector containing initial values for the parameters for a curve fit through on the specified data.
Public methodGetPartialDerivatives
Returns a vector with the partial derivatives of the curve with respect to each of the curve parameters.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIntegral
Gets the definite integral of the curve between the specified X-coordinates.
(Inherited from Curve.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnParameterChanged
Called after a Curve parameter has been changed.
(Inherited from Curve.)
Protected methodOnParameterChanging
Called before the value of a curve parameter is changed.
(Inherited from Curve.)
Public methodSetInitialValues Obsolete.
Sets the curve parameters to initial values based on the specified data.
Public methodSetParameter
Sets a curve parameter to the specified value.
(Inherited from Curve.)
Public methodSlopeAt
Gets the slope of the curve at the specified X-coordinate.
(Inherited from Curve.)
Public methodSolve
Finds the x value where the curve reaches the specified y value.
(Inherited from Curve.)
Public methodTangentAt
Gets the tangent line to the curve at the specified X-coordinate.
(Inherited from Curve.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodValueAt
Gets the Y-value of the curve at the specified X-coordinate.
(Inherited from Curve.)
Top
Remarks

Use the NonlinearCurve class to represent a curve suitable for use in a non-linear curve fitting. The NonlinearCurveFitter class works only with curves that derive from NonlinearCurve. See this class for details on how to perform a least squares fit.

NonlinearCurve is an abstract class and cannot be instantiated directly. Instead, derive your own class from NonlinearCurve, or use one of the predefined classes listed in the following table:

ClassDescription
ExponentialCurveA sum of exponential terms.
FourParameterLogisticCurveA standard 4-parameter logistic curve.
FiveParameterLogisticCurveA 5-parameter logistic curve that includes an asymmetry factor.
GaussianCurveA 4-parameter Gaussian 'bell' curve.
LorentzCurveA 4-parameter Lorentz peak curve.
RationalCurveA quotient of two polynomials.
SineCurveA 4-parameter periodic curve.

Note to inheritors: You must override the ValueAt(Double) method. If possible, you should also override the FillPartialDerivatives(Double, DenseVectorDouble) and SlopeAt(Double) methods. By default, a numerical approximation is used as the derivative.

See Also

Reference

Extreme.Mathematics.Curves Namespace
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.CurvesCurve
    Extreme.Mathematics.CurvesNonlinearCurve
      Extreme.Mathematics.Curves.NonlinearExponentialCurve
      Extreme.Mathematics.Curves.NonlinearFiveParameterLogisticCurve
      Extreme.Mathematics.Curves.NonlinearFourParameterLogisticCurve
      Extreme.Mathematics.Curves.NonlinearGaussianCurve
      Extreme.Mathematics.Curves.NonlinearLorentzCurve
      Extreme.Mathematics.Curves.NonlinearRationalCurve
      Extreme.Mathematics.Curves.NonlinearSineCurve

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.