Научная статья на тему 'Многомерный алгоритм линейной интерполяции со сглаживанием на симплексном покрытии области с произвольным распределением узлов нерегулярной сетки'

Многомерный алгоритм линейной интерполяции со сглаживанием на симплексном покрытии области с произвольным распределением узлов нерегулярной сетки Текст научной статьи по специальности «Математика»

CC BY
1431
153
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛИНЕЙНАЯ ИНТЕРПОЛЯЦИЯ

Аннотация научной статьи по математике, автор научной работы — Журавлев Андрей Викторович, Журавлев Виктор Михайлович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Многомерный алгоритм линейной интерполяции со сглаживанием на симплексном покрытии области с произвольным распределением узлов нерегулярной сетки»

УДК 519.652; 519.654; 517.518.85

А. В. Журавлев, В. М. Журавлев

МНОГОМЕРНЫЙ АЛГОРИТМ ЛИНЕЙНОЙ ИНТЕРПОЛЯЦИИ СО СГЛАЖИВАНИЕМ НА СИМПЛЕКСНОМ ПОКРЫТИИ ОБЛАСТИ С ПРОИЗВОЛЬНЫМ РАСПРЕДЕЛЕНИЕМ УЗЛОВ НЕРЕГУЛЯРНОЙ СЕТКИ

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

Введение

Как хорошо известно, многие практические проблемы обработки данных, связанных с нерегулярными данными в геофизике и физики космоса, а также и в других разделах исследований натурных объектов, требуют сведения этих нерегулярных данных на регулярную сетку. Обычно такие задачи решаются с помощью различного рода алгоритмов интерполяции. Наиболее простым алгоритмом интерполяции являются алгоритмы линейной интерполяции. Хотя алгоритмы линейной интерполяции являются достаточно грубым инструментом в смысле качества аппроксимации, тем не менее, они обладают рядом полезных свойств, например алгоритмической простотой и отсутствием «неоправданных» выбросов, отличающих их от способов интерполяции с помощью полиномов и сплайнов. Однако, как хорошо известно, линейная интерполяция на нерегулярной сетке в пространствах размерности, большей 1, оказывается неоднозначной. Этот эффект связан с неоднозначностью конструирования симплексного покрытия нерегулярной сетки. На каждом симплексе интерполяция является однозначной. Поэтому задача линейной интерполяции на нерегулярной сетке требует регуляризации построения симплексного покрытия и, как следствие, регуляризации линейной интерполяции в смысле получения однозначного алгоритма.

В литературе построение симплексного покрытия сетки часто называют триангуляцией. Известно достаточно много способов построения триангуляций, например триангуляций Делоне (см. [1] и библиографию там). В настоящей работе мы придерживаемся терминологии симплексного покрытия вместо триангуляции, поскольку в многомерном случае, на котором обобщаются результаты данной работы, элементы, аналогичные треугольникам на плоскости в геометрии, принято называть симплексами. Для целей данной работы нет необходимости строить какую-либо сложную триангуляцию, выделенную каким-либо условием типа условия Делоне [2]. Поэтому в работе применен простой алгоритм построения симплексного покрытия, полностью отвечающий целям задачи интерполяции. Сложность построения такого алгоритма на случайной сетке можно оценить как 0(N), где N - число точек сетки. Использование такого алгоритма позволяет регуляризировать задачу линейной интерполяции на многомерной нерегулярной сетке, сделав ее однозначной и удовлетворяющей определенным условиям оптимальности. Предлагаемый подход основан на процедуре естественного сглаживания, порож-

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

Алгоритм симплексного покрытия нерегулярной сетки в размерности О = 2

