“Fixed-third” кубический сплайн - это сплайно с фиксированными третьими производными на концах.
Частным случаем является “Parabolic-ends” сплйан, у которого третьи производные на концах устанавливаются равными нулю.
Условия: $S_1'''(x_1) = f'''(x_1), \ S_{n-1}'''(x_n) = f'''(x_n)$.
Из них получаются следующие выражения для коэффициентов:
- $6d_1 = f'''(x_1)$
- $6d_{n-1} = f'''(x_n)$
Таким образом:
$$ \boxed { d_1 = \frac{f'''(x_1)}{6} } \tag{IV.1} $$$$ \boxed { d_{n-1} = \frac{f'''(x_n)}{6} } \tag{IV.2} $$Из (5), (VI.1):
$$ \boxed{ c_1 - c_2 = -\frac{h_1f'''(x_1)}{2} } \tag{IV.3} $$Из (5), (VI.2):
$$ \boxed{ -c_{n-1} + c_n = \frac{h_{n-1}f'''(x_n)}{2} } \tag{IV.4} $$Таким образом, мы получаем два недостающих уравнения для матрицы:
- $c_1 - c_2 = -\frac{h_1f'''(x_1)}{2}$
- $-c_{n-1} + c_n = \frac{h_{n-1}f'''(x_n)}{2}$
Заносим их в матрицу:
$$ \begin{bmatrix} 1 & -1 & 0 & 0 & \dots & 0 & 0 \\ h_1 & 2h_1 + 2h_2 & h_2 & 0 & \dots & 0 & 0 \\ 0 & h_2 & 2h_2 + 2h_3 & h_3 & \dots & 0 & 0 \\ \vdots & \vdots & \vdots & \ddots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \dots & h_{n-2} & 2h_{n-2} + 2h_{n-1} & h_{n-1} \\ 0 & 0 & 0 & \dots & 0 & -1 & 1 \end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \\ c_3 \\ \vdots \\ c_{n-1} \\ c_n \end{bmatrix} = \begin{bmatrix} -h_1f'''(x_1)/2 \\ R_1 \\ R_2 \\ \vdots \\ R_{n-2} \\ h_{n-1}f'''(x_n)/2 \end{bmatrix} $$, где $R_k = 3\left(\frac{\delta_{k+1}}{h_{k+1}} - \frac{\delta_k}{h_k}\right)$.
Теперь матрицу можно решить с помощью метода прогонки.
После нахождения коэффициентов $c_k$ остальные коэффициенты $b_k$ и $d_k$ можно вычислить по формулам (6) и (5) соответственно.
Особый случай: $n = 2$. #
В случае, когда точек две (а значит, сегмент один), уравнения становятся линейно зависимыми:
$$ \begin{cases} c_1 - c_2 = -\frac{h_1f'''(x_1)}{2} \\ -c_1 + c_2 = \frac{h_1f'''(x_n)}{2} \end{cases} \Rightarrow \begin{cases} c_1 - c_2 = -\frac{h_1f'''(x_1)}{2} \\ c_1 - c_2 = -\frac{h_1f'''(x_n)}{2} \end{cases} $$Таким образом, если заданные значения третьих производных не равны, мы получаем два противоречащих уравнения, а если равны — то всего одно, вместо двух.
Чтобы выкрутиться из этой ситуации, возьмём для третьих производных в каждом узле арифметическое среднее из заданных, а также приравняем модули $c_1$ и $c_2$ (который фиктивный).
Тогда мы получим следующие выражения:
- $c_1 = -\frac{h_1\left(f'''(x_1) + f'''(x_2)\right)}{8}$
- $c_2 = -c_1$