05-11-2014_14-27-37 / Splaines
.pdfСплайны. Примеры построения
Определение
Рассмотрим разбиение N отрезка [a, b]: a = x0 < x1 < ... < xN = b.
Sm,k (x) называется сплайном степени m с дефектом k (0 ≤ k ≤ m) и узлами N , если:
1) на любом частичном отрезке [xi, xi+1], i = 0, 1, ..., (N − 1), Sm,k многочлен степени ≤ m, и хотя бы на одном из отрезков степень равна m;
2) Sm,k C(m−k)[a, b], причём S(m−k+1)(x) не является непрерывной на [a, b].
m,k
Пример 1 Построение S1,1(x).
Пусть хотим построить S1,1(x) кусочно–линейную, непрерывную на [a, b] функцию, принимающую в точках xi значения yi (yi = S1,1(xi)).
Тогда на каждом [xi, xi+1] можно получить явную формулу для S1,1(x):
S1,1(x) = |
xi+1 − x |
· yi + |
x − xi |
· yi+1, S1,1(xi) = yi, S1,1(xi+1) = yi+1. |
|
|
|
||||
|
xi+1 − xi |
|
xi+1 − xi |
||
Получим базисное представление сплайна S1,1(x). |
|||||
Пусть i = 0, 1, ..., (N − 1) |
(xi+1 − xi) = h > 0. |
Рассмотрим функцию ϕ(x) = (1 − |x|)+ = max{0, 1 − |x|}.
Ясно, что ϕ(x) = 0, если |x| ≥ 1 |
и ϕ(x) = 1 − |x|, когда |x| < 1. |
Ниже приведён график функции |
ϕ(x): |
|
|
|
1.4 |
|
|
|
|
|
|
1.2 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
0.8 |
|
|
|
|
|
|
y |
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
0.2 |
|
|
|
–1.5 |
–1 |
–0.5 |
0 |
0.5 |
1 |
1.5 |
|
||||||
|
|
|
|
|
x |
|
Введём функцию ϕi(x) = ϕ( x−xi ), заданную на [a, b]. |
|
h |
|
Очевидно, что ϕi(xi) = ϕ(0) = 1, а |
ϕi(xi−1) = ϕi(xi+1) = ϕ( 1) = 0. Также понятно, |
что вне отрезка [xi−1, xi+1] ϕi(x) = 0. |
|
Для i = 0 и i = N функции ϕ0(x) |
и ϕN (x) отличны от нуля только на отрезках |
[a, x1) и (xN −1, b] соответственно. |
|
Рассмотрим {ϕi(x)}Ni=0. Они образуют базис для сплайна S1,1(x), так как очевидно, что
|
N |
S1,1(x) = |
yi · ϕi(x). |
|
i=0 |
1
Пример 2 Построение S3,2(x).
Пусть нужно построить кубический сплайн, дефекта 2. Это означает, что кроме непрерывности самой функции, необходимо соблюсти непрерывность её первой производной.
1) На каждом отрезке [xi, xi+1], i = 0, 1, ..., (N − 1) кубический сплайн S3,2(x) имеет вид ai · x3 + bi · x2 + ci · x + di. Таким образом, всего неизвестных параметров, подлежащих определению ровно 4N.
2) Условие непрерывности S3,2(x) и S3′ ,2(x) во всех внутренних узлах разбиения N даёт нам только (N − 1) · 2 = 2N − 2 условия. Для нахождения всех неизвестных
нужно задать недостающие 2N + 2 условия.
Зададим в каждом xi, i = 0, 1, ..., N значения yi и yi′ (всего 2N + 2 значения). Таким образом, на отрезке [xi, xi+1] ставится задача интерполирования Эрмита:
S3,2(xi) = yi, S3′ ,2(xi) = yi′.
Получим базисное представление сплайна S3,2(x). Пусть i = 0, 1, ..., (N − 1) (xi+1 − xi) = h > 0.
Рассмотрим функцию ϕ(x), заданную на [0, 1], такую что ϕ(0) = 1, ϕ(1) = 0, ϕ′(0) = ϕ′(1) = 0. Ясно, что ϕ(x) многочлен 3-ей степени. Можно получить для него явную формулу: ϕ(x) = 2x3 − 3x2 + 1.
Рассмотрим функцию ψ(x), также заданную на [0, 1], такую что ψ(0) = ψ(1) = 0, ψ′(0) = 1, ψ′(1) = 0. Снова имеем многочлен 3-ей степени. Явная формула для него: ψ(x) = x · (x − 1)2.
Заметим, что взяв линейную комбинацию αϕ(x) + βψ(x), можно добиться любого значения функции в 0 за счёт выбора α и за счёт выбора коэффициента β, получить любое значение производной в нуле.
Далее, продолжим ϕ(x) чётно на [−1, 0], а ψ(x) нечётно на [−1, 0]. Вне отрезка [−1, 1] функции продлим нулём.
Ниже приведены графики функций ϕ(x), ψ(x) на [−1, 1].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
1.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
0.1 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
0.8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–1 |
–0.8 |
–0.6 |
–0.4 |
–0.2 |
0 |
0.2 |
0.4 |
0.6 |
0.8 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
–0.1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–1 |
–0.8 |
–0.6 |
–0.4 |
–0.2 |
0 |
0.2 |
0.4 |
0.6 |
0.8 |
1 |
|
|
|
|
–0.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
Для всех i = 0, 1, ..., N введём функции ϕi(x) = ϕ( x−xi ) |
и ψi(x) = ψ( x−xi ), задан- |
h |
h |
ные на [a, b]. Понятно, что вне отрезка [xi−1, xi+1] ϕi(x) = 0, ψi(x) = 0. |
|
Для i = 0 и i = N функции ϕ0(x), ψ0(x), и ϕN (x), ψN (x) |
отличны от нуля только |
на отрезках [a, x1) и (xN −1, b] соответственно. |
|
Тогда |
|
N
S3,2(x) = (yi · ϕi(x) + h · yi′ · ψi′(x)).
i=0
2