- •3. Моделирование поверхностей и кривых при помощи сплайнов
- •1. Построение локальных сплайнов.
- •2. Построение интерполяционных сплайнов.
- •3.1. Интерполирование кривых и поверхностей с помощью локальных сплайнов
- •3.1.1. Построение сплайнов по однократным узлам
- •3.1.2. Интерполирование по двукратным узлам
- •3.2. Построение интерполяционных сплайнов
- •3.2.1. Общая постановка задачи. Решение методом неопределённых коэффициентов
- •3.2.2. Кубические интерполяционные сплайны
- •3.3. Интерполяция с помощью в-сплайнов
3.3. Интерполяция с помощью в-сплайнов
При интерполировании алгебраическими сплайнами моделируемая кривая является кусочной. Она состоит из отдельных алгебраических многочленов, гладко соединя-ющихся между собой в промежуточных точках, и её нельзя представить в едином виде линейной комбинацией неко-торых базисных функций, как в случае моделирования едиными алгебраическими полиномами. Использование специальных базисных сплайн-функций (В-сплайнов) по-зволяет использовать единое представление и в случае интерполяции кривых сплайнами.
Допустим, задан некоторый набор узловых значений параметра кривой {ti}. j-тым сегментом назовём отрезок [tj, tj+1] . В – сплайн степени m , начинающийся на j-том сег-менте, обозначается как Nj,m (t) и занимает не только его, но и последующие до сегмента с номером ( j+ m+1 ) вклю-чительно.
В
рекуррентной по степени m
форме численное опре-деление В-сплайна
имеет вид:
m=0 : N j,0 (t) = (3.14).
m1
:
Каждый j – тый сегмент при заданной степени m пе-рекрывается ( m+1) В-сплайном -Nj,m(t), N(j-1),m(t),…, N(j-m),m (t). Таким образом, при наличии узлов t0, t1,…, tn и, соответ-ственно, сегментов с 0-го по (n-1)-й для полного задания В-сплайнов на них необходимо ввести дополнительно:
а) узлы t-m,…, t-1 и, соответственно, сегменты с номерами (–m),…,(-1) (эти значения не должны попадать внутрь интервала [t0, tn] ) и
85
б) сплайны N-m,m (t), …, N-1,m (t), начинающиеся на этих сегментах.
Моделируемая
В-сплайн функция в общем случае мо-жет
быть представлена как :
Если рассмотреть конкретный интервал [tk, tk+1] , содержащий t , и исключить из суммы (3.15 а) все нулевые слагаемые, то она принимает вид:
Отсюда вытекает важное свойство В-сплайнов: значе-ние сплайн-функции P(t) степени m в фиксированной точке зависит только от m коэффициентов.
Рекуррентное соотношение (3.14) позволяет непо-средственно вычислять в текущей точке t значения всех В-сплайнов, принимающих в ней ненулевые значения. Допус-тим, t [tj, tj+1] и степень сплайна равна m. Рассмотрим последовательно вычисление сплайнов степени 0,1,…, m .
Степень 0. Из всех сплайнов нулевой стeпени на интервале [tj, tj+1] не равен нулю только Nj,0 (t) . По опре-делению N j,0 (t) = 1 .
Степень 1. Не равны нулю на интервале [tj, tj+1] только N j-1,1 (t) и N j,1 (t). С учётом N j-1,0 (t)=N j+1,0 (t) = 0 получим:
86
Степень
s (sm)
.
Для каждого
значения степени s
ненулевыми
на интервале [tj,
tj+1]
являются
Nj-s,s(t),Nj-s+1,s(t),
…,
N
j,s(t).
С
учётом
N j-s,
s-1
(t) = N j+1,s-1
(t) = 0
получим:
Таким образом,
нет необходимости предварительного
расчёта и хранения вспомогательных
величин.
После подстановки в выражение (3.15 а) узловых зна-чений параметра t получается система линейных уравнений относительно вектора неизвестных коэффициентов Сj ( j = –m ,…,-1,0,…,n). Для формирования системы необходимо доопределить значение функции P(t) на дополнительных узлах t-m,…, t-1 . Система уравнений может быть решена как стандартными методами, так и специальными методами, учитывающими диагональный характер получающейся мат-рицы.
В-сплайн поверхность может быть получена как де-картово произведение В-сплайнов по параметрам u и v:
87
где {Рi j } - список характерных точек, расположенных в узлах прямоугольной двумерной сетки.
Задачи.
1. В чем принципиальное отличие локальных и интерполя-ционных сплайнов?
2. Построить локальные сплайны по следующим однократ-ным узлам:
а) n=2; х0 =; х1 = 2 ; х2 = 3 ; y0 = 1 ; y1 = 2 ; y2 =3 ;
б) n=2 ; х0 =-2 ; х1 = 0; х2 = 2; m =2; y0 = -1 ; y1 = 0 ; y2 =1 ;
z0,0 = 6; z0,1 = 4 ; z0,2 = z1,0 = ; z1,1 = 1 ; z1,2 = 0 ; z2,0 = z2,1 =-1 ; z2,2 =-3.
3. Построить сплайны Эрмита для следующих вариантов геометрических условий:
а) n=1; х0 = 0 ; х1 = 2 ; m =2; y0 = - 1 ; y1 = 0 ; y2 =1 ;
z0,0 = 4; z0,1 = 2 ; z0,2 = 1 ; z1,0 = 3 ; z1,1 = 5 ; z1,2 = 6 ;
zх0,0 = 3; zх0,1 = -1 ; zх0,2 = 1 ; zх1,0 = 2 ; zх1,1 = 2 ; zх1,2 = 1 ;
zу0,0 = - 1; zу0,1 = 4 ; zу0,2 = 3 ; zу1,0 = -3 ; zу1,1 = 1 ; zу1,2 = 2 ;
б) n=2; х0 = -3; х1 = 0 ; х2 =1; m =2; y0 = -1; y1 = 1; y2 =2 ;
z0,0 = 7; z0,1 = 12 ; z0,2 = z1,0 = 5 ; z1,1 = 4 ; z1,2 = 1 ; z2,0 = 6 ; z2,1 = 3 ; z2,2 =-1 ;
zх0,0 = 2; zх0,1 = -2 ; zх0,2 = -2 ; zх1,0 = -4 ; zх1,1 = -3 ; zх1,2 = zх2,0 = -2 ; zх2,1 = zх2,2 = -3 ;
zу0,0 = 3; zу0,1 =-2 ; zу0,2 =-2 ; zу1,0 = 1 ; zу1,1 = -3 ; zу1,2 =2 ; zу2,0 =-1 ; zу2,1 =-2 ; zу2,2 =3.
4. Построить при помощи метода прогонки сплайны Фер-гюсона для следующих вариантов задания геометрических условий:
а) n=2; х0 = 0; х1 =1; х2 =3; y0 = -1; y1 = 3; y2 =1 ; y0 = y2 =0 ;
б) n=2; х0 = -2; х1 =0; х2 =1; y0 = 2; y1 = 1; y2 =-2 ; y0 = 2; y2 =3.
88