Пусть интерполяционная сетка N состоит из N >2 несовпадающих точек р, і = 1,N, с координатами (хг-,Уі), пронумерованных в определенном порядке, которые мы будем называть узлами сетки. Узлы сетки располагаются на плоскости случайным образом в ограниченной области Б. Будем обозначать симплекс с вершинами в точках р{, р, Р- сетки через а,- = а-, =

= а^- . Симплекс будем называть не вырожденным, если его площадь отлична от нуля. Если симплекс не вырожден, то его вершины не лежат на одной прямой р,, р, Р- .

Вспомогательные функции

Определение 1. Назовем симплексным покрытием сетки N совокупность симплексов, не имеющих общих внутренних точек, кроме, возможно, точек, принадлежащих граням симплексов. При этом каждая вершина любого симплекса совпадает с одним из узлов сетки, и, наоборот, любой узел сетки совпадает хотя бы с одной из вершин какого-либо симплекса покрытия.

Ясно, что любую совокупность узлов сетки можно проранжировать по расстоянию от одной любой прямой на плоскости. В качестве таких прямых для дальнейшего удобно рассматривать всевозможные прямые, проходящие через любые пары несовпадающих точек сетки. Такие прямые будем называть опорными и обозначать через I--, где і и - - номера точек сетки, через

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

"к ,і]

І А кі]

где

Чі] = ^

$і]

Ґ

хк Ук

хі Уі

хі V ] У]

площадь треугольника с вершинами в точках Р,, р, Ру , где р и Ру -

I 2 2"

опорные точки, а sij = */(х^ - Ху) + (У1 - у у) - расстояние между опорными

точками. Ранжирование с соответствующей нумерацией точек сетки при заданной опорной прямой проводится с помощью алгоритма сортировки по величине Ь, у или Д,у .

Введем следующую линейную функцию двух аргументов:

/

Ду (х, у ) = <1е1

V

Уі 1 х] У] 1

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

с координатами (х,у). Отсюда следует, например, что Дщ = Ду(х,,у,).

Кроме этого, на опорной прямой 1у функция Ду (х, у) обращается в ноль.

Это следует из свойств линейной функции и очевидных тождеств:

Ду(х, у у ) = Д {у(ху, уу ) = 0.

Обозначим через е;; знак функции Ду (х,, у,) в узле сетки к по отношению к паре опорных точек {, у :

е, ,у = 518п(Ду(х, ,у,)).

Из определения и свойств линейной функции следует, что условием того, что две точки Рт и Р, сетки лежат с одной стороны от опорной прямой, является равенство знаков е, у = ет у. И наоборот, для того чтобы

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

Построение симплексной цепи

Для того чтобы описать процесс построения покрытия сетки симплексами, без ограничения общности положим, что после сортировки по параметру Д^у опорные точки имеют номера 1 и 2. Это означает, что все остальные точки сетки лежат с одной стороны от опорной прямой 1у . Кроме этого, предположим, что точки сетки таковы, что выполнены строгие неравенства:

0 < Ь3,12 < Ь4,12 < - < ^,12.

Для этого случая построим симплексное покрытие по индукции. Первый шаг. Поскольку 0<Дз12, то существует невырожденный симплекс ^23.

Шаг с номером к. Пусть на шаге с номером , определен симплекс 0^-, где , - номер точки сетки, включенной в симплексное покрытие на

шаге , . В этом симплексе вершина с номером , противолежит грани симплекса с вершинами { и у , которые можно рассматривать как опорные для шага , . В качестве претендентов на следующий симплекс покрытия можно выбрать симплексы 0^+1),;' и 0(k+1)kj• . Условием отбора является их

непересечение с симплексом 0k{j . Условием этого является требование, состоящее в том, что точка , +1 лежит с другой стороны от опорной прямой 1,{ по отношению к точке у или с другой стороны от опорной прямой 1у по

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

Рис. 1 Проверка пересечения. (Пунктирная линия указывает отвергнутый выбор симплекса)

Для проверки выполнения этого требования достаточно сравнить є(к+1),кі с є],кі и є(к+1),к] с єі,к]. Любой из симплексов а(к+1)кі и а(к+1)к] , удовлетворяющий этому условию, может быть взят в качестве следующего симплекса покрытия. Далее процесс повторяется по индукции.

