среда, 13 февраля 2013 г.

построить выпуклую оболочку множества matlab

Для построения выпуклой оболочки в MATLAB служит функция convhull. Ее входными аргументами являются вектора со координатами абсцисс и ординат точек, а выходными аргументами являются номера точек, образующих вершины выпуклой оболочки. В следующем примере генерируется набор из 100 точек с координатами, изменяющимися случайным образом от 0 до 1, затем при помощи функции convhull строится выпуклая оболочка. Номера точек, являющихся вершинами выпуклой оболочки, заносятся в массив kvert. Затем вершины выпуклой оболочки выделяются круглыми маркерами и рисуется сама выпуклая оболочка

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

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

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

Выпуклая оболочка conv(P) множества точек, принадлежащих n-мерному пространству Rn, определяется как наименьшее выпуклое множество, содержащее все эти точки. Выпуклое множество, порожденное точками (pi)i=1,2,...,k, определяется как множество точек:

Нахождение выпуклой оболочки множества точек и ее визуализация

площади пересечения четырехугольников (функция rectint).

нахождение площади многоугольника (функция polyarea);

Решать такие задачи, как:

Для заданной точки определить содержащий ее треугольник из триангуляции Делоне (функция tsearch), или сиплекс в n-мерном случае (функция tsearchn).

Для заданной точки определять ближайшую точку к ней из заданного множества точек на плоскости (функция dsearch).

Визуализировать выпуклую оболочку, триангуляцию Делоне и диаграмму Вороного (функции triplot, trimesh, trisurf, tetramesh).

Строить диаграмму Вороного для множества точек на плоскости, в трехмерном и n-мерном пространстве (функции voronoi, voronoin).

Строить триангуляцию Делоне для множества точек на плоскости, в трехмерном и n-мерном пространстве ( функции delaunay, delaunay3, delaunayn).

Строить выпуклую оболочку множества точек на плоскости, в трехмерном и n-мерном пространстве (функции convhull, convhulln).

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

В MATLAB входят функции для работы с разбросанными данными, т.е. например в двумерном случае это данные zi, заданные в точках (xi, yi)i=1,2,...,k. Эти функции позволяют решать следующие задачи.

Работа с разбросанными данными

Обзор средств MATLAB и ToolBox'ов для приближения данных

Обзор средств MATLAB и ToolBox'ов для приближения данных

Комментариев нет:

Отправить комментарий