Библиографическое описание:

Шустов В. В. Многомерная интерполяция сеточной вектор-функции // Молодой ученый. — 2010. — №8. Т. 1. — С. 17-20.

Рассмотрена задача  интерполяции функции, заданной на регулярной сетке, для случая большого числа переменных. Предложена формула для  интерполирующей функции в случае произвольного числа переменных n. Исследованы свойства интерполирующей функции и показано ее соответствие случаю одномерной и двумерной интерполяции. Приведен пример использования предложенного алгоритма интерполяции к определению  скосов потока в промежуточных точках и режимах обтекания.

Ключевые слова: многомерная интерполяция, регулярная сетка, сеточная вектор-функция, свойства интерполирующей функции.

The problem of interpolation function given on a regular grid, for the case of a large number of variables is considered. A formula for interpolation function in the case of an arbitrary number of variables n is given. The properties of the interpolating function are investigated and show its compliance with the occasion of the one-dimensional and two-dimensional interpolation. An example of using the proposed interpolation algorithm to determine downwash at intermediate points and flow regimes is given.

Keywords: multivariate interpolation, a regular grid, vector function, the properties of the interpolation function

 

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

У автора такая потребность возникла при создании математической модели, описывающей поле скоростей  неоднородного потока, полученное в экспериментальных исследованиях физической модели при продувке ее в аэродинамической трубе. В результате эксперимента определяются величины продольного e и бокового s скосов  потока лишь в точках прямоугольной пространственной сетки координат и для некоторых режимов испытаний, характеризуемых дискретным набором углов атаки a модели  и чисел Маха M набегающего потока.

 Из  необходимости вычисления параметров потока e и s в произвольной пространственной точке R = (x,y,z) и для произвольного режима обтекания, характеризуемого числами a иM, возникает задача интерполяции сеточной функции многих переменных. Число компонент m вектор-функции F в данном случае равно двум: e, s, число переменных nравно пяти: x, y ,z, a, M.

Сложность задачи состоит в большом числе переменных, по которым необходимо осуществлять интерполяцию.

Для случая одной переменной разработаны множество методов интерполяции, основанных, например, на использовании многочленов Лагранжа [1]-[3], сплайн-функций [5]-[6], кривых Безье и B-сплайнов [7].

Задача многомерной, в частности, двумерной интерполяции рассматривались в работах [4], [8], [9], там же отмечены трудности, возникающие при решении этой задачи [4, С. 47], [8, С. 181].

Метод, сводящий многомерную интерполяцию к последовательности одномерных, возможен, но трудоемкость его  реализации резко возрастает с увеличением числа переменных n = 2, 3, 4 и т.д.

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

Формула и алгоритм интерполяции. Рассмотрим задачу интерполяции в линейной постановке для случая произвольного числа переменных n и произвольного числа компонент m вектор-функции.

Пусть в n–мерной области Dn Ì En введена регулярная пространственная сетка узлов C

являющаяся декартовым произведением одномерных сеток Cj и разбивающая область Dn на элементарные ячейки . Индекс вверху j означает номер координаты, индекс внизу i означает номер узла.

В области  Dn определена сеточная вектор-функция Fc(xc) с размерностью m, т.е. заданы значения m компонент функции Fc в узлах xc:

Необходимо построить интерполяционную функцию F(x), где x = {x1, x2,…, xn} – вектор аргументов, которая  в узлах сетки совпадала бы с сеточной функцией, т.е. удовлетворяла бы равенству:

.

 

Для построения такой функции используем локальный подход: значение функции в точке x, попадающее в ячейку сетки , т.е. удовлетворяющие условиям:

,                                                                     (1)

определяется значениями сеточной функции Fc(xc) только в вершинах этой ячейки.

Таким образом, сначала необходимо определить в какую элементарную ячейку попадает точка x, затем уже определить значение интерполяционной функции F по заданным значениям сеточной функции в вершинах ячейки. При небольшом числе узлов проще и быстрее использовать прямой перебор узловых точек до выполнения условий (1).

Образуем величины

.

Требуемую интерполирующую функцию F(x), определенную для каждой ячейки сетки , построим следующим образом:

                                           (2)

Легко заметить, что построенная таким образом функция F(x) в области   Dn, являющейся объединением ячеек , обладает следующими свойствами.

1. Функция определена во всей области Dn.