Определение 2. Построенное таким образом симплексное покрытие будем называть симплексной цепью или просто цепью. Поскольку число операций вычисления параметров очередного симплекса не зависит от его номера и не растет с его увеличением, то сложность данного алгоритма является величиной порядка О(^). Цепь будем обозначать через Л с соответствующим индексом. Число симплексов в цепи будем называть длиной цепи. В силу процедуры построения цепи, длина любой цепи будет равна в точности N - 2. При этом цепь может быть однозначно описана последовательностью симплексов а(а- , ,а = 1,2,..., N - 2, или последовательностью

га ]ака

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

Рис. 2 Примеры двух цепей из 14 симплексов на одной и той же сетке из 16 точек. (Концы базовых линий выделены кружками о)

Исключения и дополнения

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

Рис. 3 Пример ситуации, когда узлы сетки располагаются на одном и том же расстоянии от базовой прямой. (Вершины, лежащие на одном расстоянии, выделены кружком о , а базовая прямая - двойной линией)

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

Множество симплексных цепей

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

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

Проблема перечисления всех неодинаковых симплексных цепей легко решается в рамках предложенного способа их построения. Если исходить из других типов триангуляций, например Делоне, то это сделать сложнее из-за дополнительных условий, которые выделяют соответствующие алгоритмы. В рамках данной схемы цепь задается совокупностью пар опорных точек, которые используются для однозначного выбора цепи. Очевидно, выбирая различные пары узлов сетки в качестве начальных опорных точек начальной опорной прямой и вспомогательных опорных прямых при возникновении ситуации, когда часть узлов лежит на одном расстоянии от начальной опорной прямой, можно построить множество всех несовпадающих цепей, число которых конечно и равно М. Число М, вообще говоря, зависит от исходной интерполяционной сетки. Действительно, если сетка обладает определенной регулярностью, то часть цепей будет совпадать, хотя их опорные прямые будут различаться. Примером может служить регулярная сетка с равномерно расположенными узлами. Максимальное число же цепей в случае сетки общего положения можно оценить как число всех возможных несовпадающих пар опорных точек начальных опорных прямых. Это число равно числу сочетаний из N по 2:

М = С 2 = N1 = N (N -1)

^ N 2!(N - 2)! 2 .

Как уже было отмечено, для регулярной сетки реальное число цепей может быть меньшим, чем Мтах .

Линейная интерполяция со сглаживанием

Важным свойством симплексной цепи является то, что линейная интерполяция на ней является однозначной. Действительно, поскольку линейная интерполяция однозначна на каждом симплексе, то на фиксированной совокупности симплексов, образующих цепь, интерполяция оказывается также однозначной. Обозначим через Г(х, у,Л) интерполяционную функцию на множестве узлов, соответствующую заданной цепи Л . По определению, для любой цепи функция Г (х, у, Л) совпадает с заданными в узлах сетки

значениями Г, интерполируемой функции:

Г = Г (х,, у, , Л). (1)

Вид этой функции на симплексе Оу,, принадлежащем цепи Л , определяется известным образом:

Ггху0 ^ Ду(х,у) г I Д*(^у) г I Д(х,у) г -ггху)гг г(х,у,гт)^^~----------гг, + т—:-------гу + т—:-------г;, -Р(х,у)г г{jk.

Ду(х,, у,) Д{,(ху, у у) Д у(х;, у{)

Пронумеруем все цепи индексом а = 1,..., М . Тогда в качестве интерполяционной функции, удовлетворяющей условиям (1) , можно взять функцию

М

Г (х, у, М>)= ^М>аГ (х, у, Ла ), (2)

а=1

где числа ц?а удовлетворяют единственному требованию:

'^а =1. (3)

а=1

и введено обозначение w = {м\^2,---,м>м}. Действительно, согласно (3) в узлах сетки имеем

м м

р(хк . ук .w) = XwаР(хк . ук .Ла ) = Рк Xwа = рк.

а=1 а=1

Следовательно, в узлах сетки независимо от выборов весовых множителей wa значения функции Р(х, у, w) в точности равны значениям интерполируемой функции. Поэтому любая функция вида (2) является интерполяционной функцией на заданной сетке.

Свойство измельчения линейных элементов

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

Рис. 4 Объединение двух цепей, представленных на рисунке 2

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

Оптимальный выбор сглаживающих коэффициентов

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

1 Ь 1 Ь М

°2( *0 = — ¥0 - F ( X] , X] , ^))2= ЬГГ р0 - Т^ар ( X], X], Л а ))2.

