Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании (1185901), страница 27
Текст из файла (страница 27)
234367, Ггасгьоп) 50737 41097 > сопнегс (1/7, г1оаг); .1428571429 > сопнегс(е1п(1*х),ехр) 1 — е" — —— > сопнеге(еьпь(х),ехр) 1 „1! -е" --— 2 2ех > сопнеге (агсеьпП (х), 1п] !п(х+чх +!) 3.5. расширенные возмозггносты Мар3е в работе с выра>(гениями 189 > сопчегс (12345, 11ас) Г [12345) > сопчегг(Ььповга1(в,п),сасгогьа1)г л!(лг — л)! > сопчегг ( [ [1, 2], [3, Я ), [5, б) 1, гаЬ1е) г (аЫе(((1, 1) = 1, (2, 1) = 3, (2, 2) = 4, (3, 1) = 5, (3, 2) = 6, (1, 2) = 2)) > сопчегс(-Р1,агвпов)7 > аг Гау1ог (а1п (х), х, 8) 7 з:=х--х + — х — — х +О(х ) 1 3 1 7 1 7 В 6 120 5040 > рг=сопчегг(а,ро1упов) г 1 3 1 а 1 7 р:=х — — х + — х- — х 6 120 5040 > сопчегс(р,г1оас) х †.1666666667хз +.008333333333хг †.0001984126984хг > Г г = (х" я+х) / (х" 2-1) х +х 4 х -1 г > сопчеге(с,рагГгас,х) хз+ 1+в 1 х — 1 > аг=аеггеа(Г,х,5)г — '+ О(х)) > сопчегг(а,ро1упов)гв удаление члена ряда, описывающего погрешность 4 -х — л — х Из этих примеров (их список читатель может пополнить самостоятельно) следует, что функция преобразования сопчег( является одной из самых мощных функций Мар[е.
С ее помощью можно получить множество различных форм одного и того же выражения. 3.5.8. Преобразование выражений Еще одним мощным средством преобразования выражений является функция соп)Ь[пе. Она обеспечивает обаединение показателей степенных функций и преобразование тригонометрических и некоторых иных функций. Эта функция может записываться в трех формах: согпЬ[пе(1) согпЬ)пе(1, и) соп)Ь[пе(1, и, ор(1, ор(2, ...) 1Ю Глава 3. Работа с математическими аыразкениями и функциями Здесь г — любое выражение, множество или список выражений; и — имя, список или множество имен; ор(1, ор!2, ... — имена параметров.
Во втором аргументе можно использовать следующие функции: ©© аЬа агс!ап соп1цда!е 1и р]есе<и!ае ро]у]од ро)иег Ра] гас]!са] гапде а!дпцп) Примеры применения функции согпЬ)пе представлены ниже (файл ехрг]): > совЬ1пе(ехр(2*х) "2,ехр); е(4к) > совЬ1пе <2 аап (х) "2+2*сов <х) "2); > совЬ1пе (а1п (х) *сох (х) ) — з]п(2х) 1 2 > совЬъпе(1пс(х,х=а..Ь]-1пс(х*2,х а..Ь] ) ) — х +Их Эти примеры далеко не исчерпывают возможности функции соп)Ь!пе в преобразовании выражений. Рекомендуется обзорно просмотреть примеры применения функции согпЬ!пе с разными параметрами, приведенные в справочной системе Мар]е. 3.5.9.
Контроль зв типами обьектов Выражения и их части в Мар]е рассматриваются как объекты. В ходе манипуляций с ними важное значение имеет контроль зо типом обьектов. Одной из основных функций, обеспечивающих такой контроль, является функция чупа!(уре(оЬ!ес(), возвращающая тип обьекта, например в!ппд, )п(едег, Йоа(„]гас(!оп, (цпс!1- оп и т. д. Могут также возвращаться данные об операторах. Примеры применения этой функции даны ниже (файл соп(го!): > хьаееуре(2+3]) т (сбег > хьасауре(Р1); зутЬо! > хьасьуре (123. /5] г Яоаг > еаа< суре (1/3) г /госг!он > ньагсуре(а1п(х) ); „]га)сг!оп > хьааауре(!1,2,3,а,Ь,с]); бг/ > хьасьуре(а+Ъ+с) > хьасауре(а*Ь/с) 3.5. Расширенные возможности Мар!е в работе с выражениями 19! > еьаггуре(а"Ь] > епаесуре(1+2+3< 4) С помощью функции (уре(оЬ]ес(„1) можно выяснить, относится ли указанный объект к соответствующему типу 1, например: > Гуре(2«3,1псесег); ггие > гуре(з1п(х), гппсг1оп]; иие > гуре (Ье11о, зег1пс); /а/ге > гуре ("Ье11о", зег1пс]; ггие > Гуре (1/3, ггасс1оп) иие При успешном соответствии типа объекта указанному (второй параметр), функция 1уре возвращает логическое значение 1ше, в противном случае — <а]ве.
Для более детального анализа объектов может использоваться функция ]]аа(ура(ехрг, 1), где ехрг — любое выражение и 1 — наименование типа подобьекта. Эта функция возвращает логическое значение 1гце, если подобъект указанного типа содержится в выражении ехрг. Примеры применения этой функции даны ниже (файл соп1го!): > Ьазсуре (2+3, гпсесег) г /гие > ьазсуре <2+3/4,1пгедег) ( /а/ге > Ьазгуре (2*з1п (х), гппсе1оп] ] иие > Ьазгуре(а+Ь-с/о,'+')] ггие Еще одна функция — ]]ав(1,х) — возвращает логическое значение 1ше, если подобъект х содержится в объекте 1, и $а]ве в ином случае: > паз(2*з1п(х),2); ггие > Ьаз (2 *а ап (х), ' / ' ); /а/ге > Ьаз <2*з1п (х), 3-1]; иие Следует отметить, что соответствие подобъекта выражения указанному подобъекту понимается в математическом смысле.
Так, в последнем примере подобъект «3 — 1», если понимать его буквально, в выражении 2*яп(х) не содержится. но Мар!е-язык учитывает соответствие 3 — 1 = 2, и потому функция ]]ав в последнем примере возвращает 1ше. 192 Глава 3. Работа с математическими выражениями и функциями Функция ])ав может использоваться для выявления той или иной математической операции, оператора или функции. Однако надо соблюдать определенные правила, поскольку выражение, анализируемое функцией ])ав оценивается и исполняется. Внимательно проанализируете приведенные ниже примеры: > паз (2*з1п (2), з1п); аие > паз (2*з1п (2), ' зьп' ) (гие > паз [2*в1п (2 .), ' в1п') г Га(ве Здесь надо учесть, что выражение 2*в]п(2) после оценки и исполнения не меняется, поскольку Мар]е, при целочисленном аргументе функции синуса, не вычисляет ее и вычисленное выражение совпадает с исходным и содержит функцию синуса.
Однако а]п(2.) уже вычисляется и становится числом. Именно поэтому в последнем примере функция в(п уже не обнаруживается. Подобное имеет место и в ряде других примеров с функцией интегрирования: > пав('1пС(х"2,х) ',1пс) г «((е > паз(1пь(х"2,х),1пс); Га(ве > апс(х"2,х); 3 > паз(1пе(х"2,х),х"3/3) (гие Стольк же поучителен пример с идентификацией функции интегрирования. Так, паз (ьпе (х"2, х), 1пе); Дает Га!ве, поскольку интеграл оценивается и вычисляется, что ведет к подмене выражения на х"3/3 уже не содержашего признаков интегрирования. Это и поясняют два последних примера, в которых вычислено значение интеграла и функция ])ав дает значение (п]е для значения интеграла.
В тоже время заключение 1пс (х" 2, х) в апострофы позволяет найти имя функции интегрирования ]и(, поскольку исходное выражение в этом случае представлено в неисполняемой форме и содержит обрашение к этой функции. Еше одна иногда полезная функция контроля выражений (]ереп(]в(Г,х) возвращает (п)е, если х входит в Г и Га]ве в противном случае. При этом надо также помнить, что функция (выражение) оценивается и исполняется.
Следуюшие примеры хорошо иллюстрируют сказанное: > с]ереппв(2+2*вы(х), х); аие > перепев(1пс(х"2,х),х) > берепбв(1пе[х"2,х=0..1),х) г . Га(ве В последнем примере вычисленное выражение это уже просто число, в нем х не содержится, а потому и получено значение Га)ве. 3.6. Работа с подстааовками 3.6. Работа с подстановками З.б.1. Функциональные преобразования подвыражений Нередко бывает необходимо заменить некоторое подвыражение в заданном выражении на функцию от этого подвыражения, т.
е. осуществить подстановку. Средства для обеспечения подстановок есть во всех СКМ. Так, для этого в Мар[е 9.5 можно воспользоваться функцией арр1уор: ° арр]уор(1, 1, е) — применяет функцию Г к (-му подвыражению выражения е; ° арр[уор(Г, 1, е, ..., хК, ...) — применяет функцию Г к Г-му подвыражению выражения е с передачей необязательных дополнительных аргументов х((. Ниже даны примеры применения этой функции (здесь и далее см. файл зла): > гезеахегарр1уор(з1п,2,а+х) г а + з[п(х) > арр1уор ( Е, 1, О, 2, а+Ъ); Г(я, 2, а + Ь) > арр1уор(Г, (2, 3), а+х+Ь); а + Цх) + Г(Ь) > арр1уор [Г, (1, 2),х/у+а) г х +Г(2) > р:=у"2-2*у-3 р:=у) — 2у -3 > арр1уор(Г,2,р)г р:=у — 2у-3 > арр1уор(Г, [2,31,р); у +Г(-2у) — 3 > арр1уор ( Г, ( [2, 1], 31, р): у +Г(-2у) +Г(-3) > арр1уор (аЬз, ( [2, 1], 3], р); уг +2у+3 З.б.2.
Функциональные преобразования элементов списков Еще две функции, реализующие операции подстановки, указаны ниже: п)ар((сп, ехрг, агд2, ..., агдп) п)ар2(Гоп, агд1, ехрг, агдЗ, ..., агдп) Здесь Гоп — процедура или имя, ехрг — любое выражение, агд( — необязательные дополнительные аргументы для Гоп.
Первая из этих функций позволяет приложить Гоп к операндам выражения ехрг. Приведенные ниже примеры иллюстрируют исрользование функции гпар: > Г:=х->х"2г т ззк 180 194 Глава 3. Рабата с математическими выражениями и функциями > вар(Г, [1,2,3] ): [1, 4, 91 > вар(Г, [х, у, х] ); [х). у~ 2 1 > вар(х->х"п, [1, 2, 3) ) [[ 2а За[ > 1.:= [1, 2, 3,4] ( б:=[], 2, 3, 4[ > вар(рсос(х,у] х*у+1 епс), [1,2,3,4],2) г [3, 5, 7, 9[ > вар(апс,ь,х); [х, 2х, Зх, 4х[ > вар(р, [1,2, З],х,у, х); [Е(3, х, у, 2), Е(3, х, у, 2), Е(3, х, у, 2)[ Из этих примеров нетрудно заметить. что если второй параметр функции п)ар — список, то функция (первый параметр) прикладывается к каждому элементу списка, так что возвращается также список. Из последнего примера видно. что если за вторым параметром идет перечисление аргументов, то они включаются в список параметров функции.
Функции п)ар2 отличается иным расположением параметров. Ее действие наглядно поясняют следующие примеры: > вар2(е,д, (а,Ъ,с]); [е(е, а), и(я, Ь), в(е, с) > вар2 (ор, 1, [а+Ь+1, с+с)+К, е+Г+3] ) р [а, с, е[ > вар2(ор,З,[а+Ь+ъ,с+о+х,е+Г+3])с [(, l(,Я > вар2 (с)1х1, [аьп (х), сов (х), х" и], х) сов(х), -яп(х),— с х"н1 х ~ При решении некоторых задач оптимизации возникает необходимость в создании выражений с множителями Лагранжа. Для этого можно использовать список из трех элементов выражения.