УДК 681.3.513
Е. А. Никулин
СИНТЕЗ КУБИЧЕСКИХ СПЛАЙНОВ МЕТОДОМ ПЕРЕКРЫТИЯ ПАРАБОЛ
Нижегородский государственный технический университет им. Р. Е. Алексеева
Тема работы: Разработка алгоритма построения кубических сплайнов методом перекрытия парабол. Цель работы: Развитие матричных алгоритмов синтеза полиномиальных линий и поверхностей. Метод решения: Линейная интерполяция параболических линий на интервале их перекрытия. Оригинальность: Разработан способ реализации краевых условий.
Выводы: Получен алгоритм синтеза кубических перекрывающихся сплайнов с разными краевыми условиями. Ключевые слова: сплайн, сегмент, полином, краевые условия.
Статья посвящена разработке нового типа сплайна с конечным носителем, в основе которого лежит интерполяция перекрывающихся параболических кривых [1, 2], дополненная краевыми условиями, присущими кубическим сплайнам [1, 3]. В результате концевые сегменты составной линии становятся кубическими, тогда как все внутренние сегменты получаются кубическими благодаря линейной интерполяции линий второго порядка.
Пусть Р0Р!.. .Ри — полилиния в двух- или трехмерном пространстве, вершины которой
являются узлами интерполяции, а Р^Р,-, где и] — отрезок, на котором строится I -й сегмент составной линии р,- (*), гладко сопряженный с соседними сегментами. Полиномиальная модель т -й степени имеет вид параметрической векторной функции
р(* )=*0 +81*+...+Ът1т = 8Тт ( ),
где 8=[б0 ... 8т] — строчный вектор полиномиальных коэффициентов (ВПК), а Тт(*)=[1 112 ... ]т — столбцовый вектор базисных функций. В дальнейшем нам понадобятся векторы его первой Тт(*)=[0 1 2* ... т*т-1]т и второй Тт(*)=[0 0 2 ... т(т-1)*т-2]т производных.
Поставим задачу синтеза модели , -го сегмента сплайна р,- (*)=8,-Т3 (*), т. е. вычисления ее ВПК 8, посредством линейной интерполяции параболических линий, перекрывающихся на I -м интервале и исследования путей реализации краевых условий в точках Р0 и Ри.
Сначала используем метод локальной нормализованной параметризации, в котором отсчет параметра *е[0,1] на всех интервалах начинается с нуля и длины всех интервалов равны единице. Составим кубический полином I -го сегмента как линейную интерполяцию
р,(*)=(1-*)1.(*)+*г,(*) У*е[0,1], I =1и, (1а)
левого и правого параболических сегментов
1,- (0=Ь,-Т2 (0, г,- (0=^2 (0. (1б)
На тех интервалах, где эти сегменты не зависят от краевых условий (рис. 1, а), их ВПК находятся решением уравнений трехузловой интерполяции:
© Никулин Е.А., 2015.
L =[Pi_2 Pm P ][т2 (-1) T2 (0) T2 (1)]"1 =[Pi_2 Pi_! Pi ]
P
Pi-2 + Pi Pi-2 _2Pi_l + Pi
i-1
Vi = 2,n,
Ri =[Pi_1 Pi Pi+1 ][T2 (o) T2 (1) T2 (2)]-1=[Pi_1 Pi Pi+1 ]
1 1 1 -1 0 1 1 0 1
1 1 1 0 1 2 0 1 4
-1
P
_3Pi_1 + 4Pi -Pi+1 Pi_1 - 2Pi + Pi+1
i-1
Vi = 1,n-1.
Тогда из (1а, б) следует узловая модель внутреннего сегмента
Pi (t )= Li (1-t )T2 (t)+ R itT2 (t )=
P
Pi-2 + Pi Pi-2 -2Pi-1 + Pi
i-1
1-t t-t2 t2-t3
+
(1в)
P
-3Pi-1 + 4Pi - Pi+1 Pi-1 - 2Pi + Pi+1
i-1
t
t2
t3 (1г)
„ -P 9+ P 2P 9 -5P ,+ 4P -P;+1 2 -P ,+3R ,-3P + Pi+1 3w ---
= PM +———Lt+——-—-i——t2 +—i-2-i-1-i—i±Lt3 Vi = 2,n-1,
удовлетворяющая условиям интерполяции р, (о)=Рг-1, р, (1)=Р,.
Точно такие же коэффициенты кубического полинома р,- ({)=Б,-Т3 (^) при степенях параметра I получим с помощью операций расширения ВПК парабол нулевыми элементами О, повышающими степени полиномов со второй до третьей:
Б, = [Ь О]-[О Ь,]+[О Я,]=
— а
P , + P P , -2P , + P Л
р i-2_i_ i-2_i-1_i_ Q
2
2
O P
Pi-2 + Pi
Pi-2 - 2Pi-1 + Pi
i-1
+
O Pi -1
-3Pi-1 + 4Pi - Pi+1
Pi-1 - 2Pi + Pi+1
-Pi-2 + Pi 2Pi-2-5Pi-1 + 4Pi -Pi+1 -Pi-2 +3Pi-1 -3Pi + Pi+1
P
i-1
+
(1д)
P
г—1
P
P
i+1
V
1,(0
0 1
p„
p.
p
n—1
P
n-2
P
а) б)
Рис. 1. Интерполяция параболических сегментов
в)
В отличие от (1в, г) модели параболических 11 (/), гп (¿) и кубических р1 (), р п (¿) сегментов зависят от краевых условий в точках Ро и рп. Например, для первого сегмента с начальным направлением Уо (рис. 1,б) ВПК левой и правой парабол имеют следующий вид:
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
Ь1 = [Уэ Р0 Р1 ][Т2(0) Т2 (0) Т2 (1)]-1 = [У0 Р0 Р1 ]
0 1 1 1 0 1 0 0 1
-1
[Р0 У0 -У0 -Р0 +Р1 ]
»1 =[Р0 Р1 Р2 ][Т2 (0) Т2 (1) Т2 (2)]-1 =[Р0 Р Р2 ]
1 1 1 0 1 2 0 1 4
-1
(2а)
3Р0 + 4Р1 -Р2 Р0-2Р1 + Р2
01
Тогда из (1а, б) следует узловая эрмитова модель первого сегмента, удовлетворяющая условиям Р1 (0)=Р0, Р1 (1)=Р1 и р1(0)=У0 :
Р1 (г )=Ц (1-г )Т2 (г)+К^ (г )=
[Р0 У0 - У0 - Р0 + Р1 ]
1-г г-г2 г2 -г3
+
-3Р0 + 4Р1 -Р2 Р0 -2Р1 + Р2
Рп
(2б)
=Р0 + Р0г+
-4Р0 -5Р0 +6Р1 -Р2 2 | 2Рр +3Р0 -4Р1 + Р2 £
Что до краевого условия р[(0)=А0, то оно, вопреки ожиданиям, не реализуется вычислением вектора Ь1 по образу (2а) как
Ц =[А0 Р0 Р1 ][Т21(0) Т2(0) Т2(1)]-1 =[А0 Р0 Р1 ]
0 1 1 0 0 1 2 0 1
-1
Рп
А 0 Р0 + Р1 А 0
---Ж
2
2
Подставив его в (2б) вместе с вектором »1 из (2а), получим
р1 (г )= Ц (1-г )Т2 (г)+ к^ (г )=
р А 0 р ,р Р0
Р0 -Р0+Р1 т
1-г г-г2 г2-г3
+
Рп
3Р0 + 4Р1-Р2 Р0-2Р1 + Р2
р | - А 0 - 2Рр + 2Р^| 2А 0-Рр + 2Р1-Р2 ^ + - 2А 0 + Р0 - 2^ + Р2 (з
2
2
2
и ускорение р" (0)=2А0 -Р0 +2Р1 -Р2. Причина его несовпадения с А 0 в том, что в отличие от (1а) вторая производная р1 (г) не является линейной интерполяцией (1-г )1-(г)+г г/'(г), отсюда р-(0)^ 1-(0)! Для достижения успеха нужно создать векторы
А=(А0 +Р0 -2Р1+Р2 )/ 2,
Ц =[А Р0 Р1 ]
0 1 1 0 0 1 2 0 1
-1
Р
А
Р0 +Р1
Ч +Р0
А
2
Р
-А0-5Р0 +6Р1-Р2 А0 + Р0 -2Р1+Р2
(2в)
Тогда вместе с вектором »1 из (2а), аналогично (2б), получим
р1 (г )=
Рп
+
- А 0 -5Р0 + 6Р1-Р2 Л + Р0 - 2Р1 + Р2
4
4
1-г г-г2 г2-г3
+
Р
-ЗР0 + 4Р1 -Р2 Р0 -2Р1 + Р2
2
2
(2г)
=Р0 +
- А 0-5Р0 + 6Р1 - Р2п А^ + - А 0 + Р0 - 2Р1 + Р2 г з 4 2 4 '
2
2
I
2
2
з
г
2
2
г
2
2
3
г
2
4
4
3
Г
Проверяем: р1 (0)=Р0, р1 (1)=Р1 и р" (0)=А0 — все правильно! При желании создать в начале сплайна свободный конец задается нулевой вектор А 0 = О.
Для последнего сегмента рп (г) с конечным направлением Уп ВПК левой и правой парабол имеют следующий вид:
Ln -[Pn-2 Pn-1 Pn ]
1 1 1 -1 0 1 1 0 1
P.
Pn-2 + Pn Pn-2 2Pn-1 + Pn
n-1
Rn =[Pn-1 Pn Vn ][T2 (0) T2 (1) T2(1)]-1 =[Pn-1 Pn Vn ] = [Pn-1 -2Pn-1 +2Pn-Vn Pn-1 -Pn + Vn] .
1 1 0 0 1 1 0 1 2
n-1
Тогда из (1а, б) следует узловая эрмитова модель конечного сегмента
Р n (t )=
P,
Pn-2 + Pn Pn-2 2Pn-1 + Pn
n-1
+ [pn-1 -2Pn-1 +2Pn-Vn Pn-1 -Pn + Vn ]
1-1 t-t2 t2-t3
+
= Pn-1 +-
Pn-2 + Pn
t+(Pn-2-3Pn-1 + 2Pn-Vn )t2 +
-Pn-2 + 4P„_, -3P + 2 V,
n 1
nt3.
/ту \ fl-fl-1 1111/ ^
Сами убедитесь, что pn (ü)=Pn_ j, pn (l)=Pn и pn (l)=Vn. И, наконец, для реализации краевого условия pn(l)=An создадим векторы
A=(Pn_ 2_2Pn_ 1 +Pn +An )/ 2,
г- -i-I
1 1 0П 1
Rn =[Pn-1 Pn An ][T2 (ü) T2 (1) T;;(1)]-1 =[Pn_ 1 Pn A]
1 1 0 0 1 0 0 1 2
P -P + P -— —
Pn-1 Pn-1 ' Pn
A A
2 2
P
Pn-2 -2Pn-1 + 3Pn - An Pn-2 -2Pn-1 + Pn + An
n 1
4
Тогда вместе с вектором Ln из (3 а) аналогично (3б) получим
Р n (t )=
P
Pn-2 + Pn
Pn-2 2Pn-1 + Pn
n-1
1-1
t-t2 t2 t3
+
+
= Pn-1 +
P
Pn-2 2Pn-1 +3Pn A n
Pn-2 2Pn-1 + Pn + A n
n 1
+ P„ 3Pn-2- 6^, + 3P - A
2
4
n t2 + -Pn-2 + 2Pn-1 -Pn +An 13
4
(3а)
(3б)
(3в)
(3г)
Проверка рп (0)=Рп-1, рп (1)=Рп и рП(1)=Ап подтверждает правильность полученной модели последнего сегмента. При желании создать сплайн со свободным правым концом задается нулевой вектор А п = О (рис. 1,в).
Полный нормализованный сплайн, фрагменты которого приведены на рис. 1, построен на рис. 2. Там же пунктирными линиями показано, что изменения узловой точки и краевых векторов распространяются на конечное число сегментов, а точки более дальних сегментов остаются неподвижными.
i
2
2
2
2
t
3
t
4
2
2
t
4
4
3
t
А6=0
Рл
V Р Р 2
Р
4
Р
Рис. 2. Конечные свойства сплайна
Составим из узловых точек Ро ^Рп и краевых векторов Уо и Ап вектор из п + 3 -х возмущающих факторов Ж=[Ро Р1 ... Рп Уо Ап]. На рис. 2 хорошо видно, что смещение какой-либо узловой точки Р^ с номером ке[о, п] влияет на форму не более чем двух примыкающих к ней как слева, так и справа сегментов, а изменения факторов Жп+1 = Уо и Жп+2 = Ап воздействуют только на крайние сегменты:
• согласно соотношению (2б), на первом (,=1) интервале 7е[о,1) активны возмущающие факторы Жо и Жп+1, оттуда же получаем интервальные весовые функции (ВФ)
1-2.572 +1.573 при к=о;
=
к=о,п+2
372 - 273 при к=1; -о.572 + о.573 при к=2; 7-272 + 73 при к=п+1;
(4а)
о при остальных к;
• распределив зависимость (1г) по узловым точкам, сформируем интервальные ВФ влияния к -х возмущающих факторов на точки внутренних , -х сегментов, используя нормализованные сквозной 7е[/-1,-) и локальный т=7 -,+1е[о,1) параметры:
т=-
г=2,п-1 к=о,п+2
-о.5т+т2-о.5т3 при к=,-2; 1-2.5т2 +1.5т3 при к=,-1; о.5т+2т2-1.5т3 при к=,; -о.5т2 + о.5т3 при к=,+1;
(4б)
о при остальных к;
наконец, на последнем (,=п) интервале 7е[п-1,п] с локальным параметром т=7 - п+1е[о,1], судя по (3б), активны факторы Жи_2 и Жп+2 с интервальными ВФ
¿кФ=
к=о,п+2
-о.5т+т2 -о.5т3 при к=п-2; 1-3т2 + 2т3 при к=п-1; о.5т+2т2-1.5т3 при к=п;
(4в)
-т2 +т3 при к=п+2; о при остальных к.
С помощью ВФ (4) представление , -го сегмента выглядит взвешенной смесью
р, (7 (7)Гк -1,,], /^тт.
к
Интервальные ВФ с одинаковым значением к сшиваются в факторные ВФ
п . . _
4(¿у^ ук=о,п+2, ,=1
(5а)
(5б)
характеризующие влияние возмущающих факторов ^ на весь сплайн. На рис. 3 построены
восемь графиков факторных ВФ (нулевых интервальных ВФ показаний нет), соответствующих перекрывающемуся сплайну на рис. 2. С помощью вектора ь(г)=[/0(г) 11 (г) ... 1п+2(г)]т полный сплайн представляется в виде
п+2
р(г)=£4 = бь (г) уге[0,п]. (5в)
к=0
1
0.75 0.5 0.25 0
-0.251
Рис. 3. Факторные весовые функции
Обобщим тему построением сегментов перекрывающегося сплайна р,- (г) на интервалах
ге[а,-,Ь,-] с Ь, =а, + и произвольно выбранной параметризацией — локальной (а, = 0 ) либо
сквозной ( Ь, = а,-+1), нормализованной ( =1) либо хордовой (= |Р,- -Р,- ), где — длина ,
-го параметрического интервала.
Обобщением модели (1а) является линейная интерполяция
6 t
1
р,-(г)=1,-(гг)—у- ^ге[а,-,Ь-], ,=1,п а,- а,-
(6а)
левой 1, (г )=Ь, Т2 (г) и правой г, (г )=» Т2 (г) парабол, у которых векторы коэффициентов независимы от краевых условий (см. рис. 1) и находятся обобщением (1в) как
Ь, =[Р,-2 Р,-1 Р,][Т2(а,-а,-1) Т2(а,-) Т2(Ь-)]-1 V/ =2,п , Я,- =[Р,-1 Р, Р,+1 ][Т2 (а,-) Т2 (Ь,) Т2 (Ь, + ам)]-1 V,=Щ-1.
Глядя на (6а), запишем обобщающие (1д) ВПК кубических сегментов р,- (г )=8,- Т3 (г):
8 [ь, О]-[О Ь,-]+[О Я,-]-а-[К- О] —
- а ' .
(бб)
(6в)
Модели параболических 11 (г), гп (г) и кубических р1 (г), р п (г) сегментов зависят от краевых условий в точках Р0 и Р. Для первого эрмитова сегмента с заданным начальным направлением У0 (см. рис. 1,6) ВПК левой параболы находится обобщением (2а):
Ь =[У0 Р0 Р1 ][Т1(а1) Т2(а1) Т2(Ь1 )]-1.
(7а)
Что касается краевого условия р1(а1 )=А0 с заданным ускорением А0, то оно реализуется
расчетом вектора
Ь =[А Р0 Р1 ][Т?(а1) Т2 (а1) Т2 (Ь1)]
1-1
(7б)
с таким вектором А, который создает в начале сплайна ускорение Ж(а)=Z+kA, равное Ао .
Подходящие вектор Z и скалярный коэффициент к этой линейной функции находим по двум выборкам:
• задаем нулевой вектор А=О и по (7б) находим вектор Ь, а по (6в) вектор
о 81 в2 ] коэффициентов кубического сегмента во +в17+$272 +8373 и его
начальное ускорение Ж(о)=2в2 + бв^, равное Z;
• задаем единичный вектор А=х0, ( х0 — единичный орт оси х ) и по тем же формулам находим новые векторы Ь, 81 и ж(х0 )= 2в2 + 6830^ = Z+кх0, откуда
к=(ж(х0 )-z)х = ^(х0 )х -Zх .
Теперь из условия Z+kA=Ао получаем искомое значение
А =
к Ж(х0 )х -Ж(о)х ■
(7в)
Для создания у сплайна свободного левого конца берется вектор Ао = О.
У последнего эрмитова сегмента с заданным конечным направлением Уп вектор коэффициентов правой параболы находится как
Я =[Рп-1 Рп Уп][Т2(ап) Т2(Ьп) П(Ьп)]-1. (8а)
Краевое условие р"п{Ьп)=Ап с заданным ускорением Ап реализуется расчетом аналогичного (3в) вектора
Я =[Рп-1 Рп А][Т2 (ап ) Т2 (Ьп ) Т22(Ьп )]-1 (8б)
с найденным аналогично (7в) вектором А, дающим концевое ускорение Ап :
А п - Ж(О)
Здесь значение Ж(А) от произвольного вектора А находится расчетом по (8б) и (6в) векторов Яп и 8п =[во в2 в3], после чего Ж(а)=2в2 + 6в3Ьп. Чтобы получить сплайн со свободным правым концом (см. рис. 1,в), нужно задать нулевой вектор Ап = О .
Обсудим вычислительную эффективность интерактивного построения сегментов сплайна при вариации узловых точек и краевых условий:
• использование сложных, но зато прямых формул (1г), (2б, г) и (3б, г) оказалось возможным только после их достаточно трудоемкого вывода и лишь в нормализованном локальном варианте параметризации, что ограничивает их универсальность;
• применение несложных интерполяционных формул (1а), (6а) либо параметрического разложения р, (7)=8,Т3 (7) требует пересчета векторов полиномиальных коэффициентов Ь,, Я., и 8, при каждом изменении любого возмущающего фактора. Для ускорения отрисовки сплайна можно ценой небольшого усложнения программы пересчитывать не все ВПК, а, благодаря конечности сплайна, лишь зависимые от изменяемого фактора;
• наиболее сложными в выводе (и опять лишь в рамках нормализованной локальной параметризации) являются посегментное (5 а) и общее (5б, в) узловые разложения, требующие тщательного программирования интервальных весовых функций (4).
С учетом сказанного разработаем метод расчета числовых матриц Н,, с помощью которых интерактивный вывод сегментов по формуле бинарного разложения
р. (0=ад.Тз (0 V/=1,л происходит максимально быстро. К тому же при использовании нормализованной параметризации с равными значениями di =1 V/=1,п все эти матрицы становятся независимыми от возмущающих факторов.
Введем операции двустороннего расширения матрицы ИеЯ3x3 нулевыми строками и столбцами согласно направлениям надсимвольных стрелок:
= Г И 02х1 ] = Г°2х1 И ] ^ = [01x2 0 ] 0 °1х2] т
[01x2 0 ]' _ 0 °1х2 ]' И °2х1 ]' |_°2х1 И ] • ()
Сформируем из возмущающих факторов (узловых точек Ро -^Рп и векторов концевых производных, например, У0 и А п ) такой вектор
и из И„.
Р = [Уо Ро Р1 р2 Рз - Рп-2 Рп1 Рп Ап ]
—V—
и.
И
П Ип
чтобы по нему можно было перемещать слева направо четырехэлементный шаблон факторов
И
ь/
г -го интервала и,-=[• • • •], содержащий перекрывающиеся трехэлементные узловые век-
и-
Иг
торы Иь/ и ИК1 левой и правой парабол в (6а).
Записав ВПК этих парабол как Ьг = Иы Иь/ и И г = Иш Иш с элементами
и и =[Р/-2 Р/-1 Р/ ], Ии =[Т2 (а/ -di-l) Т2 (а-) Т2 (Ь )]-1 V/ =2^ ,
Ии/ =[Р/-1 Р. Р-+1 ], Иш =[Т2(а-) Т2(Ь-) Т2(Ь + di+l)]-1 V/=1,п-1
получим бинарное разложение полинома 1 -го сегмента
Р/ (' )=ИЬ/ ИЬ/ ^ Т2 (/)+ Ии. Ии. ^ Т2 (/ )=
щ di
=-! И-
di 1
(
Ь/Иы °
° Иц/ + 0 ° ° 0
0 ° °ИШ а1 ИИ1 °
° о
со сформированной с помощью операций (9) матрицей
— П:
Тз (/)
И
(ц^ —Ц —и и^ \ Ь Иы - Иы+Иш - а- ИК1)
VI=1, п
(10)
В рамках локальной (а. = 0 ) нормализованной (= ^ = =Ь =1) параметризации с присутствующими в (1в) матрицами
" 111" -1 "0 -0.5 0.5" "1 1 1" -1 "1 -1.5 0.5"
Иь/ = -1 0 1 = 1 0 -1 > ИИ1 = 0 1 2 = 0 2 -1
1 0 1 0 0.5 0.5 0 1 4 0 -0.5 0.5
по (10) получим матрицу
0 -0.5 0.5 0
10 -10
0 0.5 0.5 0
0 0 0 0
И1 = Иь/ 0 0 -0.5 0.5" 0 1 0 -1 0 0 0.5 0.5 0 0 0 0
=и
+
Иь/ + ИИ1 = 0 0 0 0 0 1 -1.5 0.5 0 0 2 -1 0 0 -0.5 0.5
0 -0.5 1 -0.5
1 0 -2.5 1.5 0 0.5 2 -1.5 0 0 -0.5 0.5
Элементы моделей крайних сегментов, зависимых от краевых условий, имеют особый вид. Так, для первого сегмента с начальным направлением V0 из (7а) следует
Uli =[VO PO PI], HL1 =[X^(ar1) T2fo) T2fo)]-1. В случае локальной (ai = 0) нормализованной (di = bi =1) параметризации с матрицами из (2а)
"0 1 1" -1 "0 1 -1" "1 1 1" -1 "1 -1.5 0.5"
Hl1 = 1 0 1 = 1 0 -1 > HR1 = 0 1 2 = 0 2 -1
0 0 1 0 0 1 0 1 4 0 -0.5 0.5
по (10) получим матрицу
^ft
H1 = HL1" HL1 + HR1 =
"0 1 -1 0" "0 0 1 -1" "0 0 0 0" "0 1 -2 1
1 0 -1 0 0 1 0 -1 + 0 1 -1.5 0.5 1 0 -2.5 1.5
0 0 1 0 0 0 0 1 0 0 2 -1 0 0 3 -2
0 0 0 0 0 0 0 0 0 0 -0.5 0.5 0 0 -0.5 0.5
Если же в начале сплайна задано ускорение А 0, то, вычислив по (7в) вектор А, формируем элементы бинарного разложения левой параболы
иы =[А Ро Р], Иы =[т2'(а1) Т2^) Т2(Ъ)]—1. Для последнего сегмента с конечным направлением Уп из (8б) следует
=[Р„-1 Ри V ], И^ =[Т2(ап) Т2(Ъп) Т2(Ъп)]-!. Если же в конце сплайна задано ускорение Ап, то, вычислив по (8в) вектор А, формируем элементы бинарного разложения правой параболы
икп =[Рп-1 Рп А], Икп =[Т2(а,) Т2(Ъп) Т^Ъ)]—1.
В случае локальной (ап = 0) нормализованной (ёп = Ъп =1) параметризации с присутствующими в (3 а, в) матрицами
" 111" -1 "0 -0.5 0.5" "1 1 0" -1 "1 -1 0 "
HLn = -1 0 1 = 1 0 -1 > HRn = 0 1 0 = 0 1 0
1 0 1 0 0.5 0.5 0 1 2 0 -0.5 0.5
по (10) получим матрицу
=U
H n = = HLn - H Ln +HRn =
0 -0.5 0.5 0" "0 0 -0.5 0.5" "0 0 0 0 " "0 -0.5 1 -0.5
1 0 -1 0 0 1 0 -1 + 0 1 -1 0 1 0 - 2.5 1.5
0 0.5 0.5 0 0 0 0.5 0.5 0 0 1 0 0 0 3 -2
0 0 0 0 0 0 0 0 0 0 -0.5 0.5 0 0 -0.5 0.5
Работу алгоритма синтеза перекрывающегося сплайна иллюстрирует рис. 4:
• плоский сплайн 1 со свободными концами построен методом хордовой параметризации на той же неравномерной сетке, что и обычный сплайн 2, но демонстрирует более плотное прилегание к узловой сети;
• у трехмерного нормализованного сплайна 3 векторы краевых направлений Уо =10(Р1 —Ро ) и У7 = Р/ —Р6 заданы такими же, как у обычного эрмитова сплайна 4, но отклонения от узловой сети также уменьшились;
• последний график 5 показывает богатые возможности свободного творчества, предоставляемые разработанным сплайном с конечным носителем.
P
P
P
6 9-
5
Рис. 4. Примеры реализации алгоритма
Таким образом, сплайны с перекрытием параболических сегментов показывают лучшее качество интерполирования в сравнении с типовыми кубическими сплайнами при меньшей вычислительной сложности, характеризуемой размерностями обращаемых матриц — 3x3 вместо 4пх4п в [3, (8)], даже 4x4 в итеративном алгоритме [3, (9)].
Главным недостатком перекрывающегося сплайна является пониженная, но визуально незаметная, степень гладкости сопряжения его сегментов — первая вместо второй в [3, (6в)]. Это означает скачки ускорения в точках сшивки сегментов. С другой стороны, разрывность кривизны сплайновой линии можно обратить на пользу для создания в стыках сегментов точек перегиба и расширения возможностей конструирования сложных линий.
Библиографический список
1. Роджерс, Д. Математические основы машинной графики / Д. Роджерс, Дж. Адамс. - М.: Мир, 2001. - 604 с.
2. Никулин, Е.А. Построение гладких составных линий с перекрытием сегментов // Труды НГТУ. 2006. Т. 58. Вып. 11. С. 5-12.
3. Никулин, Е.А. Прямой параметрический синтез сплайновых линий // Труды НГТУ. 2007. Т. 65. Вып. 14. С. 123-130.
Дата поступления в редакцию 05.02.15
E.A. Nikulin
SYNTHESIS OF CUBIC SPLINES BY OVERLAPPING PARABOLAS METHOD
Nizhny Novgorod state technical university n.a. R.E. Alexeev
Subject: Design of an algorithm for constructing cubic splines by method of overlapping parabolas. Purpose: Development of matrix synthesis algorithms of polynomial curves and surfaces. Methodology: Linear interpolation parabolic lines on the range of their overlap. Originality: A method of implementing the boundary conditions is developed.
Findings: The algorithm of the synthesis of cubic splines overlapping with different boundary conditions is obtained. Key words: spline, segment, polynome, boundary conditions.