Построение алгебраических кривых класса knot
Построение алгебраических кривых класса knot
Функция plot_knot позволяет строить одну или несколько алгебраических кривых — узлов. Пример построения целого семейства узлов показан.
Для лучшего обзора таких кривых рекомендуется воспользоваться возможностью вращения трехмерных фигур мышью для уточнения угла, под которым рассматривается фигура — в нашем случае семейство алгебраических кривых. Построение выполняется довольно медленно — даже на компьютере с процессором Pentium III 600 МГц оно занимает около минуты.
Новая функция Maple 15 plot_real_curve
В пакет расширения algcurves добавлена новая функция импликативной графики plot_real_curve. Она строит алгебраическую кривую для действительной части полиномиального выражения и записывается в виде:
plot_real_curve (p, х, у, opt)
Функция имеет следующие параметры:
- р — полиномиальное выражение переменных х и у задающее алгебраическую кривую;
- opt — параметр, который может быть записан в форме приведенных ниже выражений:
- showArrows = true или false — задает показ стрелок касательных или перпендикулярных к точкам вдоль кривой (по умолчанию false);
- arrowIntervalStep = posint — задает число точек, пропускаемых до показа очередной пары стрелок (по умолчанию 10);
- arrowScaleFactor = positive — задает масштаб для длины стрелок (по умолчанию 1);
- colorOfTangentVector = с — задает цвет касательных стрелок, по умолчанию заданный как зеленный, COLORCRGB,0,1,0);
- colorOfNormalVector = с — задает цвет перпендикулярных стрелок, по умолчанию заданный как красный, COLOR (RGB ,1,0,0);
- colorOf Curve = с — задает цвет кривой, по умолчанию заданный как синий, COLOR(RGB, 0, 0, 1);
- eventTolerance = positive — задает погрешность при представлении сингулярных точек (по умолчанию 0,01);
- NewtonTolerance = positive — задает погрешность при выполнении ньютоновских итераций в ходе построений.
Функция plot_real_curve вычисляет и строит алгебраическую кривую по точкам и может (при использовании параметра opt) строить стрелки-векторы по касательным и перпендикулярным направлениям к каждой точке или к части точек. Возможно задание разных цветов для кривой и стрелок. Применение функции plot_real_curve показывает.
При задании построения стрелок касательные стрелки строятся по внешней части кривой и указывают направление ее построения. Перпендикулярные стрелки строятся по внутренней части кривой. Нетрудно заметить, что острие стрелки указывается только для длинных стрелок. Короткие стрелки острия не имеют и отображаются как отрезки прямых линий. Построение стрелок оказывается не вполне точным, если разнятся масштабы графика по горизонтали и вертикали, что можно подметить при внимательном рассмотрении графика, сверху.
Пакет функций теории графов networks
Набор функций пакета networks
Графы широко используются при решении многих прикладных и фундаментальных задач. Пользователей, занятых решением таких задач, наверняка порадует пакет networks, содержащий весьма представительный набор функций:
> with(networks);
Warning, the names diameter, draw and vertices have been redefined[acycpoly, addedge, addvertex, adjacency, allpairs, ancestor, arrivals,bicomponents, charpoly, chrompoly, complement, complete, components, connect, connectivity, contract, countcuts, counttrees, cube,cycle, cyclebase, daughter, degreeseq, delete, departures, diameter,dinic, djspantree, dodecahedron, draw, duplicate, edges, ends,eweight,flow,flowpoly,fundcyc, getlabel, girth, graph, graphical,gsimp,gunion,
head, icosahedron, incidence, incident, indegree, induce, isplanar,maxdegree, mincut, mindegree, neighbors, new, octahedron, outdegree,path,petersen, random, rank, rankpoly, shortpathtree, show,shrink, span, spanpoly, spantree, tail, tetrahedron, tuttepoly, vdegree,vertices, void, vweight]
Объективности ради надо отметить, что в Maple 15 из этого пакета удалено несколько второстепенных функций, которые были в версии Maple V R5. Теория графов используется достаточно широко даже при решении прикладных задач — например, для вычисления оптимальных маршрутов движения железнодорожных составов, наиболее целесообразной раскройки тканей и листов из различных материалов и т. д.
Примеры применения пакета networks
Рассмотрим некоторые избранные функции этого пакета, которые наиболее часто используются при работе с графами. Детали синтаксиса функций можно найти в справочной базе данных Maple 15.
Функции создания графов:
- new — создает пустой граф (без ребер и узлов);
- void — создает пустой граф (без ребер);
- duplicate — создает копию графа;
- complete — создает полный граф;
- random — возвращает случайный граф;
- petersen — создает граф Петерсена. Функции модификации графов:
- addedges — добавляет в граф ребро;
- addvertex — добавляет в граф вершины;
- connect — соединяет одни заданные вершины с другими;
- delete — удаляет из графа ребро или вершину. Функции контроля структуры графов:
- draw — рисует граф;
- edges — возвращает список ребер графа;
- vertices — возвращает список узлов графа;
- show — возвращает таблицу с полной информацией о графе; .
- ends — возвращает имена вершин графа;
- head — возвращает имя вершины, которая является головой ребер;
- tail — возвращает ими вершины, которая является хвостом ребер;
- incidence — возвращает матрицу инцидентности;
- adjacency — возвращает матрицу смежности;
- eweight — возвращает веса ребер;
- weight — возвращает веса вершин;
- isplanar — упрощает граф, удаляя циклы и повторяющиеся ребра, и проверяет его на планарность (возвращает true, если граф оказался планарным, и false — в противном случае).
Функции с типовыми возможностями графов:
- flow — находит максимальный поток в сети от одной заданной вершины к другой;
- shortpathtree — находит кратчайший путь в графе с помощью алгоритма Дейкстры.
Каждая из этих команд имеет одну или несколько синтаксических форм записи. Их можно уточнить с помощью справочной системы. С ее помощью можно ознакомиться и с назначением других функций этого обширного пакета. Проиллюстрируем его применение на нескольких типичных примерах.
показан пример создания Графа, имеющего четыре вершины, и графа Петерсона с выводом их графиков графической функцией draw.
показан другой пример работы с графами — построение графа функцией complete и затем его преобразование путем удаления части вершин. Исходный и преобразованный графы строятся функцией draw.
В третьем примере граф формируется по частям — вначале задается пустой граф функцией new, а затем с помощью функций addvertex и addedge в него включаются вершины и ребра. Далее функция connect соединяет вершину а с вершиной с, делая граф замкнутым. Функция draw строит сформированный таким образом граф, а функции head и tail используются для выявления «голов» и «хвостов» графа.