Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 6
Текст из файла (страница 6)
Для получения информации о команде эоЬЬор1с из пакета Ьор1 с соответствующий запрос оформляется при помощи команд ?[ор1с лоЬЬор)с ?Ьор1с[5ОЬ?ор1с) Получить справку из командной строки можно также при помощи команды Ье) р: Ье) р[тор1с): Ье)р[тор1с,еоЬ[ор1с); Ье)р[гор)с[еоь?ор1с)), Если при наборе имени команды, о которой запрашивается информация, была сделана ошибка, то Мар1е выведет перечень имен, которые могут иметь отноше- ние к запросу. Это может быль полезным, если вы забыли точное имя команды, а так- же при интуитивном способе освоения Мар)е, когда пользователь предполагает, что для нужной операции может существовать команда с некоторым именем. Для вывода информации о формате команды гор) с используется команда??Ьор1с или ее аналог оеаое[гор1 с ). Для получения примеров из справки для команды гор)с можно выполнить команду??? Ьор1с или ехаяр) е [ гор) с ).
Наконец, сведения о род- ственных для ьор1с командах появятся в области вывода после запроса ге) агеб [гор)с). Вообще, начиная работу с Мар)е, полезно справиться о последних новостях ре- ализации, которые могли быть не отмечены в печатных руководствах: ?кроа?ее Конечно, данное представление пунктов меню не является исчерпывающе полным, но, мы предполагаем, что читателю по силам провести ряд экспериментов и уста- новить не отмеченные в данном изложении возможности оболочки. По нашему мнению, для нормальной работы требуется ограниченное число интерфейсных средств, а мощность универсального математического пакета в первую очередь определяется начинкой — командами и библиотеками — тем аппаратом, который позволяет решать математические задачи.
Основные объекты Системы аналитических вычислений оперируют со множеством объектов, используя для работы различные типы данных. Это позволяет применять свои правила обработки для каждого типа. Простейшими объектами в Мар[е являются числа, константы, строки и имена. Под числами будем понимать собственно целые и вещественные числа, а также рациональные дроби и радикалы (корни из чисел). Приведем примеры чисел: Зб Глава 1. Основы Мар1е > 1.23, 4е5.1+Рл. вчгс(81: 1.23, 400000., 1 + я, 2~Г2 Использование рациональных чисел, радикалов и констант (число я, мнимая единица) позволяет проводить абсолютно точные вычисления, так как при выполнении операций не возникает погрешности округления.
Сразу отметим, что эти операции производятся гораздо медленнее. Синтаксис и выражения Каждая введенная команда должна завершаться разделителем: точкой с запятой (;) или двоеточием (:). Если ввод предложения завершается точкой с запятой, то в строке под предложением сразу будет отклик: результат исполнения команды или сообщение об ошибке. Разделитель (:) используется для отмены вывода, когда команда выполняется системой, но ее результат не выводится на экран.
В Мар1е применяются круглые, квадратные и фигурные скобки. Назначение круглых скобок — задавать порядок при построении математических выражений и обрамлять аргументы функций и параметры в записи команд. Квадратные скобки нужны для работы с индексными величинами. Фигурные скобки используются для формирования множеств. В Мар!е две последовательные точки в параметрах команд применяются для определения интервала изменения переменных. Теперь расскажем о других важных символах, используемых в Мар1е. Знаком процента (Ж) обозначается предшествующий вывод, Два знака процента отсылают к предпоследнему результату. Наконец, предшественник предпоследнего результата обозначается тремя знаками процента. Эта нотация может быть удобна при последовательной работе с документом, но чревата неприятностями при свободном перемещении по тексту, когда команды выполняются в произвольном порядке.
Используя константы, переменные, знаки арифметических и других операций, составляются выражения. Это основной объект для многих команд. Последовательность выполнения арифметических операций соответствует стандартным математическим правилам: сначала проводится возведение в степень ("), затем умножение (') и деление (/), а в конце — сложение (+) и вычитание (-). Операции выполняются слева направо, для изменения порядка используются круглые скобки. Для операций отношения имеются знаки >, <, >-, -, <, -, а для конструирования булевых выражений используются также команды 001 ог, ап6.
Обратный слеш (1) используется для переносов, а для комментирования в Мар!е предусмотрен символ 9. Вся строка после этого символа не выполняется. Приведем примеры выражений: > и+у"а-12<0: 3,14159126535189793123846; 8 Число пи х+у'<12 3.14159265358979323846 Основные объекты 37 Знак равенства (=) используется при формировании уравнений, а знак присвое- ния (:-) — при задании значений переменных. Различие в их использовании мож- но проиллюстрировать следующим примером: > ец;-х-12: х; ец:=х=12 Переменной ец присвоено уравнение х=12, но это не означает, что переменная х получила значение 12.
Для того чтобы значением переменной х стало число 12, нужно ей присвоить это значение: > х:=12; х:= 12 Константы В Мар1е представлены все основные математические константы, В табл. 1.10 пере- числены важнейшие из них. Напомним, что число л дается при помощи Р1, а рт означает греческую букву и. Таблица 1.10. Иатематические константы Описание Имя Число к Основание натурального логарифма Инимая единица (квадратный корень из -1) Бесконечность Константа Эйлера Булевы константы (истина, ложь) !п[!пяту ЦВВИ сгое, та[ье Имена этих констант являются зарезервированными, а их значения не могут быть переопределены в отличие от ряда переменных среды (управляющих кон- стант).
Переменные Переменная Мар!е идентифицируется именем — набором символов, начинающим- ся с буквы, причем большие и малые буквы различаются. Кроме букв могут упо- требляться цифры и знак подчеркивания. Приведем примеры различных имен: 010. о[О. о Ы. 01о Длина имени зависит от платформы, и на 32-битных машинах допустимы имена из пятисот тысяч символов, а для 64-битных машин можно составлять имена дли- ной более миллиарда знаков (см.
справку). Составные имена могут быть сформи- рованы при помощи оператора конкатенации ([[) или команды сат. В качестве имен переменных запрещено использовать термины языка Мар1е: 38 Глава 1. Основы Мар)е апа, Ьгеах, Ьу. сассп, Сепсг!рп!Ьп.
Со, попе, ем 1, е1пе, епо, еггог. ехрп~, 11, 11па11у. Гог, ггсз, д1оьа1. !Г, 1п, ппсегпесс. 1пса1, а)поп, апо, пюсо1е, пехс, поп. ос. орсппп. прг!Ьпа. Ьг. ргос. Со!С. геао, гегогп. паче. асор. 1пеп, Со. Ьгу, оп1оп, опе, нЫ 1е Кроме того, не рекомендуется использовать имена всех команд Мар1е в качестве имен. Для обозначения служебных констант используются имена, начинающиеся с подчеркивания. Неопределенные константы, возникающие при решении дифференциальногоуравнения,именуются С1, С2ит.д.
Произвольноецелоечислообозначается как ))1, й2 и т.д., а комплексная величина соответственно как 21, 72 ит.д. Если последним символом имени идет гильда (-), то это имя переменной, относительно которой сделаны назначения (определена вещественность или положительность и т. д., см. подробнее команду аззо)пе). Для присвоения значений переменной используется знак:-. Для просмотра содержимого переменной простого типа нужно лишь ввести имя переменной (для массивов и других составных типов используется команда еча1). Напомним, что команда гезгагг используется для отмены всех сделанных назначений в сеансе. Чтобы освободить конкретную переменную от предшествующих назначений, нужно этой переменной присвоить ее имя, заключенное в прямые одинарные кавычки ( ') (апострофы). Например: > ех:-х"2+ехр1у)! ех: хп+ ех > ех.-'ех': ех; ек Для защиты от изменений существует команда рготест, а для снятия защиты— опргььесг.
В частности, защищенными являются многие константы Мар!е. Приведем пример использования последних двух команд. Сначала переменной присвоим значение, а затем ее защитим: > а:-2; ргопесс!"а"); а: Теперь попытаемся присвоить ей иное значение, Результатом будет сообщение об ошибке: > а:-3: Еггог, агспергппд Со апп)дп Со "а" н!Исп 1п ргопесгеа Следующей командой снимем защиту с переменной, а затем присвоим ей новое значение: > опр!"Ойесс! д ): > а:-3: а: Переменные среды Важными переменными среды являются О1д1ьз и Огйег, определяющие соответственно число знаков мантиссы для операций с плавающей запятой (по умолча- Основные объекты ЗЯ нию десять цифр) и порядка разложений (по умолчанию разложения выписываются члены до шестого порядка). Для переопределения любой из этих величин достаточно просто присвоить ей новое значение.
Приведем примеры, иллюстрирующие потерю точности прн вычислениях с недостаточным числом значащих цифр и вычисление экспоненты, напоминающее о годе рождения «зеркала русской революции» (Л. Н, Толстой, 1828 г.): > 01д|га:-1: адгг[2.0)+0.01-71/50; О. > 01д11а:-4: адг112.0)+0.01-71Г50, .004 > 01011а:-20: ехр[1.0); 2.7182818284590452354 Операции с вещественными числами проводятся по умолчанию с десятью значащими цифрами, но, переопределив 01 д115, можно работать с любой мантиссой.
Этот способ может оказаться полезным и для определенных этапов символьных вычислений, поскольку операции с рациональными числами выполняются медленнее. Имеется также ряд друтих переменных среды. Так, переменная среды ЬзеНаггЬна пер! Оасз определяет использование арифметического процессора компьютера для операций с вещественными числами, на котором вы работаете.
Если эта переменная имеет значение 1гне, то используется непосредственно процессор, а в случае Га! эе арифметические операции проделываются Мар[е программно. По умолчанию этой переменной присвоено значение ггое. В настоящее время этот режим действует для команд пакета [ )пеагА)деЬга и обслуживает операции с массивами, матрицами и векторами, которые основаны на новом классе гтаЬ! е. Со временем, по утверждению разработчиков, переменная ЬзеНа гона ге» ! Оатз будет определять режим вычислений для всех операций арифметики с плавающей точкой. Перечень переменных среды может быть выведен по команде > апапеыепн)гоппепг): Теегсего, [ГееНап)ннагергоагк цапин[пил, %, %%%, РГлтге, ии)ееГпеннто[е, тоа, %%, Оп1ег, ргтпнгене1, гйогта[цег, гдатег[еЕ»епГНат)гете Строки и символы Строкой (51г1 пд) является любой набор символов, заключенный в двойные кавычки.