Манзон Б.М. Maple V Power Edition (Манзон Б.М. Maple V Power Edition.djvu), страница 6
Описание файла
DJVU-файл из архива "Манзон Б.М. Maple V Power Edition.djvu", который расположен в категории "". Всё это находится в предмете "компьютерный практикум по специальности" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 6 - страница
Объекты Мар)е 33 то получим при вводе р число 9, то есть значение многочлена при х=2. Таким образом значение переменной р опрелеляется значением математического выражения, которое присвоено переменной р. Присваивая переменной х разные значения, мы будем получать вычисленные по формуле значения р. Таким образом, переменная р фактически является функцией х. Мы можем применить эту переменную в правой части другого оператора присваивания, например > ц:=р"3+1т д:= 730 В этом отличие языка Мар!е от обычных языков программирования— в качестве переменных в математических выражениях могут использоваться запрограммированные имена.
Однако при записи операторов присваивания следует соблюдать осторожность. Если в левой и правой частях таких операторов будут стоять одинаковыс переменные, которым сше ничего не присвоено, например > С:=С*2+1у Нахпхпд, хесиха(~~е хзей(пзгхоп ой патпе С;= С'+ 1 то программа выдаст предупреждение, так как вычисление такою присваивания приведет к бесконечному циклу. Точно также нельзя, например, записать команду вычисления неопределенного интеграла > хпс.
(р 2,р), еххох, 1(п хпх) нхопд пшпЬех (ох туре) ой ахдыпепха так как переменная р уже не является независимой — ей присвоено значе- ние л-+ 2 х + 1. В Мар(е можно отменить присваивание такими командами: > рг=езга1хх(р) ) Р:= Р или > Р:='Р'У тогда ввол 1 3 выполняет интегрирование функции р'. З4 айар!е Ч Рохчег Ее(!т!оп Мы вилим, что при задании функции методом присваивания имени выражению имеются некоторые неудобства ее использования. Чтобы не снимать при каждом вызове функции с переменных численные присваивания, можно использовать команду замены.
Пусть, например > Рг=х"З*вл.п(с)] Г:= х гйп(!) > вззЬв((х=З, т.=Р1/21,Г) ) 27 гйп( — а) 1 2 Существует и еще одно неудобство — определенную таким образом функцию невозможно использовать для расширения библиотеки команд Мир(е. Более общий и наиболее употребительный метод задания функции — путем определения процедуры. С общим определением процедур Мар(е мы познакомимся в разделе, посвященном программированию.
Сейчас мы рассмотрим спепиальный вид процедур — функциональные операторы. Функциональный оператор задает функцию или последовательность функций от одной или нескольких переменных. Он записывается в виде (последовательность переменных) -> (последовательность выражений), например > Р1:=(х,п) -> (х*З + вл.п(С), ехр(х)-1зз(х+1))а > Р23в(х С) -> хл2+Сл2 > УЗ ! =х -> (вфп" (х+1) *х, сов" (х-1) /х) а г):= (х, !) -+ (х' + з!п(г), е" — (п(х + 1)) Г2:= (х, г) -+ х' + г' сохо гЗ:= х -+ гй'" н х, Чтобы получить значение функции при некоторых значениях переменных, достаточно записать их в качестве параметров в той же последовательности, в которой они указаны в команле, например > У1(у,абаза)т уз + гйп(т) е" — !п(у + 1) Другой способ задания функционального оператора — использование команды ппарр)у.
4. Объекты Мар!е 35 Эта команда преобразует любое математическое выражение в функцию от указанных в команде переменных, содержащихся в этом выражении, например > ттпарр1у(х"3 + Б3.п(с),х,с)! (х, г) — > х' + яп(г) > тдхъерр1у( [Б1тх" (х+1) *хр сОБ" (х-1) /х) уха ~) т ! — и ,,ч сов (х,г) — ~ яп' ' х, Операторы Мар!е Помимо упомянутых выше арифметических операторов, логических опера~оров, в!!!о-оператора, функционального оператора Мар!е содержит большое количество лругих операторов.
Операторы играют болыпую роль в формировании выражений и выполнении математических расчетов. Подробнее об опера~орах и программировании их свойств смотрите в разделе 8.2. Здесь мы опишем лва часто используемых оператора Мар1с. т. Оператор композиции 4) Этот оператор применяется для создания сложной функции. Он записывается в виде + Юц — лля создания композиции функций !' и я или + ГС4Юп — для и-кратного применения функции [, например > (1хзеазл) (х) т (п(яп(х) ) > к!и х-> 1/(1+х) т (к995) (х) т 1 /:= х — > 1 +х 1 1+ 1 1+ 1 1+ 1+х 36 Мар)е Ч Рочвег Ед)т)оп На следующем примере при помощи таблицы обратных функций (пг[ппс, загруженной из библиотеки, мы создали функцию я, обратную функции Г.
> хеас1~.Ь(илгйттпс): ~.птгйзхпс [й) г =д; )пгГипк:= я Так можно упростить композицию взаимно обратных функций. > афипр1Ыу(й9д992)! 2. Нейтральный оператор Нейтральные операторы определяются пользователем. Имя нейтрального оператора должно начинаться с символа к и может сопровождаться допустимым И[ар!е-именем и некоторыми специальными символами кроме А, ], (), [], (],;,:, ' ', 4, "пробел". Свойства опредсляемого пользователем оператора задаются при помощи команд е Иейпе(аа(орег)), где орег — имя опрелеляемого оператора, аа — имя абстрактного алгебраического объекта или (в следующем примере— линейный) или + ИеГ!пе(орег, ргорепу), ргорепу2, ...), где орег — имя определяемою оператора, ргорену — свойство оператора.
Эти команды определяют правила вычисления и упрощения оператора. Приведем пример > йейхтза(Ьхпаак('йЬ'))) > йХ (5*х+3*у)) 5 А) (х) + 3 А[.(у) 4.3. Определение типов объектов Каждому выражению (и другому объекту) в Мар)е соответствует связанный с ним тип объекта. Базисными типами объектов для выражений являются: в!Пня, )пгепег, [гас!)оп, Поа(, арифметические операторы '+ ', '*', '" ' „и Гипс()оп.
Для опрелеления типа объекта используется команда туйа(гуре: > таЬа~еуре (15/37): ]гакйоп 4. Объекты Мар)е 37 > тгЬассуре ( (1, 2, 3, 4, 5) ) ) йзг > ъгЬа~~уре (( х+3 ) * (у-4))т Хотя всегда можно запросить Мир(е о типе объекта, заранее запать тип объекта невозможно. Нельзя запать как, например, в Фортране, чтобы переменная ) была всегла пслой. При программировании с Мир(е имеются случаи, когда необходимо производить различные вычисления в зависимости от типа переменной. Команда (уре позволяет слелать запрос типа переменной.
> дкееп1тздв ю~ 'Ьеве кедагйв'т егеейпех:= Ьехг гедагй > суре (дкеес4тздв, 1п~едек)т > ~ура (дгеее1пдв, вск4пд) ) !гие > тгЬае~уре (х = у+1)) Имеются еще лве полезные команлы лля анализа структуры объектов — команла йаа(уре, которая сообщает, солсржит ли объект полобъект данного типа, и команда )ш, которая сообщает, содержится ли определенный полобъект в объекте. Приведем примеры: > Ьав~уре ((х+1/2) * ехр (3), йтасйз.оп)) пие > ЬавЕуре (х"2+3*х+5, '*')у багие > Ьав(х*2+3 * х+5, 3)) иие > Ьав(х" 2+3 * х+5, 2 * х) ) ГаЬе 88 Мер!е Ч Рохвег ЕЖт)оп > Ьааеуре (лазе (ехр (-х"2), х), йкассаол)т аль (ехр (-х"2), х )т ггие — ч а ег((х) 1 2 В то время как эти примеры довольно очевилны, вав(уре и вав неоценимы при работе с очень большими объектами.
4.4. Анализ структуры объектов Каждый объект Мар/е состоит из подобъектов известного типа, которые также состоят из меньших подобъектов, и так вплоть ло элементарных базисных объектов. Наглядно можно представить каждый объект в виде древовидной структуры. Средства Мар(е позволяют исследовать и извлекать индивидуальные элементы, составляюшие объект.
Эта возможность очень полезна при оперировании большими объектами. В качестве такого средства в Мар!е используются команлы ор и вора. Эти команды по-разному лействуют на объекты различного типа, Так, если анализируемый объект — выражение, то команда вора сообщает, сколько подобъектов (выражений) первого уровня находится в объекте, а команда ор может использоваться, чтобы отобразить эти подобъекты в виде послеловательности выражений. Приведем пример: > оЬЗес~:~ З*х"2+2*х-Зт оЬ/есг:= 3 х' + 2 х — 3 > лоре(оЬЗес~)т > ор (оЬЗ ес1 ); Зх', 2х, — 3 Команда ор может также использоваться, чтобы извлечь индивидуальные элементы из объекта, а используемая рекурсивно, может забраться еше глубже— в подобъект. > оЬ5есе:= х"3 * ехр (1) - 34/Рхт з 34 оЬ)ес1:= х е —— Р~ 4.
Объекты Мар!е 39 > Ор (1, ОЬ5ЕСс)уср (1, Ор (1, ОЬ5ЕСЕ))у х е 3 > тгЬаееуре (ор (2, х"2+ехр (1)-З))у уйлсаол Освоившись с командами ор и поря, можно создавать более сложные команды для манипулирования элементами объекта. Например, можно создать команду, которая будет извлекать последний элемент выражения "оЬ]ес!'* (созданного ранее). > ор (пора (оЬ5есс), оЬ5есс)у 34 Р~ Если исследуемый объект — индексная переменная (например с именем !папзе), то команда воря(1пагпе) возвращает число индексов, ор(1,!пате) возвращает 1-ый индекс, а ор(0,!лате) возвращает имя индексной переменной.