PseudoVoigtCurve Class

Represents a pseudo-Voigt curve used for modeling spectroscopic peaks.

Definition

Namespace: Numerics.NET.Curves.Nonlinear
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.0.0
C#
public class PseudoVoigtCurve : NonlinearCurve
Inheritance
Object  →  Curve  →  NonlinearCurve  →  PseudoVoigtCurve

Remarks

Use the PseudoVoigtCurve class to represent a five-parameter pseudo-Voigt profile, which is a linear combination of Gaussian and Lorentzian (Cauchy) functions commonly used in spectroscopy and diffraction analysis.

The Voigt profile is the convolution of a Gaussian and a Lorentzian, representing the combined effects of Doppler and pressure broadening. The pseudo-Voigt profile is a computationally efficient approximation that uses a simple weighted sum instead of convolution. It is widely used in X-ray photoelectron spectroscopy (XPS), X-ray diffraction (XRD), and other spectroscopic techniques.

The equation is:

y(x) = A \left[(1-\eta) G(x; \mu, w) + \eta L(x; \mu, w)\right] + C

where G is a normalized Gaussian and L is a normalized Lorentzian, both centered at μ with width w.

Parameters:

  • A – Peak amplitude (total area under the peak). See Amplitude.
  • μ – Peak center (position of maximum). See Center.
  • w – Peak width (full width at half maximum). See Width.
  • η – Mixing parameter (0 = pure Gaussian, 1 = pure Lorentzian). See MixingParameter.
  • C – Baseline offset. See Offset.

Applications:

  • X-ray photoelectron spectroscopy (XPS)
  • X-ray diffraction (XRD) peak fitting
  • Raman spectroscopy
  • Nuclear magnetic resonance (NMR)
  • Infrared and UV-visible spectroscopy
  • Powder diffraction analysis

For details on how to fit a curve of this type, see the NonlinearCurveFitter class.

Constructors

PseudoVoigtCurve Constructs a new pseudo-Voigt curve.

Properties

Amplitude Gets or sets the peak amplitude (A).
Center Gets or sets the peak center (μ).
MixingParameter Gets or sets the mixing parameter (η).
Offset Gets or sets the baseline offset (C).
Parameters Gets the collection of parameters that determine the shape of this Curve.
(Inherited from Curve)
Width Gets or sets the peak width (w).

Methods

Clone Constructs an exact copy of this instance.
(Inherited from Curve)
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FillNumericalPartialDerivatives 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)
FillPartialDerivatives 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>))
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
FindRoots Gets the set of X-coordinates where the curve crosses the X-axis.
(Inherited from Curve)
GetCurveFitter Returns a CurveFitter object that can be used to fit the curve to data.
(Inherited from NonlinearCurve)
GetDerivative Returns a Curve that represents the derivative of this Curve.
(Inherited from Curve)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetInitialFitParameters Returns a vector containing initial values for the parameters for a curve fit through the specified data.
(Overrides NonlinearCurve.GetInitialFitParameters(Vector<Double>, Vector<Double>))
GetPartialDerivatives Returns a vector with the partial derivatives of the curve with respect to each of the curve parameters.
(Inherited from NonlinearCurve)
GetTypeGets 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)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
OnParameterChanged Called after a Curve parameter has been changed.
(Inherited from Curve)
OnParameterChanging Called before the value of a curve parameter is changed.
(Inherited from Curve)
SetParameter Sets a curve parameter to the specified value.
(Inherited from Curve)
SlopeAt(Double[]) Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve)
SlopeAt(Double) Gets the slope of the curve at the specified X-coordinate.
(Overrides Curve.SlopeAt(Double))
SlopeAt(ReadOnlySpan<Double>) Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve)
SlopeAt(Vector<Double>) Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve)
SlopeAt(ReadOnlySpan<Double>, Span<Double>) 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)
TangentAt Gets the tangent line to the curve at the specified X-coordinate.
(Inherited from Curve)
ToStringReturns a string that represents the current object.
(Inherited from Object)
ValueAt(Double[]) Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve)
ValueAt(Double) Gets the Y-value of the curve at the specified X-coordinate.
(Overrides Curve.ValueAt(Double))
ValueAt(ReadOnlySpan<Double>) Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve)
ValueAt(Vector<Double>) Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve)
ValueAt(ReadOnlySpan<Double>, Span<Double>) Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve)

See Also