Дьяконов В.П. Maple 9.5 и 10 в математике, физике и образовании (1185901), страница 22
Текст из файла (страница 22)
Оператор относится к неопределенным, если он не был заранее определен. Такой оператор не выполняет никаких действий и просто повторяется в строке вывода: > геасагс:г(1,2,а) Г(1, 2, а) Композиционные операторы (на базе знака ©) мы уже применяли. Другие типы операторов рассмотрены ниже. 150 Глава 3. Работа с математическими выражениями и функциями 3.1.10. Применение функциональных операторов Функциональные операторы Мар!е-языка являются альтернативами функций и записываются в двух формах. Данные операторы могут использоваться для реализации подстановок.
Например, запись х -> х"2 означает подстановку х'2 на место переменной х. Возможны и такие подстановки в множественной форме: (х,у) -> х"2 + у"2 х -> (2*х, 3*х"4) (х,у,х) -> (х*у, у*а) Функциональный оператор в Мар!е часто используется для задания функций пользователя, которое будет рассмотрено несколько позднее. 3.1.11.
Определение нейтральных операторов Для создания нейтральных операторов (задаваемых пользователем и в момент задания неисполняемых), определяемых пользователем, служит знак амперсанда — 8. Синтаксис нейтрального оператора следующий: ааааа Имя оператора строится по правилам задания допустимых идентификаторов. Также в качестве имени может быть использована последовательность (один и более) специальных символов. В последовательности специальных символов не должно быть букв, цифр, подчеркивания, а также следующих символов: 8( ~ ( ) ( ) ) ):; ' ' № <перевод строки> <пробел> Максимальная длина имени — 495 символов.
Нейтральные операторы могут быть унарными и бинарными. Примеры задания бинарного нейтрального оператора приведены ниже: > ха/у; х Й/ у > а+ха/у) 2+ (х х/ у) > а/(х,у)( хй/у > ха/у-а/(х,у)ю 3.1. Работа с операторами 3.1.12. Определение операторов с помощью оператора бег)пе Большие возможности для создания операторов с заданными свойствами предоставляет специальный оператор бейпе. Он записывается в следуюшей форме: беГьпе(орег, ргорегсу1, ргорегсу2, ...) Здесь орег — имя определяемого оператора, ргорег(у1, ргорег(у2 и т.
д. — наименования свойств. В принципе оператор бейпе позволяет создавать операторы с новыми свойствами, которые отсутствуют у операторов и функций, встроенных в систему. Могут быть указаны следуюшие свойства операторов: цпагу — унарный оператор; Ь(па(у — бинарный оператор; б)1( — дифференциальный оператор; 1(пеаг — линейный оператор„ п]ц!111)пеаг — множественный линейный оператор; г(а1 — ассоциативный оператор, для которого )(х,Яу, О) = )(Ях,у),2) = =Г(х, у, 2); огбебевв — коммутативный симметричный оператор, такой что Ях, у) =Яу, х); апбву(пп]е(пс — асимметричный оператор, такой что /(х, у) = -Г(у, х); лего — нулевой оператор (например, НзгНес(ог(б,впаре=хего) задает вектор с 5 нулевыми элементами); )бепб(у — единичный оператор (например, МпаМа(пх(3,3,впаре=]беп(1(у) задает единичную матрицу).
Следуюший пример задает линейный оператор 1: > бегупе [Ь, 11пеаг) г > Ь(а*х+Ъ*х"2+с*х"3]г Цах)+ Цбх))+ Цгез) Для задания некоторых свойств операторов можно использовать уравнения и соотношения вида 1(х)=ча(це. Чтобы свойство выполнялось для всех аргументов (или некоторого класса аргументов), используется описание 1огаП. Так, приведенный ниже пример задает оператор Е, который вычисляет и-е число Фибоначчи (п > 2): > геагагсг > с)еГьпе (Г1Ь, Г1Ъ(0) =1, Е1Ъ (1] =1, Г1Ь(п::роа1пГ) =Г1Ь(п-1] +Г1Ь (и-2)) > й'1Ь(6) г > Г Ь(10)) 39 > Г1Ь(20)г 10946 Обратите внимание на то, что соотношения бЬ(0)=1 и ЙЬ(1)=1 задают начальные значения целочисленного массива чисел Фибоначчи, которые нужны для реализации обычного итерационного алгоритма их нахождения — напоминаем, что очередное число Фибоначчи равно сумме двух предшествуюший чисел Фибоначчи.
!52 Глава 3. Работа с математическими выражениями и функциями 3.2. Работа с математическими функциями 3 2.1. Понятие о функциях Более двух сотен лет тому назад в обиход математиков пришло понятие функции. как некоторой зависимости одной величины, например !или у, от другой величины — независимой переменной х или в Функции стали обозначать как Ях), !(г), у(х) и т. д. Могут быть и функции ряда переменных, например вида !(х, у, ~, ...). Хотя эти понятия не являются полными, мы ограничимся ими, помня, однако, что функции могут быть определены в различных интервалах изменения их аргументов. В Мар1е функция это имеющий уникальное имя (идентификатор) объект математического выражения, выполняющий некоторое преобразование своих входных данных, представленных списком входных параметров.
Суть этого преобразования соответствует некоторой функциональной зависимости возвращаемого функцией значения от входных параметров функции. Например, функция яп(х) возвращает значение, которое является синусом входного параметра х. Таким образом. признаком функции является возврат ею некоторого значении. Входные параметры изначально являются формальнылт и представляются именами некоторых переменных. Особенностью функции является возврат ее значения в ответ на обращение к функции по имени с указанием фактических параметров в списке параметров функций.
Фактические параметры могут быть различными константами, определенными переменными и даже вычисляемыми математическимии выражениями. К примеру, яп(х) является синтаксической формой записи математической функции синуса — яп(х). При этом х — формальный параметр А уже в выражении яп(!.0) числовая константа 1.0 является фактическим параметром в виде вещественного числа, причем яп(1.0) возвращает численное значение синуса угла в 1 радиан. Функция а!ап2(х, у) является примером функции, имеющей список из двух формальных параметров — х и у. Как правило, в системах символьной математики принципиально важно, как записан фактический параметр. Например, число 1.
или 1.0 является вещественным, на что указывает разделительная точка. Если число представлено в виде 1, то оно рассматривается как целое и константа. Большинство систем символьной математики не вычисляет выражения вида яп(!) или з!п(л/2), а выводит их в исходном виде. Это связано с тем, что такой вид дает о значении функции гораздо больше информации, чем просто ее вычисленное значение.
Благодаря свойству возврата значений функции применяются для построения математических выражений наряду с операторами. Например. математическое выражение 2'яп(х) содержит функцию яп(х) и оператор умножения *. Математические выражения могут быть как очень простыми (наподобие приведенного), так и очень сложными, включающими в себя операторы интегрирования, дифференцирования и иные специальные операторы и функции, а также сложную многоуровневую систему скобок. Функции обычно подразделяются на четыре типа: ° встроенные в ядро системы предопределенные функции или внутренние функции; ° функции пользователя; ° библиотечные функции, вызываемые из пакетов или библиотек расширения системы. например яп(х) или!п(х); ° функции, заданные в виде программного модуля.
153 3.2. Работа с математическими функциями Кроме того, функции могуг классифицироваться по характеру производимых ими преобразований входных параметров. Они делятся на алгебраические, тригонометрические, обратные тригонометрические, гиперболические, обратные гиперболические, специальные и так далее. В математических системах Мар!е функции могут применяться со специальными директивами и опциями. Они могут задаваться как дополнительный параметр функции.
3.2.2. Математические выражения Математические выражения это сложные (комбинированные) объекты, которые состоят из операторов, операндов и функций со списками их параметров. Например, в выражении (2+3)*з)п(х) скобки ( ) и знаки + и * являются операторами. константы 2 и 3 — операндами, яп(х) — встроенной функцией, а х — входным параметром функции. Для оператора умножения выражение (2+3) и функция яп(х), т. е. по существу тоже выражение, являются операторами. Приоритет функций более высокий, чем у операторов.
В системах для численных расчетов математические выражения применяются в естественном виде и в разборе их структуры нет особой необходимости. Исключение составляет разве что анализ скобок, меняющих приоритет выполнения операций в выражениях. Иное дела системы символьной математики. У них в ходе вычислений выражения эволюционируют, то есть видоизменяются по мере выполнения расчетов. Это может приводить к весьма неожиданным последствиям, например.
когда сложнейшее выражение упрощается к О или 1, а внешне совсем не страшное выражение разворачивается так, что не помещается в десятке страниц экрана. Набор средств по разбору структуры и преобразованиям математических выражений в таких системах настолько велик, что всерьез разобраться с ними под силу математику-аналитику или достаточно опытному пользователю. Поэтому мы оставим рассмотрение функций анализа выражений на потом — 'оно будет дано при описании средств символьной математики.
3.2.3. Работа с элементарными функциями в системе Мар1е Мар)е имеет полный набор элементарных математических функций 138 — 41). Все они„кроме арктангенса двух аргументов, имеют один аргумент х, например в)п(х). Он может быть целым, рациональным, дробно-рациональным, вещественным или комплексным числом. В ответ на обращение к ним элементарные функции возвращают соответствующее значение.
Поэтому они могут быть включены в математические выражения. Все описанные здесь функции называются встроенными, поскольку они реализованы в ядре системы. Как правило, если аргументом функции является фундаментальная константа, целое или рациональное число, то функция выводится с таким аргументом без получения результата в форме действительного числа с плавающей точкой. Например (файл са1с(цп): > вз.о(Рз) > вЫ(1) ейп(1) 154 Глава 3.