Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М_Г3_68_88.doc
Скачиваний:
12
Добавлен:
24.04.2019
Размер:
185 Кб
Скачать
☆

3.2. Построение интерполяционных сплайнов

3.2.1. Общая постановка задачи. Решение методом неопределённых коэффициентов

Рассмотрим решение одномерной задачи. Обозначим величины параметра t в узловых точках P0, P1,...,Рn через t0, t1, ... ,tn. При этом t0 <t1< ...<tn. На каждом i-ом сегменте интерполирования [ti-1, ti ] (i=1,...,n) искомый кусочно-полиномиальный сплайн задается отдельным многочленом Si(t) таким образом, чтобы:

74

  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), то рассмотрим интерполирование только по одной координате х. Соответствующие сплайны обозначим нижним индексом х. Постановка задачи имеет вид:

  1. 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) (в третьей). Суммарное их число равно:

s = 2n + m(n - 1) = n(m + 2) - m.

При интерполировании сплайнами используются мно-гочлены одинаковой степени k. Поскольку каждый из них имеет (k+1) неизвестный коэффициент, то общее число неизвестных коэффициентов равно:

K = n(k+1).

75

Для того чтобы решение существовало и было един-ственным, необходимо выполнение условия 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 краевых условий по полученному полному набору гео-метрических условий определяют коэффициенты поли-номов, входящих в сплайн. В общем случае для этого можно, как и у многочленов, использовать метод неопре-делённых коэффициентов, в котором все неизвестные определяются из одной линейной системы уравнений. Бо-лее оптимальный метод для построения кубических сплай-нов будет рассмотрен ниже.

76

Допустим, каждый 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 .

Для более высоких степеней производных действия аналогичны.

После объединения всех полученных уравнений полу-чаем линейную систему вида

AC=Х,

в которой:

- неизвестный векторC задаёт полный набор коэффи-циентов, входящих в многочлены сплайна,

- матрица А содержит сомножители при коэффициентах, с которыми они входят в уравнения, ненулевые значения в ней располагаются на главной, а также соседних с ней диагоналях,

77

- свободный вектор Х содержит заданные узловые значения многочленов сплайна, а также значения производных из краевых условий.

В общем случае решение системы (вектор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 будут следующими:

S1 (t1)= S2 (t1); S1 (t1)= S2 (t1).

Поскольку n(k+1) - n(m+2) = m = 2 , то для одно-значности решения задачи необходимо задать еще два крае-вых условия. Зададим оба условия в начальной точке:

78

S1(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.

Из краевых условий получаем:

C 11 + 2C21t0 + 3C31t0 2 = 0;

2C21 + 6C31t0 = 0.

Объединим все полученные уравнения в систему ви-да AC=Х, где

Коэффициенты обоих многочленов сплайна находят-ся одновременно при решении данной системы:

C = A –1 Y.

79

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]