Math-Net.Ru Общероссийский математический портал В. В. Богданов, Ю. С. Волков, Выбор параметров обобщëнных кубических сплайнов при выпуклой интерполяции, Сиб. журн. вычисл. матем., 2006, том 9, номер 1, 5–22 Использование Общероссийского математического портала Math-Net.Ru подразумевает, что вы прочитали и согласны с пользовательским соглашением http://www.mathnet.ru/rus/agreement Параметры загрузки: IP: 46.250.32.19 18 октября 2016 г., 04:31:18 Том 9, 2006 СИБИРСКИЙ ЖУРНАЛ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ №1 Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции∗ В.В. Богданов, Ю.С. Волков УДК 519.65 Богданов В.В., Волков Ю.С. Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции // Сиб. журн. вычисл. математики / РАН. Сиб. отд-ние. –– Новосибирск, 2006. –– Т. 9, № 1. –– С. 5–22. Показано, что построение интерполяционных обобщенных кубических сплайнов сводится к решению трехдиагональной системы линейных уравнений со столбцевым диагональным преобладанием относительно значений второй производной сплайна в узлах сетки. Найдены условия неотрицательности решения для таких систем. Предложена общая схема выбора управляющих параметров обобщенных сплайнов для обеспечения выпуклости интерполянта в задаче выпуклой интерполяции. Результирующий сплайн минимально отличается от классического кубического и совпадает с ним, если для последнего выполняются достаточные условия выпуклости. Конкретные алгоритмы рассмотрены на примерах обобщенных сплайнов: рациональных, экспоненциальных, переменной степени, гиперболических и сплайнов с дополнительными узлами. Ключевые слова: выпуклая интерполяция, рациональный сплайн, изогеометрия, выбор управляющих параметров, монотонная матрица, трехдиагональная система. Bogdanov V.V., Volkov Yu.S. Selection of parameters of generalized cubic splines with convexity preserving interpolation // Siberian J. Num. Math. / Sib. Branch of Russ. Acad. of Sci. –– Novosibirsk, 2006. –– Vol. 9, № 1. –– P. 5–22. It is shown that computation of generalized interpolating cubic splines is reduced to solving a tridiagonal system of linear equations with column diagonal dominance with respect to knot values of the second derivative of a spline. The non-negativity conditions of the solution for such systems are found. The general scheme for choosing tension parameters of the generalized splines for convexity-preserving interpolation is offered. The resulting spline minimally differs from the classical cubic one and coincides with it if sufficient convexity conditions for the last one are satisfied. The algorithms specified are considered for different generalized cubic splines such as rational, exponential, variable power, hyperbolic splines and splines with additional knots. Key words: convex interpolation, rational spline, shape preserving interpolation, tension parameters, monotone matrix, tridiagonal system. 1. Введение В настоящее время основным аппаратом интерполяции, особенно при большом числе точек, являются полиномиальные сплайны. Среди них наиболее популярны кубические сплайны класса C 2 . Имеется большое количество интерполяционных задач, в которых важно, чтобы решение удовлетворяло некоторым качественным (геометрическим) свойствам, таким, как положительность, монотонность или выпуклость. Классические сплай∗ Работа выполнена при частичной финансовой поддержке Отделения математических наук РАН (проект 2003-1.3.6), совместных Интеграционных проектов СО РАН и УрО РАН (проект 2003-6) и Интеграционных проектов СО РАН (проект 2003-27). 6 В.В. Богданов, Ю.С. Волков ны, и в частности, кубические, игнорируют подобные свойства и могут давать решения с нежелательными изгибами или всплесками. Для преодоления излишней жесткости кубической параболы классического сплайна, ликвидации нежелательных изгибов Швейкерт [1] предложил сплайны с натяжением. Затем появились различные их модификации: гиперболические, экспоненциальные, рациональные, сплайны с дополнительными узлами, основанные на одной и той же идее –– обобщении конструкции обычного кубического сплайна путем введения некоторых параметров управления (натяжения), позволяющих как бы натянуть звено сплайна на критических участках. Подходящий выбор параметров должен был обеспечить малое отклонение от классического сплайна и, вместе с тем, подавление ненужных выбросов [2–6]. Все такие сплайны и принято называть обобщенными кубическими (см. монографии [7, 8]). Решение задач интерполяции обобщенными сплайнами, как и обычными кубическими, сводится к решению линейных трехдиагональных алгебраических систем уравнений относительно наклонов или моментов, т. е. значений первой или второй производной, сплайна в узлах. Безусловный интерес представляют те сплайны, матрицы определяющих систем которых имеют диагональное преобладание. Данное свойство систем является ключевым при изучении свойств сплайнов, оно обеспечивает существование и единственность интерполяционного сплайна, гарантирует устойчивое и надежное практическое его построение и позволяет сравнительно просто получать оценки погрешности интерполяции [9]. Диагональное преобладание предоставляет и возможность изучения изогеометрических свойств нелокальных сплайнов. В этой связи достаточно важна проблема подходящего выбора параметров натяжения обобщённых сплайнов. Поначалу предлагались эвристические способы выбора управляющих параметров [2, 10]. Затем появились итеративные схемы автоматического выбора параметров [11, 12]. Однако наиболее эффективным инструментом для этих целей явился результат В. Л. Мирошниченко [13] о неотрицательном решении трехдиагональной системы уравнений с диагональным преобладанием. Для достаточно общих конструкций обобщенных сплайнов, включающих наиболее распространенные виды конкретных сплайнов, системы уравнений относительно наклонов (первых производных) имеют диагональное преобладание [6, 14]. Это позволило легко разобраться с вопросом разрешимости задачи интерполяции, а также, благодаря инструменту В. Л. Мирошниченко, установить условия монотонности обобщенных сплайнов [13, 15]. А вот системы относительно узловых значений вторых производных, без которых исследование выпуклости крайне затруднительно, оказались, вообще говоря, без диагонального преобладания. Даже в наиболее известном и употребительном случае рационального сплайна Шпэта [7] диагональное преобладание может отсутствовать (см. [16]). Естественно, диагонального преобладания в системе все же можно добиться в частных случаях, выбирая параметры натяжения специальным образом (см. [13, 17]). Однако при этом, по существу, сокращается количество свободных параметров, и сплайн может приобретать чрезмерное натяжение. Оптимизации обобщенного сплайна именно с точки зрения диагонального преобладания посвящена работа [16]. Предлагались и новые усложненные конструкции обобщенных сплайнов, приводящие к системам определяющих уравнений с диагональным преобладанием относительно моментов сплайна [18]. В данной работе мы устанавливаем условия неотрицательности решения систем уравнений со столбцевым диагональным преобладанием, аналогичные [13], и используем их в задаче выпуклой интерполяции обобщенными кубическими сплайнами. Предложена общая схема выбора параметров натяжения, близких к оптимальным, для обеспечения выпуклости интерполянта. Для наиболее популярных на практике видов обобщенных 7 Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции сплайнов предложенная схема ведет к легко реализуемым алгоритмам выбора параметров. Отметим то важное обстоятельство, что обобщенный сплайн будет обычным кубическим, если для последнего выполнены достаточные условия выпуклости [13]. 2. Обобщённые кубические сплайны Пусть в узлах сетки ∆ : a = x0 < x1 < . . . < xn = b известны значения fi = f (xi ), i = 0, . . . , n, некоторой функции f (x). Кроме того, на концах отрезка [a, b] известны значения либо первой производной функции f ′ (a) = fa′ , f ′ (b) = fb′ , f ′′ (a) = fa′′ , f ′′ (b) = fb′′ . либо второй –– Вторые разделенные разности f [xi−1 , xi , xi+1 ], i = 1, . . . , n−1, этой функции по узлам xi−1 , xi , xi+1 обозначим δi . При известных значениях fa′ и fb′ первой производной функции на концах [a, b] будем использовать обозначение δ0 = f [x0 , x0 , x1 ] = f [x0 , x1 ] − fa′ , x1 − x0 δn = f [xn−1 , xn , xn ] = fb′ − f [xn−1 , xn ] , xn − xn−1 а при известных значениях fa′′ и fb′′ второй производной –– δ0 = f [x0 , x0 , x0 ] = fa′′ , 2 δn = f [xn , xn , xn ] = fb′′ . 2 Данные будем называть выпуклыми, если выполнены условия δi ≥ 0, i = 0, . . . , n. (1) Более того, если неравенства в (1) строгие, то данные будем называть строго выпуклыми. Очевидно, для любой выпуклой функции f (x) условия (1) выполняются. Рассмотрим задачу построения выпуклого на отрезке [a, b] сплайна S(x) класса C 2 , интерполирующего в узлах сетки ∆ выпуклые данные. Естественно, будем требовать, чтобы сплайн S(x) принимал на концах заданные значения производных: S ′ (a) = fa′ , S ′ (b) = fb′ , (2) S ′′ (a) = fa′′ , S ′′ (b) = fb′′ . (3) либо Кубический сплайн на каждом промежутке [xi , xi+1 ] сетки есть кубический полином, который может быть представлен через значения и вторые производные в концах этого промежутка: S(x) = σ(x) + φ(1 − t)h2i Mi + φ(t)h2i Mi+1 , (4) где σ(x) = (1 − t)fi + tfi+1 , φ(t) = t3 − t , 6 t= x − xi , hi hi = xi+1 − xi , Mi = S ′′ (xi ). 8 В.В. Богданов, Ю.С. Волков Неизвестные моменты Mi находятся из системы линейных уравнений, определяемой условиями гладкости сплайна класса C 2 . Ясно, что возможные “неприятности” в поведении обычного кубического сплайна возникают из-за слагаемых с φ в (4), содержащих кубические многочлены, поскольку σ(x) обеспечивает линейную интерполяцию. Шпэт [7] рассмотрел обобщение конструкции кубических сплайнов S(x) = σ(x) + φ(qi , 1 − t) h2i Mi + φ(pi+1 , t) h2i Mi+1 , (5) где функция φ(p, t) ∈ C 2 [0, 1], как функция от t, заменяет функцию φ(t) = (t3 − t)/6 в (4) и имеет свободный параметр p для управления поведением сплайна. Естественно, из условий интерполяции и смысла Mi и Mi+1 (вторые производные сплайна S(x) в концах промежутка) вытекают ограничения для всех значений p: φ(p, 0) = φ(p, 1) = φ′′ (p, 0) = 0, φ′′ (p, 1) = 1, (6) производная берется по t. Кроме того, должны быть выполнены условия lim φ(p, t) = (t3 − t)/6, p→0 lim φ(p, t) ≡ 0. p→∞ (7) Условия (7) и определяют возможность получить интерполянт желаемой формы, промежуточной между линейным и кубическим сплайном, при наличии монотонности по параметру p: φ(p, t) ≤ φ(p̄, t) при p̄ ≥ p ≥ 0. Отметим, что в формуле обобщенного сплайна (5) на каждом интервале сетки [xi , xi+1 ] для каждого слагаемого, содержащего φ, могут быть выбраны свои значения параметров qi и pi+1 , от которых зависит натяжение у разных концов интервала. Сам Шпэт [7] при практическом применении обобщенного сплайна после рассмотрения нескольких функций φ остановил свой выбор на функции вида ¶ µ 1 t3 φ(p, t) = 2 −t , (8) 2p + 6p + 6 1 + p(1 − t) удовлетворяющей ограничениям (6) и (7). Сейчас в литературе такой сплайн обычно называется рациональным сплайном Шпэта. Приведем выражения для производных обобщенного сплайна на интервале [xi , xi+1 ] сетки S ′ (x) = f [xi , xi+1 ] − φ′ (qi , 1 − t)hi Mi + φ′ (pi+1 , t)hi Mi+1 , (9) S ′′ (x) = φ′′ (qi , 1 − t)Mi + φ′′ (pi+1 , t)Mi+1 . (10) Формула (5) и ограничения (6) обеспечивают непрерывность S(x) и S ′′ (x) на [a, b]. Чтобы записать условие непрерывности S ′ (x) на [a, b], положим Pi0 = −φ′ (pi , 0), Pi1 = φ′ (pi , 1), Q0i = −φ′ (qi , 0), Q1i = φ′ (qi , 1). (11) Тогда из требования стыковки производной S ′ (xi + 0) = S ′ (xi − 0) следует 0 Q0i−1 µi Mi−1 + (Pi1 µi + Q1i λi )Mi + Pi+1 λi Mi+1 = δi , i = 1, . . . , n − 1, (12) причем λi = hi /(hi−1 + hi ), µi = 1 − λi . Для получения замкнутой системы уравнений относительно неизвестных {Mi } необходимо добавить два уравнения, вытекающие из краевых условий (2) или (3). В первом случае добавляемые уравнения таковы: Q10 M0 + P10 M1 = δ0 , Q0n−1 Mn−1 + Pn1 Mn = δn , (13) 9 Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции а во втором –– M0 = 2δ0 , Mn = 2δn . (14) Нетрудно понять, что в системах уравнений (12), (13) и (12), (14) относительно моментов, т. е. узловых значений второй производной, вообще говоря, отсутствует диагональное преобладание даже при выборе функции φ вида (8), что не позволяет получить условия выпуклости сплайна из условий неотрицательности решения системы уравнений с трехдиагональной диагонально-доминантной матрицей [13]. Более того, для всех распространенных видов обобщенных сплайнов [5, 7, 13] эти системы в общем случае не имеют диагонального преобладания. Перепишем систему уравнений (12), (13) в виде 1 Q0 h0 M0 + P10 h0 M1 = h0 δ0 , 0 0 h M Qi−1 hi−1 Mi−1 + (Pi1 hi−1 + Q1i hi )Mi + Pi+1 i i+1 = (hi−1 + hi )δi , (15) i = 1, . . . , n − 1, 0 Qn−1 hn−1 Mn−1 + Pn1 hn−1 Mn = hn−1 δn , и, соответственно, систему (12), (14) в виде h0 M0 = 2h0 δ0 , 0 0 h M Qi−1 hi−1 Mi−1 + (Pi1 hi−1 + Q1i hi )Mi + Pi+1 i i+1 = (hi−1 + hi )δi , i = 1, . . . , n − 1, hn−1 Mn = 2hn−1 δn . (16) Заметим, что при выполнении условий Pi1 > 0, Pi0 > 0, Pi1 − Pi0 > 0, i = 1, . . . , n, Q1i > 0, Q0i > 0, Q1i − Q0i > 0, i = 0, . . . , n − 1, (17) системы (15) и (16) имеют диагональное преобладание по столбцам (диагональное преобладание в первом и последнем столбце системы (16) легко получается умножением первого и последнего уравнений на некоторые числа). Ясно, что с учетом обозначений (11) условия (17) эквивалентны условиям φ′ (p, 1) > 0, φ′ (p, 0) < 0, φ′ (p, 0) + φ′ (p, 1) > 0 при p ≥ 0. (18) Тогда справедлива следующая Теорема 1. Если семейство функций φ(p, t) ∈ C 2 [0, 1], как функций от t, зависящих от параметра p, подчинено соотношениям (6) и (18), то интерполяционный обобщенный кубический сплайн S(x) вида (5), удовлетворяющий одному из краевых условий (2) или (3), существует и единствен. Ниже мы покажем, что условия теоремы 1 выполняются для всех популярных видов обобщенных сплайнов. 3. Положительное решение трехдиагональной системы Установим условия неотрицательности решения трехдиагональной системы уравнений со столбцевым диагональным преобладанием. Рассмотрим систему уравнений Az = d (19) 10 В.В. Богданов, Ю.С. Волков с трехдиагональной матрицей a0 c1 A= b0 a1 .. . b1 .. . .. . cn−1 an−1 cn bn−1 an и вектором правой части d = (d0 , d1 , . . . , dn )T относительно вектора неизвестных z = (z0 , z1 , . . . , zn )T . Элементы матрицы A и вектора правой части d неотрицательны. Нас интересуют условия, при которых компоненты решения z также будут неотрицательны. Для матриц со строгим диагональным преобладанием (по строкам) такие условия получены В. Л. Мирошниченко [13]. Теорема 2. Пусть элементы матрицы A и вектора правой части d системы (19) неотрицательны, и матрица A со строгим диагональным преобладанием по строкам a0 − b0 > 0, ai − ci − bi > 0, i = 1, . . . , n − 1, an − cn > 0. Тогда решение z будет неотрицательным, если выполнены неравенства d0 − b0 d1 ≥ 0, a1 bi ci di−1 − di+1 ≥ 0, ai−1 ai+1 cn dn−1 ≥ 0. dn − an−1 di − i = 1, . . . , n − 1, (20) Мы покажем, что решение z будет неотрицательным при выполнении (20) и в случае матриц со столбцевым диагональным преобладанием. Теорема 3. Пусть элементы матрицы A и вектора правой части d системы (19) неотрицательны, и матрица A со строгим диагональным преобладанием по столбцам a0 − c1 > 0, ai − bi−1 − ci+1 > 0, i = 1, . . . , n − 1, an − bn−1 > 0. (21) Тогда решение z будет неотрицательным, если выполнены неравенства (20). Доказательство. Основная идея доказательства та же, что в [13]: из каждых трех последовательных уравнений системы с неизвестными Mi−2 , Mi−1 , Mi , Mi+1 , Mi+2 исключаем Mi−1 и Mi+1 . Каждое уравнение новой системы (кроме крайних) будет содержать также ровно три неизвестных, но только либо с четными, либо с нечетными индексами. В [13] установлено, что такое преобразование системы уравнений (19) сохраняет диагональное преобладание по строкам. Мы же покажем, что это преобразование, независимо от наличия в системе строкового диагонального преобладания, сохраняет диагональное преобладание по столбцам. В терминах матриц это преобразование состоит в том, что обе части системы (19) умножаются слева на невырожденную трехдиагональную матрицу Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции 1 − c1 a0 G= b a1 − 0 b − 1 a2 .. . 1 .. . 11 .. c an−2 − n−1 . 1 − cn an−1 . bn−1 − an 1 (22) e с матрицей e = d, В результате получается новая система уравнений Az ã0 0 b̃1 0 ã1 0 b̃2 c̃ ã2 0 b̃3 1 0 .. .. .. e = GA = A , . . . c̃ 0 ã 0 b̃ n−3 n−2 n−1 c̃ 0 ã 0 n−2 где bk ck+1 bk−1 bk bk−1 ck + ak − , b̃k = − , ak−1 ak+1 ak bn−1 cn b0 c1 , ãn = − + an , ã0 = a0 − a1 an−1 ãk = − n−1 c̃n−1 0 ãn c̃k = − ck ck+1 , ak k = 1, . . . , n − 1; и вектором правой части de = Gd = (d˜0 , d˜1 , . . . , d˜n )T с элементами ck bk d˜k = − dk−1 + dk − dk+1 , k = 1, . . . , n − 1; ak−1 ak+1 cn b0 d1 , d˜n = dn − dn−1 . d˜0 = d0 − a1 an−1 e хотя и является уже пятидиагональной, но в каждой строке Матрица новой системы A (столбце) ненулевыми будут не более трех элементов, так как элементы на диагоналях, соседних с главной, зануляются. Во-первых, в силу неравенств (21), имеем, что внедиагональные элементы матрицы e выполG по модулю меньше 1, следовательно, для диагональных элементов матрицы A нены неравенства ã0 > a0 − c1 ; ãi > −bi−1 + ai − ci+1 , i = 1, . . . , n − 1; ãn > −bn−1 + an , которые означают положительность этих диагональных элементов в силу тех же неравенств (21) столбцевого диагонального преобладания матрицы A. Во-вторых, условия (21) обеспечивают наличие столбцевого диагонального преоблаe т. е. выполнение неравенств дания в матрице A, ã0 − c̃1 > 0, ã1 − c̃2 > 0, ãi − b̃i−1 − c̃i+1 > 0, ãn−1 − b̃n−2 > 0, i = 2, . . . , n − 2, ãn − b̃n−1 > 0. (23) (24) (25) Действительно, с учетом неравенств (21) для первых двух столбцов, содержащих лишь по два ненулевых элемента, имеем 12 В.В. Богданов, Ю.С. Волков b0 c1 c1 c2 c1 − = (a0 − c1 ) + (a1 − b0 − c2 ) > 0, a1 a1 a1 b1 c2 c2 c3 b0 c2 b0 c1 + a1 − − = (a0 − c1 ) + (a1 − b0 − c2 ) + (a2 − b1 − c3 ) > 0, ã1 − c̃2 = − a0 a2 a2 a0 a2 ã0 − c̃1 = a0 − что означает выполнение (23). Справедливость (24) для i = 2, . . . , n − 2 следует из соотношений bi−1 ci bi ci+1 bi−2 bi−1 ci+1 ci+2 + ai − − − ai−1 ai+1 ai−1 ai+1 bi−1 ci+1 = (ai−1 − bi−2 − ci ) + (ai − bi−1 − ci+1 ) + (ai+1 − bi − ci+2 ) > 0, ai−1 ai+1 ãi − b̃i−1 − c̃i+1 = − основанных на неравенствах (21). Истинность (25) устанавливается аналогично (23). e имеет положительную главную диаТаким образом, мы установили, что матрица A гональ и неположительные остальные элементы; кроме того, присутствует диагональное e является M -матпреобладание по столбцам. Это позволяет заключить, что матрица A рицей, т. е. элементы ее обратной неотрицательны. Поэтому неотрицательность решения e что эквиваz системы (19) будет следствием неотрицательности компонент вектора d, лентно выполнению неравенств (20). 4. Условия выпуклости обобщенных сплайнов Как уже отмечалось в п. 2, системы уравнений (15) и (16) относительно моментов Mi для обобщенных кубических сплайнов имеют диагональное преобладание по столбцам, поэтому применение к ним теоремы 3 сразу же приводит к условиям неотрицательности моментов. Однако неотрицательность значений второй производной в узлах сетки еще не гарантирует неотрицательности между узлами (для обычного кубического сплайна вторая производная есть кусочно-линейная функция). Из вида второй производной обобщенного сплайна (10) понятно, что для обеспечения выпуклости сплайна надо на функцию φ(p, t) наложить ограничение φ′′ (p, t) ≥ 0, t ∈ [0, 1], при p ≥ 0. (26) Заметим, что данное ограничение вместе с (6) обеспечивает частичное выполнение неравенств (17), (18), а именно, будут выполняться неравенства φ′ (p, 1) > 0, φ′ (p, 0) < 0. Введем обозначения −φ′ (pi , 0) Pi0 = , µi φ′ (pi , 1) + λi φ′ (qi , 1) Pi1 µi + Q1i λi −φ′ (qi , 0) Q0i bi = = Q µi φ′ (pi , 1) + λi φ′ (qi , 1) Pi1 µi + Q1i λi Pbi = (27) и сформулируем результат, являющийся решением задачи выпуклой интерполяции, который следует из теоремы 3 и ограничения (26). Теорема 4. Пусть обобщенный кубический сплайн S(x) вида (5) с краевыми условиями (2) интерполирует выпуклые данные и выполнены соотношения (6), (18) и (26). Тогда сплайн S(x) будет выпуклым, если Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции δ0 − δ1 Pb1 ≥ 0, Q0 δ1 − δ0 10 µ1 − δ2 Pb2 λ1 ≥ 0, Q0 b i−1 µi − δi+1 Pbi+1 λi ≥ 0, δi − δi−1 Q b n−2 µn−1 − δn δn−1 − δn−2 Q i = 2, . . . , n − 2, Pn0 λn−1 ≥ 0, Pn1 b n−1 ≥ 0. δn − δn−1 Q 13 (28) Теорема 5. Пусть обобщенный кубический сплайн S(x) вида (5) с краевыми условиями (3) интерполирует выпуклые данные и выполнены соотношения (6), (18) и (26). Тогда сплайн S(x) будет выпуклым, если δ1 − 2δ0 Q00 µ1 − δ2 Pb2 λ1 ≥ 0, b b (29) δi − δi−1 Qi−1 µi − δi+1 Pi+1 λi ≥ 0, i = 2, . . . , n − 2, b n−2 µn−1 − 2δn Pn0 λn−1 ≥ 0. δn−1 − δn−2 Q Отметим, что в частном случае pi+1 = qi теорема 5 была установлена в [13]. В этом случае матрица системы (16) имеет диагональное преобладание, и применима теорема 2. Для классических кубических сплайнов получаются также известные [13] достаточные условия выпуклости сплайнов, например, с краевыми условиями (2): 1 δ0 − δ1 ≥ 0, 2 λi µi (30) δi − δi−1 − δi+1 ≥ 0, i = 1, . . . , n − 1, 2 2 1 δn − δn−1 ≥ 0, 2 или с краевыми условиями (3): µ1 λ1 δ1 − δ 0 − δ2 ≥ 0, 3 2 µi λi δi − δi−1 − δi+1 ≥ 0, i = 2, . . . , n − 2, 2 2 λn−1 µn−1 − δn ≥ 0. δn−1 − δn−2 2 3 (31) Ясно, что если неравенства (30) или (31) выполняются, то для решения задачи выпуклой интерполяции достаточно обычных кубических сплайнов. И лишь при нарушении гделибо этих неравенств мы можем ввести на соответствующих участках звенья с функциями φ(p, t). Естественно, параметры управления желательно выбирать минимальными, добиваясь выполнения неравенств (28) или (29) в зависимости от применяемых краевых условий. Нарушение какого-либо из неравенств, например в (30), соответствует тому, что некоторое значение δi значительно меньше одного или обоих соседних значений δi−1 , δi+1 (если отношение соседних δi не более 2, то нарушений неравенств не будет). Применение b i−1 или Pbi+1 при обобщенного сплайна должно выправить ситуацию. Коэффициенты Q соответствующих значениях δi−1 или δi+1 в i-том неравенстве в (28) призваны погасить влияние соответствующих слагаемых. 14 В.В. Богданов, Ю.С. Волков Сформулируем общую схему выбора управляющих параметров pi и qi и затем на ее основе разработаем алгоритмы для конкретных функций φ(p, t). Рассмотрим эту схему на примере сплайнов с краевыми условиями (2), т. е. при известных первых производных функции на концах. Первое действие –– это проверка условий (30). Если условия выполнены, то задача решается классическим кубическим сплайном. Если эти условия нарушаются, то переходим ко второму шагу –– выявлению тех узлов сетки (пусть это будет множество J), в окрестности которых требуется увеличить натяжение. Как уже было отмечено, нарушение какого-либо из неравенств (30) для некоторого i может быть вызвано значительным превышением δi−1 и/или δi+1 над δi , поэтому номера i − 1 и/или i + 1 помещаем в множество J. На третьем шаге для номеров i, не вошедших в J, полагаем pi = qi = 0, т. е. натяжение отсутствует, а для индексов i ∈ J наша задача выбрать pi или qi (или оба) ненулевыми так, чтобы выполнялись все неравенства (28). Ясно, что если для некоторого i соседние с ним номера не входят в множество J, то неравенства, соответствующие этому i в (28) b i−1 = Pbi+1 = Q b i+1 = 1/2). Если же i − 1 ∈ J и и (30), выполнены и совпадают (Pbi−1 = Q i + 1 ∈ J, то будем добиваться выполнения неравенств b i−1 ≥ 0, δi − δi−1 Q δi − δi+1 Pbi+1 ≥ 0, которые обеспечивают выполнение i-го неравенства b i−1 µi − δi+1 Pbi+1 λi ≥ 0, δi − δi−1 Q в силу того, что ´ ³ ´ ³ b i−1 + λi δi − δi+1 Pbi+1 . b i−1 µi − δi+1 Pbi+1 λi = µi δi − δi−1 Q δi − δi−1 Q Таким образом, для каждого i ∈ J выбор параметров управления pi , qi должен осуществляться при двух ограничениях, одно из которых, в зависимости от того, принадлежит ли индекс i − 2 множеству J, будет иметь вид µi−1 − δi Pbi λi−1 ≥ 0 2 δi−1 − δi Pbi ≥ 0 δi−1 − δi−2 при i − 2 6∈ J, (32) при i − 2 ∈ J. Вид второго ограничения b i µi+1 − δi+2 λi+1 ≥ 0 δi+1 − δi Q 2 bi ≥ 0 δi+1 − δi Q при i + 2 6∈ J, (33) при i + 2 ∈ J, подобным образом зависит от принадлежности i + 2 множеству J. Исключения могут составлять крайние индексы, если они входят в J, для которых будет только по одному ограничению. Если 0 ∈ J, то δ1 − δ 0 Q00 λ1 µ1 − δ2 ≥0 1 2 Q0 Q0 δ1 − δ0 01 ≥ 0 Q0 и если n ∈ J, то при 2 6∈ J, (34) при 2 ∈ J, Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции δn−1 − δn−2 δn−1 − δn µn−1 P0 − δn n1 λn−1 ≥ 0 2 Pn 15 при n − 2 6∈ J, (35) Pn0 ≥0 Pn1 при n − 2 ∈ J. Итак, наша задача следующая: для каждого внутреннего i ∈ J требуется найти наименьшие неотрицательные значения pi и qi , чтобы выполнялись неравенства (32) и (33), которые мы запишем в виде или, в соответствии с (27): Pbi ≤ ξi , −φ′ (pi , 0) ≤ ξi , ′ µi φ (pi , 1) + λi φ′ (qi , 1) где b i ≤ ηi , Q −φ′ (qi , 0) ≤ ηi , ′ µi φ (pi , 1) + λi φ′ (qi , 1) ³ ´ δi−1 − δi−2 µi−1 /δi λi−1 2 ξi = δi−1 /δi ³ λi+1 ´ δ /δi µi+1 i+1 − δi+2 2 ηi = δi+1 /δi при i − 2 6∈ J, (36) (37) при i − 2 ∈ J, при i + 2 6∈ J, (38) при i + 2 ∈ J. Если крайние индексы i = 0 или i = n принадлежат J, то наименьшие неотрицательные значения q0 или pn надо находить из неравенств − φ′ (q0 , 0) ≤ η0 , φ′ (q0 , 1) − φ′ (pn , 0) ≤ ξn , φ′ (pn , 1) (39) где ³ ´ δ − δ λ1 /δ µ при 2 6∈ J, 1 2 0 1 2 η0 = δ1 /δ0 при 2 ∈ J, ³ ´ δn−1 − δn−2 µn−1 /δn λn−1 при n − 2 6∈ J, 2 ξn = δn−1 /δn при n − 2 ∈ J. (40) (41) Каждое из неравенств (36) выделяет в плоскости параметров (pi , qi ) в неотрицательном квадранте R2 подобласть, в которой гарантируется выполнение соответствующего неравенства. Кривые, которые ограничивают эти области, описываются уравнениями −φ′ (pi , 0) = ξi , µi φ′ (pi , 1) + λi φ′ (qi , 1) −φ′ (qi , 0) = ηi . µi φ′ (pi , 1) + λi φ′ (qi , 1) (42) 16 В.В. Богданов, Ю.С. Волков Мы желаем выбрать точку (pi , qi ), удовлетворяющую обоим неравенствам (36), и ближайшую к точке (0, 0), поскольку при pi = qi = 0 получается звено классического кубического сплайна. Естественно, область, определяемая неравенствами (36), точку (0, 0) не содержит, так как в рассматриваемом узле i должно быть натяжение, т. е. оба параметра pi , qi нулевыми быть не должны. Ясно, что нужная нам точка лежит на одной из линий (42) или в точке их пересечения, что определяется выбором функции φ(p, t). Во всех рассматриваемых ниже примерах, т. е. для всех популярных обобщений кубических сплайнов, нужные нам точки лежат на пересечении линий (42). Для нахождения наименьших неотрицательных значений q0 и pn , удовлетворяющих (39), неравенства также следует заменить на равенства − φ′ (q0 , 0) = η0 , φ′ (q0 , 1) − φ′ (pn , 0) = ξn . φ′ (pn , 1) (43) Заметим, что, рассматривая соотношения (42) как систему двух уравнений относительно параметров pi , qi , приходим к более простой системе 1 1 − ηi ′ = 0, ξ i φ′ (pi , 0) φ (qi , 0) (44) ′ (q , 1) ′ (p , 1) φ φ i i ξi ′ µi + ηi ′ λi + 1 = 0, φ (pi , 0) φ (qi , 0) решение которой для конкретных сплайнов обычно не составляет труда. В некоторых случаях будут полезны огрубления, а именно: если значения pi и qi близки, то можно полагать pi = qi и отыскивать нужное значение из уравнения − φ′ (pi , 0) = min{ξi , ηi }; φ′ (pi , 1) и второе: если какое-либо из значений ξi и ηi , например ηi , достаточно близко к нулю, то параметр qi обязан быть очень большим, что означает, что значение pi может быть найдено из уравнения φ′ (pi , 0) − ′ = ξi . φ (pi , 1) Отмеченные огрубления, с одной стороны, значительно упрощают формулы определения параметров натяжения, с другой, –– найденные значения близки к оптимальным. Однако в общей ситуации такой выбор параметров может оказаться далеким от оптимального. Ниже для различных видов обобщенных сплайнов будут рассмотрены примеры выбора параметров управления, реализующие изложенную здесь общую схему. 5. Примеры Рассмотрим задачу интерполяции на равномерной сетке промежутка [0, 1] с шагом 0.1 значений выпуклой функции 1 (5x − 3)2 при x ≤ 0.6 , 250 f (x) = 1 (25x2 − 9) при x > 0.6 . 16 Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции Рис. 1. Классический кубический сплайн класса C 2 , интерполирующий отмеченные данные 17 Рис. 2. Вторая производная кубического сплайна Считаем, что в точках x = 0 и x = 1 известны значения первой производной интерполируемой функции. На рис. 1 и 2 изображены графики классического кубического сплайна, интерполирующего имеющиеся данные, и его второй производной. Хотя данные являются выпуклыми, сплайн не является выпуклым. Вторая производная в трех узлах оказывается отрицательной, и сплайн имеет шесть не свойственных данным перегибов. Однако проверка достаточных условий выпуклости показывает, что нарушаются только два из неравенств (30) при i = 5 и i = 7. Для получения выпуклого интерполянта будем использовать обобщенные кубические сплайны, т. е. функцию φ(t) = (t3 − t)/6 в представлении (4) заменим функцией φ(p, t), имеющей свободный параметр p, тем самым перейдем к представлению (5). Наиболее известны следующие обобщенные сплайны: • рациональные (сплайны Шпэта) φ(p, t) = • с дополнительными узлами ´ ³ 1 t3 − t ; 2p2 + 6p + 6 1 + p(1 − t) φ(p, t) = (t − p(1 − t))3+ − t ; 6(p + 1)2 • экспоненциальные φ(p, t) = t3 e−p(1−t) − t ; p2 + 6p + 6 • переменной степени (VP -сплайны) φ(p, t) = • гиперболические φ(p, t) = t3+p − t , p2 + 5p + 6 ´ 1 ³ sh pt − t . p2 sh p 18 В.В. Богданов, Ю.С. Волков Для всех этих обобщенных сплайнов функции φ(p, t) удовлетворяют условиям (6), (18), и, следовательно, для них справедлива теорема 1. Заметим, что гиперболические сплайны (иногда в литературе именно их называют экспоненциальными) обладают вариационным свойством, но для практических вычислений они удобны менее других. Это связано с тем, что из всех предыдущих сплайнов обычный кубический получается при нулевых параметрах натяжения, в то время как для гиперболического просто взять p = 0 мы не можем –– надо раскрывать неопределенность. В связи с этим при p, близких к 0, формула для гиперболического сплайна должна быть другой [10], что, естественно, усложняет работу с ним. Работа нашего алгоритма выбора параметров натяжения для обобщенных сплайнов начинается с определения тех узлов, в которых необходимо натяжение, т. е. с построения множества J. Обратим внимание на то, что на первом этапе работа алгоритма не зависит от конкретного выбора функции φ(p, t). Проверка выполнения неравенств (30) показывает, что это множество для рассматриваемого примера должно состоять всего из одного элемента: J = {6}. Следовательно, все параметры pi , qi , кроме p6 и q6 , полагаем равными нулю, а p6 и q6 нужно задавать так, чтобы выполнялись неравенства (36), с величинами ξ6 = 0.015 и η6 = 0.220, найденными по формулам (37), (38). В этом случае условия теоремы 5 будут выполнены, и обобщенный сплайн получится выпуклым. Нахождение конкретных значений для p6 и q6 , конечно, уже зависит от конкретного выбора функции φ(p, t), т. е. вида обобщенного сплайна. Однако для указанных выше видов обобщенных сплайнов с параметрами натяжения, выбранными по нашей методике, графики сплайнов практически не отличаются друг от друга, а графики вторых производных качественно также отличаются мало (кое-какие отличия есть для второй производной гиперболического сплайна). Поэтому мы ограничимся подробным рассмотрением только рационального сплайна Шпэта, а для остальных сплайнов приведем лишь некоторые замечания. Итак, нужные нам значения производных функции φ(p, t) для рационального сплайна имеют вид 1 p+2 φ′ (p, 0) = − 2 , φ′ (p, 1) = 2 . 2p + 6p + 6 2p + 6p + 6 Тогда неравенства (36) будут следующими: 1 p2i + 3pi + 3 ≤ ξi , p +2 q +2 µi 2 i + λi 2 i pi + 3pi + 3 qi + 3qi + 3 1 qi2 + 3qi + 3 ≤ ηi . p +2 qi +2 µi 2 i + λi q2 +3q +3 pi + 3pi + 3 i i (45) Покажем, что в плоскости параметров (pi , qi ) ближайшей точкой области, задаваемой неравенствами (45), является точка пересечения линий, ограничивающих эту область, т. е. кривых, описываемых уравнениями (42), а в случае рационального сплайна –– следующих кривых: qi + 2 1 = , µi (pi + 2) + λi (p2i + 3pi + 3) 2 ξi qi + 3qi + 3 (46) pi + 2 1 µi 2 (qi2 + 3qi + 3) + λi (qi + 2) = . ηi pi + 3pi + 3 (47) Для этого достаточно показать, что кривые (46), (47) являются монотонными функциями qi от pi (или наоборот, pi от qi ). Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции 19 В самом деле, рассматривая функцию Φ(x) = x+2 x2 + 3x + 3 , нетрудно заметить, что Φ′ (x) < 0 при x ≥ 0. Тогда для кривой (46) получаем d qi = −[µi + λi (2pi + 3)Φ(qi )]/λi (p2i + 3pi + 3)Φ′ (qi ) > 0, d pi аналогично для другой кривой (47) –– d qi = −µi Φ′ (pi )(qi2 + 3qi + 3)/[µi Φ(pi )(2qi + 3) + λi ] > 0. d pi Таким образом, искомая точка (pi , qi ) –– точка пересечения линий (46), (47), т. е. границ области допустимых параметров. На рис. 3 изображено семейство линий, описываемых уравнением (46) при λi = µi = 1/2, для значений ξi = 0.01, 0.02, 0.1, 0.2, 0.5. При ξi = 0.5 кривая проходит через начало координат (при отсутствии натяжения в i-ом узле величины ξi и ηi равны 1/2), с уменьшением ξi кривые смещаются вправо и становятся более пологими. Для уравнения (47) картина симметрична относительно прямой pi = qi . Кроме того, прямые pi = 1 − 2, ξi µi qi = 1 −2 ηi λi (48) являются вертикальной и горизонтальной асимптотами соответственно кривых (46) и (47). Заметим, что для монотонности нам достаточно было установить следующие неравенства: ¸ ¸′ · · ′ £ ′ ¤′ 1 φ (p, 1) ′ < 0, < 0, φ (p, 1) p < 0, (49) ′ ′ φ (p, 0) p φ (p, 0) p которые будут выполнены и для остальных, приведенных выше, типов обобщенных сплайнов, кроме гиперболических. Как было ранее показано, искомая точка пересечения линий границы области может быть найдена как решение более простой системы уравнений (44), которая в случае рационального сплайна Шпэта принимает вид ( ξi (p2i + 3pi + 3) − ηi (qi2 + 3qi + 3) = 0, (50) ξi µi (pi + 2) + ηi λi (qi + 2) − 1 = 0, а ее решение сводится к решению квадратного уравнения и не составляет труда. В рассматриваемом нами примере параметры натяжения требуется искать только в узле x6 . Здесь ξ6 = 0.015, η6 = 0.220, и вычисления дают p6 = 24.467 и q6 = 5.015. Соответствующая область допустимых значений параметров p6 , q6 для выпуклости рационального сплайна изображена на рис. 4 (заключена между кривыми k и l). Точкой A, которая и имеет координаты (24.467, 5.015), обозначено пересечение кривых k и l. Если положить p6 = q6 (биссектриса b), то наименьшие значения этих параметров, попадающие в указанную область (точка B), окажутся существенно больше. Точка B имеет координаты (66.042, 66.042). Данное огрубление вычисления параметров рационального сплайна ведет к излишнему натяжению графика сплайна вблизи 6-го узла. С другой 20 В.В. Богданов, Ю.С. Волков Рис. 3. Кривые (46) при различных значениях ξi Рис. 4. Область параметров p6 и q6 выпуклого рационального сплайна Рис. 5. Выпуклая интерполяция рациональным кубическим сплайном Рис. 6. Вторая производная рационального сплайна стороны, применение еще одной, упоминавшейся ранее, упрощенной схемы выбора параметров, а именно, замены кривой l ее асимптотой a, наоборот дает параметры, не сильно отличающиеся от оптимальных. На рис. 4 это точка C с координатами (27.647, 7.091). На рис. 5 и 6 приведены графики выпуклого рационального сплайна Шпэта и его второй производной соответственно с оптимально заданными параметрами натяжения: p6 = 24.467, q6 = 5.015. Вторая производная обобщенного сплайна положительна, но вблизи узла, где применяется натяжение, ее значения довольно велики (что, естественно, и обусловлено натяжением). Ясно, что излишнее натяжение ухудшает точность приближения сплайном и, особенно, производными. Теперь кратко рассмотрим другие виды обобщенных сплайнов, перечисленных выше. Приведем вначале значения производных функций φ(p, t), присутствующие в системах уравнений для вычисления сплайнов, а также в описании областей допустимых значений Выбор параметров обобщённых кубических сплайнов при выпуклой интерполяции 21 параметров для сплайнов с дополнительными узлами, экспоненциальных и переменной степени соответственно: 1 , 6(p + 1)2 1 , φ′ (p, 0) = − 2 p + 6p + 6 1 φ′ (p, 0) = − 2 , p + 5p + 6 φ′ (p, 0) = − 3p + 2 ; 6(p + 1)2 p+2 φ′ (p, 1) = 2 ; p + 6p + 6 p+2 φ′ (p, 1) = 2 . p + 5p + 6 φ′ (p, 1) = Нетрудно видеть, что в этих выражениях никаких качественных отличий от рассмотренного случая рационального сплайна нет, поэтому и реализация предложенной схемы алгоритма выбора наименьших параметров для обеспечения выпуклости интерполянта столь же проста. Несколько слов о сплайнах переменной степени (VP -сплайнах). Их привлекательной чертой является то, что, выбирая параметры управления целыми значениями, будем получать полиномиальный сплайн (хотя, возможно, очень большой степени). Для приведенного выше примера наш алгоритм вычисляет такие оптимальные параметры: p6 = 26.604 и q6 = 4.879. Для получения оптимальной целочисленной точки понятно, что надо проводить округление в большую сторону. В данном примере эта точка (27, 5) лежит в допустимой области, однако при таком округлении она может и выскочить из области, тогда придется еще увеличивать один из параметров. В рассматриваемом примере одно из звеньев сплайна будет многочленом степени 30. При этом применение сплайнов переменной степени требует прилагать дополнительные усилия для контроля округления при нахождении оптимальных параметров. Теперь о гиперболических сплайнах. Выше мы уже отмечали недостатки гиперболических сплайнов в сравнении с другими обобщенными сплайнами. Реализация для них нашего алгоритма тоже более сложна. Нужные нам величины таковы φ′ (p, 0) = ´ 1³ p − 1 , p2 sh p φ′ (p, 1) = ´ 1 ³ p ch p − 1 . p2 sh p В этом случае уже не выполняются условия (49), из которых легко следует монотонность кривых как функций p от q (или q от p), являющихся границами допустимой области параметров. Тем не менее, как показали численные расчеты, эти кривые являются монотонными функциями, вид их немного отличается от кривых, приведенных на рис. 3 (нижние их концы слегка отогнуты вправо). Следовательно, опять точки пересечения соответствующих кривых, которые также можно находить как решение системы (44), определяют оптимальный выбор параметров управления. Однако, в отличие от других, рассмотренных выше видов обобщенных сплайнов, получить явные формулы не удается. Приближенное решение системы (44) для рассматриваемого примера дает p6 = 30.772, q6 = 7.759. Заметим, что при этом sh(p6 ) ≃ 1013 . Список литературы [1] Schweikert D.G. An interpolation curve using a spline in tension // J. Math. Phys. –– 1966. –– Vol. 45. –– P. 312–317. [2] Späth H. Exponential spline interpolation // Computing. –– 1969. –– Vol. 4. –– P. 225–233. 22 В.В. Богданов, Ю.С. Волков [3] Soanes R.W.Jr. VP-splines, an extension of twice differentiable interpolation // Proc. Army numer. Anal. Comp. Conf. Res. Triangle Park. –– 1976. –– P. 141–152. [4] Pruess S. Properties of splines in tension // J. Approx. Theory. –– 1976. –– Vol. 17. –– P. 86–96. [5] Pruess S. Alternatives to the exponential spline in tension // Math. Comput. –– 1979. –– Vol. 33, № 148. –– P. 1273–1281. [6] Мирошниченко В.Л. Интерполяция функций с большими градиентами // Методы аппроксимации и интерполяции. Материалы Всесоюзн. конф. –– Новосибирск: ВЦ СО АН СССР, 1981. –– С. 98–107. [7] Späth H. Spline algorithms for curves and surfaces. –– Winnipeg: Utilitas Mathematica Publ. Inc., 1974. [8] Kvasov B.I. Methods of shape-preserving spline approximation. –– Singapore: World Scientific, 2000. [9] Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. –– М.: Наука, 1980. [10] Rentrop P. An algorithm for computation of the exponential spline // Numer. Math. –– 1980. –– Vol. 35. –– P. 81–93. [11] Sapidis N.S., Kaklis P.D., Loukakis T.A. A method for computing the tension parameters in convexity-preserving spline-in-tension interpolation // Numer. Math. –– 1988. –– Vol. 54. –– P. 179–192. [12] McCartin B.J. Computation of exponential splines // SIAM J. Sci. Stat. Comput. –– 1990. –– Vol. 11, № 2. –– P. 242–262. [13] Miroshnichenko V.L. Convex and monotone spline interpolation // Constructive Theory of Function’84. Proc. Intern. Conf., Varna. –– Sofia: Publishing House of Bulgarian Academy of Sciences, 1984. –– P. 610–620. [14] Завьялов Ю.С. О теории обобщенных кубических сплайнов // Вычислительные системы. Приближение сплайнами / ИМ СО АН СССР. –– Новосибирск, 1990. –– Вып. 137. –– С. 50–90. [15] Завьялов Ю.С. Монотонная интерполяция обобщенными кубическими сплайнами класса C 2 // Вычислительные системы. Интерполяция и аппроксимация сплайнами / ИМ СО РАН. –– Новосибирск, 1992. –– Вып. 147. –– С. 44–67. [16] Мирошниченко В.Л. Оптимизация вида рационального сплайна // Вычислительные системы. Сплайн-функции и их приложения / ИМ СО РАН.–– Новосибирск, 1997.–– Вып. 159.–– С. 87–109. [17] Волков Ю.С. Применение рациональных кубических сплайнов для расчета динамических характеристик двигателя // Вычислительные системы. Сплайны и их приложения / ИМ СО РАН. –– Новосибирск, 1995. –– Вып. 154. –– С. 65–72. [18] Завьялов Ю.С. Выпуклая интерполяция обобщенными кубическими сплайнами класса C 2 // Вычислительные системы. Сплайны и их приложения / ИМ СО РАН. –– Новосибирск, 1995. –– Вып. 154. –– С. 15–64. Институт математики им. С.Л. Соболева СО РАН, просп. Акад. Коптюга, 4, Новосибирск, 630090. E-mails: [email protected] (В.В. Богданов) (Ю.С. Волков) [email protected] Статья поступила 8 июня 2005 г.