Получение информации о конкретном пакете
Получение информации о конкретном пакете С помощью команды: >?name_package; можно получить информацию о любом пакете расширения и найти список входящих в него функций. Названия пакетов были приведены выше. Для обращения к функциям того или иного пакета используется его полная загрузка командой: >with(package):[:] Знак: блокирует вывод списка функций пакета а знак; указывает вывести этот список. Если вам необходима какая-то одна функция пакета или небольшая их часть, то не стоит загружать пакет целиком. Это может привести к избыточным затратам памяти компьютера и даже нарушить нормальную работу некоторых функций — следует помнить, что нередко пакеты переопределяют некоторые функции ядра. Для загрузки избранных функций используется команда with в форме >with(package. fl. f2....): или >with(package, [fl. f2....]): При этом загружаются функции fl, f2,... из пакета с именем packages. Может показаться, что было бы лучше иметь все функции в ядре. Однако создание ядра, реализующего все функции системы (в версии Maple 7 их около 3000), неразумно. Такое ядро занимало бы много места в памяти, имело большое время загрузки и затрудняло бы поиск конкретных нужных функций. Поэтому ядро Maple 7 содержит определенный (и довольно обширный) минимум хорошо апробированных функций, а большинство других функций размещается в стандартной библиотеке и пакетах. Они готовятся на Maple-языке программирования и могут легко модернизироваться. К тому же пакеты могут модифицироваться (что не очень желательно) или дополняться (что приветствуется) пользователями. Некоторой платой за это является необходимость вызова того или иного пакета или функции перед их применением. В этом разделе описана структура пакетов Maple 7, имеющих математическую направленность. Ограниченный объем книги и огромное число функций в пакетах не позволяют остановиться даже на описании синтаксических правил применения всех функций этих пакетов. Очевидно, что в этом нет и особого смысла — подавляющее большинство функций представляет малый интерес для конкретного пользователя. Те же, кто ими интересуются, могут легко восполнить пробелы в их описании с помощью справочной системы. Однако в описании состава каждого пакета в данном уроке упомянуты имена всех без исключения его функций. Это позволяет оценить полноту того или иного пакета и без труда вызвать справочные страницы для любой функции. Описание функций пакетов в уроке дано выборочно, при этом предпочтение отдавалось тем функциям, которые используются в массовых математических и научно-технических расчетах и представляют интерес для достаточно широкого круга читателей. Полезно отметить, что большинство функций имеет вполне понятные имена, отражающие их суть и назначение. К примеру, назначение функций animate или даже textplot в пакете plots или Diff, Int и Limit в пакете student понятны, пожалуй, всем. Но и в гораздо более специализированных пакетах имена входящих в них функций в значительной мере знакомы специалистам, поскольку почти всегда ассоциируются с общепринятыми названиями тех или иных специализированных функций или с их комбинациями.
Пакеты функций комбинаторики Пакеты функций комбинаторики Пакет combinat Функции комбинаторики достаточно известны из обычного курса математики. При вызове пакета выводится (если вывод не заблокирован двоеточием) список его функций: > with(combinat); Warning, the protected name Chi has been redefined and unprotected [Chi,bell, binomialcartprod, character, choose, composition, conjpart, decodepart, encodepart,fibonacci,firstpart, graycode, inttovec, lastpart, multinomial, nextpart, numbcomb, numbcomp, numbpart, numbperm, partition, permute, powerset, prevpart, randcomb, randpart, randperm, Stirling], stirling2, subsets, vectoint]
Ввиду важности функций комбинаторики приведем их полные определения:
Ниже даны примеры применения некоторых из этих функций: > choose(4,3); [[1,2,3],[1,2,4],[1,3,4],[2,3,4]] > choose([a,a,b,c].3): [[a,a,b],[a,a,c],[atb,c]] > composition(3,2): {[2,1],[1,2]} > decodepart(4,2); [1,1,2] > fibonacci(l0); > seq(fibonacci(1),i-l..l2):
1,1,2,3,5,8,13,21,34,55,89,144 > partition(5); [[1,1,1,1,1], [1,1,1,2], [1,2,2], [1,1,3], [2,3], [1,4], [5]] > firstpart(3): [1,1,1] > nextpart(%); [1,2] > prevpart(%); [1,1,1] > 1astpart(3): [3] > conjpart(%): [1,1,1] > multinomial(8,2,3,3); > numbcomp(8,5): > nuropart(3); numpart(3) > numbperm(4); > numbperm([a,b]): > numbperm({a,b,c},2); > permute(3,2); [[l,-2],[l,3],[2,l],[2,3],[3,l],[3,2]] > permute([a,a,b],2): [[a,a],[a,b],(b,a]] > powerset([a,a,b]): [[],[а],[b],[а,Ь],[а,а],[а,а,b-]] > randcomb([a,b,c,d],3): [a,c,d] > randcomb([a,b,c,d],3); [a,b,d] > randpart(l0); [2,8] > randpart(l0): [10] > stirling(10,5); -269325 > stirling2(10,5): > S:=subsets({l,2}): > while not S[finished] do S[nextva1ue]() od: { } {1} {2} {1,2} > vectoint([l,0,0]); > inttovec(6,3); [1,0,1] Читателю, желающему использовать данный пакет, рекомендуется внимательно ознакомиться с этими простыми примерами и просмотреть примеры из справочной базы данных для имеющихся в пакете функций. Пакет combstruct Пакет combstruct Еще девять функций, относящихся к структурам комбинаторики, содержит пакет combstruct: > with(combstruct): [allstructs, count, draw,finished, gfeqns, gfseries, gfsolve, iterstritcts, nextstruct] Эти функции служат для создания случайно однородных объектов, принадлежащих заданному комбинаторному классу. Ограничимся приведением примеров применения этих функций: > alltructs(Subset({one,two})); {{ },{one, two}, {two}, {one}} > anstructs(Permutation([x,y,z]),size=2): [[x,y],[x,z],[y,x],[y,z],[z,x],[z,y]] > count(Subset({l,2,3})); > draw(Combiination(5),size=4); {1,3,4,5} > count(Permutation([a,a,b])):. > 1t:=iterstructs(Permutation([a,a,b]),size=2); it:= table([finished = false, nextvalue = (pmc()... endproc)]) > draw(Partition(9)); [2,2,2,3] > allstructs(Composition(3), size=2): [[2,l],[l,2]] Для более полного знакомства с этими специфическими функциями обратитесь к справочной системе.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|