Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4сем / Вычислительные методы алгебры (4 семестр)ЭУМК Численные методы.pdf
Скачиваний:
712
Добавлен:
01.03.2016
Размер:
7.59 Mб
Скачать

Часть III. Теоретические материалы Глава 5. Приближение функций 5.4. Приближение сплайнами

Меню 5.4.4. Интерполяционный бикубический сплайн Вверх Назад Вперёд Пред. След. Указатель Помощь Экран

5.4.4. Интерполяционный бикубический сплайн

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

Рассмотрим сейчас наиболее простой случай, когда (для двух независимых переменных) областью

задания является прямоугольник, а разбиение также осуществляется на прямоугольники.

 

 

 

 

Итак, пусть в прямоугольной области Ω = [ , ] × [ ; ] введена сетка линий

= ×

, где

 

 

 

 

= { = , =

 

 

, = 0 < 1 < · · · < = }

 

 

 

 

 

 

 

1,

;

 

 

 

 

 

 

 

 

= { = , =

 

, = 0 < 1 < · · · < = }

 

 

 

 

 

 

1,

,

 

 

 

 

 

 

делящая область на прямоугольные ячейки Ω = {( , ) : [ −1; ] ,

[ −1; ]} , =

 

;

1,

=

1,

.

 

 

 

 

 

 

 

Тогда по аналогии со случаем одной независимой переменной можно дать следующее

Определение. Назовем функцию , ( , ) полиномиальным сплайном степени по переменной и степенипо переменной с линиями склейки на сетке , если:

1.На каждой ячейке Ω , ( , ) является многочленом степени по переменной и степени по переменной , т.е.

 

 

 

 

 

 

 

 

 

 

∑∑

( − ) ( − ) ,

 

 

 

 

 

 

 

, ( , ) =

 

= 1, ;

= 1, ;

(5.107)

=0

=0

 

 

 

 

 

 

 

 

2.

, ( , ) −1, −1 (Ω) .

 

 

 

 

 

 

 

 

(5.108)

Часть III. Теоретические материалы Глава 5. Приближение функций 5.4. Приближение сплайнами

Меню 5.4.4. Интерполяционный бикубический сплайн Вверх Назад Вперёд Пред. След. Указатель Помощь Экран

Если к отмеченным двум условиям добавить требование, чтобы в узлах разбиения значения сплайна, ( , ) совпадали со значениями приближаемой функции (в этом случае к аргументам сплайна будем

добавлять еще и

и писать , ( ; , )), т.е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.109)

 

= 0, ;

= 0, ,

 

, ( ; , ) = ( , ) = ,

то мы получим интерполяционный сплайн степени по переменной и степени по переменной . Рассмотрим сейчас более подробно алгоритм построения интерполяционного бикубического сплайна

( = = 3).

Очевидно, что, как и в случае одной независимой переменной условий (5.108), (5.109) недостаточно для однозначного определения сплайна 3,3 ( ; , ). Поэтому в качестве дополнительных условий будем брать условия типа 1 (точнее, их двумерный аналог):

 

2

3,3

 

= 0,

(5.110)

 

2

 

Γ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где – внешняя нормаль к границе Γ области Ω.

 

 

 

Принципиально построение ничем не отличается от одномерного случая. Вспомним, что для вычисления одномерной сплайн-функции в любой точке по формулам типа (5.92) необходимо знать значения самой функции и ее производных второго порядка в узловых точках, а для того чтобы найти эти вторые производные, нужно один раз решить линейную алгебраическую систему с трехдиагональной матрицей (типа (5.93) с дополнительными условиями). Какие же предварительные вычисления нужно проделать, чтобы потом по явным формулам вычислять функцию в любой точке в двумерном случае?

Чтобы ответить на этот вопрос, прибегнем к уже известной нам технологии повторного интерполирования. Запишем, считая параметром, интерполяционный кубический сплайн по переменной (верхние

Часть III. Теоретические материалы Глава 5. Приближение функций 5.4. Приближение сплайнами

Меню 5.4.4. Интерполяционный бикубический сплайн Вверх Назад Вперёд Пред. След. Указатель Помощь Экран

индексы в обозначении 3,3 ( ; , ) сплайна далее будем опускать), пользуясь для этих целей формулами типа (5.92):

 

 

 

2

( ;

 

, ) (

 

)3

2

(

;

, ) (

 

 

)3

 

 

 

 

 

 

 

 

 

( ; , ) =

 

 

 

 

2 −1

 

 

 

 

+

 

 

 

−1

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

+ ( ( ; , ) −

 

 

 

 

6

)

 

 

 

(

 

6

 

 

 

 

 

)

 

 

 

 

 

 

2

 

6

−1

+

( ; −1, ) −

 

2 −1

6

,

(5.111)

 

 

 

 

 

2

( ;

, ) 2

 

 

 

 

 

 

 

 

 

 

 

2

( ;

, ) 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[ −1; ] ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 1, .

 

Чтобы пользоваться этой формулой, мы должны, очевидно, уметь вычислять значения

( ; , ) и для

всех значений =

0,

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку эти выражения являются функциями только одной переменной, то для их нахождения можно воспользоваться интерполяционными кубическими сплайнами по переменной , а именно:

 

2

( ; , −1) ( − )3

 

2

( ; , ) ( − −1)3

 

 

 

 

 

 

 

 

 

( ; , ) =

 

 

2

 

 

 

6

 

+

 

 

2

 

6

+

 

 

 

 

 

 

 

 

 

+ ( ( ; , ) −

2

( ; , ) 2

)

−1

