научная статья по теме О ПОСТРОЕНИИ ИНТЕРПОЛЯЦИОННЫХ СЕТОЧНЫХ ПОВЕРХНОСТЕЙ Математика

Текст научной статьи на тему «О ПОСТРОЕНИИ ИНТЕРПОЛЯЦИОННЫХ СЕТОЧНЫХ ПОВЕРХНОСТЕЙ»

ЖУРНАЛ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И МАТЕМАТИЧЕСКОЙ ФИЗИКИ, 2007, том 47, < 1, с. 11-15

УДК 519.652

О ПОСТРОЕНИИ ИНТЕРПОЛЯЦИОННЫХ СЕТОЧНЫХ ПОВЕРХНОСТЕЙ

© 2007 г. |В. А. Люлька, И. Е. Михайлов, Б. Н. Тшмнев

(119991 Москва, ул. Вавилова, 40, ВЦ РАН) e-mail: mikhi@ccas.ru Поступила в редакцию 03.04.2006 г. Переработанный вариант 03.08.2006 г.

Предлагается способ построения двумерных интерполяционных сеточных функций, который обладает большей гибкостью по сравнению с классическим двумерным кубическим сплайном, так как позволяет проводить через фиксированные опорные точки различные интерполяционные поверхности за счет изменения некоторых параметров. Он не отличается громоздкостью в реализации и безусловно пригоден для практического применения. Библ. 3. Фиг. 4.

Ключевые слова: интерполяционные сеточные поверхности, интерполяционные кубические полиномы.

