TSLab API Docs  1
TSLab.Script.Options.NotAKnotCubicSpline Class Reference

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

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

Public Member Functions

 NotAKnotCubicSpline (double[] xs, double[] ys)
 
 NotAKnotCubicSpline (IList< double > xs, IList< double > ys)
 
 NotAKnotCubicSpline (XElement xel)
 
override IFunction HorizontalShift (double shift)
 Сдвинуть весь график функции вдоль горизонтальной оси More...
 
override IFunction VerticalShift (double vertShift)
 Сдвинуть весь график функции вдоль вертикальной оси More...
 
NotAKnotCubicSpline DeriveD1 ()
 Получение кубического сплайна, который является первой производной данного More...
 
NotAKnotCubicSpline DeriveD1Advanced ()
 Получение кубического сплайна, который является первой производной данного. При этом мы заново делаем интерполирование по точкам сплайна D1, чтобы получить ненулевые коэффициенты D. Этим мы как бы подразумеваем, что сплайн интерполирует бесконечно-дифференцируемую функцию. More...
 
- Public Member Functions inherited from TSLab.Script.Options.BaseCubicSpline
 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...
 
override string ToString ()
 

Static Public Member Functions

static void PrepareTridiagSystem (double[] xs, double[] ys, double[] subDiag, double[] mainDiag, double[] surDiag, double[] rhs)
 По таблице интерполируемых узлов (xs; ys) построить 4 вектора эквивалентной трёхдиагональной матрицы. More...
 
static void PrepareTridiagSystem (IList< double > xs, IList< double > ys, double[] subDiag, double[] mainDiag, double[] surDiag, double[] rhs)
 По таблице интерполируемых узлов (xs; ys) построить 4 вектора эквивалентной трёхдиагональной матрицы. More...
 
- Static Public Member Functions inherited from TSLab.Script.Options.BaseCubicSpline
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...
 

Protected Member Functions

 NotAKnotCubicSpline (CubicSplineCoeffs[] coefficients)
 
- Protected Member Functions inherited from TSLab.Script.Options.BaseCubicSpline
 BaseCubicSpline (double[] xs, double[] ys)
 
 BaseCubicSpline (IList< double > xs, IList< double > ys)
 
 BaseCubicSpline (CubicSplineCoeffs[] coefficients)
 

Additional Inherited Members

- Public Attributes inherited from TSLab.Script.Options.BaseCubicSpline
const int MinNumberOfNodes = 3
 
readonly double MinX
 
- Static Protected Member Functions inherited from TSLab.Script.Options.BaseCubicSpline
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 inherited from TSLab.Script.Options.BaseCubicSpline
readonly CubicSplineCoeffs[] m_coeffs
 Коэффициенты сплайна. НУЛЕВОЙ ЭЛЕМЕНТ МАССИВА НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ! More...
 
- Properties inherited from TSLab.Script.Options.BaseCubicSpline
int N [get]
 
string Name [get, protected set]
 

Detailed Description

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

Member Function Documentation

NotAKnotCubicSpline TSLab.Script.Options.NotAKnotCubicSpline.DeriveD1 ( )

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

NotAKnotCubicSpline TSLab.Script.Options.NotAKnotCubicSpline.DeriveD1Advanced ( )

Получение кубического сплайна, который является первой производной данного. При этом мы заново делаем интерполирование по точкам сплайна D1, чтобы получить ненулевые коэффициенты D. Этим мы как бы подразумеваем, что сплайн интерполирует бесконечно-дифференцируемую функцию.

override IFunction TSLab.Script.Options.NotAKnotCubicSpline.HorizontalShift ( double  shift)
virtual

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

Implements TSLab.Script.Options.BaseCubicSpline.

static void TSLab.Script.Options.NotAKnotCubicSpline.PrepareTridiagSystem ( double[]  xs,
double[]  ys,
double[]  subDiag,
double[]  mainDiag,
double[]  surDiag,
double[]  rhs 
)
static

По таблице интерполируемых узлов (xs; ys) построить 4 вектора эквивалентной трёхдиагональной матрицы.

Parameters
xs
ys
subDiag
mainDiag
surDiag
rhs
static void TSLab.Script.Options.NotAKnotCubicSpline.PrepareTridiagSystem ( IList< double >  xs,
IList< double >  ys,
double[]  subDiag,
double[]  mainDiag,
double[]  surDiag,
double[]  rhs 
)
static

По таблице интерполируемых узлов (xs; ys) построить 4 вектора эквивалентной трёхдиагональной матрицы.

Parameters
xs
ys
subDiag
mainDiag
surDiag
rhs
override IFunction TSLab.Script.Options.NotAKnotCubicSpline.VerticalShift ( double  vertShift)
virtual

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

Implements TSLab.Script.Options.BaseCubicSpline.