TSLab API Docs  1
TSLab.Script.Options.BaseCubicSpline Class Referenceabstract

Интерполирование функций кубическими сплайнами https://ru.wikipedia.org/wiki/Кубический_сплайн More...

Inheritance diagram for TSLab.Script.Options.BaseCubicSpline:
TSLab.Script.Options.IFunction TSLab.Script.Options.NaturalCubicSpline TSLab.Script.Options.NotAKnotCubicSpline

Public Member Functions

 BaseCubicSpline (XElement xel)
 
double Value (double k)
 Вычислить значение функции в указанной точке. Выбрасывает ArgumentOutOfRangeException при обращении за пределами области определения. More...
 
bool TryGetValue (double x, out double dIvDk)
 Вычисление значения интерполированной функции в произвольной точке More...
 
XElement ToXElement ()
 Сериализация кубического сплайна в виде XElement More...
 
void ValidateCoeffs (double[] xs, double[] ys, double delta=1e-9)
 Функция проверки правильности нахождения коэффициентов сплайна. Проверяет основные условия непрерывности и дифференцируемости, накладываемые на кубический сплайн. More...
 
abstract IFunction HorizontalShift (double shift)
 Сдвинуть весь график функции вдоль горизонтальной оси More...
 
abstract IFunction VerticalShift (double shift)
 Сдвинуть весь график функции вдоль вертикальной оси More...
 
override string ToString ()
 

Static Public Member Functions

static void tridiag_gen (double[] aArray, double[] bArray, double[] cArray, double[] dArray)
 Gauss Elimination with backsubstitution for general tridiagonal matrix with bands aArray,bArray,cArray and column vector dArray. More...
 

Public Attributes

const int MinNumberOfNodes = 3
 
readonly double MinX
 

Protected Member Functions

 BaseCubicSpline (double[] xs, double[] ys)
 
 BaseCubicSpline (IList< double > xs, IList< double > ys)
 
 BaseCubicSpline (CubicSplineCoeffs[] coefficients)
 

Static Protected Member Functions

static CubicSplineCoeffs[] PrepareD1Coeffs (BaseCubicSpline old)
 Построить новый кубический сплайн, который является первой производной данного More...
 
static CubicSplineCoeffs[] PrepareXShiftedCoeffs (BaseCubicSpline old, double shift)
 Построить новый кубический сплайн, который является сдвигом данного вдоль оси X More...
 
static CubicSplineCoeffs[] PrepareYShiftedCoeffs (BaseCubicSpline old, double vertShift)
 Построить новый кубический сплайн, который является сдвигом данного вдоль оси Y More...
 

Protected Attributes

readonly CubicSplineCoeffs[] m_coeffs
 Коэффициенты сплайна. НУЛЕВОЙ ЭЛЕМЕНТ МАССИВА НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ! More...
 

Properties

int N [get]
 
string Name [get, protected set]
 

Detailed Description

Интерполирование функций кубическими сплайнами https://ru.wikipedia.org/wiki/Кубический_сплайн

Member Function Documentation

abstract IFunction TSLab.Script.Options.BaseCubicSpline.HorizontalShift ( double  shift)
pure virtual

Сдвинуть весь график функции вдоль горизонтальной оси

Implements TSLab.Script.Options.IFunction.

Implemented in TSLab.Script.Options.NotAKnotCubicSpline, and TSLab.Script.Options.NaturalCubicSpline.

static CubicSplineCoeffs [] TSLab.Script.Options.BaseCubicSpline.PrepareD1Coeffs ( BaseCubicSpline  old)
staticprotected

Построить новый кубический сплайн, который является первой производной данного

static CubicSplineCoeffs [] TSLab.Script.Options.BaseCubicSpline.PrepareXShiftedCoeffs ( BaseCubicSpline  old,
double  shift 
)
staticprotected

Построить новый кубический сплайн, который является сдвигом данного вдоль оси X

static CubicSplineCoeffs [] TSLab.Script.Options.BaseCubicSpline.PrepareYShiftedCoeffs ( BaseCubicSpline  old,
double  vertShift 
)
staticprotected

Построить новый кубический сплайн, который является сдвигом данного вдоль оси Y

XElement TSLab.Script.Options.BaseCubicSpline.ToXElement ( )

Сериализация кубического сплайна в виде XElement

Implements TSLab.Script.Options.IFunction.

static void TSLab.Script.Options.BaseCubicSpline.tridiag_gen ( double[]  aArray,
double[]  bArray,
double[]  cArray,
double[]  dArray 
)
static

Gauss Elimination with backsubstitution for general tridiagonal matrix with bands aArray,bArray,cArray and column vector dArray.

Parameters
aArraysubdiagonal. First element of array is not used
bArraymain diagonal
cArraysurdiagonal. last element of array is not used
dArrayright-hand side of equations (it contains the results after execution)
bool TSLab.Script.Options.BaseCubicSpline.TryGetValue ( double  x,
out double  dIvDk 
)

Вычисление значения интерполированной функции в произвольной точке

Parameters
xаргумент функции
dIvDkзначение функции в этой точке
Returns
false – если возникли какие-то проблемы при вычислениях

Implements TSLab.Script.Options.IFunction.

void TSLab.Script.Options.BaseCubicSpline.ValidateCoeffs ( double[]  xs,
double[]  ys,
double  delta = 1e-9 
)

Функция проверки правильности нахождения коэффициентов сплайна. Проверяет основные условия непрерывности и дифференцируемости, накладываемые на кубический сплайн.

double TSLab.Script.Options.BaseCubicSpline.Value ( double  k)

Вычислить значение функции в указанной точке. Выбрасывает ArgumentOutOfRangeException при обращении за пределами области определения.

Implements TSLab.Script.Options.IFunction.

abstract IFunction TSLab.Script.Options.BaseCubicSpline.VerticalShift ( double  shift)
pure virtual

Сдвинуть весь график функции вдоль вертикальной оси

Implements TSLab.Script.Options.IFunction.

Implemented in TSLab.Script.Options.NotAKnotCubicSpline, and TSLab.Script.Options.NaturalCubicSpline.

Member Data Documentation

readonly CubicSplineCoeffs [] TSLab.Script.Options.BaseCubicSpline.m_coeffs
protected

Коэффициенты сплайна. НУЛЕВОЙ ЭЛЕМЕНТ МАССИВА НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ!