1611688890-f641c9ec8276824e4686da772eb56520 (826652), страница 16
Текст из файла (страница 16)
. , n, — концы подинтервалов [xi−1 , xi ] — называют узламисплайна.Рис. 2.9. Кусочно-постоянная интерполяция функции.Термин «сплайн» является удачным заимствованием из английского языка, где слово «spline» означает гибкую (обычно стальную) линейку, которую, изгибая, использовали чертёжники для проведения глад-2.6. Сплайны91кой линии между данными фиксированными точками. В середине XXвека этот термин вошёл в математику и перекочевал во многие языкимира.Почему именно кусочные полиномы? К идее их введения можноприйти, к примеру, с помощью следующих неформальных мотиваций.Содержательный (механический, физический, биологический и т.
п.)смысл имеют, как правило, производные порядка не выше 2–4, и именно их мы можем видеть в различных математических моделях реальных явлений.9 Пятые производные — это уже экзотика, а производные шестого и более высоких порядков при описании реальности невстречаются. В частности, разрывы производных высоких «нефизичных» порядков у функции никак не ощутимы. Поэтому для сложно изменяющихся производных высоких порядков необходимые «нужные»значения в фиксированных узлах можно назначить, к примеру, с помощью простейшей кусочно-постоянной или кусочно-линейной интерполяции.
Далее желаемая гладкость искомой функции достигается спомощью последовательного применения нескольких операций интегрирования, при которых необходимо следить за гладкостью склейкикусков этой функции на различных подинтервалах. Так получаетсякусочно-полиномиальная функция.Понятие «сплайн-функции» было введено И. Шёнбергом в 1946 году [76], хотя различные применения тех объектов, которые впоследствии были названы «сплайнами», встречались в математике на протяжении предшествующей сотни лет. Пионером здесь следует назвать,по-видимому, Н.И.
Лобачевского, который в статье [73] явно использовал конструкции сплайнов и так называемых B-сплайнов.10С середины XX века по настоящее время сплайны нашли широкие применения в математике и её приложениях. В вычислительныхтехнологиях они могут использоваться, в частности, для приближенияфункций, при решении дифференциальных и интегральных уравнений. Если сплайн применяется для решения задачи интерполяции, тоон называется интерполяционным. Другими словами, интерполяционный сплайн — это сплайн, принимающий в заданных точках x̃i , i = 0, 1,9 Характерный пример: в книге А.К. Маловичко, О.Л.
Тарунина «Использованиевысших производных при обработке и интерпретации результатов геофизическихнаблюдений» (Москва, издательство «Недра», 1981 год) рассматриваются производные второго и третьего порядков.10 Вклад Н.И. Лобачевского даже дал повод некоторым авторам назвать специальный вид сплайнов сплайнами Лобачевского.922. Численные методы анализа. . .
, r, — узлах интерполяции — требуемые значения yi . Эти узлы интерполяции, вообще говоря, могут не совпадать с узлами сплайна xi ,i = 0, 1, . . . , n, задающим интервалы полиномиальности.Так как степень полинома равна наивысшему порядку его ненулевой производной, то сплайны дефекта нуль — это функции задаваемыена всём интервале [a, b] одной полиномиальной формулой. Таким образом, термин «дефект» весьма точно выражает то, сколько сплайну«не хватает» до полноценного полинома. С другой стороны, именноналичие дефекта обеспечивает сплайну бо́льшую гибкость в сравнениис полиномами и делает сплайны во многих ситуациях более удобныминструментом приближения и интерполирования функций.Сплайны существенно лучше полиномов позволяют отслеживатьспецифику поведения многих функций.
Дело в том, что у полиномовпроизводные по мере увеличения их порядка имеют всё более медленный рост, и, в конце концов, просто зануляются. Этим полиномыпринципиально отличаются от всех других функций, производные которых при увеличении их порядка в нуль не обращаются. Что касаетсясплайнов, то наличие у них кусочного представления и точек склейки,где производные терпят разрывы, приводит к интересному эффекту.Пусть, к примеру, q — это гладкость сплайна дефекта 1. Тогда разрывы (q + 1)-й производной в узлах сплайна можно трактовать какбесконечно большие значения следующей (q + 2)-й производной в узлах,11 между которыми эта производная равна нулю. «В среднем» же(q + 2)-я производная от сплайна оказывается не равной тождественнонулю!Чем больше дефект сплайна, тем больше он отличается от полинома и тем более специфичны его свойства.
Но слишком большой дефектприводит к существенному понижению общей гладкости сплайна. Взначительном числе приложений сплайнов вполне достаточными оказываются сплайны с минимально возможным дефектом 1, и толькотакие сплайны мы будем рассматривать далее в нашей книге.Простейший «настоящий» сплайн имеет дефект 1 и степень 1, будучи «непрерывно склеенным» в узлах xi , i = 1, 2, . . . , n − 1. Иными словами, это — кусочно-линейная функция, имеющая, несмотря насвою простоту, богатые приложения в математике.12 Сплайны второй11 Этому утверждению можно даже придать строгий математический смысл, привлекая понятие так называемой обобщённой функции.12 Вспомним, к примеру, «ломаные Эйлера», которые применяются при доказательстве существования решения задачи Коши для обыкновенных дифференци-932.6.
Сплайны✻✲Рис. 2.10. Простейшие сплайны — кусочно-линейные функции.степени часто называют параболическими сплайнами.Далее мы будем рассматривать интерполяционные сплайны, узлыкоторых x0 , x1 , . . . , xn совпадают с узлами интерполирования.Если степень сплайна равна d, то для его полного определения необходимо знать n(d + 1) значений коэффициентов полиномов, задающихсплайн на n подинтервалах [xi−1 , xi ], i = 1, 2, .
. . , n. В то же время, вслучае дефекта 1 имеетсяd(n−1) условий непрерывности самого сплайна и его производныхвплоть до (d − 1)-го порядка в узлах x1 , x2 , . . . , xn−1 ,(n + 1) условие интерполяции в узлах x0 , x1 , . . . , xn .Всего d(n − 1) + (n + 1) = n(d + 1) − (d − 1) штук, и потому для определения сплайна не хватает d − 1 условий, которые обычно задаютдополнительно на концах интервала [a, b].Сказанное имеет следущие важные следствия. Если решать задачу интерполяции с помощью сплайна чётной степени, требуя, чтобына каждом подинтервале [xi−1 , xi ] сплайн являлся бы полиномом чётной степени, то число (d − 1) подлежащих доопределению параметровоказывается нечётным.
Поэтому на одном из концов интервала [a, b]приходится налагать больше условий, чем на другом. Это приводит,во-первых, к асимметрии задачи, и, во-вторых, может вызвать неустойальных уравнений [40].942. Численные методы анализачивость при определении параметров сплайна. Наконец, интерполяционный сплайн чётной степени при некоторых естественных краевыхусловиях (периодических, к примеру) может просто не существовать.Отмеченные недостатки могут решаться, в частности, выбором узлов сплайна отличными от узлов интерполяции. Мы далее не будемостанавливаться на преодолении этих затруднений и рассмотрим интерполяционные сплайны нечётной степени 3.2.6бИнтерполяционныекубические сплайныНаиболее популярны в вычислительной математике сплайны третьей степени с дефектом 1, называемые также кубическими сплайнами. Эту популярность можно объяснить относительной простотой этихсплайнов и тем обстоятельством, что они вполне достаточны для отслеживания непрерывности вторых производных функций, что необходимо, например, во многих законах механики и физики.Пусть задан набор узлов x0 , x1 , .
. . , xn ∈ [a, b], который, как и прежде, мы называем сеткой. Величину hi = xi − xi−1 , i = 1, 2, . . . , n, назовём шагом сетки. Кубический интерполяционный сплайн на интервале[a, b] с сеткой a = x0 < x1 < . . . < xn = b, узлы которой являются такжеузлами интерполяции — это функция S(x), удовлетворяющая следующим условиям:1) S(x) — полином третьей степени на каждомиз подинтервалов [xi−1 , xi ], i = 1, 2, . . . , n;2) S(x) ∈ C2 [a, b];3) S(xi ) = yi , i = 0, 1, 2, . . . , n.Для построения такого сплайна S(x) нужно определить 4n неизвестныхвеличин — по 4 коэффициента полинома третьей степени на каждомиз n штук подинтервалов [xi−1 , xi ], i = 1, 2, .
. . , n.В нашем распоряжении имеются3(n − 1) условий непрерывности самой функции S(x), её первойи второй производных во внутренних узлах x1 , x2 , . . . , xn−1 ;(n + 1) условие интерполяции S(xi ) = yi , i = 0, 1, 2, . . . , n.952.6. СплайныТаким образом, для определения 4n неизвестных величин мы имеемвсего (4n − 2) условий.
Два недостающих условия определяют различными способами, среди которых часто используются, к примеру, такие:(I) S ′ (a) = β0 , S ′ (b) = βn ,(II) S ′′ (a) = γ0 , S ′′ (b) = γn ,(III) S (k) (a) = S (k) (b), k = 0, 1, 2,где β0 , βn , γ0 , γn — данные вещественные числа. Условия (I) и (II)соответствуют заданию на концах интервала [a, b] первой или второйпроизводной искомого сплайна, а условие (III) — это условие периодического продолжения сплайна с интервала [a, b] на более широкоеподмножество вещественной оси.Мы рассмотрим подробно случай (II) задания краевых условий:S ′′ (a) = S ′′ (x0 ) = γ0 ,S ′′ (b) = S ′′ (xn ) = γn .Будем искать кусочно-полиномиальное представление нашего кубического сплайна в специальном виде, привязанном к узлам сплайна xi :пустьS(x) = αi−1 + βi−1 (x − xi−1 )+ γi−1(x − xi−1 )2(x − xi−1 )3+ ϑi−126(2.48)для x ∈ [xi−1 , xi ], i = 1, 2, .
. . , n. Ясно, что в такой форме представлениясплайна величины β0 и γ0 совпадают по смыслу с теми, что даются вусловиях (I)–(II) выше. Более того, из представления (2.48) вытекает,чтоS ′′ (xi−1 ) = γi−1 ,i = 1, 2, . . . , n.Вторая производная S ′′ (x) является линейной функцией на [xi−1 , xi ],и с учётом (2.48) должно бытьS ′′ (x) = γi−1 + ϑi−1 (x − xi−1 ),x ∈ [xi−1 , xi ].(2.49)С другой стороны, вид этой линейной функции полностью определяется двумя её крайними значениями γi−1 и γi на концах подинтервала962. Численные методы анализа[xi−1 , xi ]. Поэтому вместо (2.49) можно выписать более определённоепредставление: для x ∈ [xi−1 , xi ], i = 1, 2, .
. . , n,S ′′ (x) = γi−1xi − xx − xi−1+ γi,hihi(2.50)где hi = xi − xi−1 — шаг сетки. В этих формулах при i = 0 и i = nмы привлекаем известные нам из условия (II) значения γ0 и γn второйпроизводной S ′′ на левом и правом концах интервала [a, b]. Очевидно,что построенная таким образом функция S ′′ (x) удовлетворяет условию«непрерывной склейки» в узлах x1 , x2 , . . . , xn−1 , т. е.S ′′ (xi − 0) = S ′′ (xi + 0),i = 1, 2, .