Дьяконов В. Maple 7 - Учебный курс (1185900), страница 76
Текст из файла (страница 76)
Как следует пз просмотра этого обширного списка, пакеты Мар!е 7 охватывают многие крупные разделы математики и существенно дополняют возможности системы, предоставляемые средствамп ее ядра. Пакеты расширения пишутся на Мар!е-языке программирования, поэтому они могут легко модернизироваться и пополняться. Этим, в частности, объясняется тот факт, что набор пакетов расширения в Мар!е 7 существенно пополнен по сравнению с предшествуюшими реализациями системы. Новые пакеты Мар1е 7 Система Мар!е 7 пополнилась рядом.
новых пакетов: О СцгчеГптт!пя — приближение кривых; О Ехсегва1Са1!гвн — внешние вычисления; 516 Урок 14. Математические пакеты О ЕшеагГппсг|опа1Бузгеш — линейные функциональные системы; О Маг)гМŠ— поддержка средств языка МагЬМЕ 2.0; О Огг!1одопа1$ег)ез — серии с ортогональными полиномами; О Ро1упоппа!Тоо!з — работа с полпномами. Из этих пакетов надо особо выделить пакет приближения кривых.
Он содержит наиболее важные функции для приближения кривых, которые до сцх пор были разбросаны по ряду пакетов. В конце данного урока содержится описание пакета СпгчеГйг1пя. Там же имеется описание другого нового и полезного пакета— Ро1упопца1Тоо!з. Получение информации о конкретном пакете С помощью команды; >?папе раскаде; можно получить информацию о любом пакете расширения и нанти список входящих в него функций. Названия пакетов были приведены выше. Для обращения к функциям того или иного пакета используется его полная загрузка командой: 'к1гщрасхаде):[;! Знак: блокирует вывод списка функций пакета, а знак: указывает вывести этот список. Если вам необходима какая-то одна функция пакета плп небольшая их часть, то не стоит загружать пакет целиком.
Это может привести к избыточпгям затратам памяти компьютера и даже нарушить нормальную работу некоторых функций — следует помнить, что нередко пакеты переопределяют некоторые функпии ядра. Для загрузки избранных функций попользуется команда н1гп в форме >к1гырасхаде, г1, гз.. м илп к1гырасхаде. Пц гз..й): При этом загружаются функции Г1, г2, ... из пакета с именем рас!гадез. Может показаться, что было бы лучше иметь все функции в ядре. Однако создание ядра, реализующего все функции системы (в версии Мар1е 7 их около 3000), неразумно. Такое ядро занимало бы много места в памяти, имело большое время загрузки и затрудняло бы поиск конкретных нужных функций. Поэтому ядро Мар!е 7 содержит определенный (и довольно обширный) минимум хорошо апробированных функций, а большинство других функций размещается в стандартной библиотеке и пакетах. Они готовятся на Мар!е-языке программирования и могут легко модернизироваться. К тому же пакеты могут модифицироваться (что не очень желательно) или дополняться (что приветствуется) пользователями.
Некоторой платой за это является необходимость вызова того или иного пакета или функции перед их применением. Пакеты функций коибикаторики 517 В этом разделе описана структура пакетов Мар!е 7, име!ощих математическую направленность. Ограниченный объем книги и огромное число функций в пакетах ие позволяют остановиться даже па описании синтаксических правил применения вссх функций этих пакетов. Очевидно, что в этом пет и особого смысла — подавля!ощес большинство функций представляет мальш интерес для конкретного пользователя.
Тс жс, кто имп интересу>отея, могут легко восполнить пробелы в их оиисащш с покюп(ыо справа шой системы. Однако в описании сосгава каждого пакета в данном уроке упомянуты имена всех без исключения сто фупкпий. Это позволяет оцщигп !!ашоту того пли иного пакета и без труда вызвать справочцыс страницы для любой функции, Описание функций пакетов в уроке дано выборочно, при этом предпочтение отдавалось тем функциям, которые использу!отея в массовых математических и научно-технических расчетах и представляют интерес для достаточно широкого круга штателей. Полезно отметить, что большинство функций имеет вполне понятные имена, отража!ошис их суть и пазцачеш!с. К примеру, назначен!!е функций ап|еа1е илп даже 1ех1р1о( в пакете р)о1з или 01(й 1п1 и (лв11 в пакете з1цбеп1 понятны, пожалуй.
всем, Но и в гораздо боз!ее специализированных пакетах имена входящих в них фуикшш в значительной морс з!щкомы специалистам. поскольку почти всегда агсоцииру!отея с общепринятыми назваvиякш тех плц иных специализированных функций или с пх комбинациями, Пакеты функций комбинаторики Пакет соаЫпа1 Функции комбинаторики достаточно известны из обычного курса математики. При вызове пакета выводится (если вывод не заблокирован двоеточием) список его функций: и!Ещсово!оат); ЧЧагп(пд, Ьэе рго(есгег) паше СЬ! Ьаз Ьееп ге((ейпе0 ап() цпрго(ес(еб [СЬЬ ЬеП, Ь|попйаь саг(ргаг(, сьагас(ег, сЬаазе, сатраздгаи, сап~рог(, г(еса0ераг(, епсаг(ераг! г) ЬоиассЦп хграг(, ягаусаПе, аа!пиес, (ак(раг(, тийгнат(а(, аех(раг(, аичЬсатЬ, иии!Ьсаи!р, аитЬраи, 'литЬрегш раггдяаа, регти(е, ражегке(, ргеират, га!к(саа!Ь, галйраг(, га!и(реги!, зг(гдая(, з(ггП!!Ь2, зиЬзепп иес(авн1 Ввиду важности функций комбинаторики приведем их парные определения: О СИ(к) — гиперболичес!)ий косинусный интеграл; О Ье11(п) — возвращает число ехр(вхр(х)-1) = зцн(Ье11(п) lп)ик"и.
п-0..1пг(п(Ту), причем для вычислений используется рекуррентное соотношение Ье!1(п+1) = (Ье11(п)+1) "Н! 518 Урок 14. Математические пакеты О Ьтпоата1(п, г) — возвращает биномттнальные коэффициентьь причем, если п и г — целые числа, удовлетворяющие условию О <= г<= п, то функция возвращает С(и,г) и!/(г)(п-г)!), а в общем случае С(п, г) = 1!кпт(6АИМА(И+1)/ 6АИИА(й+1) /6АИИА(И-й+1), й=г, И=и); О соароз!т!ои(п, К) — возвращает списки композиций для целых неотрицательных п и 1; О Г!Ьопасс!(п) — возвращает числа Фибоначчи, вычисляемые по рекурреитной формуле Е(п) - Е(п — 1) + Е(п — 2), где Е(0) - 0 и Е(1) - 1; О т!Ьопасс!(п. х) — возвращает значение иолинома Фибоваччи Е(п,х) = =хЕ(п — 1, х) + Е(п — 2, х), где Е(О,х) = 0 и Е(1, х) = 1, при этом Е(п) = Е(п, 1); О т!гзтрэгт(п) — возвращает перв)то часть канонической последовательности ряда; О иексрагт(1) — возвращает следующую часть ка»оиической последовательности ряда; О 1эзтрагт(п) — возвращает последнюю часть капоиическои последовательности ряда; О ргечрагт(1) — возвращает предыдущую часть канонической последовательности ряда; О соп)рагс(1) — возвращает объединенный раздел в канонической последовательности ряда; О пгаусос)е(п) — возвращает список кодов Грея для и-битовых чисел; О ат)т!пса!а1(п, 'к1, к2., )са) — возвращает мультиномиальные коэффициенты; О пваЬсоайп) и пиаЬсоаЬ(п, а) — возвращает число комбинаций; О пиаЬсоар(п, к) — возвращает число композшттш; О пваЬрагт(п) — возвращает список всех возможных сумм, дави(их и; О регавте(и) и регаите(п, г) — возвращает пиаЬрега(п, г) = иорк(регате(п, г)); О ромегзес(з) — возвращает степень множества в множестве з; О гвп!)соаЬ(п.
а) — возвращает случайную комбинацию; О гапбрагт(п) — возвращает случайную часть; О гап!)рета(и) — возвращает случайную композицию; О вт!г1!пдПи, а) — возвращает число Стирлинга первого рода; г О вт1г1 !пп2(п. а) — возвращает число Стирлинга второго рода; О зцЬвесз(С) — задает итерационную процедуру над степенями множества или списка !.; О кесто!пт(1) — возвращает ицдекс вектора каноническоро упорядочения 1; О !пттокес(а, и) — возвращает вектор канонического упорядочения для неотрицательных целых чисел а и и. Пакеты функций комбинаторики 5 49 Ниже даны примеры применения некоторых из этих функций: > саооае(4,3): [[ 1, 2, 3], [1, 2.
4], [ 1, 3, 4], [2, 3, 4]] > споете([а,а,Ь,с].3): [[а, а, 6], [ а, а, с], [а, 6, с] ] совроа1(1оп(3.2); [(2,1],[1,2]] > еесоеерагт(4.2); [1,1,2] > (1Ьопасс1(10); 55 > ьец(Г(Ьопасс1(1),1 1.,12); 1, 1, 2, 3, 5, 8, ! 3, 21, 34, 55, 89, 144 > рагт1т(оп(5); [[1,1,1,1, 1],[1, 1, 1,2],[1,2,2],[1,1,3],[2,3],[1,4],[5]] > Г(гатрагт(3): [ 1, 1, 1 ) > пехсрагс(а): [1. 2] > ргечрагт(Х): [ 1, 1, 1 ] > )аатрагт(3): [3] > соп)рагс(3): [1, 1, 1] > во)т(псв14)(8,2,3.3); 560 повосовр(8,5): 35 > поврагт(3); пшпрат((3) > повЬрегв(4): 24 > пцвЬрепа([а.Ь]): 2 > повЬрегв((а, Ь,с],2): 6 регенте(3,2); [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]] > регенте([а,а,Ь],2); [[а, а ], [а, Ь], [ 6, а ] ] > роиегзет([а,а.Ь]); П ], [а], [6], [а,6], [а, а], [а, а, ЬЦ 520 Урок 14.