Эксперимент с B-сплайном как функцией его узлов
bspligui
bspligui запускает графический интерфейс пользователя (GUI) для изучения того, как B-сплайн зависит от его узлов. При добавлении, перемещении или удалении узлов соответственно изменяется B-сплайн и его первые три производные.
Вы наблюдаете следующие основные факты о B-сплайне с последовательности узлов:
B-сплайн является положительным на открытом интервале (t0.. tk). Он равен нулю на конечных узлах, t0 и tk, если они не являются узлами кратности k. B-сплайн также равен нулю за пределами замкнутого интервала [t0.. tk], но эта часть B-сплайна не показана в графическом интерфейсе пользователя.
Даже при максимальном значении B-сплайн никогда не будет больше 1. Оно достигает значения 1 внутри интервала (t0.. tk) только при узле кратности не менее k-1. С другой стороны, этот максимум не может быть произвольно небольшим; он кажется самым маленьким, когда нет внутренних узлов.
B-сплайн является кусочным многочленом порядка k, то есть все его полиномиальные части имеют степень < k. Для k = 1:4 можно даже наблюдать, что все его ненулевые многочлены имеют точную степень k - 1, глядя на первые три производные B-сплайна. Это означает, что степень увеличивается/снижается на 1 при каждом добавлении/удалении узла.
Каждый узел tj является разрывом для B-шлица, но допускается совпадение нескольких узлов. Поэтому число нетривиальных многочленов максимально равно k (когда все узлы различны) и минимально 1 (когда «внутренних» узлов нет), и возможно любое число между 1 и k.
Гладкость B-сплайна через разрыв зависит от кратности соответствующего узла. Если разрыв происходит в узловой последовательности m раз, то (k-m) -я производная B-сплайна имеет скачок через этот разрыв, в то время как все производные порядка ниже (k-m) непрерывны через этот разрыв. Таким образом, изменяя кратность узла, можно управлять гладкостью B-сплайна по этому узлу.
Когда один узел приближается к другому, высшая производная, которая является непрерывной по обе развивает скачок, и высшие производные становятся неограниченными. Но ничего драматического не происходит ни в одной из производных низшего порядка.
B-сплайн колоколообразен в следующем смысле: если первая производная не идентична нулю, то она имеет ровно одно знаковое изменение в интервале (t0.. tk), следовательно, сам B-сплайн является унимодальным, означающим, что он имеет ровно один максимум. Далее, если вторая производная не является идентично нулевой, то она имеет ровно два знаковых изменения в этом интервале. Наконец, если третья производная не является идентично нулевой, то она имеет ровно три знаковых изменения в этом интервале. Это иллюстрирует тот факт, что для j = 0: k - 1, если j-я производная не является идентично нулевой, то она имеет ровно j изменений знака в интервале (t0.. tk); именно это свойство подразумевается под термином «колоколообразный». Чтобы это утверждение было строго верным, нужно быть осторожным со значением «смена знака» в случае, если имеются узлы с кратностью. Например, производная (k-1) st является кусочно постоянной, следовательно, она не может иметь изменений знака k-1 в прямом смысле, если нет k полиномиальных частей, то есть если все узлы не просты.