Double Sigmoid Curve Class
Definition
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.0.0
public class DoubleSigmoidCurve : NonlinearCurve- Inheritance
- Object → Curve → NonlinearCurve → DoubleSigmoidCurve
Remarks
Use the DoubleSigmoidCurve class to represent a six-parameter curve that combines two sigmoid functions to model processes with a peak, such as enzyme activity versus pH or temperature, or other phenomena that increase to a maximum and then decrease.
The double sigmoid curve is the product of an ascending sigmoid (representing activation) and a descending sigmoid (representing deactivation or inhibition). This creates a bell-shaped curve that is useful when the underlying process has distinct onset and offset transitions.
The equation is:
y(x) = A \left[\frac{1}{1+e^{-k_1(x-x_1)}}\right] \left[1 - \frac{1}{1+e^{-k_2(x-x_2)}}\right] + CParameters:
- A – Maximum amplitude (peak height above baseline). See Amplitude.
- k₁ – Steepness of the rising phase. See RisingHillSlope.
- x₁ – Midpoint of the rising phase. See RisingCenter.
- k₂ – Steepness of the falling phase. See FallingHillSlope.
- x₂ – Midpoint of the falling phase. See FallingCenter.
- C – Baseline offset. See Offset.
Applications:
- Enzyme activity vs. pH or temperature
- Biological responses with optimal ranges
- Drug efficacy with therapeutic window
- Population dynamics with growth and decline phases
- Performance curves with fatigue or saturation
For details on how to fit a curve of this type, see the NonlinearCurveFitter class.
Constructors
| Double | Constructs a new double sigmoid curve. |
Properties
| Amplitude | Gets or sets the maximum amplitude (A). |
| Falling | Gets or sets the midpoint of the falling phase (x₂). |
| Falling | Gets or sets the steepness of the falling phase (k₂). |
| Offset | Gets or sets the baseline offset (C). |
| Parameters |
Gets the collection of parameters that determine the shape of this
Curve.
(Inherited from Curve) |
| Rising | Gets or sets the midpoint of the rising phase (x₁). |
| Rising | Gets or sets the steepness of the rising phase (k₁). |
Methods
| Clone |
Constructs an exact copy of this instance.
(Inherited from Curve) |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
| Fill |
Fills a dense vector with the partial derivatives of the curve with respect to
each of the curve parameters computed using numerical differentiation.
(Inherited from NonlinearCurve) |
| Fill |
Fills a dense vector with the partial derivatives of the curve with respect to
each of the curve parameters.
(Overrides NonlinearCurve.FillPartialDerivatives(Double, DenseVector<Double>)) |
| Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object) |
| Find |
Gets the set of X-coordinates where the curve crosses
the X-axis.
(Inherited from Curve) |
| Get |
Returns a CurveFitter object that can be used to fit the curve to data.
(Inherited from NonlinearCurve) |
| Get |
Returns a Curve that represents the derivative
of this Curve.
(Inherited from Curve) |
| Get | Serves as the default hash function. (Inherited from Object) |
| Get |
Returns a vector containing initial values for the parameters for a curve fit
through the specified data.
(Overrides NonlinearCurve.GetInitialFitParameters(Vector<Double>, Vector<Double>)) |
| Get |
Returns a vector with the partial derivatives
of the curve with respect to each of the curve parameters.
(Inherited from NonlinearCurve) |
| Get | Gets the Type of the current instance. (Inherited from Object) |
| Integral |
Gets the definite integral of the curve between the
specified X-coordinates.
(Inherited from Curve) |
| Memberwise | Creates a shallow copy of the current Object. (Inherited from Object) |
| OnParameter |
Called after a Curve parameter has been changed.
(Inherited from Curve) |
| OnParameter |
Called before the value of a curve parameter is changed.
(Inherited from Curve) |
| Set |
Sets a curve parameter to the specified value.
(Inherited from Curve) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Slope |
Gets the slope of the curve at the specified X-coordinate.
(Overrides Curve.SlopeAt(Double)) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Solve |
Finds the x value where the curve reaches the specified y value.
(Inherited from Curve) |
| Tangent |
Gets the tangent line to the curve at the
specified X-coordinate.
(Inherited from Curve) |
| ToString | Returns a string that represents the current object. (Inherited from Object) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Value |
Gets the Y-value of the curve at the specified X-coordinate.
(Overrides Curve.ValueAt(Double)) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |