Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 9
Текст из файла (страница 9)
[а. Ь] А); [((А, а, Д), Г(А Ь, ДИ Для суммирования элементов имеется команда аОО, а для вычисления произведения — пы), Приведем пример: > аоо(т.т-[О,Р),1]); пт) ((,т-[1.Р).1]); (+и )я Несколько простых команд общего назначения не требуют особого комментария. Для вычисления длины объекта 083 (строки, списка, выражения) используется команда тепртп(ОВ)) Для целого числа будет выведено число цифр, для строки — число символов, для г1аЬ] е — число слов, а для переменных других типов вычисление будет проведено рекурсивно и ответ будет некоторой характеристикой участвующих в данном объекте базисных элементов. Приведем примеры: > )епвтп("нет)о"); 5 > )апра([1,2]); 7 > )епртн(а+о+С): 13 Для нахождения максимума и минимума из выражений ЕХ1.
ЕХ2... применяются соответственно команды аах(ЕХ1.ЕХ2,. )- атп(ЕХ1,ЕХ2, ) Приведем пример: 50 Глава 1. Основы Мар(е > е: аах(1.5,и!п(2.3).в): ш:= пшх(2, а ) Поскольку в перечне величин присутствовала одна переменная, то ответ Мар)е состоит нз максимального значения для перечисленных чисел и этой переменной. Присвоив значение переменной а, выведем значение максимума: > в:-5: "тех"-и: ."тандартные математические функции Обращение к стандартной функции — элементарная операция, если известно нмя нужной функции. Список изначально определенных в Мар)е функций велик, поэтому просто перечислим достаточно представительное подмножество нз известных функций.
В табл. 1.11 и 1,12 указаны основные имена функций Мар!е и соответствующие математические функции. Таблица 1,11. Стандартные функции Марь Математическая запись и! Например: > ехр(1): (п(ехр(З)): о Для преобразования вещественных чисел в целые имеется необходимый набор команд, см. табл. 1 12. Для комплексных величин команда применяется отдельно к реальной и мнимой части.
Таблица 1.12. Функции округления Иыя Назначение Округление д ближайшеиу целому Округление отбрасыванием дробной части Округление к меньшему целону Округление к большему целому гоопд Сгопс г!оог се(1 ехр(х) (п(х) или 1од(х) 1од10(х) 1од[а)(х) вдтт(х) вы(х) в(дпопь(х) е" 1пх 1оя> х 1об х «Г» И вяпх г( Стандартные математические функции 5ча Приведем примеры работы зтнх функций, для компактности вывода организовав последовательность выражений из результатов вычислений: > х:-- 1.4: ганне(х).тгопс(х),т)оог(х),се11(х); -1, -1„-2,-! > х;--1.5: гоопе(х) Лгопс(х).т)оог(х).се!1(х); -2, -1,-2,-! > х:-1.4: гоопйх) Лгопс(х),11оог(х).се11(х); 1,1,1,2 > х:-1.5: ганне(х),Сгопс(х),т)оог(х).се)1(х); 2, 1, 1, 2 Для вычисления дробной части выражения ЕХ имеется команда тгас(ЕХ).
Проил- люстрируем ее возможности на примере вычисления комплексных выражений; > (гас(2.001-1*1.1); .ОО! †.1 ! > тгас(зцгт(2)+1*Р1); т2 +!я-1-3! Обратим внимание на квалификацию Мар!е при выполнении последней команды: верный ответ записан с использованием иррациональных чисел. В табл. 1.13 перечислим семейства функций, для которых достаточно указать имя. Для ряда функций помимо скалярного аргумента (х) должен быть указан порядок (р). Справку о всех имеющихся в Мар!е функциях можно получить, выполнив команду ?(п(топсгчоп Таблица 1.13. Математические функции Имена Назначение 5чп, со5. Сап. Сот.
5ЕС, С5С Дельта-функция Дирака Функция Хевисайда Бесселевы функции Гамма- и бета-функции Дзета-функция Римана Интеграл ошибок агсззп, агссоз, агссап, агссос. агсзсз. агссзс 5!пи. 505Н, Сопи, соси. 5есн, с5си агсз(пи. агссози. агсгапн. агссоги. агсзесн.
агссзсп О!гас Неаи 5(ее. Веззец(р,х), Везае)т(р,х), Веззе1!(Р,х). Веззе1К(р,х) ВМЕ(д(з). Вяннд(а,х), Вета(х.у) гета(г) егт(х) Тригонометрические функции (аргументы а радианах) Обратные тригонометрические функции Гиперболические функции Обратные гиперболические функции 52 Глава 1. Основы Нар1е Таблица 1.13 (продолжение) Имена Назначение Гочные и приближенные вычисления По умолчанию Мар1е проводит вычисления с целыми и рациональными числами, радикалами и константами, не переходя к машинной арифметике, что позволяет проводить их точно.
Например: > а:=зсгт(2): Ь.=это(Р(/17): > с.-а"13>ша; с:= 64 /2 + — Пп1 — л~ /2 1 ./1 2 1!7 Мар1е автоматически переходит к операциям с плавающей запятой в том случае, если в выражении присутствуют числа, определенные в формате с десятичной точкой, но в этом случае вычисления выполняются с погрешностью округлений.
Пример: > 26"(1.0/б): 1.721190306 > 1"б( 26 00000003 В об)цем случае для перехода к арифметике с плавающей запятой необходимо дать соответствующую команду. Одной из таких команд является еча)Г, которая в качестве первого параметра имеет вычисляемое выражение, а необязательный второй параметр определяет мантиссу, с которой будут проводиться эти вычисления.
По умолчанию мантисса определяется системной константой 0)д(Сз. Вычислим значение переменной с мантиссой 50 знаков: > еча) Пс.бд): г 90.639598521965938336586291285766156688985958!73372 Используя команду еча) Г и переопределяя значение константы О) д(гз, можно проводить операции с плавающей запятой практически с любой мантиссой. Однако следует помнить, что увеличение мантиссы сильно замедляет вычисления. Для быстрых вычислений с плавающей запятой имеется команда еча) ))й Эта команда использует арифметику процессора напрямую, но все операции происходят с машинной мантиссой используемого компьютера.
Проиллюстрируем время выполнения операций для различных вариантов арифметики с плавающей запятой. Для оценки времени использована команда гтяе, которая будет описана ниже, Вычис- Еедеппгег, ЕедепдгеЕ, ЕедепдсеР/ Еедепдгекс. ЕедепдгеЕс, ЕедепдгеР(с гоппд. 2гипс Эллиптические интегралы в форме Лежандра первого, второго и третьего рода Полные эллиптические интегралы в форме Лежандра первого, второго и третьего рода Округление и усечение к целому Точные и приближенные вычисления 53 лим тысячу раз функцию а)п для различных аргументов с использованием команд еча1Т и еча1пг: > 1(ще([аео(еча1Г(ип(1)) л-1..1000)1). 1А45 > 1)пе([аее(еча)нг(а)п(( ) ) д-1.. 1000 )1): .044 теперь переопределим константу 0101 15 и снова обратимся к еча1т: > 010(са:-15: > С(ее([аее(еча1Г(юп(1)),(-1..1000))): 2.702 Аналитические ГЛАВА преобразования в Мар1е Наиболее часто используемые основные математические и общесистемные команды находятся в ядре Мар!е и стандартной библиотеке, которая автоматически подключается после запуска программы.
Предваряя описание команд для выполнения основных математических операций (интегрирования, дифференцирования, разложения в ряды, суммирования, решения уравнений и неравенств и т. д.), остановимся на командах общего назначения, позволяющих приводить выражения к нужному виду, упрощать их, делать подстановки, и т. д. Сразу отметим, что ряд преобразований, основанных на свойствах тригонометрических, логарифмических и других стандартных функций, Мар!е выполняет непосредственно, без дополнительных указаний.
Продемонстрируем зто на элементарном примере формирования уравнения: > ещ-е1п(Р1+х)-х/)п(ехр(-Р1)): х ее:= -е!п(х) = —— к При записи уравнения сразу были использованы формула приведения для синуса и обратимость логарифмической и показательной функций. Вместе с тем в левой и правой частях уравнения остались минусы, и для упрощения полезен еще один шаг: > ер:--еш х ее:= цп(х) =— л Для проведения не столь тривиальных преобразований требуются дополнительные усилия и нужно иметь представление об организации записи выражений (структурах объектов), знать основные команды преобразования формул и их возможности. Вначале коротко рассмотрим внутреннюю организацию выражений в Мар1е„преобразование объектов от одного типа к другому, семейство команд оценивания и вычисления выражений.
Затем опишем команды для операций с формулами (упрощение, приведение к нужному виду и другие) и рассмотрим команды для работы с полиномами. Етруюура выражения 55 Структура выражений Во внутреннем представлении Мар!е каждый объект (формула, уравнение, таблица и др.) состоит из подобъектов, каждый из которых, в свою очередь, может состоять из подобъектов, и т. д., вплоть до базисных элементов, так что получается ветвящаяся, древовидная структура. При работе с большими выражениями часто требуется извлекать отдельные элементы структуры и преобразовывать их. Команда поря выводит число элементов первого уровня, а команда ор выводит их в виде последовательности выражений. Проиллюстрируем сказанное простым примером: > оЬ:-х"3-у+я1п(г"2): оъ:= х' — у+ в(п(г ) > норв(сЫ;ор(оЫ: 3 хв, -уоип(я ) Объект М ар! е хранится в виде древовидной структуры, в узлах которой находятся операции [+, *, ", я1п), а ветви указывают на операнды, Для введенного выражения оЬ дерево схематически выглядит следующим образом: При помощи команды ор можно извлекать подвыражения, указывая номер операнда верхнего уровня.
Для отсчета подвыражений справа налево используются отрицательные числа. Например: > ор(З.оЫ,ор(2..-).оЫ; в!п(г'), -у, Мп(г') Для доступа к операнду операнда в качестве первого параметра команды ор следует определить список, где числа слева направо обозначают номера операндов, начиная от верхнего уровня. Для вывода второго подоперанда второго операнда выражения оЬдостаточно задать > ор([2.2],оЫ; у Для подстановки выражения йЕ)( в и-й операнд первого уровня выражения ЕХ используется команда яньяпр (п-ИЕИ.ЕХ) Представим простую иллюстрацию действия данной команды для выражения оЬ: > япаяпр(З-Р!.оЫ: хв -у+я 56 Глава 2.
Аналитические преобразованив в Иар(е Типы и их преобразование Может получиться, что Мар!е выведет выражение не в той форме, которую вы ожидали или предпочитаете. Чтобы упростить выражение, перейти от экспоненцнальных функций к тригонометрическим и для многих других преобразований, применяется команда сопчегС, Кроме того, каждая команда Мар!е работает с данными определенных типов, поэтому если тип фактического параметра не отвечает типу, допустимому для данной команды, то будет выведено сообщение об ошибке. В этом случае перед использованием команды следует преобразовать выражение или объект, приведя его к нужному типу, Определить тип выражения ЕХ помогает команда инатсуре (ЕХ) Результатом ее выполнения будет вывод одного нз терминов, перечень которых дан в табл.