1. В настоящее время одним из самых употребительных методов решения задачи интерполяции является метод интерполирования кубическими сплайнами, который в одномерном случае можно описать так: в плоскости Ош требуется построить кривую и = и(0, проходящую через заданные опорные точки (Т7, и), 7 = 0, N, имеющую такую вторую производную

и"(0 = V», и(Т) = и, и(Т + 1) = и + 1, 7 = 0, N - 1, (1)

что функция в промежутках между опорными узлами Ti и Ti + 1 распределена по закону, задаваемому решением краевой задачи

у"(0 = 0, ч(Т) = М, ЧТ + 1) = Мг + 1, 7 = 0, N -1. (2)

Если задать, например, естественные граничные условия М0 = Мдг = 0, то остальные числа М7 легко находятся из условий стыковки односторонних первых производных в опорных точках Ti

и'(Т, - 0) = и'(Т, + 0), 7 = 1, N - 1, (3)

с помощью метода прогонки (см., например, [1]). Построенная с помощью этих чисел интерполяционная кривая представляет собой на каждом отрезке [Т7, Т7 + 1] кубический многочлен.

В [2], [3] был предложен обобщенный метод кубических сплайнов, в котором вместо уравнений (1), (2) использовались уравнения

Ь1и = -[р(0иТ + д(0и = -V, (4)

Z2v = -КОуГ + ^ = g(t), (5)

где р(0, д(0, КО, -(0, g(t) - некоторые заданные функции, выбор которых может определяться спецификой задачи интерполяции. При непостоянных функциях р(0, д(0, КО, -(0, g(0 аналитического решения уравнений (4), (5), как правило, не существует, поэтому интерполяционная кривая, определяемая этими уравнениями, находилась численно на расчетной сетке {к}, к = 0, п, мелкость которой выбиралась из соображений точности интерполяции е. При этом отдельно вычислять числа М7 было не нужно. Для обеспечения прохождения интерполяционной кривой через опорные точки использовался следующий итерационный процесс.

Полагалось, что границы расчетной и опорной сеток совпадают и расчетная и опорная сетки пересекаются в узлах опорной сетки. Задавалось начальное приближение и°^к) = 0, к = 0, п. Пусть а - номер итерации, иа(^к) - решение задачи на итерации а. Переход на (а + 1)-итерацию состоял из следующих шагов.

Шаг 1. В опорных точках Т , 7 = 1, N - 1, вычислялись значение Е7 = и7 - иа(Т7) и сеточная функция V = (Е }, где ь'1 - разностный оператор, аппроксимирующий оператор Ь1. В случае равномерной опорной сетки

' г, + г

<г-1+ t

РI "--V-- Ег-1-

t г -1+ t Л, ( t г + t.г +i

г+11 Е+1

( tt - tt -J )2

■- ?(^)Ег. (6)

L ( ^ ) =

На концах полагалось V0 = Vv = 0.

Шаг 2. На расчетной сетке методом прогонки решалась система разностных уравнений l2 (v(tk)) = g(tk), v(T) = V . Здесь L\ - разностный оператор, аппроксимирующий оператор L2. В случае равномерной расчетной сетки он аналогичен (6).

Шаг 3. На расчетной сетке методом прогонки решалась система разностных уравнений

L\ (U (tk)} = -v(tk).

Шаг 4. Вычислялись значения искомой сеточной функции на (а + 1)-итерации: иа + 1(tk) = = ua(tk) + U (tk).

Шаги 1-4 повторялись до тех пор, пока не выполнялось неравенство

<е-

i = 0

Доказательство сходимости итерационного процесса при p(t) = const, q(t) = const, r(t) = 1, s(t) = = g(t) = 0 приведено в [2].

Предложенный способ построения интерполяционных сеточных функций обладает большей гибкостью по сравнению с кубическим сплайном, так как позволяет проводить через фиксированные опорные точки различные интерполяционные кривые за счет выбора функций p(t), q(t), r(t), s(t), g(t), причем эти функции можно брать разными на разных промежутках [Ti, T + J.

В настоящей работе этот метод распространяется на двумерный случай. При этом p(t) и q(t) берутся переменными, а r(t) = 1, s(t) = g(t) = 0.

2. Пусть на сетке {X, у}, 7 = 0, М,у = 0, N, задана сеточная функция/Х7, у). Сетку {X, у} будем называть опорной.

Требуется восполнить значения функции/х, у) в узлах сетки {хк, у}, к = 0, т , I = 0, п , т.е. построить сеточную функцию и(хк, у), совпадающую в опорных точках с функцией /Х7, у) с точностью е. Сетку {хк, у} будем называть расчетной.

Далее будем полагать следующее:

границы расчетной и опорной сеток совпадают, т.е. Х0 = х0, ХМ = хт, У0 = у0, УЪ1 = уп;

расчетная и опорная сетки пересекаются в узлах опорной сетки, то есть У7,у Зк*, I* : Х7 = хк*,

у = у/*;

расчетная сетка имеет равномерный по х и у шаг кх и ку соответственно.

Для решения поставленной задачи организуем следующий итерационный процесс.

Зададим нулевое приближение и°(хк, у) = 0.

Пусть а - номер итерации, иа(хк, у) - решение задачи на итерации а.

Шаг 1. Для каждого фиксированного значения у = у мы имеем одномерную задачу по х и с использованием четырех шагов итерационного процесса (см. п. 1) (положив г = х) находим сеточную функцию и (хк, у), к = 0, т ,у = 0, N.

Шаг 2. Для каждого фиксированного значения х = хк мы имеем одномерную задачу по у и с использованием четырех шагов итерационного процесса (см. п. 1) (положив г = у) находим сеточную функцию и (хк, у), к = 0, т , I = 0, п . При этом, вообще говоря, функциир(г), ^(г), г(г), s(t), g(г) могут быть взяты другими по сравнению с шагом 1.

N

О ПОСТРОЕНИИ ИНТЕРПОЛЯЦИОННЫХ СЕТОЧНЫХ ПОВЕРХНОСТЕЙ Шаг 3. Вычисляются значения искомой сеточной функции на (а + 1)-итерации:

ua + \xh y) = ua(xh y) + u (xk, y).

Условием окончания итерационного процесса является достижение заданной точности 8 в опорных точках:

max |f(X,, Y})-ua(Xt, Yj)| < 8.

i = 0, M j = 0~N

Полученная в результате итерационного процесса сеточная функция ua(xk, y) представляет собой искомую двумерную поверхность.

Достоинством предлагаемого метода является возможность изменения вида интерполяционной поверхности за счет выбора различных функций p(t), q(t), r(t), s(t), g(t) на разных промежутках [T , T, + J.

3. Были проведены многочисленные расчеты для исследования влияния функций p(x, y) > 0 и q(x, y) > 0 на скорость сходимости итерационного процесса и вид интерполяционной поверхности. При этом найти пример расходимости итерационного процесса не удалось. Как показали численные эксперименты, скорость сходимости итерационного процесса увеличивается при увеличении maxq (x, y) и уменьшении maxp (x, y). Вид интерполяционной поверхности почти не за-

x, y x, y

висит от вида функции q(x, y) и сильно зависит отp(x, y), при maxp (x, y) = 1 получается сплайно-

x, y

подобная поверхность, а при малом maxp (x, y) - близкая к линейной интерполяционной поверх-

x, y

ности.

В качестве примера рассмотрим следующую сеточную функцию:/(X, У), I = 0, 10 ,у = 0, 10 , заданную в единичном квадрате плоскости Оху. На линиях х = у = 0, х = у = 0.3, х = у = 0.7, х = у = 1 значения функции равны 0. Внутри квадрата, ограниченного линиями х = у = 0.4, х = у = 0.6, значения функции равны 1. В остальных точках значения функции равны 8т(тсх)8т(лу). Вид функ-

z

1.0Н

Фиг. 1.

2 1.0-

Фиг. 2.

2 1.0

0.8 0.6

Фиг. 3.

ции изображен на фиг. 1. Для наглядности соседние точки сеточной функции на всех рисунках соединены прямыми.

Вычисления производились на расчетной сетке размером т х п = 100 х 100 с точностью е = 10-5 при д(г) = г(г) = 1, ¿(г) = g(г) = 0 в формулах (4), (5).

О ПОСТРОЕНИИ ИНТЕРПОЛЯЦИОННЫХ СЕТОЧНЫХ ПОВЕРХНОСТЕЙ 15

z

Фиг. 4.

На фиг. 2 изображена поверхность, полученная с помощью двумерных кубических сплайнов. На фиг. 3 изображена рассчитанная поверхность, когда p(x, y) = 10-6(1 + xy). Заданная точность была достигнута за 3 итерации.

На фиг. 4 изображена рассчитанная поверхность, когда внутри квадратной "площадки" p(x, y) = = 10-6(1 + xy), а вне ее p(x, y) = 10-3(1 + xy). Заданная точность была достигнута за 32 итерации.

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

СПИСОК ЛИТЕРАТУРЫ

1. Стечкин С.Б., Субботин Ю.Н. Сплайны в вычислительной математике. М.: Наука, 1976.

2. Люлька В.А., Романко A.B. Построение интерполяционных кривых методом сеток // Ж. вычисл. ма-тем. и матем. физ. 1994. Т. 34. < 6. С. 827-836.

3. Люлька В.А., Михайлов И.Е. О построении интерполяционных кривых // Ж. вычисл. матем. и матем. физ. 2003. Т. 43. < 10. С. 1448-1450.

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком