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
  • Curve Class
    • Curve Constructor
    • Properties
    • Methods

Curve Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents a curve in two-dimensional space.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.CurvesCurve
    Extreme.Mathematics.CurvesGeneralCurve
    Extreme.Mathematics.CurvesLinearCombination
    Extreme.Mathematics.CurvesNonlinearCurve
    Extreme.Mathematics.CurvesPiecewiseCurve

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

C#
VB
C++
F#
Copy
[SerializableAttribute]
public abstract class Curve : ICloneable
<SerializableAttribute>
Public MustInherit Class Curve
	Implements ICloneable
[SerializableAttribute]
public ref class Curve abstract : ICloneable
[<AbstractClassAttribute>]
[<SerializableAttribute>]
type Curve =  
    class
        interface ICloneable
    end

The Curve type exposes the following members.

Constructors

  NameDescription
Protected methodCurve
Constructs a new curve with the specified number of parameters.
Top
Properties

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

  NameDescription
Public methodClone
Constructs an exact copy of this instance.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
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.
Public methodGetCurveFitter
Returns a CurveFitter object that can be used to fit the curve to data.
Public methodGetDerivative
Returns a Curve that represents the derivative of this Curve.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
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.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnParameterChanged
Called after a Curve parameter has been changed.
Protected methodOnParameterChanging
Called before the value of a curve parameter is changed.
Public methodSetParameter
Sets a curve parameter to the specified value.
Public methodSlopeAt
Gets the slope of the curve at the specified X-coordinate.
Public methodSolve
Finds the x value where the curve reaches the specified y value.
Public methodTangentAt
Gets the tangent line to the curve at the specified X-coordinate.
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.
Top
Remarks

The Curve class is the base class for classes that represent curves in two-dimensional space. It defines common properties and methods for all such classes. Derived classes provide implementations for specific types of curves.

The name 'Curve' was chosen as an alternative to 'Function', which is a reserved word in many languages.

The ValueAt(Double) method evaluates the curve at a specific point. SlopeAt(Double) evaluates the derivative, and Integral(Double, Double) evaluates the definite integral over a specified interval. If overridden by a descendant class, the GetDerivative method returns the Curve that is the derivative of the instance. The FindRoots method attempts to find all the roots or zeros of the curve.

A particular type of curve is defined by a set of parameters. These parameters can be set and retrieved through the Parameters property which is a vector. The number of such parameters is given by the Length property of the Parameters property.

Curve is an abstract base class and cannot be instantiated directly. The following derived classes have been defined:

ClassDescription
GeneralCurveA curve whose value and optionally its derivative is calculated using a function of one variable delegate.
LinearCombinationA linear combination of an arbitrary set of curves.
PolynomialBaseAbstract base class for classes that implement different types of polynomials. Derives from LinearCombination.
PolynomialA polynomial. Derives from PolynomialBase.
ChebyshevSeriesA linear combination of Chebyshev polynomials. Derives from PolynomialBase.
CubicSplineA natural or clamped cubic spline. Derives from PiecewiseCurve.
NonlinearCurveA curve that is non-linear in its parameters and is suitable for non-linear curve fitting.

Notes to inheritors: When you derive from Curve, you must override the following member: ValueAt(Double). You should also override the following members: SlopeAt(Double), Integral(Double, Double), FindRoots, and GetDerivative.

See Also

Reference

Extreme.Mathematics.Curves Namespace

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.