М ]=1 а=1

Здесь (X ] ,У]) - координаты интерполяционной сетки, в узлы которой

2

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

М

= fa,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

а=1

где

i L M

fo=l ( xj y , л).

Lj=1a=1

Процедура сглаживания с минимизацией дисперсии может рассматриваться как один из вариантов регуляризации задачи о линейной интерполяции на нерегулярной сетке в размерности n = 2.

Процедура вычисления значений интерполяционной функции

Для завершения алгоритма вычисления значений интерполяционной функции остается указать алгоритм выделения симплексов каждой из цепей,

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

Во-первых, каждому симплексу в цепи отвечает интервал расстояний, отсчитываемых от опорной прямой, в котором лежат все точки симплекса (см. рис. 4). Таким образом, вместе с формированием цепи полезно хранить, кроме наборов номеров точек сетки, являющихся вершинами последовательности симплексов, и соответствующие им интервалы. Пусть а]^’а - симплекс с номером а, принадлежащий цепи Ла с номером а , имеющий три вершины с номерами I, ], к . Тогда необходимый интервал для данного симплекса определяется с помощью следующего соотношения:

1 а,а

т(а),а т(а),а тіп , ^мах

(4)

где

*м&а =тіп|Аі , 1 (хі , Уі X Аі , 1 (Ху, У]X Аі , 1 (хк, Ук)],

I а ’ а а' а 3 3 а’ а J

^х3=тах{Аі і(х-,уі^аі ,і(^,У]х аі і(хк,Ук)},

^ а а’ а ■' ■' а’ а

а 1а и 1а - номера опорных точек опорной прямой для цепи, соответствующей Ла.

Пусть для каждой цепи Ла построена последовательность интервалов {1а а }а=12 (4), тогда последовательность проверок может быть организована

следующим образом. Последовательно для каждой цепи проверка производится в два этапа.

Первый этап. С помощью любого алгоритма отыскивается симплекс, для которого заданная точка лежит в указанном для него интервале 1а а.

Таким алгоритмом может быть, например, алгоритм деления отрезка попалам.

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

нялись одновременно три условия:

(п(Ау(х,у)) = sign(Агy(Хк,Ук))) СЖ(п(Ау(х,у)) = 0),

(п(Аук(х,у)) = sign(Аук(х-,у-))) СЯ(п(Аук(х,у)) = 0),

(п(А (( х, у)) = sign(А ш (Ху, у у))) СЯ (sign(А ) ( х, у)) = 0).

Условия вида sign(Аki (х, у)) = 0 соответствуют попаданию точки Р(х, у) на границу симплекса. Если точка Р(х, у) не принадлежит ни одному симплексу, то она лежит вне данной цепи, и, следовательно, данную цепь следует исключить из суммы (2) для данной конкретной точки. Поэтому для данной точки весовые множители м>а должны быть переопределены, в силу выполнения требования (3).

Распространение алгоритма на пространства И” произвольной размерности п

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

Пусть размерность эвклидова пространства Кп, в которой производится интерполяция, равна п. Как и в двумерном случае, будем рассматривать сетки N, состоящие из конечного числа N > п несовпадающих точек

р, I = 1,..., N , заданных своими координатами гг- = (х1, х2, ..., х^). Для

?п

гу и «

пространства К симплекс максимальной размерности X. ¿ ¿ имеет

1 г2,..., гп+1

ровно п +1 вершину с номерами точек ¿1,¿2,...,г„+х, гранями которого являются симплексы Хп-1 ■ с п вершинами. Симплексы Хп ■ ■ будем

¿1, ¿2,..., ¿п 1, ¿2,..., ¿п+1

называть п -мерными симплексами.

Определение 2. Назовем симплексным покрытием сетки N в Кп совокупность п -мерных симплексов, не имеющих общих точек, кроме, возможно, общих граней - симплексов размерности п -1, совокупность вершин которых совпадает в точности с совокупностью узлов сетки. То есть каждая вершина любого симплекса совпадает с одним из узлов сетки, и, наоборот, любой узел сетки совпадает хотя бы с одной из вершин какого либо симплекса покрытия.

По аналогии с двумерным случаем для каждого п -1 симплекса

гп-1

X • ■ с п вершинами из сетки N определим следующую линейную

1, ¿2,..., ¿п

функцию:

А; ¿ ¿ (х1, х2,..., хп) = ёе1

¿1, ¿2,..., ¿п

' х1 2 х ■ хп 1Л

х1 х12 • хп ■ х1 1

х2 х2 • ' х2 1

х) х2 • ■ хп 1

