-------------------------------- © В.И. Киреев, А.В. Кривоносов,
2006
УДК 621.7.01
В.И. Киреев, А.В. Кривоносов
ДИФФЕРЕНЦИАЛЬНЫЕ ИИНТЕГРО-ДИФФЕРЕНЦИАЛЬНЫЕ СПЛАЙНЫ В ТЕОРИИ
АППРОКСИМАЦИИ ОБВОДОВ ХУДОЖЕСТВЕННЫХ ИЗДЕЛИЙ
Семинар № 23
Для аппроксимации обводов художественных изделий, например, при восстановлении поврежденных или утраченных поверхностей этих изделий, используются интерполяционные или слаживающие многочлены. При этом можно проводить интерполяцию на основе линейных, квадратичных или кубичных полиномов (алгебраических многочленов) Рп (х) степени п . Доказано, что если аппроксимируемая табличная функция (х,, ^), заданная на отрезке [ а, Ь ] в узлах х,, соответствует некоторой непрерывной функции F (х), то для любого е у 0 можно указать полином Рп (х), что ^ (х) - Рп (х )| Р е для всех х е [а, Ь]
(теорема сходимости Вейерштрасса).
Однако, из этой теоремы, утверждающей принципиальную возможность приближения функций полиномом, вовсе не следует, что такое приближение можно осуществить качественно. Так, если ин-
1
терполировать функцию F (х) =-----------
1 + 25 х
на отрезке [-1,1 ] , то интерполяционные
многочлены выше шестой степени в точках, отличных от узлов интерполяции, сильно отличаются от значения функции F(х). При значениях |х| у 0,726
вплоть до концов отрезка между узлами интерполяции появляются сильные осцилляции («биения») интерполяционного по-
линома. При этом, чем выше степень полинома, тем осцилляции больше.
Этот пример показывает, что обычную полиномиальную глобальную интерполяцию при восстановлении художественных форм следует применять с большой осторожностью. Если же использовать интерполяцию по кускам
[ х,, х1+1 ] (к = 1,2,...), то в местах стыка
кусков производные от полиномов Рк (х) терпят разрыв. Для устранения этого недостатка используются сплайн-функции или просто сплайны [1 - 4 ] . Вначале были изобретены кубические сплайны. Они получили свое название от слова «&р1ат»-гибкая линейка или лекало, которое в силу своих упругих свойств располагается вблизи точек интерполяции (х,, f ]), в которые как бы вбиты гвозди. Из сопромата известно, что уравнением свободного равновесия бруска является F (4)(х) = 0 . Отсюда следует, что между каждой парой соседних узлов х,, х,-+1 интерполяционная функция является полиномом третьей степени. Поэтому и были вначале изобретены кубические сплайны, для которых было доказано свойство их минимальной кривизны.
Кубическим сплайном, аппроксимирующим сеточную функцию (х,, f '■), называется составная функция ^ (х) = ,)(х),
,=1
звенья которой на каждом отрезке
[х1,х1+1 ] (, = 1,2,...) выражаются поли-
3
номом 53')(х) = ^ а!} (х - х,) ; коэффи-
1=0
циенты а(.') в виде формул получаются из
следующих условий согласования 53' )(х) с аппроксимируемой функцией
53Х) = Гк (к = ',' +1) ,
53')(р)(хк) = ^) (р = 1 или р = 2)’
а числовые значения а1') (в их формулы входят значения функции fi и ее производных f1 или f11) получаются либо по аппроксимационным соотношениям (для локальных сплайнов), либо из алгебраической системы уравнений, получающейся из условий стыковки звеньев по соответствующим производным (для глобальных сплайнов). Таким образом, сплайном произвольной степени 5п (х) является функция, которая вместе со своими несколькими производными непрерывна на всем заданном отрезке [а, Ь], а на каждом частичном отрезке [ х /, х,+1 ] в отдельности
является алгебраическим многочленом степени п , т.е. звеном сплайна. Сплайны, кроме их степеней, характеризуются еще и дефектом д, представляющим собой разность между степенью сплайна и порядком производной, непрерывной на всем отрезке [а,Ь] . Например, кубические
сплайны могут иметь дефект д = 2 или д = 1 . В первом случае 53 (х) имеет только непрерывность по первым производным, а во втором случае - как по первым, так и по вторым. Большим дефектом обладают, как правило, локальные сплайны, а меньшим дефектом - глобальные. Однако достижение меньшего дефекта требует больших затрат программных и временных ресурсов, т. к. для этого нужно решать алгебраическую систему уравнений. Для локальных сплайнов этого не
требуется. Вместо решения системы здесь производные, входящие в коэффициенты звеньев, могут определяться по аппрокси-мационным соотношениям.
С другой стороны, сплайны подразделяются по способу задания условий согласования (1) на классические дифференциальные и на интегральнодифференциальные сплайны, предложенные автором в работе [3] и подробно изложенные в книге [4] . Так, условия согласования (1) для сплайнов 53(х) включают в свой состав только функции ^ и их первые или вторые производные (они называются параметрами сплайна). Это и определяет их дифференциальный характер. Кроме того, четное количество этих условий соответствует нечетной степени сплайнов. По четырем условиям, задаваемым по два условия на каждом конце отрезка [ х1, х1+1 ] , строится сплайн третьей
степени, по шести условиям можно получить сплайн пятой степени. Однако для сплайнов четной степени требуется задать нечетное количество условий согласования, которые однородно (по одинаковому их числу) нельзя распределить по концам отрезков [ х,, х+1 ] . Это обстоятельство
приводит к их неустойчивости. Поэтому если по дифференциальным условиям нужно получить, например, параболический сплайн, то для этого требуется предпринимать специальные меры, усложняющие алгоритм их расчета.
Наиболее простые сплайны четной степени предложены одним из авторов, и они основаны на использовании совокупности дифференциальных и интегральных условий согласования. Для наиболее простых параболических сплайнов эти условия имеют следующий вид:
5(\хк) = fk(к = ','+1) ,
V , (2)
| 52°(х)с/х = /'+1
х
л'+1
где /'+1 = | f (х'рх - интегралы, которые
х
вычисляются по квадратурным формулам. Методика построения таких сплайнов изложен в книге [4 ] . Если требуется получить сплайн четвертой степени, то на концах отрезка [ х ,, х/+1 ] задаются по два
дифференциальных условия и одно интегральное условие, указанное в формулах (2). Таким образом, по интегро-
дифференциальным условиям естественным образом определяются сплайны четной степени, для которых, в отличие от дифференциальных сплайнов, в число параметров наряду с функциональными и дифференциальными включен интегральный параметр, выполняющий регуляризирующую роль.
Для примера приведем здесь наиболее часто применяемые локальные кубические сплайны 53 (х). Для них формула каждого звена получается по четырем условиям дифференциального типа:
53')(х,) = /, 53')(х,+1) = /;+1,
f1
'/+1
(3)
53')1 (х /) = /1, 53')1(х'+1) = /
где /1 = / 1(х'), /+1 = / 1(х'+1)-производные в узлах х' и х/+1 (наклоны сплайна) вычисляются по соответствующим ап-проксимационным соотношениям. Указанные четыре условия позволяют получить полином
53° (х) = / + т' (х - х ;) +
3 / ,, А т,.
+(3-
(4)
+(-2 *
где
1 '/+1
A m.
-I* - X/ )3
всем отрезке [a,ft] , нужно задать в n +1 узлах параметры сплайна - значения f и его наклоны т , (/ = 0,1,...n). Такой сплайн является интерполяционным и дифференциальным. Наклоны сплайна при значениях h = const можно вычислить по формулам:
f+1 - f-1 2 h
/= 1,2.........n -1,
2 Л п 2 Л
Этот локальный сплайн имеет дефект д = 2, т.е. он обеспечивает непрерывность только первой производной во всех внутренних узлах, а непрерывность
531 (х) не гарантируется.
На основе многочлена (4) может быть получен также глобальный сплайн дефекта д = 1 . Но для обеспечения непрерывности второй производной 531(х') в узлах х' (' = 1, 2, ...п -1) значения его параметров т ' (наклонов) следует вычислять из системы линейных алгебраических уравнений:
т0 = ^, тп = С
1 1 1 — 1 —
— т 1-1 + 2(— +------)т' +-----т ,+1 =
= 3(^-^
L), /= 1....n -1
f = f (X,), m , = S3 (X,), h,+, = x,+1 - X, ,
f 1 = Af+1 - m,h,+1, Am,+1 = m,+1 - m,. Итак, чтобы найти локальный (эрмитов)
n
кубический сплайн S3(x) = U Si()(x) на
(5)
где /о1 и ^ - производные в крайних точках отрезка [а,Ь], которые вычисляются по аппроксимационным формулам, а внутренние уравнения этой системы получаются путем стыковки вторых производных звеньев сплайна (4) в узлах х' (' = 1,2, ...п -1) по соотношению:
. [х,-1 , х, ]
S3,)11(x )
'(х)
/ = 1,2,...n -1
Иногда для получения формулы звена сплайна вместо условий (3) используются следующие:
53'\х,) = /, 53'\х,+1) = /+1, 53')11(х1) = /11,
5Г(х+1) = /1
(6)
В этом случае параметрами сплайна являются /, /+1, т', т 1+1, где т ,, т 1+1 -есть не наклоны сплайна, а его вторые производные в узлах. Тогда для звена сплайна получается вместо формулы (4) следующее соотношение:
,А/+1 т, Ат+
6
53,/(х) = / + / - ^Л'+1 ь+1),
Л 2
т, , Ат, , „ .3
<(х - х ,) + — (х - х ,)2 +--------------- (х - х,)
2 ' 6 Л,+/ '
(7)
где т: = Э11(х|), Атм = тм - т„
А+1 = ^+1 - ^
Для обеспечения непрерывности первой производной кубического сплайна во всех внутренних узлах
х, (' = 1,2,... п -1) значения его параметров т следует вычислять также из системы алгебраических уравнений: т0 = 0, тп = 0,
т-1 Л; + 2 т , (Л + Л+1) + тм Л,+1 =
= б^АГ1 -^), т0 = /011, тп = /п11, (8)
Ь+1 Л1
' = 1 ....п -1
где первые два уравнения выражают нулевую кривизну сплайна, т.е. кривая 53 (х) на своих концах как бы «упирается» в «вырожденные» прямые (точки). Отметим, что соотношения (8) получаются из условий стыковки первых производных двух соседних звеньев. Кубические сплайны имеют четвертый порядок точности относительно шага Л +1 , что очень часто является неоправданным или излишним. Поэтому для широкого класса задач более
предпочтительными являются параболические сплайны, являющиеся более простыми. Однако, их построение традиционным способом приводит к их неустойчивости. Поэтому Шенберг предложил специальный алгоритм их регуляризации, заключающийся в смещении узлов сплайна относительно узлов заданной сеточной функции. Этого недостатка лишены ин-тегро-дифференциальные сплайны, предложенные В.И Киреевым [2] . Они основаны на условиях согласования (2), которые используются для вычисления коэффициентов а(\ а('), многочлена
5</)(х) = а0° + а1(')(х - х:) + а2')(х- х:)2. Решение системы алгебраических уравнений относительно коэффициентов
а0'), а1('), ёр и подстановка их в формулу
для 52') (х) приводит к соотношению для
-го звена параболического сплайна:
ып, , * 63/'+1 2А/
52 (х) = / + (—2-----)(х - х,) +
. бЗ/,"1 3А/.. ,2
+(--Лт- + т^)(х - х,)2,
'7+1 Л/+1
(9)
где 3//+1 = /'+1 - /,Ь+1, А/ = х,+1 - х,,.
Л 1+1 = х'+1 - х,
Здесь параметрами сплайна являются интегралы и функции (//+1 и /] соответственно). Формула (9) звена параболического сплайна далее используется для конструирования полного сплайна на всем отрезке [а, Ь] . Для обеспечения устойчивости процесса аппроксимации здесь применяется специальный прием так называемого «слабого сглаживания». Он состоит в том, что сначала по значениям аппроксимируемой функции насчитываются интегралы / +1 по всем частичным отрезкам [ х,, хм ] , а затем осуществляется пересчет значений функции. Для пересчета используется алгебраическая система уравнений:
/0 = /о , /ш = /ш
~Т /',-1 + 2 I 7— + 7—| + 7— =
7 I «,-+1 «,-+1 у 7+1
= 3
где
л
, (10)
И1+1к к+1 к ,
(, =1,2,..ш -1)
функции / .
52 1(х)
] = 5С-1) 1
(х)
Под-
А у : с = У0 Р .... Р уп = б.
Пусть в узлах (х,, у}) е А заданы значения некоторой функции / 1 = / (х,, у;-). Интерполяционным сплайном первой степени 5 1 (х, у) называется функция, которая в каждой ячейке
О 1 = [ х ,, х,+1 ] х [ у, у+1 ] представима в
+1 - сглаженные значения ввде
Внутренние уравнения этой системы получаются из условий непрерывности
52 (х) в узлах х , (' = 1, 2, ...п -1):
5,1 (х, у) = си + аих + Ьиу + бцху и
удовлетворяет условиям:
5|_ 1 (х,, у,) = /1, ' = 0, 1, ...п; 1 = 0 , 1,., т .
Тогда для сплайна 5^1 (х, у) при фиксированных значениях у,, у,+1 будем иметь:
черкнем, что после пересчета меняется один из параметров параболического сплайна: вместо исходных значений
функций / используются сглаженные
(осредненные) значения /,. Из сопоставления формулы (9) и (4) или (7) видно, что параболический сплайн является более простым. При этом он обеспечивает третий порядок аппроксимации, что обеспечивает требуемую точность аппроксимации обводов художественных форм.
Изложенный кратко метод аппроксимации легко обобщается на двумерные функции г(х, у). Принципы пос-троения двумерных сплайнов поясним здесь для самого простого сплайна первой степени. В этом случае одномерный сплайн совпадает с интерполяционным многочленом Лагранжа
51 (х) = (1 - и)/, + /+1,
х - х' .
где и =^Т^, Ь'+1 = х'+1 - х' •
Ь+1
Для рассмотрения двумерного сплайна в области О = [а, Ь] х [с, б] вводится сетка А = А х х А у,
5ц(х, у,) = (1 - г)/. + / +1,1
51,1(х у,+1) = (1 -г)/,.+1 + /+1
, 1+1
(11)
где г =
х-х
. Индекс используется
для переменной х . Тогда, принимая
и =-
у - у.
и интерполируя функции
уу+1 - у>
51,2 (х, у1) и 51,2 (х, у1+1), заданные формулами (11), получим:
51,1 (х, у) = (1 - и)51 (х, у) + и51,1 (х, у +1) Подставляя сюда формулы (11), получим 5ц(х, у) = (1 - и)((1 - г)/',1 + / +1,1 + +и5ц(х, у] +1)) + и((1 - г)/,
1+1 + г/ +1, 1+1 ) . Нетрудно убедиться в том, что сплайн 511 (х, у) единствен.
Для конструирования двумерного параболического интегро-дифферен-
циального сплайна формула (9) его звена должна быть представлена в форме Лагранжа, в которой необходимо выделить
параметры / 1, /+1, //+1 . Тогда формула
(9) преобразуется к виду:
А„ : а = х Р .... Р х„ = Ь.
5</)(х) = />1 (и) + /мр (и) + /'+1 ,
Л'+1
где рк (и), к = 1, 2, 3 - базисные функции:
д?1 (и) = (1 - иХ1 - 3и), р2(и) = и(3и - 2),
1 х — х .
р3(и) = 6и(1 - и)——, где и = '
Ь+1 х+1- х
Для аппроксимации художественных форм, не соответствующих однозначным функциям, необходимо использовать параметрическое векторное представление кривых:
г = г (г) = х (г е + у (г )е2 + г(г е ,
1.Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. Новосибирск: Наука, 1980.
2. Киреев В.И. Интегро-дифферен-циальный метод приближения функций алгебраическими многочленами // Вычислительные технологии. Новосибирск, ИВТ СО РАН т.2, №6, 1993.
где г = {х, у, г} - радиус-вектор точки на
кривой, а е1, е2, е3 - орты координат-
ных осей. При решении задач аппроксимации в качестве параметра обычно используется накопленная длина хорд. Параметрический сплайн (V - сплайн) по аналогии с векторным представлением г (г) записывается в виде:
V = V (г) = V, (г )в1 + Vye2 + vzeз,
где Vx (г), Vy (г), Vz (г) - скалярные сплайн -функции, каждая из которых аппроксимирует х (г, ), у (г,), г (г,). Построение скалярных сплайн-функций осуществляется аналогично рассмотренному выше одномерному случаю.
--------------- СПИСОК ЛИТЕРАТУРЫ
3. Киреев В.И., Пантелеев А.В. Численные методы в примерах и задачах. - М.: Высшая школа. 2004.
4. Стечкин С.Б., Субботин Ю.Н. Сплайны в вычислительной математике: Наука, 1976.
— Коротко об авторах --------------------------------------------------
Киреев В.И. — профессор, кафедра «Вычислительные машины»,
Кривоносов А.В. — доцент, кафедра «Технология художественной обработки материалов», Московский государственный горный университет.