2. Функция совпадает с сеточной функцией Fc(xc)  в узлах сетки C.

3. Функция непрерывна во всей области Dn.

4.Функция является кусочно-полиноминальной степени n относительно совокупности переменных x1, x2,…xn.

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

6. Функция линейна на границах каждой ячейки.

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

Выпишем явные формулы для одномерной, двумерной, трехмерной интерполяции, записав выражения для относительных координат t1, t2,  t3 и формулу (2) для конкретных значений числа аргументов n.

      ,      ,     .

n = 1:    F = F0 (1–t1)  + F1 t1                                                                                  (3)

n = 2:    FF00(1–t1)(1–t2)  F10 t1(1–t2)   F01(1–t1)t2 F11t1t2                    (4)

n = 3:    F = F000(1–t1)(1–t2)(1–t3)+ F100t1(1–t2)(1–t3)+ F010(1–t1)t2(1–t3)+ F110t1t2(1– t3)+

               +  F001(1–t1)(1–t2)t3+ F101t1(1–t2)t3    + F011(1–t1)t2t3  + F111t1t2t3

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

 

Рис.1 Схема интерполяции для n = 2

Формулы (3), (4) для интерполирующей функции для случая одномерной (n = 1) и двумерной (n = 1) интерполяции соответствуют формулам, приведенным в [10, С. 60]

Из формулы (2) видно, что число слагаемых N экспоненциально увеличивается с увеличением числа аргументов n. Формула (2) содержит n знаков суммирования по индексам переменных, каждый их которых принимает два значения. В соответствии с этим число слагаемых N в формуле (2) для интерполяционной функции связано с числом переменных n формулой

N = 2n.

Так, например, для вычисления интерполирующей функции для случая 10 переменных необходимо использовать более 1000 слагаемых (2n = 1024). Но вовсе необязательно использовать в этом случае явное выражение для интерполяционной функции вида (3) или (4), при написании которой для больших n можно легко ошибиться. При составлении программ, реализующих алгоритм интерполяции, достаточно использовать общую формулу (2) и n вложенных циклов, использующих переменные jk, k = 1,2,…, n. Кроме того, при вычислении всех m компонент вектор-функции F(x)  в точке x можно использовать один раз вычисленное значение векторов относительных координат     и .

 

Пример использования. Описанный алгоритм многомерной интерполяции использован для определения скосов потока e и s в заданной точке R = (x,y,z) и для заданного режима обтекания, характеризуемого параметрами a и M.

В качестве примера на рис. 2  приведены величины скоса потока e для узловых и промежуточных значений аргументов при числе M = 0.6 .

Рис.2 Зависимости скоса потока e для узловых и промежуточных значений x и углов атаки a.

 

Заключение. В рамках локального подхода предложена формула для интерполяции многомерной сеточной функции для произвольного числа переменных n, в явном виде выражающая ее значения и, соответственно,  не требующая решения каких-либо уравнений. Интерполирующая функция обладает рядом необходимых свойств и может быть использована для задач интерполяции в различных приложениях.

 

Литература:

1. Р.В. Хемминг Численные методы для научных работников и инженеров М. Физматлит, 1972. – 400 c.

2. Б.П. Демидович, И.А. Марон Основы вычислительной математики. – М.: Наука, 1976.

3. Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков Численные методы. – М.: Наука, 1987.

4. Н.Н. Калиткин Численные методы. – М.: Наука, 1978– 512 c.

5. Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее приложения. – М.: Мир, 1972. – 318 c.

6. Завьялов Ю.С., Квасов Б.И., Мирошниченко В.Л. Методы сплайн-функций. – М.: Наука, 1980. – 352 c.

7. Компьютерная геометрия: Учеб. пособие для студ. вузов. Н.Н. Голованов, Д.П. Ильютко, Г.В. Носовский и др. – М.: Изд. центр “Академия”, 2006 – 312 c.

8. И.С. Березин, Н.П. Жидков Методы вычислений. Т. 1 – М.: Физматлит, 1962. – 464 с.

9. Г.И. Марчук Методы вычислительной математики. – М.: Наука, 1989.

10. Математика и САПР: В 2-х кн. Кн.1. Пер. с франц. / Шенен П., Коснар М., Гардан И. и др. – М.: Мир, 1988. – 204 с.

 

 

Обсуждение

Социальные комментарии Cackle