Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Получение информации о конкретном пакете




Получение информации о конкретном пакете

С помощью команды:

>?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]

Ввиду важности функций комбинаторики приведем их полные определения:

  • Chi(x) — гиперболический косинусный интеграл;
  • bell(n) —возвращает число ехр(ехр(х)-1) =sum(ben(n)/n!*x^n, n=0..infinity), причем для вычислении используется рекуррентное соотношение bell(n+1) = (bell(n)+1)^n;
  • binomial (n, r) — возвращает биноминальные коэффициенты, причем, если n и r — целые числа, удовлетворяющие условию 0 <= r<= n, то функция возвращает C(n.r)=n!/(r!(n-r)!), а в общем случае С(n, r) = limit(GAMMA(N+D/ GAMMA(R+l)/GAMMA(N-R-t-l),R=r,N=n);
  • composition(n, k) — возвращает списки композиций для целых неотрицательных n и k;
  • fibonacci(n) — возвращает числа Фибоначчи, вычисляемые по рекуррентной формуле F(n) =F(n - 1) +F(n - 2), где F(0) =0 и F(1) =1;
  • fibonacci(n, х) — возвращает значение полинома Фибоначчи F(n, x) =-х F(n - 1,x) + F(n - 2, х), где F(0,x) = 0 и F(l,x) = 1, при этом F(n) = F(n, 1);
  • firstpart(n) — возвращает первую часть каноническей последовательности ряда;
  • nextpart(l) — возвращает следующую часть канонической последовательности ряда;
  • lastpart(n) — возвращает последнюю часть канонической последовательности ряда;
  • prevpart(1) — возвращает предыдущую часть канонической последовательности ряда;
  • conjpart(l) — возвращает объединенный раздел в канонической последовательности ряда;
  • graycode(n) — возвращает список кодов Грея для габитовых чисел;
  • multinomial (n, kl, k2,.... km) — возвращает мультиномиальные коэффициенты;
  • numbcomb(n) и numbcomb(n. m) — возвращает число комбинаций;
  • numbcomp(n, k) — возвращает число композиций;
  • numbpart(n) — возвращает список всех возможных сумм, дающих п;
  • permute(n) и permute(n, r) — возвращает numbperm(n, r) = nops(permute(n. r));
  • powerset(s) — возвращает степень множества в множестве s;
  • randcomb(n, m) — возвращает случайную комбинацию;
  • randpart(n) — возвращает случайную часть;
  • randperm(n) — возвращает случайную композицию;
  • stirling(n, m) — возвращает число Стирлинга первого рода;
  • stirling2(n, m) — возвращает число Стирлинга второго рода;
  • subsets(L) — задает итерационную процедуру над степенями множества или списка L;
  • vectoint(l) — возвращает индекс вектора канонического упорядочения 1;
  • inttovec(m, n) — возвращает вектор канонического упорядочения для неотрицательных целых чисел тип.

Ниже даны примеры применения некоторых из этих функций:

> 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...