х1 V п х 2 . п ■ хп 1,

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

Дк, 1, ¿2, Іп

Lk, ^ ¿2, in у .

1 ¿2, •••, ln

где

Ak, ¿1, ¿2, ..., in = A1, ¿2,..., in (x1, x2, ■•■, xk )• a \ i2 i - n - 1-мерный объем опорного симплекса. Используя данную

функцию расстояния, можно проранжировать совокупность точек сетки по расстоянию от опорного n -1 -мерного симплекса. Далее, следуя, в целом, алгоритму, описанному для двумерного случая, можно увидеть последовательность симплексов Xn . . .г-л, j = 1,..., N - n , образующих покрытие сет-

i1, ¿2,..., in; (j)

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

Интерполяционная функция F(x\, x2,..., xn, Л) на n-мерной симплек-

Т V^n

сной цепи L на каждом из n-мерных симплексов X. • - этой цепи

1l2, •", in+1

определяется формулой

n+l Ai i i i i (x1, x2, ..., xn)

F(x , x2, ...,xn, Xn- . ) = V 112, - ^ lk+l, - ln+lK-----------------' Fk,

i, h, —, i„xi ¿-1 Л • k

k=1 k, 1, i2, —, ik -1, ik+1, —, in+1

VP(x1, x2, —, xn)eZni i .

i1, i2, —, in+1

При этих условиях на любой фиксированной n -мерной симплексной цепи L линейная интерполяционная функция F(x1, x2, ..., xn, Л) в точке с

координатами xk, x2, ..., xrn любой вершины сетки N будет задана однозначно формулой

Fk = F (xk, xf,•••, xk ,Л). (5)

Максимальное число возможных цепей можно определить как число всевозможных опорных симплексов размерности n -1 на сетке, содержащей N точек, ранжирование точек относительно которых приводит к различной последовательности симплексов. Это число M ограничено числом сочетаний из N по n и равно

N!

(N - n)!n!

Следуя аналогии с двумерным случаем, определим сглаженную интерполяционную функцию с помощью формулы

м

Р(х1, х2,..., хп, м>) = ^м>аР(х1, х2,..., хп, Ла), (6)

а=1

где м>а - весовые множители, удовлетворяющие условию (3). Как и в двумерном случае, в узлах сетки будет выполняться условие:

м м

р(4 , х2, . „, х1, ^ = Х™аР(х1, х2, 4 , Ла ) = Рк а = Рк.

а=1 а=1

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

Определение принадлежности произвольной точки Р(х1, х2, ..., хп) заданному п -мерному симплексу £п ■ ■ производится с помощью того же

112, ••', гп+1

алгоритма проверки знаков, что и в двумерном случае, но для всех п +1 вершины симплекса. Как и в двумерном случае, знаки всех вершин должны совпадать.

Заключение

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

Список литературы

1. Ильман, В. М. Триангуляция плоских областей по нерегулярным сетям точек /

B. М. Ильман // Алгоритмы и программы. - Вып. 10 (88). - М., 1988. - С. 3-35.

2. Скворцов, А. В. Обзор алгоритмов построения триангуляции Делоне / А. В. Скворцов // Вычислительные методы и программирование. - 2002. - Т. 3. -

C. 14-39.

i Надоели баннеры? Вы всегда можете отключить рекламу.