Построение интерполяционных сплайнов
3.2.1. Общая постановка задачи. Решение методом неопределённых коэффициентов
Рассмотрим решение одномерной задачи. Обозначим величины параметра t в узловых точках `P0, `P1,...,`Рn через t0, t1,...,tn. При этом t0 <t1<...<tn. На каждом i -ом сегменте интерполирования [ti-1, ti ] (i=1,...,n) искомый кусочно-полиномиальный сплайн задается отдельным многочленом Si(t) таким образом, чтобы: 1) в узловых точках ti-1, ti многочлен Si(t) совпадал со зна-чениями yi-1, yi; 2) в тех точках ti-1, ti, которые являются внутренними, у многочлена S i (t) совпадали производные от 1 -го до m -го порядков с аналогичными производными соседних много-членов. В математической форме выражение искомой кусоч-но-полиномиальной функции ` P(t) можно представить в виде: `P(t)=`Si(t) при ti-1 £ t £ ti; i=1,2,…,n – условие кусочности сплайна` P(t); `Si(ti-1)=`Pi-1;`Si(ti)=`Pi, i=1,2,…,n – условия прохождения через заданные точки; `Si-j(ti)=`Si+1-j(ti), j=1,…,m, i=1,…,n-1 - условия на глад-кость во внутренних точках. (3.6) Поскольку методика интерполирования одинакова по всем координатам (x,y,z), то рассмотрим интерполирование только по одной координате х. Соответствующие сплайны обозначим нижним индексом х. Постановка задачи имеет вид: x(t)=Sх i(t); ti-1 £ t £ ti, i=1,…,n; 2. Sх i (ti-1)=xi-1; S х i (ti)=xi , i=1,…,n; 3. Sх i j(ti)=Sх (i+1) j(ti), j=1,…,m, i=1,…,n-1. (3.7) Число геометрических условий связи, налагаемых на искомую кусочно-полиномиальную функцию x(t) системой (3.7), складывается из 2n (во второй строке) и m(n-1) (в третьей). Суммарное их число равно: Ss = 2n + m(n - 1) = n(m + 2) - m. При интерполировании сплайнами используются мно-гочлены одинаковой степени k. Поскольку каждый из них имеет (k+1) неизвестный коэффициент, то общее число неизвестных коэффициентов равно: S K = n(k+1). Для того чтобы решение существовало и было един-ственным, необходимо выполнение условия S S = S K. Для этого:
1) принимают степень многочленов сплайна k = m+1; 2) дополнительно вводят m условий связи, которые называют краевыми условиями, поскольку обычно их задают в конечных точках ` P0, ` Pn, исходя из специфики решаемой задачи. Наиболее распространенным случаем является ин-терполяция при m = 2 (гладкость 2 -ой степени). В этом случае необходимо использовать кубические сплайны (k = 3) и добавить 2 дополнительных краевых условия на производные. Чаще всего налагают следующие виды крае-вых условий. 1) S1 1(t0)=f 1(t0), Sn 1(tn)=f 1(tn) - условия на первые производные. Применяют в том случае, когда сплайн в концевых точках необходимо гладко соединить с некоторой кривой f(t). 2) S1 11(t0)=f 11(t0), Sn 11(tn)=f 11(tn) - условия на вторые производные. Обычно они используются для уменьшения осцилляции сплайна. 3) S1 1(t0) = Sn 1(tn); S1 11(t0) = Sn 11(tn) - условия для периодических функций, заключающиеся в том, что в конечных точках интервала равны не только значения, но и две первых производных сплайна. После определения степени сплайна k и задания m краевых условий по полученному полному набору гео-метрических условий определяют коэффициенты поли-номов, входящих в сплайн. В общем случае для этого можно, как и у многочленов, использовать метод неопре-делённых коэффициентов, в котором все неизвестные определяются из одной линейной системы уравнений. Бо-лее оптимальный метод для построения кубических сплай-нов будет рассмотрен ниже. Допустим, каждый i –тый участок сплайна имеет вид Sxi(t)=Ci0+Ci1t+...+Ciktk . Каждое из условий второй строки системы (3.7) даёт по одному уравнению: Ci0 + Ci1 ti-1 +... + Cik ti-1 k = xi-1 ; Ci0 + Ci1 ti +...+ Cik ti k = xi . Рассмотрим равенство первых производных во внутренних точках Sхi 1(ti)=Sх(i+1)1(ti) в третьей строке системы (3.7). После взятия первых производных по t в Sxi и Sx(i+1) и подстановки t = ti получим уравнение
Ci1+2Ci2ti+…+kCiktik-1 = C(i+1)1+2C(i+1)2ti+…+kC(i+1)ktik-1. Перенося все слагаемые, содержащие неизвестные коэффициенты, в левую часть, получим: Ci1+2Ci2ti+…+kCiktik-1-C(i+1)1-2C(i+1)2ti-…-kC(i+1)ktik-1=0. При j = 2 из условия Sxi11(ti) = Sx(i+1)11(ti) после а) определения вторых производных, б) подстановки в них узловых точек и в) переноса всех слагаемых, содержащих неизвестные (коэффициенты полдиномов сплайна),получим: 2Ci2+…+k (k-1) Ciktik-2- 2C(i+1)2-…-k(k-1)C(i+1)k tik-2 = 0. Для более высоких степеней производных действия аналогичны. После объединения всех полученных уравнений полу-чаем линейную систему вида A`C=`Х, в которой: - неизвестный вектор `C задаёт полный набор коэффи-циентов, входящих в многочлены сплайна, - матрица А содержит сомножители при коэффициентах, с которыми они входят в уравнения, ненулевые значения в ней располагаются на главной, а также соседних с ней диагоналях, - свободный вектор Х содержит заданные узловые значения многочленов сплайна, а также значения производных из краевых условий. В общем случае решение системы (вектор `C коэф-фициентов, входящих в многочлены сплайна) может быть найдено любыми общими методами, например, по методу Гаусса. Однако с учётом диагонального вида матрицы А системы на практике используют более оптимальные специальные методы решения. Пример. Построить сплайн P(t), проходящий через три точки (х(t0)=x0 , x(t1)=x1, x(t2)=x2 ), который во внутренней точке x(t1)=x1 имел бы гладкость 2 -ой степени (Рис.3.1). x S1(t) S2(t) x1 x2 x0 0 t0 t1 t2 t Рис.3.1 Решение. Интервала два, поэтому искомые многочлены на них обозначим S1(t), S2(t). Зададим их следующим образом: S1(t)=C01+C11t+C21t2+C31t3; S2(t)=C02+C12t+C22t2+C32t3. Условия I рода имеют вид: S1(t0)=x0; S1(t1)=x1; S2(t1)=x1; S2(t2)=x2. Условия II рода при m=2 и n=3 будут следующими: S¢1 (t1)= S¢2 (t1); S¢¢1 (t1)= S¢¢2 (t1). Поскольку n(k+1) - n(m+2) = m = 2, то для одно-значности решения задачи необходимо задать еще два крае-вых условия. Зададим оба условия в начальной точке: S¢1(t0)=0; S¢¢1 (t0)=0. Подставляя в уравнения многочленов значения пара-метра, из условий I рода получаем: C01+C11t0+C21t20+C31t30=x0; C01+C11t1+C21t21+C31t31=x1 ; C02+C12t1+C22t21+C32t31=x1 ; C02+C12t2+C22t22+C32t32=x2 . Дифференцируя многочлены по параметру и подстав-ляя в первые и вторые производные t = t1, из условий II рода получаем: C11 + 2C21t1 + 3C31t12 - C12 - 2C22t1 - 3C32t12 = 0;
2C21 + 6C31t1 - 2C22 - 6C32t1 = 0. Из краевых условий получаем: C11 + 2C21t0 + 3C31t0 2 = 0; 2C21 + 6C31t0 = 0. Объединим все полученные уравнения в систему ви-да A`C=`Х, где Коэффициенты обоих многочленов сплайна находят-ся одновременно при решении данной системы: `C = A –1` Y. 3.2.2. Кубические интерполяционные сплайны
Как уже отмечалось, на практике наибольшее приме-нение нашли сплайны нечётной степени. При k=1 интерпо-ляционные сплайны совпадают с локальными, поскольку отсутствуют условия на производные во внутренних точках. В случае k=3 локальные сплайны более точно приближают исходную функцию (с точностью до первых производных), однако имеют гладкость в узлах только первой степени. Интерполяционные кубические сплайны менее точно при-ближают функцию (только её значения), но имеют глад-кость в узлах степени 2. Также они обладают следующим важным свойством. Если наложить на сплайн краевые усло-вия S¢¢ (х0)= S¢¢ (хn)=0, то он будет минимизировать функ-ционал который можно интерпретировать как потенциальную энергию изгиба упругого стержня постоянного сечения, закреплённого в узлах интерполяции. Также рассмотренный функционал оценивает осцилляцию интерполирующей кривой. Рассмотрим построение интерполяционного сплайна. В предыдущем разделе дано общее решение по методу не-определённых коэффициентов, однако в данном случае задачу можно решить намного проще с использованием кубических сплайнов Эрмита (локальных). Данные сплайны имеют гладкость степени 1 и у них помимо значений уi во всех узлах xi заданы также величины первых производных у¢i. Поскольку у интерполяционного сплайна на первые производные никаких исходных условий не накладывается, то непрерывность второй производной во внутренних узлах и выполнение краевых условий можно обеспечить за счёт варьирования именно этих величин. Зафиксируем внутренний узел xi (i=1,..., n-1). Усло-вие непрерывности второй производной в нём принимает вид: S¢¢i (xi) = S¢¢i+1 (xi). Переходя к безразмерным норми-рованным переменным, представим его в форме: h2i S¢¢i (1) = h2i+1 S¢¢i+1 (0), hi = xi - xi -1; hi+1 = xi+1 - xi. Найдем выражения для производных. Подставляя в формулу (3.5.а) полиномы Эрмита j1i (t) - j4i (t),, получим:
S(i+1)(t) = уi (1-3t2+2t3)+ уi+1 (3t2 –2t3)+ hi+1 у¢i (t - 2t2+ t3)+ hi+1 у¢i+1 (- t 2 + t 3 ). Отсюда следует: S¢¢(i+1)(t)= уi (-6+12t) /h2i+1 + уi+1 (6 –12t) / h2i+1+ у¢i (- 4+ 6t) / hi+1+ у¢i+1 (- 2 + 6t ) / hi+1, S¢¢(i+1)(0)= -6уi / h2i+1 + 6 уi+1 / h2i+1 - 4 у¢i / hi+1 - 2 у¢i+1 / hi+1. Аналогично рассматриваем участок [xi-1, xi]: Si (t)= уi-1 (1-3t2+2t3)+ уi (3t2 –2t3)+ hi у¢i-1 (t - 2t2+ t3)+ hi у¢i (- t 2 + t 3 ), S¢¢i(t)= уi-1 (-6+12t) / h2i+ уi (6 –12t) / h2i + у¢i-1 (- 4+ 6t) / hi + у¢i (- 2 + 6t ) / hi, S¢¢i (1)= 6уi-1 / h2i - 6 уi / h2i + 2 у¢i-1 / hi+ 4 у¢i / hi. Приравнивая вторые производные, группируя слага-емые и сократив на 2, получим: у¢i-1 /hi + 2(1/hi +1/hi+1)у¢i + у¢i+1 /hi+1 = 3[- уi-1 /h2i + (1/h2i -1/h2i+1 )уi+ уi+1 /h2i+1]. Домножая обе части выражения на hi+1 и введя коэф-фициент mi = h i/hi+1, представим уравнение связи величин у¢i-1 , у¢i, у¢i+1 (i=1,..., n-1) в виде: mi у¢i -1 +2(1+mi)у¢i + у¢i+1 = bi; (i=1,..., n-1) (3.8) где bi =3[mi (уi - уi-1) / hi +(уi+1 - уi) / hi+1 ] - постоянный коэффициент. Рассмотрим краевые условия 1) (п.3.2.1), при кото-рых заданы условия на первые производные в начальной и конечной точках сплайна: S1 1(t0)=f 1(х0), Sn 1(tn)=f 1(хn). Их учёт приводит к тому, что в уравнениях для узлов x1 и xn вместо у¢0 , у¢n необходимо подставить, соответственно, заданные величины f 1(х0) и f 1(хn). После переноса соответствующих слагаемых в правую часть эти уравнения примут вид: 2(1+m1)у¢1 + у¢2 = b1 - m1 f 1(х0), m n-1 у¢n -2 + 2(1+m n-1 )у¢n-1 = bn-1 - f 1(хn). (3.9) Краевые условия 2) (п.3.2.1) обычно для уменьшения осцилляции сплайна применяют в виде: S111(х0)=Sn 11(хn)=0. Раскрывая их, после сокращения на 2 получим следующие дополнительные уравнения: -3у0 / h21 + 3 у1 / h21 -2 у¢0 / h1 - у¢1 / h1 = 0, 3уn -1 / h2n - 3 уn / h2n + у¢n-1 / hn + 2 у¢n / hn = 0. Для приведения системы уравнений к однотипному виду выразим из этих уравнений, соответственно, у¢0 че-рез у¢1, а у¢n - через у¢n-1: у¢0 = -1,5 у0 / h1 + 1,5 у1 / h1 - 0,5 у¢1 , у¢n = -1,5 уn -1 / hn + 1,5 уn / hn -0,5 у¢n-1 . (3.10) Подставляя найденные выражения, соответственно, в уравнения для узлов х1 и хn-1, получим их в следующей форме: (2+1,5m1)у¢1 + у¢2 = b1 +1,5m1 (у1 - у0 ) / h1 , m n-1 у¢n -2 +(1,5+2m n-1 )у¢n-1 =bn-1+1,5 (уn-1 -уn)/hn. (3.11) Очевидно, в обоих рассмотренных видах краевых условий уравнения (3.9),(3.11) для узлов х1 и хn-1 качест-венно одинаковы. Их можно представить как: С1 у¢1 + у¢2 = b¢1 , m n-1 у¢n -2 + С n-1 у¢n-1 = b¢n-1 , где для условий 1-го вида: С1 =2(1+m1), b¢1 = b1 - m1 f 1(х0), С n-1 =2(1+mn -1), b¢n-1 = bn-1 - f 1(хn), для условий 2-го вида: С1 =2+1,5m1, b¢1 = b1 + 1,5m1 (у1 - у0 ) / h1 , С n-1 =1,5+2mn -1, b¢n-1 = bn-1 +1,5 (уn-1 - уn) / hn. В итоге система уравнений для определения значе-ний (у¢1 , у¢2,..., у¢n-1) примет вид: С1 у¢1 + у¢2 = b¢1 ,
mi у¢i -1 + 2(1+mi)у¢i + у¢i+1 = bi; (i=2,..., n-2) (3.12 а) m n-1 у¢n -2 + С n-1 у¢n-1 = b¢n-1 , В векторной форме: А`Y¢ =`B, (3.12 б) где Матрица системы трёхдиагональна, поэтому для упро-щения её решения применяют специальную модификацию метода Гаусса – метод прогонки. Он также имеет прямой и обратный ход. При прямой прогонке для всех величин у¢i (i=1,..., n-2) путём последовательного исключения находят их ли-нейные выражения через у¢i+1 вида: у¢i = ai у¢i+1 + bi. (3.13) При обратной прогонке: 1) из совместного решения линейного выражения вида (3.13) для у¢n-2 и последнего уравнения системы (3.12) находят величину у¢n-1: у¢n-1 =(b¢n-1 - mn-1 bn-1) / (cn-1 + mn-1 an-1), 2) последовательно подставляя у¢n-1, у¢n-2,... в уравнения (3.13), определяют все искомые величины у¢i. Значения у¢0, у¢n на краях в случае условий 1-го рода являются нулевыми: у¢0=у¢n =0. При условиях 2-го рода их рассчитывают по формулам (3.10). Метод прогонки требует выполнения минимального числа операций. Он устойчив к ошибкам вычислений, по-скольку их влияние быстро затухает в процессе расчётов. Рассмотренные выше кубические интерполяцион-ные сплайны, имеющие гладкость 2-й степени, называют сплайнами Фергюсона или сплайнами Шёнберга. Расчёт их значений производится так же, как и у сплайнов Эрмита по формулам (3.4 а,б). Двухмерные сплайны Фергюсона, предназначенные для интерполирования поверхностей на прямоугольной сетке (xi, уj) (i = 0,1,..., n; j = 0,1,..., m), представляют собой такие же квадратичные формы, как и двухмерные сплайны Эрмита (3.5). Требуемые значения первых производных zxij, zуij в узлах сетки можно найти последовательно мето-дом одномерной прогонки – сначала zxij при фиксирован-ных значениях по у, затем - zуij при фиксированных зна-чениях по х.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|