Чтение онлайн

на главную

Жанры

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

9.2.2. Пример применения пакета geom3d

Учитывая сказанное, ограничимся парой примеров применения этого пакета. Один из примеров представлен на рис. 9.6. На нем представлена сфера внутри «малого иглообразного» додекадрона (SinallStelletedDodecahedron).

Рис. 9.6. Иллюстрация применения пакета geom3d

Еще один пример представлен на рис. 9.7. Здесь представлено еще две объемные фигуры, расположенные друг в друге.

Рис. 9.7.

Еще один пример применения пакета geom3d

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

9.3. Пакет функций теории графов networks

9.3.1. Набор функций пакета networks

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

> with(networks);

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

9.3.2. Примеры применения пакета networks

Рассмотрим некоторые избранные функции этого пакета, которые наиболее часто используются при работе с графами. Функции создания графов:

new — создает пустой граф (без ребер и узлов);

void — создает пустой граф (без ребер);

duplicate — создает копию графа;

complete — создает полный граф;

random — возвращает случайный граф;

Petersen — создает граф Петерсена.

Функции модификации графов:

addedges — добавляет в граф ребро;

addvertex — добавляет в граф вершины;

connect — соединяет одни заданные вершины с другими;

delete — удаляет из графа ребро или вершину.

Функции контроля структуры графов:

draw — рисует граф;

edges — возвращает список ребер графа;

vertices — возвращает список узлов графа;

show — возвращает таблицу с полной информацией о графе;

ends — возвращает имена вершин графа;

head — возвращает имя вершины, которая является головой ребер;

tail — возвращает имя вершины, которая является хвостом ребер;

incidence — возвращает матрицу инцидентности;

adjacency — возвращает матрицу смежности;

eweight — возвращает веса ребер;

vweight — возвращает веса вершин;

isplanar — упрощает граф, удаляя циклы и повторяющиеся ребра, и проверяет его на планарность (возвращает true, если граф оказался планарным и false в противном случае).

Функции с типовыми возможностями графов:

flow — находит максимальный поток в сети от одной заданной вершины к другой;

shortpathtree — находит кратчайший путь в графе с помощью алгоритма Дейкстры.

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

На рис. 9.8 показан пример создания графа, имеющего четыре вершины, и графа Петерсона с выводом их графиков графической функцией draw.

Рис. 9.8. Построение графов

На рис. 9.9 показан другой пример работы с графами — построение графа функцией complete и затем его преобразование путем удаления части вершин. Исходный и преобразованный графы строятся функцией draw.

Рис. 9.9. Преобразование графа удалением части вершин

В третьем примере (рис. 9.10) граф формируется по частям — вначале задается пустой граф функцией new, а затем с помощью функций addvertex и addedge в него включаются вершины и ребра. Далее функция connect соединяет вершину a с вершиной с, делая граф замкнутым. Функция draw строит сформированный таким образом граф, а функции head и tail используются для выявления «голов» и «хвостов» графа.

Рис. 9.10. Формирование графа и определение его «голов» и «хвостов»

В четвертом примере, представленном на рис. 9.11, показано создание графа G2 (его изображение было приведено на рис. 9.9) с вычислением для этого графа максимального потока от вершины 1. Обратите внимание, что в параметрах функции flow, использованной для этого, заданы две переменные: eset — принимает значение множества с ребрами, по которым проходит максимальный поток, и comp — принимает значение множества, в котором содержатся вершины, по которым проходит максимальный поток. Значения этих переменных выведены в области вывода. В заключительной части этого примера показано применение функции shortpathtree, ищущей наиболее короткий путь от вершины 1 до других вершин.

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

9.3.3. Получение информации о графе

Приведенный ниже еще один пример иллюстрирует работу функции show, выдающей таблицу с полной информацией о графе, созданном функцией complete:

> restart:with(networks):G2:=complete(4):

> show(G2);

table([_Counttrees = _Counttrees, _Vertices = {1,2,3,4}, _Vweight = table(sparse, []), _Edges = {e1,e2,e3,e4,e5,e6}, _Bicomponents = _Bicomponents, _Emaxname = 6, _Head = table([]), _Tail = table([]), _EdgeIndex = table(symmetric, [(3,4)={e6},(2,3)={e4},(1,4)={е3},(1,2)={е1},(1,3)={е2},(2,4)={e5}]), _Neighbors = table([1={2,3,4},2={1,3,4},3={1,2,4},4={1,2,3}]), _Econnectivity = _Econnectivity, Ends = table([e4={2,3},e1={1,2},{1,4},e6={3,4},e5={2,4},e2={1,3}]), _Countcuts = _Countcuts, _Eweight = table([e4=1, e1=1, e3=1, e6=1, e5=1, e2=1]), _Status = {SIMPLE, COMPLETE}])
Поделиться:
Популярные книги

Мастер 6

Чащин Валерий
6. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 6

Отборная бабушка

Мягкова Нинель
Фантастика:
фэнтези
юмористическая фантастика
7.74
рейтинг книги
Отборная бабушка

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Дядя самых честных правил 6

«Котобус» Горбов Александр
6. Дядя самых честных правил
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Дядя самых честных правил 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Мимик нового Мира 10

Северный Лис
9. Мимик!
Фантастика:
юмористическое фэнтези
альтернативная история
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 10

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Законы Рода. Том 5

Flow Ascold
5. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 5

Его темная целительница

Крааш Кира
2. Любовь среди туманов
Фантастика:
фэнтези
5.75
рейтинг книги
Его темная целительница

Совок 2

Агарев Вадим
2. Совок
Фантастика:
альтернативная история
7.61
рейтинг книги
Совок 2

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II