+ ( ( ; , −1) −

2

 

( ; , −1)

 

2

)

,

(5.112)

 

2

 

 

6

 

 

 

 

2

 

6

 

 

[ −1; ] ,

 

 

 

= 1, .

Часть III. Теоретические материалы Глава 5. Приближение функций 5.4. Приближение сплайнами

Меню 5.4.4. Интерполяционный бикубический сплайн Вверх Назад Вперёд Пред. След. Указатель Помощь Экран

Учитывая, что здесь

( ; , ) = ( , ) = , для определения величин := =

набор систем типа (5.94) (всего их будет ( + 1)):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* , −1 + 2 ,

+ * , +1 = 6 ( ; −1, , +1) ,

 

 

 

 

 

 

 

 

 

 

 

 

= 1, − 1 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,0 = , = 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* = +

+1 ; * = + +1 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

( ; , )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сплайн, аналогичный (5.112), построим для функции

 

 

 

 

2

 

 

:

 

 

 

 

 

 

 

 

 

2 ( ; , )

 

4 ( ; , −1) ( − )3

 

 

 

4 ( ; , ) ( − −1)3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

=

 

 

 

 

 

22

 

 

 

6

+

 

 

22

 

 

6

 

+

 

 

 

 

 

 

 

 

(4.8)

 

 

 

 

 

2 ( ; , )

 

 

 

2

( ; , ) 2

 

 

−1

2

( ; , −1)

 

 

2

( ; , −1) 2

 

 

 

 

+ (

 

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

+ (

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

 

,

 

 

 

2

 

 

 

 

 

 

2

 

 

 

6

 

 

 

 

2

 

 

 

 

 

 

2

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[ −1; ] ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 1, .

2 ( ;2 , ) имеем

(5.113)

(5.114)

При этом для нахождения величин , := 4 (2 ; 2, ) необходимо решить системы

∂ ∂

* , −1 + 2 , + * , +1

= 6

( ; 2−1

 

+1

 

, = 1, − 1 ,

 

 

 

2

;

, ,

 

)

 

 

 

,0 = , = 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.115)

= 0,

 

 

 

 

 

 

 

 

 

общим числом ( + 1), правыми частями которых являются разделенные разности второго порядка от второй производной по переменной сплайна в узлах разбиения . Чтобы их найти, достаточно решить

системы (здесь , :=

 

2

 

)

 

2

 

( ; , )

 

Часть III. Теоретические материалы Глава 5. Приближение функций 5.4. Приближение сплайнами

Меню 5.4.4. Интерполяционный бикубический сплайн Вверх Назад Вперёд Пред. След. Указатель Помощь Экран

 

−1, + 2 ,

+ +1, = 6 ( −1, , +1; ) ,

 

 

 

 

= 1, − 1 ,

 

 

 

 

 

 

 

 

 

 

 

(5.116)

 

0, = , = 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= + +1 ;

= + +1 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

кубического сплайна на прямоугольной сетке:

 

 

 

 

 

 

 

1.

Решаем

( + 1)

линейную

систему

(5.116),

из

которых

находим

величины

,

=

 

 

2

( ; , )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

, = 0,

; = 0,

;

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

2.

Решаем

( + 1)

линейную

систему

(5.115),

из

которых

находим

величины

,

=

 

 

 

4 ( ;

, )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

, =

0, ; =

0, ; В результате выполнения этих двух этапов построен сплайн

 

 

 

 

2 2

 

 

 

(5.114).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

Решаем

( + 1)

линейную

систему

(5.113),

из

которых

находим

величины

,

=

=2 ( ;2 , ) , = 0, ; = 0, ; После этого построен сплайн (5.112).

4.Значение интерполяционного бикубического сплайна в точке ( , ) [ −1; ] × [ −1; ] вычисляем по формуле (5.111) с использованием формул (5.112) и (5.114).

Таким образом, прежде чем приступить к расчету функции ( ; , ) в интересующих нас точках

необходимо решить один раз ( + 1) + ( + 1) + ( + 1) = 2 + + 3 линейных систем, а для расчета3,3 ( ; , ) в одной точке области нужно пять раз выполнить расчеты по формулам, определяющим сплайн: дважды – по формулам (5.112) (при = и = −1), дважды – по формулам (5.114) (при = и = −1) и один раз – по формулам (5.111).

Замечание 5.11. Подставив (5.112) и (5.114) в (5.111), можно получить явное полиномиальное выражение для 3,3 ( ; , ) в каждой ячейке разбиения, но для хранения коэффициентов многочлена потребуется в четыре раза больше памяти (хотя при описанном выше способе организации работы мы примерно в четыре раза больше вычисляем).

Часть III. Теоретические материалы Глава 5. Приближение функций 5.4. Приближение сплайнами

Меню 5.4.4. Интерполяционный бикубический сплайн Вверх Назад Вперёд Пред. След. Указатель Помощь Экран

Замечание 5.12. При построении бикубического сплайна можно поменять порядок приближения по независимым переменным местами. Тогда нужно будет решить + 2 + 3 систем, но итоговый результат не изменится.

Описанный алгоритм может быть обобщен на многомерные области типа параллелепипеда. Распространение алгоритма на другие типы краевых областей производится очевидным образом. Кро-

ме того, для интерполяционных бикубических сплайнов оказывается справедливым экстремальное свойство, аналогичное рассмотренному нами в одномерном случае, а также имеет место оценка погрешности (в случае, если ( , ) 4,4 (Ω))

+ ( , )

+ 3,3 ( ; , )

= ( 4− + 4− )

,

, {0, 1, 2, 3} .

∂ ∂

∂ ∂