Компьютерная математика и пакет Maple

Доступ к справкам и примерам



Доступ к справкам и примерам

В меню Help системы Maple 7 сосредоточены средства доступа к справке по всем функциям системы. Детально работу со справочной базой данных Maple 7 мы рассмотрим в следующей главе. Здесь лишь отметим, что справку по любой функции можно получить, просто установив на ее имени маркер ввода и нажав клавишу F1. На Рисунок 1.26 показано окно с началом справки по функции cos(x).









Горячие клавиши системы



Горячие клавиши системы

Для открытия меню можно использовать одновременное нажатие клавиши Alt и клавиши, которая подчеркнута в названии меню. Вызов команды при одновременном нажатии нескольких клавиш получило название "горячих" клавиш управления (Hot Keys).










Долгое время системы Maple имели



Интерфейс системы Maple 7

Обзор интерфейса Maple 7


Долгое время системы Maple имели довольно архаичный (хотя и неплохой) пользовательский интерфейс, ориентированный на операционную систему MS-DOS. Но затем версия Maple V R3, далее Maple V R4, Maple V R5 и, наконец, Maple 6 и Maple 7 приобрели вполне современный графический пользовательский интерфейс, характерный для приложений операционных систем Windows. Это намного повысило удобство работы с Maple и обеспечило интеграцию со многими другими программными продуктами.


Как у всех приложений под Windows интерфейс Maple 7 имеет ряд характерных элементов, видимых на Рисунок 1.11 и перечисленных ниже:


  • строка заголовка (сверху);
  • строка главного меню;
  • главная панель инструментов;
  • контекстная панель инструментов, вид которой зависит от режима работы с Maple 7;
  • окно ввода и редактирования документов; О строка состояния (в самом низу окна).
  • Пользовательский интерфейс Maple 7 позволяет готовить документы, содержащие одновременно текстовые комментарии, команды входного языка (с возможным преобразованием их в естественную математическую форму), результаты вычислений в виде обычных математических формул и графические данные. Это обеспечивает понятное представление исходных данных и результатов вычислений, а также удобство их повторного использования.


    В основе пользовательского интерфейса Maple 7 лежит графический многооконный интерфейс операционной системы Windows. Управление системой Maple 7 возможно с помощью главного меню, панелей инструментов и палитр, а также "горячих" клавиш. Поддерживаются также многие возможности мыши, присущие приложениям под Windows.


    Важно отметить и прекрасно реализованную справочную систему Maple 7. Преодолев первые трудности общения с системой, пользователь быстро осваивает систему справки, которая позволяет без какой-либо бумажной документации получить исчерпывающую информацию о любом операторе, функции или пакете (разумеется, на английском языке). На каждой странице справки нахддит-ся по несколько примеров, причем их можно скопировать и перенести в редйк-тор или в окно исполняемых документов системы. Это способствует быстрому обучению пользователя. Подробное описание справочной системы Maple 7 дано в уроке 2.


    Пользователь Maple 7 (как и ряда других математических систем) работает с документами, которые являются одновременно описаниями алгоритмов решения задач, программами и результатами их исполнения. Все данные команды и результаты размещаются в соответствующих ячейках. Графические построения выполняются как в ячейках документа, так и в отдельных окнах, и имеют свои меню для оперативного управления параметрами.












    в Maple является ядро системы.



    Ядро и пакеты Maple 7

    Основой для работы с символьными преобразованиями в Maple является ядро системы. Оно содержит сотни базовых функций и алгоритмов символьных преобразований. В новых реализациях объем ядра достигает 6-7 Мбайт. Имеется также основная библиотека операторов, команд и функций. Многие встроенные в нее функции, как и функции ядра, могут использоваться без какого-либо объявления, другие нуждаются в объявлении. Кроме того, имеется ряд подключаемых пакетов (packages).


    Дополнительные функции из пакетов могут применяться после объявления подключения пакета с помощью команды with(name), где name — имя применяемого пакета. Общее число функций, с учетом встроенных в ядро и размещенных в пакетах в системе Maple V R4 приближается к 2500, в реализации R5 — к 2700, а в Maple бив Maple 7 оно уже превышает 3000. Это означает, что большинство задач может решаться в режиме прямого диалога с системой без использования каких-либо средств программирования.












    Maple способна решить огромное число



    Языки системы Maple 7

    Maple способна решить огромное число задач вообще без какого-либо программирования в общепринятом смысле этого понятия. Достаточно лишь описать алгоритм решения задачи и разбить его на отдельные вопросы, на которые система Maple способна дать ответы. Более того, есть тысячи задач, алгоритмы решения которых уже реализованы в виде функций и команд системы. Тем не менее это вовсе не означает, что в Maple нельзя программировать. На самом деле Maple поддерживает три собственных языка: входной, реализации и программирования.


    Maple имеет входной язык сверхвысокого уровня, ориентированный на решение математических задач практически любой сложности. Он служит для задания системе вопросов или, говоря иначе, задания входных данных для последующей их обработки. Это язык интерпретирующего типа и по своей идеологии напоминает добрый старый Бейсик. И такое сходство вовсе не недостаток, а огромное достоинство — ведь именно с Бейсика начался подлинный диалог пользователя напрямую с компьютером! Входной язык имеет большое число заранее определенных математических и графических функций, а также обширную библиотеку, подключаемую по мере необходимости.


    Имеет Maple и свой язык процедурного программирования — Maple-язык. Этот язык имеет вполне традиционные средства структурирования программ: операторы циклов, операторы условных и безусловных переходов, операторы сравнения, логические операторы, команды управления внешними устройствами, функции пользователя, процедуры и т. д. Он также включает в себя все команды и функции входного языка, ему доступны все специальные операторы и функции. Многие из них являются весьма серьезными программами, например символьное дифференцирование, интегрирование, разложение в ряд Тейлора, построение сложных трехмерных графиков и т. д.


    Не следует путать входной язык и язык программирования системы (Maple-язык) с языком ее реализации. Им является один из самых лучших и мощных универсальных языков программирования — Си. На нем написано ядро системы, содержащее тщательно оптимизированные процедуры. Большинство же функций, которые содержатся в пакетах, написаны на Maple-языке, благодаря чему их можно модифицировать и даже писать свои собственные библиотеки. По разным оценкам, лишь от 5 до 10 % средств Maple создано на языке реализации — все остальное написано на Maple-языке. Таким образом, система имеет развитые возможности для расширения и адаптации к задачам пользователя. Для подготовки программ на языке Maple могут использоваться внешние редакторы, но система имеет и свой встроенный редактор, вполне удовлетворяющий требованиям большинства пользователей. Он открывается командами New и Open в меню File. Этот редактор можно использовать для редактирования файлов программ или математических выражений. Версии Maple для MS-DOS имеют свой редактор программ и отладчик с функциями проверки синтаксиса. После версии Maple V для Windows необходимость в этих средствах практически отпала.


    Синтаксис структурных операторов языка Maple напоминает смесь Бейсика и Паскаля. Это облегчает знакомство с ним тем, кто имеет хотя бы начальный опыт программирования на этих языках. По близким к Бейсику правилам (и при помощи общепринятых математических сокращений) выполняется и ввод математических выражений в диалоговом режиме работы с системой.













    Контекстная панель инструментов для двумерных графиков



    Контекстная панель инструментов для двумерных графиков

    Двумерные графики строятся с заданием ряда параметров, определяющих общий стиль графика. Эти параметры задают цвет и стиль линий графика, вывод координатных осей и т. д. Все параметры имеют значение по умолчанию — они и определяют вид графика, при формировании которого параметры не указаны.

    Однако ряд параметров можно изменять, щелкая на соответствующих кнопках контекстной панели. На Рисунок 1.24 показано назначение кнопок контекстной панели инструментов для редактирования параметров двумерных графиков. Такая панель появляется, если двумерный график выделен или на нем находится маркер ввода.









    Контекстная панель инструментов для трехмерных графиков



    Контекстная панель инструментов для трехмерных графиков

    Свой вид контекстной панели имеют и трехмерные графики. Назначение ее элементов представлено на Рисунок -1.25.









    Краткая характеристика систем класса Maple



    Краткая характеристика систем класса Maple


    Назначение и место систем Maple

    Maple — система компьютерной математики, рассчитанная на широкий круг пользователей. До недавнего времени ее называли системой компьютерной алгебры, Ито указывало на особую роль символьных вычислений и преобразований, которые способна осуществлять эта система. Но такое название сужает сферу применения системы. На самом деле она уже способна выполнять быстро и эффективно не только символьные, но и численные расчеты, причем сочетает это с превосходными средствами графической визуализации и подготовки электронных документов.

    Казалось бы, нелепо называть такую мощную систему, как Maple 7 математической системой "для всех". Однако по мере ее распространения она становится полезной для многих пользователей ПК, вынужденных в силу обстоятельств (работа, учеба, хобби) заниматься математическими вычислениями и всем, что с ними связано. А все это простирается от решения учебных задач в вузах до моделирования сложных физических объектов, систем и устройств, и даже создания художественной графики (например, фракталов).

    Для наших читателей (в том числе и для математиков-профессионалов) возможности систем символьной математики, реализованных на массовых ПК класса IBM PC, порой являются полной неожиданностью и вызывают вполне заслуженное удивление и восхищение, но иногда и резкое отрицание. Впрочем, последнее характерно скорее для тех, кто с системой Maple просто не работал и относится к ней, как дама из анекдота о паровозе — увидев паровоз впервые, она воскликнула: "Не может быть, что он едет без лошадей!" Maple — тщательно и всесторонне продуманная система компьютерной математики. Она с равным успехом может использоваться как для простых, так и для самых сложных вычислений и выкладок. Заслуженной популярностью системы Maple (всех версий) пользуются в университетах — свыше 300 самых крупных университетов мира (включая и наш МГУ) взяли эту систему на вооружение. А число только зарегистрированных пользователей системы уже давно превысило один миллион. Ядро системы Maple используется в ряде других математических систем, например в MATLAB и Mathcad, для реализации в них символьных вычислений.

    Добавьте к этому куда большее число незарегистрированных пользователей — ведь система записана на многих компакт-дисках, лихо продаваемых в России по вполне доступным ценам. Если учесть все это, то оказывается, что популярность системы Maple ничуть не ниже, а то и выше, чем у гораздо более простых систем, таких как Derive и Mathcad. Вот и решайте, какая из систем и впрямь рассчитана на всех!

    Maple — типичная интегрированная система. Она объединяет в себе:

  • мощный язык программирования (он же язык для интерактивного общения с системой);
  • редактор для подготовки и редактирования документов и программ;
  • современный многооконный пользовательский интерфейс с возможностью работы в диалоговом режиме;
  • мощную справочную систему со многими тысячами примеров;
  • ядро алгоритмов и правил преобразования математических выражений;
  • численный и символьный процессоры;
  • систему диагностики;
  • библиотеки встроенных и дополнительных функций;
  • пакеты функций сторонних производителей и поддержку некоторых других языков программирования и программ.
  • Ко всем этим средствам имеется полный доступ прямо из программы. Maple — одна из самых мощных и "разумных" интегрированных систем символьной математики, созданная фирмой Waterloo Maple, Inc. (Канада).

    Во многих обзорах систем компьютерной алгебры Maple справедливо считается одним из первых кандидатов на роль лидера среди них. Это лидерство она завоевывает в честной конкурентной борьбе с другой замечательной математической системой — Mathematica 4.1. Каждая из данных двух систем имеет свои особенности, но в целом эти две лидирующие системы практически равноценны. Однако надо отметить, что появление новейшей версии Maple 7 означает очередной виток в соревновании этих систем за место лидера мирового рынка. Причем виток на этот раз раньше сделала система Maple 7.

    Система Maple прошла долгий путь развития и апробации. Она реализована на больших ЭВМ, рабочих станциях Sun, ПК, работающих с операционной системой Unix, ПК класса IBM PC, Macintosh и др. Все это самым положительным образом повлияло на ее отработку и надежность (в смысле высокой вероятности правильности решений и отсутствия сбоев в работе). Не случайно ядро системы Maple V используется целым рядом других мощных систем компьютерной математики, например системами класса Mathcad и MATLAB. А совсем недавно упрощенная версия Maple для операционной системы Windows СЕ стала использоваться в миниатюрных компьютерах фирмы Casio — Cassiopeia.











    Наиболее полные возможности управления предоставляет



    Меню системы Maple 7

    Наиболее полные возможности управления предоставляет главное меню системы Maple 7. Оно, как обычно, расположено непосредственно под строкой заголовка. Меню предоставляет доступ к основным операциям и параметрам пользовательского интерфейса системы. Ниже дан перечень меню, доступных при наличии открытого документа:


  • File — работа с файлами и печатью документов;
  • Edit — команды редактирование документа и операции с буфером обмена;
  • View — управление видом пользовательского интерфейса;
  • Insert — операции вставки;
  • Format — операции задания форматов;
  • Spreadsheet — операции задания таблиц;
  • Options — задание параметров;
  • Window — управление окнами;
  • Help — работа со справочной системой.
  • Главное меню Maple 7 является контекстно-зависимым. Это означает, что его вид может меняться в зависимости от текущего состояния (контекста) системы. Например, если все документы закрыты, то главное меню содержит только три заголовка меню: File, Options и Help. При этом место для окон документов пусто и окрашено в серый цвет. Вид меню также меняется в зависимости от того, какие объекты в документе выделены. Более подробно работу с меню системы Maple 7 мы рассмотрим позже, начиная с урока 3.












    приобрела ряд новых возможностей.



    Новые возможности системы Maple 7

    Система Maple 7 приобрела ряд новых возможностей. Кратко отметим их:


  • расширенная поддержка численных алгоритмов пакета программ NAG, в том числе при решении численных задач математического анализа (например, вычисление определенных интегралов в Maple 7 ускорено в 20-40 раз в сравнении с Maple 6) и при решении дифференциальных уравнений;
  • новый обучающий курс User's Tour, встроенный в ее справку;
  • существенно переработанные и обновленные пакеты функций;
  • ускоренные алгоритмы целочисленных вычислений (например, факториал числа 25000 вычисляется более чем на порядок быстрее, чем системой Maple 6);
  • обширный набор новых алгоритмов решения дифференциальных уравнений, обеспечивающий дополнительную эффективность решения задач в области моделирования физических явлений и устройств;
  • выполненное впервые 100% успешное испытание при решении специальных тестовых задач, что является высшим достижением на рынке средств компьютерной математики;
  • усовершенствованные и новые алгоритмы реализации многих численных методов решения задач;
  • новые встроенные пакеты аппроксимации кривых CurveFitting, внешних вычислений ExternalCalling, решения линейных функциональных систем LinearFunctionalSystem, ортогональных рядов OrthogonalSeries, работы с полиномами PolynomialTools, решения уравнений SolveTools и поддержки вычислений с размерными величинами Units;
  • новый пакет для поддержки языка XML;
  • поддержка новейшего стандарта записи математической информации — языка MathML 2.0;
  • улучшение пользовательского интерфейса, в частности введение новой палитры ввода шаблонов векторов;
  • поддержка протокола TCP/IP, обеспечивающего динамический удаленный доступ к данным, например, для финансового анализа в реальном масштабе времени или данных о погоде;
  • дополнительные пакеты (Maple PowerTools™), доступные через Интернет, поддерживающие анализ методом конечных элементов (РЕМ), нелинейную оптимизацию и статистику, а также три новых пакета: вычисления для новичков, теоретическая физика и программирование;
  • возможность работы с курсом университетского математического образования, загружаемого через Интернет.
  • В сочетании с сохраненными возможностями предшествующей версии системы это дает новой версии Maple 7 обширные возможности в эффективном решении широкого класса математических и научно-технических задач, а также задач в области образования.












    Об ошибках в символьных вычислениях



    Об ошибках в символьных вычислениях

    На многих пользователей систем символьной математики удручающее впечатление может произвести наличие хотя и редких, но ошибочных решений. В самом деле, мы немедленно стерли бы с жесткого диска табличный процессор, давший ошибку в бухгалтерских расчетах, и перестали бы доверять системе проверки орфографии, дающей ошибки при проверке. Впрочем, последнее случается сплошь и рядом — пока нет таких систем, которые корректно проверяли бы орфографию и грамматику. Тот же текстовый процессор Word 97/2000 постоянно ошибается при проверке орфографии текстов, в чем автор не раз убеждался, готовя с его помощью большие книги.

    У систем компьютерной алгебры нет проблем с обработкой естественного языка — математика полностью формализованная наука. Однако в них много своих условностей и неоднозначностей, которые здесь как бы заранее запрограммированы. К примеру, что считать более простым выражением: tan(x) или sin(x)/cos(x)? Система Derive полагает более простым выражением tan(x) и преобразует к нему выражение sin(x)/cos(x). А вот система Maple V ничуть не менее справедливо считает, что функции sin(x) и cos(x) математически более простые, чем tan(.r), и вообще — tan(x), по сути, не самостоятельная функция, a sin(x)/cos(x). Поэтому Maple V везде вместо tm(x) будет выводить sin(x)/cos(x).

    Представьте себе, что таких условностей десятки и вы ничего об этом не знаете. Поэтому не стоит удивляться, что символьное значение какой-либо производной или интеграла может заметно отличаться по виду от приводимого в том справочнике, из которого взято исходное выражение для проверки правильности работы системы. Часто, чтобы получить результат в необходимом виде, необходимо приложить определенные усилия либо дать конкретные указания системе о типе преобразований в ходе вычислений. Указания реализуются в виде параметров к командам и функциям системы.

    По образному выражению автора обзора [40], решение задач в символьном виде напоминает переход через поле, густо напичканное минами. Удивительно не то, что системы символьной математики могут ошибаться и "взрываться", а то, что число этих ошибок мало и уже на нынешнем этапе развития таких систем это не мешает их серьезному практическому применению. Стоит еще раз подчеркнуть, что Maple в этом отношении является одной из лучших систем, реализованных на ПК класса IBM PC и Macintosh с достаточно умеренными техническими характеристиками. Кстати говоря, для ПК Macintosh последней реализацией пока что является Maple V R4.

    Один знакомый автор любил говорить, что компьютеры делают умных людей умнее, а глупых — глупее. Пожалуй, это более чем справедливо для людей, сидящих у ПК с установленной на нем системой символьной математики. Лишь те, кто понимают суть математических вычислений и имеют должную математическую интуицию и подготовку, могут получить от таких систем самые серьезные и даже новые результаты. Те же, кто думает, что системы символьной математики заменят им математические знания, глубоко ошибаются и могут получить красочно выглядящие, но абсолютно неверные и даже псевдонаучные результаты!

    Однако вряд ли следует утрировать вероятность выдачи системами символьной математики ошибочных результатов — даже самые опытные математики-аналитики тоже могут ошибаться в своих вычислениях. В разработке таких систем, как Maple или Mathematica принимают участие крупные математические школы всего мира! Эти системы — кладезь математических понятий, сведений и знаний. Они способны заменить самые серьезные справочники по математическим вычислениям в любой области науки, техники и образования. Кроме того, они имеют множество средств для проверки корректности выполняемых вычислений, например путем подстановки полученных результатов в исходные выражения.

    Кстати, одно из самых действенных приемов проверки таких средств — решение задачи одновременно на нескольких системах символьной математики. Не случайно уже сейчас можно заметить тенденцию к объединению математических систем. Эта новая и безусловно прогрессивная тенденция в ближайшее время приведет к созданию автоматизированных рабочих мест математиков и ученых других близких специальностей. Разработки таких рабочих мест (разумеется, компьютер на них — главный инструмент), в том числе с использованием систем Maple, уже появились и о них немного говорится в заключении. В добавление к сказанному надо отметить, что Maple 7 — одна из самых надежных систем компьютерной математики. Надежных прежде всего в смысле высокой достоверности получения правильных результатов при сложных символьных вычислениях. Эта первая система компьютерной математики, успешно прошедшая полное тестирование на задачах повышенной сложности, предлагаемых для оценки качества подобных систем.











    Обработка и индикация ошибок



    Обработка и индикация ошибок

    При работе с системой Maple 7 надо строго придерживаться правил корректного ввода выражений и иных объектов Maple-языка, называемых синтаксисом языка. Однако, как гласит русская пословица, не ошибается только тот, кто ничего не делает. Даже у опытного пользователя возможны ошибки в ходе ввода выражений и задания алгоритмов вычислений.

    Алгоритмические, но синтаксически корректные ошибки часто могут не распознаваться системой. Например, если в выражении a*sin(x) вы вместо аргумента х взяли аргумент b, то есть записали a*sin(b), то такую ошибку Maple 7 распознать не может, ибо синтаксически как a*sin(x), так и a*sin(b) абсолютно корректны. Если вы перепутаете синус с косинусом и запишете a*cos(x), то такая ошибка также не будет распознана.

    Примечание 1
    Примечание 1


    Ошибки в записи выражений, описывающих те или иные алгоритмы вычислений, не нарушающие синтаксическую корректность, системой Maple 7 не распознаются. Контроль за такими ошибками целиком лежит на пользователе.

    Приведем еще один характерный пример ошибки, которую Maple 7 не может распознать. Вводя выражение X/Y*Z, мы можем предположить, что это означает X/(Y*Z). Однако в Maple 7 приоритет операций деления и умножения одинаков. Поэтому Maple 7 вначале делит X на Y, а затем полученный результат умножает на Z:









    Ориентация систем Maple



    Ориентация систем Maple

    Вообще говоря, системы Maple ориентированы на решение сложных задач, хотя и решение в них простых задач вполне возможно и уместно. Возможно, для решения таких задач вполне подойдет весьма простая, быстрая и надежная система Derive или система Mathcad, в которую (начиная с версии 3.0 под Windows) включен приобретенный по лицензии фирмы Waterloo Maple упрощенный символьный процессор Maple. Однако по числу доступных пользователю математических функций эти скромные системы не идут ни в какое сравнение с патриархом символьной математики — системой Maple.

    Система Maple 7 может с успехом применяться для решения самых серьезных математических задач аэродинамики, теории поля, теплопроводности и диффузии, теоретической механики и др. Решение таких задач нередко является многолетним трудом элитных научных коллективов.

    Впрочем, поскольку система может быть установлена на любом современном ПК, ее можно (да и нужно) применять как можно чаще и по любому поводу. Это способствует как приобретению практических навыков работы с Maple, так и росту математических познаний тех, кто с ней работает.











    Основы работы с Maple 7 в диалоговом режиме



    Основы работы с Maple 7 в диалоговом режиме

    Начальные навыки работы

    После загрузки и запуска системы можно начать диалог с ней, используя ее операторы и функции (с параметрами) для создания и вычисления математических выражений.

    ВНИМАНИЕ
    Во избежании грубых ошибок при исполнении того или иного примера рекомендуется перед этим исполнить команду restart которая снимает определения со всех использованных ранее переменных и позволяет начать вычисления "с чистого листа".

    На Рисунок 1.12 представлен реальный диалог с системой (в виде копии экрана) при решении простейших арифметических задач и построении графика функции sin(x)/x.









    Палитры ввода математических символов



    Палитры ввода математических символов

    Полезно сразу обратить внимание на возможность модификации интерфейса системы Maple 7 с помощью команд меню View. В этом меню (оно показано на Рисунок 1.11 в открытом состоянии) можно увидеть список палитр Palettes, предназначенных для ввода математических знаков. Установив флажки соответствующих палитр, можно вывести их на экран и переместить в любое место. Все четыре палитры математических символов представлены на Рисунок 1.11. При этом палитра VECTOR введена в Maple 7 впервые.

    Назначение знаков в палитрах очевидно из их названий:

    SYMBOL — ввод отдельных символов (греческих букв и некоторых математических знаков);

    EXPRESSION — ввод шаблонов математических операторов и операций;
    MATRIX — ввод шаблонов матриц разных размеров;

    VECTOR — ввод шаблонов векторов разных размеров и типов (векторы-столбцы или векторы-строки).

    Следует отметить, что не всегда введенный на палитре символ буквально повторяет представленный на кнопке. Например, вместо символа а может быть введено слово alpha. Так происходит, если установлен действующий по умолчанию Maple-режим представления символов. Палитра ввода векторов введена в Maple 7 впервые, что сделало ввод векторов более удобным.












    Понятие о функциях и операторах



    Понятие о функциях и операторах

    Важным понятием системы Maple 7 (да и математики вообще) является понятие функции. Функция возвращает результат некоторого преобразования исходных данных — параметров функции. Maple 7 имеет множество встроенных функций, включенных в его ядро и в пакеты.

    Функция в выражениях задается вводом ее имени и списка параметров функции (одного или нескольких), заключенного в круглые скобки, например sqrt(2) задает функцию вычисления квадратного корня с параметром 2 (численной константой). Основным признаком функции является возврат значения в ответ на обращение к ней по имени (идентификатору) с указанием списка параметров функции. Например:









    Повышение эффективности работы с системой



    Повышение эффективности работы с системой

    Работа с панелью инструментов

    Пока что мы при проведении вычислений пользовались лишь простейшими средствами управления системой — вводом выражений и текстовых надписей с клавиатуры. Теперь пора расширить представления о работе с Maple. Прежде чем начать работать с ее меню, надо отметить, что для многих (особенно начинающих) пользователей оказывается удобнее использовать кнопки, расположенные на панелях инструментов, которые находятся прямо под строкой меню.

    На Рисунок 1.21 показано назначение кнопок панели инструментов (Tool Bar). Эти кнопки дублируют наиболее важные операции главного меню и имеют наглядные и типовые для Windows-приложений обозначения. Назначение кнопок и других деталей интерфейса также показаны на Рисунок 1.21.









    Представление входных выражений в математической форме



    Представление входных выражений в математической форме

    Для устранения подобного недостатка (а скорее, противоречия) Maple 7 предлагает ряд средств. Во-первых, это текстовые комментарии, в которые можно вводить формулы. Во-вторых, это инертные функции, которые не вычисляются, но дают вывод на экран в естественной математической форме (Рисунок 1.14). И в-третьих, это возможность быстрого преобразования строковых выражений ввода в естественные математические формулы.

    Об инертных функциях мы поговорим позже более подробно. Отметим лишь, что имена таких функций начинаются с большой буквы и функции выводят математическое выражение в естественной математической нотации. С помощью ряда функций, например evalf, можно вычислить математическое выражение, полученное инертной функцией. На Рисунок 1.14 внизу дан пример такого вычисления для предела функции sin(x)/x.









    Пример построения трехмерного графика поверхности



    Пример построения трехмерного графика поверхности

    Столь же просто, как и график обычной функции в декартовой системе координат, можно построить график трехмерной поверхности. Это показано на примере Рисунок 1.13. В данном случае задана функция двух переменных z(x,y) :=sin(x*y) и ее график строится с использованием графической функции plot3d. Правила задания пределов изменения переменных х и у соответствуют описанным выше.









    Пример решения системы линейных уравнений



    Пример решения системы линейных уравнений

    Приведем еще один характерный пример — решение системы линейных уравнений с помощью функции solve (Рисунок 1.20). Обратите внимание на форму задания уравнений и выдачи результатов и поразительную естественность решения задачи. Значение переменной z на Рисунок 1.20 выделено, где видно, что Maple отображает его поле под панелью инструментов.

    Слова solve, diff и int с их аргументами являются именами встроенных в систему функций, возвращающих символьные значения результатов. Нормальному пользователю может стать дурно, если вспомнить, что таких функций с их вариантами система Maple 7 имеет около трех тысяч! Да к тому же многие функции (та же solve для решения уравнений) подчас могут применяться во многих случаях и имеют массу параметров и директив для уточнения направлений решения и расширения областей применения.









    Примеры задания функции пользователя и построения ее графика



    Примеры задания функции пользователя и построения ее графика

    На Рисунок 1.12 показано, как задается функция пользователя f(x) с одним параметром х. Нетрудно заметить, что параметр указывается в скобках после имени функции а для записи выражения функции используется знак присваивания := (двоеточие со знаком равенства). Для построения графика функции f (х) используется функция plot в форме:









    Работа с контекстной панелью



    Работа с контекстной панелью

    Другое полезное средство для облегчения работы по форматированию текстов, заданию параметров входных математических выражений и графиков — контекстная панель инструментов. Как следует из названия, контекстная панель Context Bar является контекстно-зависимой — ее содержание зависит от текущего положения маркера ввода или выделения.

    Контекстная панель содержит следующие элементы при вводе текста комментария (Рисунок 1.22):

  • списки для задания стиля, шрифта и размера символов, кнопки для придания полужирного (Bold), наклонного (Italic) и подчеркнутого (Underline) начертания;
  • кнопки для выравнивания текста;
  • кнопку команды исполнения всего документа.








  • Разбухание результатов символьных вычислений



    Разбухание результатов символьных вычислений

    Одной из проблем систем компьютерной алгебры является "разбухание" результатов — как оконечных, так и промежуточных. Связано это с тем, что аналитическое представление порою может оказаться весьма громоздким даже для простых задач — пожалуй, это главная причина прохладного отношения к аналитическим вычислениям со стороны инженеров, особенно практиков. К примеру, численное решение кубического уравнения не вызовет трудностей даже на калькуляторе [1], тогда как системы символьной математики выдают его в виде формул, едва помещающихся на экране. Это и иллюстрирует Рисунок 1.19, на котором показано решение квадратного уравнения (его знает каждый мало-мальски преуспевающий в учебе школьник) и решение кубического уравнения (оно вызывает бурный восторг или легкий шок — в зависимости от отношения учащегося к математике).

    Щепетильность системы в ее стремлении выдать полный и математически предельно точный результат, безусловно, очень важна для математиков. Но для многих прикладных задач, с которыми имеют дело инженеры и техники, она оборачивается неудобствами. Инженеры часто прекрасно знают, какие из членов математических формул можно преспокойно отбросить, тогда как для математика-теоретика или аналитика такое действо — типичное кощунство. Порою системы компьютерной алгебры выдают настолько "заумный" и огромный результат, что его упрощение может занять куда больше времени, чем получение более простого результата с заранее выполненными упрощениями. Впрочем, каждому свое! И Maple имеет множество функций, обеспечивающих преобразование результатов в ту или иную форму.









    в котором просит ввести серийный



    Шаг 1

    в котором просит ввести серийный Рисунок 1.1. Окно Мастера установки Maple 7

    Затем Мастер автоматически переходит к окну, в котором просит ввести серийный номер программного продукта, который имеется в документации к системе или указан на конверте с компакт-диском.

    Для продолжения установки следует щелкнуть на кнопке Next. Это приводит к появлению следующего окна и т. д. В каждом окне после указания необходимых данных нужно нажать кнопку Next или Yes. Работа с остальными окнами мастера установки описана ниже.









    Вы можете отказаться от такого



    Шаг 10

    Вы можете отказаться от такого Рисунок 1.9. Окно Мастера установки с сообщением о ее завершении

    Вы можете отказаться от такого размещения и запускать Maple 7 из меню Пуск или из Проводника. Но, если вы намерены работать с Maple 7 часто, то рекомендуется поместить ярлык на рабочий стол Windows.

    Установка завершается вывбдом окна Мастера установки, в котором сообщается о ее успешном завершении. Данное окно представлено на Рисунок 1.9.

    В этом окне достаточно нажать кнопку Finish для завершения установки. Maple 7 будет установлена на вашем компьютере и готова к работе.

    Проблемы, связанные с установкой и возможными конфликтами, описаны в файле readme.txt, который рекомендуется просмотреть перед инсталляцией системы. К сожалению, он подготовлен па английском языке, как и вся встроенная в Maple 7 документация.











    Обратите внимание на результат выполнения



    Шаг 1

    Обратите внимание на результат выполнения Рисунок 1.16. Примеры символьных вычислений

    Обратите внимание на результат выполнения последнего примера. Он выделен. Выделение можно осуществить протаскиванием указателя мыши с нажатой левой кнопкой.

    Вычисления производных и интегралов в .символьном виде, пожалуй, являются наиболее характерными областями применения систем символьной математики. На Рисунок 1.17 показаны примеры таких вычислений с применением функции dif для вычисления производной и int для вычисления определенных интегралов.









    и кубического уравнений



    Шаг 1

    и кубического уравнений Рисунок 1.19. Решение квадратного и кубического уравнений в символьной форме











    Решение системы из пяти линейных



    Шаг 1

    Решение системы из пяти линейных Рисунок 1.20. Решение системы из пяти линейных уравнений

    В утешение можно отметить три важных обстоятельства:

  • мало кто на практике использует из всей этой массы функций более чем несколько десятков;
  • названия и формы представления многих функций интуитивно предсказуемы;
  • наконец, система имеет превосходную справочную базу данных, с помощью которой при определенном терпении (и непременном желании) можно разобраться с синтаксисом любой функции.
  • Необходимые функции и правила их преобразования система черпает в библиотеке размером около 40 Мбайт (она содержит файлы maple.hdb, maple.lib, maple.ind и maple.cmd). Это иногда занимает заметное время, особенно при первом использовании определенной группы операторов (например, тригонометрических). При повторном использовании этой группы система заметно убыстряется, так как использует уже загруженные средства.











    При необходимости панели инструментов можно



    Шаг 1

    При необходимости панели инструментов можно Рисунок 1.21. Панель инструментов

    При необходимости панели инструментов можно убрать с помощью команд меню View (см. Рисунок 1.11). Если графика выводится в отдельное окно, там имеется своя панель инструментов, которая будет описана ниже.











    Контекстная панель инструментов для текста



    Шаг 1

    Контекстная панель инструментов для текста Рисунок 1.22. Контекстная панель инструментов для текста комментария

    На Рисунок 1.15 была показана контекстная панель в случае, когда маркер ввода находится в строке ввода. Там же поясняется назначение кнопок панели для данного случая. Особо остановимся на кнопке со значком (V), которая обеспечивает проверку синтаксиса вводимого выражения до того, как оно завершено символами двоеточия или точки с запятой.

    Поясним на примере. Допустим, мы ввели ошибочное выражение для интеграла, забыв указать показатель степени в подынтегральном выражении x^n:

    > int(x^,x)

    Если нажать кнопку автокоррекции, оно примет вид:

    > int(x^ %? ,х)

    Maple явно указывает на необходимость ввода показателя степени — в нашем случае переменной n.

    А вот другой пример — мы забыли ввести закрывающую скобку в выражение:
    > int(x*n ,x

    Если теперь нажать кнопку автокоррекции, то вставка скобки произойдет автоматически:

    > int(x^n ,x)

    Таким образом, данная кнопка может быть полезна для оперативного контроля синтаксиса и исправления грубых ошибок при вводе выражений в формате Maple Input. Однако необходимо делать это до их исполнения.

    Заметим, что пока формула является входным выражением в математической форме, она может редактироваться — но не сама по себе, а в виде текстового выражения, отображающегося в поле редактирования на контекстной панели. При этом изменение записи выражения в поле редактирования немедленно влечет соответствующее изменение вводимой формулы. Это тоже довольно удобное средство, имеющее свои преимущества перед прямым редактированием формулы — в MathCAD, например, прямое редактирование формул требует определенных навыков и усваивается довольно туго.









    Контекстная панель инструментов для двумерного



    Шаг 1

    Контекстная панель инструментов для двумерного Рисунок 1.24. Контекстная панель инструментов для двумерного графика

    Действие большинства кнопок этой формы контекстной панели достаточно очевидно, и вы легко сможете опробовать эти кнопки в работе. Так, график на Рисунок 1.18 построен точками при нажатии кнопки, задающей стиль Point style. Кроме того, в функции plot построения графика явно использована опция co1or=blue, которая задает синий цвет точек графика.

    Полезно отметить, что в левой части контекстной панели есть поле с координатами текущей выделенной точки графика. Чтобы выделить точку, надо подвести к ней указатель мыши и щелкнуть левой ее кнопкой.

    При построении контурных графиков и графиков плотности имеется возможность заливки их областей между линиями уровня с выводом линии сетки, на которой рассчитываются линии уровня, и без вывода линий сетки.











    Контекстная панель инструментов для трехмерных



    Шаг 1

    Контекстная панель инструментов для трехмерных Рисунок 1.25. Контекстная панель инструментов для трехмерных графиков

    С помощью контекстной панели трехмерных графиков можно задать 7 стилей построения трехмерных графиков и 4 стиля вывода координатных осей. Возможны следующие стили трехмерных графиков (группа из семи кнопок в середине панели): функциональная окраска с видимыми линиями каркаса, функциональная окраска без линий каркаса, функциональная окраска с контурными линиями, цветной каркас с видимыми линиями, цветные контурные линии, цветной каркас со всеми (в том числе невидимыми) линиями и поверхность, построенная точками.

    Два расположенных слева счетчика позволяют задавать нужный угол обзора, причем Maple сразу же отражает заданный поворот построенной фигуры. Ее также можно вращать мышью, поместив указатель в область графика и держа нажатой левую кнопку. При этом счетчики будут отображать изменяющиеся при перемещении мыши углы обзора. Это очень удобное средство для наблюдения за деталями трехмерных поверхностей и фигур, которые строит функция plot3d.












    окно справки содержит пятиступенчатый контекстный



    Шаг 1

    окно справки содержит пятиступенчатый контекстный Рисунок 1.26. Пример справки по функции косинуса

    Как видно из Рисунок 1.26, окно справки содержит пятиступенчатый контекстный указатель, позволяющий последовательно отыскивать нужный раздел справки. Когда справка запрашивается по конкретной теме (функции), то сразу появляется посвященный ей раздел, точнее начало этого раздела.

    Примеры из справочной системы можно модифицировать, для этого их нужно скопировать в буфер и перенести в окно документа Maple 7 (см. следующую главу). Также в Maple 7 есть специальный раздел справки, дающий доступ к примерам и без их копирования. Для осуществления такого доступа в окне справки достаточно выбрать тему ExampleWorksheets в первом же разделе контекстного указателя. Откроется окно (теперь уже документа) с индексным каталогом примеров (Рисунок 1.27).

    Каталог примеров дает доступ к огромному числу примеров применения Maple 7. Просмотр одного из них (вычисление эллиптических интегралов) показан на Рисунок 1.27 справа. Рисунок 1.27 иллюстрирует также технику работы с двумя окнами документов.









    с помощью ярлыка, помещенного на



    Шаг 1

    с помощью ярлыка, помещенного на Рисунок 1.10. Запуск Maple 7 из меню Пуск

    Возможен также запуск с помощью ярлыка, помещенного на рабочий стол. В любом случае, вначале на некоторое время появляется красочное окно-заставка, показанное в центре Рисунок 1.1. После этого появляется рабочее окно системы, изображенное на Рисунок 1.11.









    Уже из этого простого примера



    Шаг 1

    Уже из этого простого примера Рисунок 1.12. Начало диалога с системой Maple 7

    Уже из этого простого примера видны особенности диалога с Maple и синтаксиса ее входного языка, то есть языка, на котором системе задаются вопросы. Диалог идет в стиле: "задал вопрос, получил ответ". Вопросы и ответы занимают отдельные блоки, выделяемые в левой части квадратными скобками. Длина квадратных скобок зависит от размера выражений — исходных (вопроса) и результатов вычислений (ответов на вопросы). Знак > является знаком приглашения к заданию вопроса. Мигающая вертикальная черта | — маркер ввода (курсор).

    Ввод выражений (вопросов) задается по правилам, давно принятым для строчных редакторов. Они хорошо известны, и мы не будем на них останавливаться подробно. Отметим лишь, что клавиша Ins позволяет задавать два основных режима ввода — замены и вставки. В режиме замены вводимый символ заменяет существующий символ, который отмечен маркером ввода. А в режиме вставки новый символ вставляется в текст, не уничтожая имеющиеся символы.

    Перемещение маркера ввода осуществляется клавишами перемещения курсора <- и -> Клавиша Backspace стирает символ слева от маркера ввода, а клавиша Del — справа от маркера ввода. Для ввода любого символа надо нажать соответствующую клавишу. Клавиша Shift включает верхний регистр для ввода заглавных (прописных) букв, а клавиша Caps Lock переключает верхний и нижний регистры клавиш с буквами (они меняются местами).

    Знак фиксации конца выражения : (точка с запятой) указывает, что результат его вычисления должен быть выведен на экран, а знак : (двоеточие) отменяет вывод и может использоваться как знак разделителя при записи нескольких выражений в одной строке. Клавиши перемещения курсора позволяют передвигаться по ранее введенным строкам на экране.











    Обратите внимание на особую роль



    Шаг 1

    Обратите внимание на особую роль Обратите внимание на особую роль десятичной точки — здесь она служит указанием к выполнению вычисления значения sin( 1.0) (или, что то же самое, sin( 1.)). А вот синус целочисленного аргумента 1 не вычисляется — считается, что вычисленное значение менее ценно, чем точное значение sin(1).

    В данном случае надо понимать, что Maple предпочитает иметь с дело точными значениями функций. Логично, что точное значение синуса от 1 записывается в виде sin(f). — Прим. ред.

    Ради единства терминологии мы будем пользоваться расширительным понятием функции, относя к нему и те объекты, которые в некоторых языках программирования именуют процедурами или командами. Например, слова plot и plot3d мы также будем называть функциями, которые возвращают графики аргументов. Под командами же мы будем подразумевать прежде всего команды, содержащиеся в меню. Помимо функций в математических системах для записи математических выражений используются специальные знаки — операторы. К примеру, вычисление квадратного корня часто записывается с помощью его специального знака — V. Достаточно хорошо известны операторы сложения +, вычитания -, умножения *, деления / и некоторые другие. Операторы обычно используются с операндами в виде констант или переменных, например в записи 2* (3+4) числа 2, 3 и 4 — это операнды, а знаки * и + — операторы. Скобки используются для изменения порядка выполнения операций. Так, без них 2*3+4=10, тогда как 2*(3+4)=14, поскольку вначале вычисляется выражение в скобках. Пожалуй, самым распространенным оператором является оператор присваивания ':=. Он используется для задания переменным конкретных значений, например:









    Ошибки такого рода называют семантическими.



    Шаг 1

    Ошибки такого рода называют семантическими. Ошибки такого рода называют семантическими. Если бы мы не проверили вывод с помощью оператора вычисления предыдущего выражения (%), то эта ошибка осталась бы нераспознанной. Выявление и устранение семантических ошибок выполняется на этапе отладки вычислений и программ.

    Примечание 2
    Примечание 2


    Используйте блокировку вычислений с помощью знака двоеточия только в том случае, когда вы абсолютно уверены в правильности записи выражения. Иначе вы можете не заметить вкравшейся в вычисления серьезной ошибки.

    В нашем примере мы получили бы верный результат, заключив выражение Y*X в круглые скобки. Как обычно, они предназначены для задания явного приоритета выполнения операций — в нашем случае вначале будет вычислено выражение в скобках (Y*Z), а затем уже X будет поделено на это выражение:









    Нетрудно заметить, что при наличии



    Шаг 1

    Нетрудно заметить, что при наличии Нетрудно заметить, что при наличии нескольких параметров функции (в нашем случае их два) они разделяются запятыми. Выражение х=-15. .15 задает, во-первых, указание, относительно какой переменной строится график, а во-вторых, говорит, в какой области значений меняются значения этой переменной — в нашем случае от -15 до +15. Шаг изменения переменной выбирается автоматически в зависимости от размеров и вида графика.











    многих читателей вполне удовлетворят уже



    Шаг 1

    многих читателей вполне удовлетворят уже Рисунок 1.13. Построение графика трехмерной поверхности

    Возможно, многих читателей вполне удовлетворят уже описанные возможности, но сила системы Maple 7 прежде всего в возможности выполнения аналитических (символьных) вычислений. Поэтому мы перейдем к обсуждению некоторых из них.











    Теперь остановимся на преобразовании исполняемых



    Шаг 1

    Теперь остановимся на преобразовании исполняемых Рисунок 1.14. Примеры применения инертных функций

    Теперь остановимся на преобразовании исполняемых выражений ввода на Maple-языке в обычные математические формулы. Для этого достаточно, выделив входное выражение, нажать первую кнопку контекстной панели — соответствующее выражение тут же приобретет вид обычной математической формулы. На рис, 1.15 показаны примеры вычислений интеграла при его задании в строках ввода в виде текстового выражения и в обычной математической нотации.

    Таким образом, всегда можно получить формульное представление входных выражений. Более того, другой кнопкой их можно превратить в инертную форму, тогда выражение перестает вычисляться и становится, по существу, обычным комментарием.

    Следует, однако, учитывать, что представление входных выражений в виде формул обычно занимает заметно больше места на экране и в документе, чем описание выражения на Maple-языке, поэтому оно используется довольно редко. Кроме того, далеко не всякое входное выражение может быть представлено в виде математической формулы — многие функции ядра и библиотек Maple 7попросту не имеют общепринятых обозначений в виде специальных математических знаков.









    Теперь достаточно использовать функцию решения



    Шаг 1

    Теперь достаточно использовать функцию решения Теперь достаточно использовать функцию решения уравнений solve, чтобы найти значение R0 в общей аналитической форме:









    показано следующее окно Мастера,



    Шаг 2

    показано следующее окно Мастера, Рисунок 1.2. Окно с приглашением к установке системы Maple 7

    На Рисунок 1. 3 показано следующее окно Мастера, которое служит для задания папки, в которой будут установлены файлы Maple 7. Вы можете оставить предлагаемую по умолчанию папку, а можете ввести любую другую.

    Если папка, заданная по умолчанию в поле Destination Folder вас не устраивает, то вы можете определить другую. Для этого щелкните на кнопке Browser. Появится стандартное окно Choose Folder, показанное на Рисунок 1.4. В этом окне можно задать желаемую папку, либо явно указав ее имя в поле Path, либо выбрав существующую в дереве Directories.

    Система Maple 7 может быть установлена как для индивидуального пользователя, так и для многих пользователей (сетевой вариант). Данный выбор можно осуществить в следующем окне Мастера установки, показанном на Рисунок 1.5. В этом окне надо задать вариант установки, щелкнув в соответствующем положении переключателя. Здесь же можно уточнить директорию (по умолчанию Users) для хранения файлов пользователей.

    Следующий этап установки — определение имени ярлыка, активизацией которого в дальнейшем будет запускаться система. Для этого служит окно Мастера установки, показанное на Рисунок 1.6. В этом окне можно оставить имя ярлыка Maple 7, предлагаемое по умолчанию, ввести вместо него другое или выбрать имя из списка, представленного в нижней части окна. Разумно согласиться с предложенным Мастером именем.









    Окно системы Maple



    Шаг 2

    Окно системы Maple Рисунок 1.11. Окно системы Maple 7











    Этот простой пример наглядно иллюстрирует



    Шаг 2

    Этот простой пример наглядно иллюстрирует Этот простой пример наглядно иллюстрирует эволюцию переменных и особую роль оператора присваивания в системе Maple. В частности, в этом примере переменные х, у и z взаимосвязаны с помощью операций присваивания. Поэтому задание значения 2 переменной z приводит к тому, что и переменные у и х принимают то же значение.

    Другой распространенный оператор — оператор равенства = — используется для задания равенств и логических условий (например, а=b), указания областей изменения переменных (например, 1=1..5 означает формирование диапазона изменения i от 1 до 5) и определения значений параметров в функциях и командах (например, color=b1ack для задания черного цвета у линий графиков).

    Операторы сами по себе результат не возвращают. Но они, наряду с функциями и своими параметрами (операндами), позволяют конструировать математические выражения, которые при их вычислении также возвращают результат. В силу этого математические выражения, содержащие операторы и операнды, могут быть параметрами функций. Выражения в Maple бывают очень простыми (например, имена переменных х и у или константы 1 и 2), а могут содержать многие тысячи знаков. С позиции канонов символьной математики квадратный корень из двух уже является основным результатом вычислений. Поэтому такая функция обычно не вычисляется в численном виде, а выводится в естественном виде с применением знака квадратного корня V. Для вычисления в привычном виде (в виде десятичного числа с мантиссой и порядком) надо воспользоваться функцией evalf(sqrt(2)) — эта функция обеспечивает вычисление символьного выражения, заданного ее параметром (числом 2).












    с синтаксическими ошибками, которые система



    Шаг 2

    с синтаксическими ошибками, которые система Но вернемся к ситуации с синтаксическими ошибками, которые система Maple 7 распознает с помощью встроенного в нее синтаксического анализатора. Например, если вы задали неправильное имя функции, то это будет опознано синтаксическим анализатором и вычисления не будут выполняться. Maple 7 просто повторит выражение в строке вывода:









    Примеры вычислений интеграла при его



    Шаг 2

    Примеры вычислений интеграла при его Рисунок 1.15. Примеры вычислений интеграла при его задании в текстовой и математической нотации











    Нетрудно проверить, что результат может



    Шаг 2

    Нетрудно проверить, что результат может Нетрудно проверить, что результат может быть получен и в численном виде для конкретных значений R1, R2 и R3: > Rl:=a.:R2:-2:R3:=3:RO:









    Как уже отмечалось, инертная форма



    Шаг 2

    Как уже отмечалось, инертная форма Рисунок 1.17. Примеры вычисления производной и интегралов

    Обратите внимание на функцию Int — инертную форму функции int. Как уже отмечалось, инертная форма служит для вывода записи интеграла в естественной математической форме, но с отложенным "на потом" выводом результата вычислений. Как отмечалось, это один из путей наглядного представления входных выражений. Все инертные функции имеют имена, начинающиеся с большой буквы, тогда как обычные функции имеют имена, начинающиеся с маленькой буквы.

    На другом рисунке (Рисунок 1.18) показано вычисление интеграла, который не имеет представления через функции системы Maple 7, но может быть вычислен ею в численном виде.









    Контекстная панель инструментов для выражений,



    Шаг 2

    Контекстная панель инструментов для выражений, Рисунок 1.23. Контекстная панель инструментов для выражений, представленных в математической нотации

    Рисунок 1.23 показывает назначение кнопок контекстной панели при установке маркера ввода в строку, содержащую входное выражение в математической нотации. Нетрудно заметить, что в этом случае контекстная панель несколько изменяется — в частности, в ней появляется поле ввода, в котором выведено выделенное выражение на Maple-языке. Такой же вид контекстной панели будет, если выделено выражение или его часть в строке вывода.












    В этой книге использованы некоторые



    Шаг 2

    В этой книге использованы некоторые Рисунок 1.27. Работа с каталогом примеров

    В этой книге использованы некоторые наиболее интересные примеры из справочной базы данных системы Maple 7. Однако большинство примеров книги не повторяет помещенные в справку Maple, носит оригинальный характер и отражает результаты исследования возможностей системы Maple 7 автора. В связи с этим читателю рекомендуется просмотреть не только примеры в данной книге, но и примеры, представленные в справочной системе по интересующим читателя функциям.











    Окно задания папки для размещения



    Шаг 3

    Окно задания папки для размещения Рисунок 1.3. Окно задания папки для размещения файлов системы Maple 7









    В этом примере вместо имени



    Шаг 3

    В этом примере вместо имени В этом примере вместо имени функции sin введено ошибочное имя son. Maple воспринимает его как некую введенную пользователем функциональную зависимость и потому просто повторяет запись и не выводит сообщение об ошибке. А вот другая ситуация — имя функции sin введено верно, но вместо десятичной точки при задании вещественного числа 1.0 использована запятая:









    Шаг 3



    Шаг 3

    Шаг 3










    Численное вычисление значения интеграла, не



    Шаг 3

    Численное вычисление значения интеграла, не Рисунок 1.18. Численное вычисление значения интеграла, не имеющего аналитического представления











    Задание имени папки для размещения



    Шаг 4

    Задание имени папки для размещения Рисунок 1.4. Задание имени папки для размещения файлов системы Maple 7









    с его встроенной функцией синуса,



    Шаг 4

    с его встроенной функцией синуса, В данном случае Maple 7 "знает", что работа идет с его встроенной функцией синуса, которая должна иметь единственный аргумент. Задание (1,0) означает, что растяпа-пользователь ввел вместо вещественного числа два целочисленных числа, разделенных запятой. Этого синтаксический анализатор Maple 7 стерпеть уже не смог, и он отреагировал выдачей сообщения об ошибке (на экране дисплея оно имеет малиновый цвет). Исправьте ошибку, и синус единицы будет благополучно вычислен:









    для одного пользователя или



    Шаг 5

    для одного пользователя или Рисунок 1.5. Выбор установки системы Maple 7 для одного пользователя или для многих пользователей









    А вот еще одна типичная



    Шаг 5

    А вот еще одна типичная А вот еще одна типичная ситуация — в последовательности выражений опущен знак-разделитель (двоеточие или точка с запятой):









    Выбор ярлыка для запуска системы



    Шаг 6

    Выбор ярлыка для запуска системы Рисунок 1.6. Выбор ярлыка для запуска системы Maple 7

    На этом предварительная часть установки завершается, и нажатием кнопки Next в окне Рисунок 1.6 можно перейти к этапу копирования файлов в намеченную папку (учтите, что часть файлов копируется и в папки с операционной системой Windows, установленной на вашем ПК). В процессе копирования файлов окно Мастера установки сменяется информационными окнами, которые сообщают о возможностях Maple 7. Одно из таких окон представлено на Рисунок 1.7. Кроме того, на экране будет отображаться окно с индикатором процесса копирования файлов, который позволяет судить о том, какая часть работы уже проделана, а также какие файлы копируются в данный момент.









    не только реагирует на



    Шаг 6

    не только реагирует на Тут Maple 7 не только реагирует на ошибку, но и пытается подсказать, что именно пропущено. Более того, маркер ввода в виде мигающей вертикальной черточки будет помещен на место ошибки и вы сможете тут же устранить ошибку. Правда, подсказки не всегда точны — в нашем случае явно пропущен разделитель в виде двоеточия, a Maple 7 сообщает о пропуске точки с запятой. Впрочем, откуда системе знать, хотим мы вывести результат операции Y:=4 сразу (для этого нужен разделитель в виде точки с запятой) или откладываем на потом (с помощью символа двоеточия).

    Вот еще один пример характерной ошибки — три знака * подряд:









    Шаг 7



    Шаг 7

    Шаг 7







    подсказывает, что один оператор



    Шаг 7

    подсказывает, что один оператор Здесь Maple 7 подсказывает, что один оператор * надо убрать — два знака * подряд означают вполне законный вариант оператора — возведение в степень. При этом маркер ввода вновь указывает место ошибки. Проанализируйте следующие простые примеры:









    В процессе копирования файлов могут



    Шаг 8

    В процессе копирования файлов могут Рисунок 1.7. Информационное окно и индикатор процесса копирования файлов

    В процессе копирования файлов могут быть ситуации, когда встречается файл с таким же именем, что и копируемый. В этом случае Мастер установки сообщит вам об этом с помощью соответствующего сообщения. Чаще всего такая ситуация встречается, если Maple 7 устанавливается поверх прежней версии системы Maple. Если пользователь твердо намерен установить новую версию системы, то рекомендуется предварительно удалить предшествующую версию (с помощью соответствующих программ и средств, разумеется). В противном случае придется решать, какой файл будет занимать место на диске — останется старый или его заменит новый (естественно, рекомендуется установить новый файл).

    По завершении копирования файлов появляется окно Мастера с запросом о том, надо ли помещать ярлык запуска системы на рабочий стол, изображенное на Рисунок 1.8.









    Шаг 8



    Шаг 8

    Шаг 8








    о размещении ярлыка запуска Maple



    Шаг 9

    о размещении ярлыка запуска Maple Рисунок 1.8. Запрос о размещении ярлыка запуска Maple 7 на рабочий стол









    вначале вычисляет функцию синуса,



    Шаг 9

    вначале вычисляет функцию синуса, В этом примере Maple 7 вначале вычисляет функцию синуса, затем производит возведение в степень и лишь потом операцию умножения. Впрочем, такой приоритет операций принят практически во всех системах компьютерной математики и в языках программирования.

    Некоторые пользователи версии системы Maple V R5 наблюдали, что русская буква "я" в конце программного комментария (он вводится после символа #) вела к зависанию программы, что требовало ее перезагрузки. В Maple 7 этот недостаток устранен:

    > #Буква "я" в конце комментария уже не вызывает зависания
    >

    Позже, при описании программирования в Maple 7, мы опишем более развитые средства контроля над допускаемыми пользователем ошибками. Пока же ограничимся приведенными 'Выше сведениями, полезными уже в начале диалога с системой.











    Символьные вычисления



    Символьные вычисления

    Простой пример символьных вычислений

    Maple 7 открывает обширные возможности выполнения символьных (аналитических) вычислений. Начнем с простого примера — требуется найти сопротивление трех параллельно включенных резисторов R1, R2 и R3 произвольной величины. Из курса электротехники известно, что можно задать следующее равенство, определяющее суммарное сопротивление R0:









    Строка состояния



    Строка состояния

    При работе с Maple полезно следить за информацией в строке состояния системы, расположенной внизу экрана. В ней появляются надписи, поясняющие исполняемые операции. Кроме того, в полях на правой части выводится текущее время, объем используемой оперативной памяти и объем доступной памяти на жестком диске, на котором установлена система.

    Хотя панели инструментов и строка состояния удобны для быстрого управления системой, они обладают одним существенным недостатком — занимают часть полезной площади экрана. Однако в меню View имеются команды, позволяющие убрать с экрана любые из этих элементов. Действие этих команд вы можете заметить, если внимательно присмотритесь к предыдущим рисункам.












    Горячие клавиши для открытия меню



    Таблица 1.1. Горячие клавиши для открытия меню


    Меню

    Горячие клавиши

    Edit

    Alt+E

    File

    Alt+F

    Format

    Alt+R

    Help

    Alt+H

    Insert

    -> Alt+I

    Options

    Alt+0

    View

    Alt+V

    Spreadsheet

    Alt+S

    Window

    Alt+W

    "Горячие" клавиши присвоены и многим другим, наиболее распространенным операциям. Они облегчают и ускоряют (наряду с кнопками панелей инструментов) быстрое управление программой. Ниже в таблицах приведен список наиболее используемых "горячих" клавиш, разбитых на ряд категорий.










    Горячие клавиши для



    Таблица 1.2. Горячие клавиши для задания начертания символов и режимов ввода текста


    Действие

    Горячие клавиши

    Полужирное начертание

    Ctrl+B

    Курсивное начертание

    Ctrl+I

    Подчеркнутое начертание

    Ctrl+U

    Включение/выключение ввода текста

    F5

    Установка режима ввода (Input Mode)

    Ctrt+M

    Задание режима ввода текста (Text Input Mode)

    Ctrl+T










    Горячие клавиши для операций выделения



    Таблица 1.3. Горячие клавиши для операций выделения


    Действие

    Горячие клавиши

    Выделение символа слева

    Shift*-

    Выделение символа справа

    Shift*»

    Выделение строки вверх

    Shift+-

    Выделение строки вниз

    Shift+?

    Выделение от маркера ввода до начала строки

    Shift+Home

    Выделение от маркера ввода до конца строки

    Shift+End

    Выделение от маркера ввода и до начала документа

    Shift+PgUp

    Выделение от маркера ввода и до конца документа

    Shift+PgDn











    Горячие клавиши операций



    Таблица 1.4. Горячие клавиши операций удаления, копирования и вставки


    Операция

    Горячие клавиши

    Выделить все

    Ctrl+A

    Копирование выделения в буфер

    Ctrl+C

    Перенос выделения из документа в буфер

    Ctrl+X

    Вставка содержимого буфера в документ

    Ctrl+V

    Удаление строки ввода (параграфа)

    Ctrl+Delete

    Закрытие выделенной секции

    Ctrl*.

    Поиск

    Ctrl+F

    Вставка параграфа после маркера

    Shift+Ctrl+J

    Вставка параграфа до маркера

    Shift+Ctrl+K

    Восстановление закрытых секций

    Ctrl+,

    Вставка исполняемой группы после маркера

    Ctrl+0

    Вставка исполняемой группы до маркера

    Ctrl+K

    Вставка конца страницы

    Ctrl+Enter

    Вставка выражения в стандартной математической форме

    Ctrl+R

    Вставка выражения в форме Standart Math Input

    Ctrl+G











    Горячие клавиши переходов по документу



    Таблица 1.5. Горячие клавиши переходов по документу


    Действие

    Горячие клавиши

    Переход к началу строки

    Ноте

    Переход в конец документа

    Ctrl+End

    Переход к концу строки

    End

    Переход в начало документа

    Ctrl+Home

    Создание новой строки

    Shift+Enter

    Переход к следующей строке ввода

    Tab

    Переход к предыдущей строке ввода

    Shift+Tab

    Переход к справке по контексту

    CtrU-Fl или-Fl

    Переход на предшествующий уровень вложенности секций

    Ctrl+UpArrow










    Горячие клавиши команд для работы с файлами



    Таблица 1.6. Горячие клавиши команд для работы с файлами


    Команда

    Горячие клавиши

    Создание нового документа

    Ctrl+N

    Открытие документа

    Ctrl+0

    Сохранение документа

    Ctrl+S

    Печать документа

    Ctrl+P

    Закрытие активного окна (документа)

    Ctrl+F4

    Завершение работы с Maple

    Alt+F4










    Горячие клавиши команд просмотра документа



    Таблица 1.7. Горячие клавиши команд просмотра документа


    Команда

    Горячие клавиши

    Перерисовка экрана (Redraw Screen)

    Ctrl+L

    Просмотр групп ячеек (Show Group Ranges)

    F9

    Показ секций (Show Section Ranges)

    Shift+F9

    Разделение строки на две части "(Split Group)

    F3

    Объединение смежных строк (Join Group)

    F4

    Разделение секции на две части (Split Section)

    Shift F3

    Объединение смежных секций (Join Section)

    Shift F4

    Отмена предшествующей операции (Undo)

    Ctrl+Z










    Горячие клавиши установки масштаба (Zoom Factor)



    Таблица 1.8. Горячие клавиши установки масштаба (Zoom Factor)


    Масштаб

    Горячие клавиши

    50%

    Ctrl+1

    100%

    Ctrl+2

    150%

    Ctrl+3

    200%

    Ctrl+4

    300%

    Ctrl+5

    400%

    Ctrl+6

    Разумеется, можно успешно работать с системой, вообще ничего не зная про "горячие" клавиши. Многие так и делают! Однако быстрая и профессиональная работа в Maple 7 невозможна без использования этих клавиш, поскольку они существенно экономят время пользователя.

    При работе с русифицированной версией Windows латинские буквы в обозначениях "горячих" клавиш нередко заменяются русскими буквами, не несущими никакой смысловой связи с выполняемой операцией. В этом случае полезно знать, что соответствующая латинская буква (или иной знак) и указанная в меню русская находятся на одной клавише (например, комбинация клавиш для сохранения документа (Ctrl+S) может быть показана как Ctrl+ы).











    Типовые символьные вычисления



    Типовые символьные вычисления

    На Рисунок 1.16 показано несколько примеров выполнения символьных вычислений математического характера: преобразование тригонометрического выражения с помощью функции упрощения simplify, вычисление суммы ряда функцией sum и вычисление неопределенного интеграла функцией int.









    Управление формой представления документа



    Управление формой представления документа

    Форматы математических выражений

    Приведенные выше примеры реализуют обычную форму представления документа. В нем имеются текстовые комментарии (для их ввода надо нажать клавишу F5), сформулированные на Maple-языке задания на вычисления, результаты вычислений в виде обычных математических формул и, там где это указано, графики.

    Эта выстраданная форма представления документов является компромиссом между наглядностью и простотой ввода исходных данных. Может показаться, что в этом отношении намного дальше продвинулись системы класса Mathcad — у них исходные данные и описание алгоритмов вычислений давно задаются в виде естественных математических символов и формул. За исключением, правда, функций символьных вычислений, пока не имеющих общепринятых специальных математических символов и вводимых путем указания их имен.

    Однако это достоинство кажется явным лишь на первый взгляд. Ввод сложных формул довольно трудоемок и требует специфических навыков, отсутствующих даже у самых опытных пользователей. В Mathcad эту проблему решили созданием панелей (палитр) с полным набором всех математических символов и шаблонов для представления сложных формул, таких как интегралы, суммы и произведения рядов, производные и т. д. Однако, хотя при этом их ввод и становится более простым, легким его не назовешь, а монотонность операций нервирует многих пользователей.

    В Maple 7 ввод исходных данных производится привычными для языков программирования средствами — с помощью функций и операторов, задаваемых в командной строке. Зато результаты вычислений получаются по умолчанию в виде обычных формул (хотя есть возможность их представления в другом виде, например принятом в редакторе LaTeX или языках программирования Fortran и С). Тем не менее вид документа с таким специфическим заданием формул может озадачить математика и любого пользователя, не слишком знакомого с основами программирования. В целом он отрицательно сказывается на восприятии документов.











    Управление с помощью мыши



    Управление с помощью мыши

    Для управления состоянием ячеек можно использовать контекстное меню, появляющееся при нажатии правой кнопки мыши. Если установить указатель мыши на входной ячейке, то это меню будет содержать три команды:

  • Standard Math — включает и выключает показ входных выражений в естественной математической форме;
  • Maple Input — управляет видом ячейки ввода (математический/текстовый);
  • Execute — включает выполнение ячейки.
  • Также в зависимости от состояния буфера обмена и наличия выделения в контекстном меню могут присутствовать команды Cut, Copy и Paste.

    Левая кнопка мыши может использоваться для передачи фокуса управления или переноса маркера ввода, а также выделения частей документа.











    Установка системы Maple 7 на ПК



    Установка системы Maple 7 на ПК

    Аппаратные требования

    В этой книге рассматривается реализация системы Maple 7, требующая:
  • процессор — Pentium 150 МГц и выше;
  • оперативная память — не менее 16 Мбайт (рекомендуется 32 Мбайта и выше);
  • место на жестком диске — около 80 Мбайт (120 Мбайт для сетевой версии).
  • бширная библиотека пользователя, поставляемая с предшествующими версиями системы Maple V, с новыми версиями Maple 6 и Maple 7 пока не поставляется, поскольку требует серьезной переработки. Достаточно отметить, что использование в новых версиях системы оператора % для вызова последнего результата (вместо применяемого ранее оператора кавычек) делает неработоспособными большинство программ этой библиотеки. Также в новой версии изменен синтаксис некоторых функций.











  • стартует автоматически. При этом



    Установка системы Maple 7

    Установка системы производится обычно с компакт-диска. Обычно компакт-диск с инсталляционной версией Maple 7 стартует автоматически. При этом появляется окно Мастера установки со шкалой выполнения предварительной подготовки, показанное на Рисунок 1.1.










    Версии систем класса Maple



    Версии систем класса Maple


    Известен ряд версий системы Maple, называемых реализациями. Одной из самых известных реализаций является реализация Maple V R5. В ней появилась возможность работы с электронными таблицами, несколько улучшен интерфейс пользователя (введены палитры для ввода математических символов и расширены возможности управления мышью), стала возможной запись файлов в формате HTML и введена возможность обмена объектами между документами методом перетаскивания (Drag and Drop).

    Основное достоинство предшествующей версии Maple 6 — это существенное ускорение вычислений с большими матрицами, достигнутое применением алгоритмов матричных вычислений известного пакета NAG (Numbering Algorithms Group). Хотя данная книга посвящена новейшей реализации системы Maple 7, ее основной материал будет полезен и пользователя реализации Maple 6.

    Новейшая версия систем Maple — Maple 7 появилась 21 июня 2001 г. Корпорация Waterloo Maple оценивает ее появление как новый виток в борьбе за мировое лидерство в области автоматизации математических вычислений — как численных, так и, в особенности, символьных. Являясь одними из лучших и надежных систем компьютерной математики, Maple 6 и Maple 7 становятся мировым стандартом в области математических вычислений.











    Перечислим основные возможности предшествующей версии



    Возможности предшествующей версии Maple 6

    Перечислим основные возможности предшествующей версии системы Maple 6.


    Интерфейс:


  • работа со многими окнами;
  • вывод графиков в отдельных окнах или в окне документа;
  • представление выходных и входных данных в виде естественных математических формул;
  • задание текстовых комментариев различными шрифтами;
  • возможность использования гиперссылок и подготовки электронных документов;
  • удобное управление с помощью клавиатуры через главное меню и инструментальную панель;
  • управление с помощью мыши.
  • Символьные и численные вычисления:

  • дифференцирование функций;
  • численное и аналитическое интегрирование;
  • вычисление пределов функций;
  • разложение функций в ряды;
  • вычисление сумм и произведений;
  • интегральные преобразования Лапласа, Фурье и др.;
  • дискретные Z-преобразования;
  • прямое и обратное быстрое преобразование Фурье;
  • работа с кусочно-заданными функциями.
  • Работа с уравнениями в численном и символьном виде:

  • решение систем линейных и нелинейных уравнений;
  • решение систем дифференциальных уравнений;
  • символьное вычисление рядов;
  • работа с рекуррентными функциями;
  • решение трансцендентных уравнений;
  • решение систем с неравенствами.
  • Работа с функциями:


  • вычисление значений всех элементарных функций;
  • вычисление значений большинства специальных математических функций;
  • пересчет координат точек между различными координатными системами;
  • задание функций пользователя.
  • Линейная алгебра:


  • свыше ста операций с векторами и матрицами;
  • решение систем линейных уравнений;
  • формирование специальных матриц и их преобразования;
  • вычисление собственных значений и собственных векторов матриц;
  • поддержка быстрых векторных и матричных алгоритмов пакета программ NAG.
  • Графическая визуализация результатов вычислений:


  • построение графиков многих функций;
  • различные типы осей (с линейным и логарифмическим масштабом);
  • графики функций в декартовой и полярной системах координат;
  • специальные виды графиков (точки массивов, векторные графики, диаграммы уровней и др.);
  • системы координат, определяемые пользователем;
  • графики, представляющие решения дифференциальных уравнений;
  • графики трехмерных поверхностей с функциональной закраской;
  • построение пересекающихся в пространстве объектов;
  • задание пользователем окраски графиков;
  • импорт графиков из других пакетов и программных систем;
  • анимация графиков;
  • создание и проигрывание анимационных файлов.
  • Программирование:


  • встроенный язык процедурного программирования;
  • простой и типичный синтаксис языка программирования;
  • обширный набор типов данных;
  • типы данных, задаваемых пользователем;
  • средства отладки программ;
  • мощные библиотеки функций;
  • задание внешних функций и процедур;
  • поддержка языков программирования С и Fortran;
  • возможность записи формул в формате LaTeX.











  • Всплывающие подсказки



    Всплывающие подсказки

    Еще один важный и полезный элемент интерфейса — всплывающие подсказки. Они появляются, если навести курсор мыши на тот или иной элемент интерфейса. На Рисунок 1.11 показана одна из всплывающих подсказок. Подсказки имеют вид облачка, которое вытекает из указанного элемента интерфейса. Особенно удобны подсказки для пояснения назначения кнопок палитр и панелей инструментов. В дальнейшем мы будем неоднократно приводить примеры всплывающих подсказок при работе с интерфейсом.











    Запуск системы



    Запуск системы

    Запуск Maple 7 производится, как обычно, из меню Пуск (Рисунок 1.10). Найдя строчку Maple 7, необходимо открыть подменю и щелкнуть на команде Maple 7 (Рисунок 1.10).









    Компьютерная математика и пакет Maple

    История работы со справкой



    История работы со справкой

    Было замечено, что пользователь, занятый решением определенного класса задач, обычно неоднократно возвращается к ранее просмотренным разделам справочной системы. Чтобы не искать их всякий раз заново, справочная система хранит список разделов, просмотренных в данном сеансе работы. Он выводится операцией History (Рисунок 2.12).
    Достаточно найти в этом окне нужный раздел справки и нажать кнопку ОК, чтобы вывести его на экран. Кнопка Apply позволяет просматривать каждый новый раздел в своем окне.








    Модернизация справочной базы данных



    Модернизация справочной базы данных

    В справочной базе данных предусмотрена возможность ее расширения путем записи текущего документа, составленного пользователем, в указанный раздел. При выполнении операции Save to Database выводится специальное окно, в котором надо указать соответствующие данные о модернизируемом разделе справки. Вид окна представлен на Рисунок 2.13.
    Ограничимся этим указанием, учитывая, что для нашего пользователя модернизация англоязычной справочной базы данных явно отдает экзотикой.











    с предшествующими версиями системы Maple,



    Новые возможности Maple 7

    Пользователи, знакомые с предшествующими версиями системы Maple, обычно хотят узнать, что нового введено в последней версии. Однако, как у нас говорят, "лучшее — враг хорошего" — при большом числе новых возможностей (и особенно при модификации старых возможностей) появляется несовместимость между документами для старых и новых версий системы. Несмотря на меры, предпринятые по предотвращению такой несовместимости, ее проявление вполне возможно, в частности документы, созданные в Maple 7, уже нельзя использовать в предшествующих версиях из-за различий в их внутренних форматах.

    Выполнение команды What's New открывает окно с описанием новых возможностей Maple 7. Оно показано на Рисунок 2.8.









    Обучающий курс New User's Tour



    Обучающий курс New User's Tour

    Команда New User's Tour открывает окно курса по обучению основам пользования Maple, показанное на Рисунок 2.4.








    Оперативная справка по контексту



    Оперативная справка по контексту

    Оперативная справка по контексту — сравнительно новая возможность справочных систем. Она особенно удобна при разборе примеров, содержащих незнакомые пользователю функции и иные объекты системы Maple. Полезна она и в том случае, когда пользователь знаком с применяемым объектом, но хотел бы уточнить его свойства и синтаксис.
    Для получения оперативной справки по контексту достаточно установить курсор на соответствующий объект, например на имя какой-либо функции, и открыть меню Help. В нем можно обнаружить, что операция Help on Context модифицируется и приобретает вид Help on "...", где на месте многоточия стоит слово, на котором остановился курсор. На Рисунок 2.1 таким словом является имя функции, вычисляющей синус, — sin.
    Допустим, что в тексте документа в строке ввода есть функция sin(x). Если теперь выполнить команду Help on "..." — тут же появится окно со справкой о функции синуса. Существуют и горячие клавиши для этой команды — Ctrl+Fl (или просто F1). Пример справки по функции sin представлен на Рисунок 2.3.








    Правила работы со справочной системой



    Правила работы со справочной системой

    Справочная система Maple 7, по существу, является мощной базой данных с обширными возможностями поиска нужной информации и многочисленными примерами применения Maple 7. Работа с такой системой может вызвать затруднения у начинающих пользователей, поэтому в состав справочной системы включено описание правил ее использования. При исполнении команды Using Help появляется страница с перечнем разделов описания справочной системы (Рисунок 2.9).








    Предметный поиск с полным обзором текста справки



    Предметный поиск с полным обзором текста справки

    Предметный поиск с полным обзором текста справки (Full Text Search) — еще один эффективный метод получения справочной информации. Он напоминает ранее рассмотренный, но вхождение заданного образца ищется во всем тексте справочной системы, а не только по индексу, составленному создателями Maple. При этом выводится окно, подобное показанному на Рисунок 2.11. Обратите внимание на то, что в большом Поле этого окна указано существенно больше разделов справки, чем при поиске по индексу — очевидно, что большинство из них будет случайным упоминанием данного образца.








    Предметный поиск



    Предметный поиск

    Команда Topic Search (предметный поиск) — одна из самых мощных функций справки. Она выводит окно поиска (Рисунок 2.10), содержащее в верхней части поле для ввода образца. Образцом может быть слово (например, имя функции) или даже часть слова. В окне под этим полем появляется список всех объектов Maple 7, в индекс которых входит заданный образец (Рисунок 2.10).
    Теперь остается из заданного списка слов выбрать нужное, что приведет к появлению окна справки с информацией по данному слову. Иногда индекс по данному слову будет иметь несколько ссылок, на появившейся странице вам придется уточнить, справку по какому объекту вы хотите получить. Окно предметного поиска в правой части имеет четыре кнопки со следующим назначением:
  • Search — поиск по образцу;
  • Apply — вывод окна выбранного раздела справки при сохранении окна поиска;
  • ОК — окончание поиска (выводится окно с выбранным разделом и исчезает окно поиска);
  • Cancel — закрытие окна поиска.
  • Кроме того, имеется возможность задания двух параметров:
  • Same Window — вывод в то же окно (если окно не открыто на полный экран);
  • Auto-Search — автоматический поиск по образцу по мере ввода последнего.
  • Заметим, что если установлен флажок Auto-Search, то кнопка Search становится недоступна, поскольку отпадает необходимость в ней.











    Просмотр введения



    Просмотр введения

    Команда Introduction в меню справки запускает справочную систему на странице введения (Рисунок 2.2).
    В введении определено назначение Maple 7 как системы компьютерной алгебры и дается ссылка на сайт фирмы — разработчика системы (www.maplesoft.com). Щелкнув на гиперссылке, вы перейдете на начальную страницу web-сервера фирмы. На странице введения имеются также гиперссылки на обучающий курс (New User's Tour), на страницы с обзором новых возможностей Maple 7 и справки по различным элементам интерфейса.








    Работа со справочной системой



    Работа со справочной системой


    Меню Help
    Справочной системе Maple 7 принадлежит исключительная роль — только в ней можно найти полную информацию обо всех почти трех тысячах функций Maple 7. Использование англоязычной справочной системы может быть полезно и для тех, кто и "двух слов по-английски связать не может", поскольку в ней приведен синтаксис функций и операторов, а также многочисленные примеры их применения — по самым скромным подсчетам их свыше десяти тысяч. К сожалению, справочная система Maple 7 очень громоздка. Но это нельзя считать недостатком справочной системы, поскольку просто велик объем входящего в нее материала. В справочной системе имеются все присущие современным базам данных возможности для быстрого поиска нужной информации и даже для ее структурирования и пополнения.
    Основные команды по работе со справочной системой Maple 7 сосредоточены в меню Help, показанном на Рисунок 2.1.








    Регистрация системы



    Регистрация системы

    Команда Register Maple 7 меню справочной системы открывает окно регистрации системы Maple 7. Это окно позволяет вызвать браузер Интернета, с помощью которого выполняется регистрация.











    Меню Help справочной системы Maple



    Шаг 1

    Меню Help справочной системы Maple

    Рисунок 2.1. Меню Help справочной системы Maple 7
    Оно содержит команды, объединенные в несколько групп. В первую группу входят следующие команды:

  • Introduction — показ начального раздела справки (введения);
  • Help on Context — вывод оперативной справки по контексту;
  • New User's Tours — запуск обучающей системы;
  • What's New — описание новых возможностей системы;
  • Using Help — описание правил использования справочной системы;
  • Glossary — вывод указателя терминов.
  • Второй раздел меню содержит команды:
  • Topic Search — предметный поиск по заданному образцу;
  • Full Text Search — предметный поиск с полным обзором текста справки;
  • History — вывод истории поиска.
  • В третьем разделе имеются две команды для работы с базой данных:
  • Save to Database — запись данных в базу данных;
  • Remove Topic — восстановление базы данных предметного поиска путем удаления дополнительных данных;
  • Остальные разделы представлены следующими командами:
  • Balloon Help — включение всплывающих подсказок;
  • Register Maple 7 — регистрация Maple 7;
  • About Maple 7 — вывод окна с информацией о Maple 7.
  • Рассмотрим детально работу справочной системы Maple 7. Следует отметить, что ценность справочной системы для наших читателей намного снижается из-за того, что она написана на английском языке. Учитывая громоздкость справочной системы и необходимость в наличии компьютера для ее использования, для знакомства с системой Maple 7 более подходят обычные книги, тогда как справочную систему следует применять при необходимости ознакомиться с тонкими деталями применения тех или иных операторов, функций и иных средств Maple 7.











    Окно дополнения базы данных



    Шаг 1

    Окно дополнения базы данных

    Рисунок 2.13. Окно дополнения базы данных








    Обратите внимание, что данный продукт



    Шаг 1

    Обратите внимание, что данный продукт

    Рисунок 2.15. Окно с данными о системе Maple 7
    Обратите внимание, что данный продукт датирован концом мая 2001 г. Как уже отмечалось в уроке 1, официально он выпущен на рынок 21 июня 2001 г.











    Обратите внимание на оригинальный подход



    Шаг 1

    Обратите внимание на оригинальный подход

    Рисунок 2.2. Окно справочной системы с введением
    Обратите внимание на оригинальный подход к представлению пути нужной справки. Для его определения служат 5 окон-списков. На Рисунок 2.2 используется только одно окно, а остальные 4 пока пусты. Выбирая последовательно по элементу из каждого списка, вы сможете достигнуть требуемой справочной информации. Подробнее навигация по справочной системе будет описана позже.











    Пример справки по функции sin



    Шаг 1

    Пример справки по функции sin

    Рисунок 2.3. Пример справки по функции sin
    Как видно из Рисунок 2.3, справка по контексту позволяет судить о назначении функции, синтаксических правилах ее задания и примерах применения. Реализована она по единым правилам справочной системы и содержит открываемые разделы и гипертекстовые ссылки.
    В этом примере уже хорошо видна техника использования окон в верхней части справки для уточнения необходимого раздела. Так, обнаруженная функция cos (кстати не sin, это любопытное свойство справки Maple — наличие "союзных" разделов) находится уже в четвертном окне. Последовательность доступа к ней следующая: Mathematics-Basic Mathematics-Exponential, Trig and Hyperbolic-cos. Очевидно, что функция cos найдена потому, что она выступает в паре с функцией sin, — на странице справки приведены примеры и к той, и к другой функции. Учитывая огромное число функций системы Maple 7 и соответственно разделов справки, подобный способ поиска информации представляется очень удобным. Он, кстати, стал использоваться и в Mathematica 3/4 — ближайшем конкуренте Maple.











    Окно курса обучения основам Maple



    Шаг 1

    Окно курса обучения основам Maple

    Рисунок 2.4. Окно курса обучения основам Maple
    В конце страницы (Рисунок 2.4) имеется гиперссылка Click here to begin the New User's Tour. Она открывает окно обучающего курса по Maple с перечнем ее разделов, представленное на Рисунок 2.5. Наименования разделов являются гиперссылками. Как видно из Рисунок 2.5, обучающий курс имеет следующие разделы:

  • (1) Working Through the New User's Tour — обучение работе с курсом;
  • (2) The Worksheet Environment — создание документов;
  • (3) Numerical Calculations — численные вычисления;
  • (4) Algebraic Computations — алгебраические преобразования;
  • (5) Graphics — графики;
  • (6) Calculus — вычисления;
  • (7) Differential Equations — дифференциальные уравнения;
  • (8) Linear Algebra — линейная алгебра;
  • (9) Finance and Statistics — финансы и статистика;
  • (10) Programming — программирование;
  • (11) Online Help — помощь через Интернет;
  • (12) Summary — заключение.
  • Активизация любой из этих гиперссылок приводит к выводу соответствующего раздела обучающего курса. На Рисунок 2.6 представлено начало раздела 3, посвященного численным вычислениям.








    с описанием новых возможностей системы



    Шаг 1

    с описанием новых возможностей системы

    Рисунок 2.8. Окно справки с описанием новых возможностей системы Maple 7
    С помощью гиперссылок на этой странице можно получить достаточно подробное описание всех появившихся в Maple 7 возможностей. Мы уже отмечали их в уроке 1.











    с перечнем разделов описания справочной



    Шаг 1

    с перечнем разделов описания справочной

    Рисунок 2.9. Окно с перечнем разделов описания справочной системы
    Мы не будем подробно описывать содержание страницы и гиперссылок, поскольку весь материал данного урока и является, по существу, таким описанием.











    Окно предметного поиска



    Шаг 1

    Окно предметного поиска

    Рисунок 2.10. Окно предметного поиска








    Список ранее просмотренных разделов справки



    Шаг 1

    Список ранее просмотренных разделов справки

    Рисунок 2.12. Список ранее просмотренных разделов справки











    Окно удаления разделов справочной базы



    Шаг 2

    Окно удаления разделов справочной базы

    Рисунок 2.14. Окно удаления разделов справочной базы данных











    с перечнем разделов обучающего курса



    Шаг 2

    с перечнем разделов обучающего курса

    Рисунок 2.5. Окно с перечнем разделов обучающего курса








    с полным обзором текста справки



    Шаг 2

    с полным обзором текста справки

    Рисунок 2.11. Окно предметного поиска с полным обзором текста справки
    В этом окне используются те же кнопки управления, что и для окна поиска справки по образцу. Флажок Goodness of Match включает вывод статистики повторяемости образца в текстах разделов справочной системы.











    Начало раздела обучающего курса по



    Шаг 3

    Начало раздела обучающего курса по

    Рисунок 2.6. Начало раздела обучающего курса по численным вычислениям
    Основные достоинства обучающего курса в том, что он (в отличие от справочной базы данных) дает обычное описание работы с системой Maple 7 с "живыми" примерами, которые не надо копировать в документы. Фактически обучающая система является просто набором документов системы. Вначале примеры даны без ячеек вывода, которые появляются после исполнения команды Edit> Execute> Worksheet. Это иллюстрирует Рисунок 2.7.








    Начало раздела обучающей системы по



    Шаг 4

    Начало раздела обучающей системы по

    Рисунок 2.7. Начало раздела обучающей системы по численным вычислениям после исполнения команды Edit> Execute > Worksheet
    Пользователь может модифицировать любой пример и немедленно получить новые результаты (попробуйте, например, заменить вычисление 200! на 100! или 500!). К сожалению, написан обучающий курс на английском языке и в отличие от обычной книги для работы с ним нужен компьютер.











    Удаление разделов базы данных



    Удаление разделов базы данных

    Для удаления разделов базы данных служит команда Remove Topic. Она выводит окно, показанное на Рисунок 2.14.
    Обратите внимание, что модернизации в обоих случаях подвергается один и тот же файл базы данных maple.hdb.








    Включение всплывающих подсказок



    Включение всплывающих подсказок

    На первом этапе знакомства с пользовательским интерфейсом системы Maple 7 удобно использовать всплывающие подсказки. Они вводятся при установке флажка Balloon Help. Для получения подсказки по какому-либо объекту достаточно задержать на пару секунд указатель мыши на этом объекте. Пример вывода всплывающей подсказки показан на Рисунок 2.1 — она указывает на назначение команды меню Help — Help on "sin".











    Вывод окна с информацией о системе



    Вывод окна с информацией о системе

    Последняя команда меню Help — About Maple 7 — выводит окно с информацией о версии Maple 7 (Рисунок 2.15). В этом окне содержатся данные, необходимые для регистрации системы Maple 7 (номера лицензии и самого продукта), а также данные о времени выпуска системы.








    Компьютерная математика и пакет Maple

    В данном случае титульная надпись,



    Шаг 1

    В данном случае титульная надпись,

    Рисунок 3.11. Пример переноса выделенной в одном документе строки в окно другого документа

    В данном случае титульная надпись, удаленная командой Cut, перенесена в другой, пустой, документ.

    Меню содержит ряд операций, разбитых



    Шаг 1

    Меню содержит ряд операций, разбитых

    Рисунок 3.1. Меню File и пустое окно нового документа

    Меню содержит ряд операций, разбитых на группы. В первую группу входят следующие операции по работе с документами (в скобках приведены горячие клавиши):

  • New (Ctrl+N) - создать новый документ;
  • Open (Ctrl+0) - открыть существующий документ;
  • Open URL - открыть URL-адрес;
  • Save (Ctrl+S) - сохранить активный документ;
  • Save As — сохранить активный документ под новым именем;
  • Export As — экспортировать файл;
  • Close (Ctrl+F4) — закрыть окно активного документа;
  • Save Settings — запись конфигурации (установок) Maple;
  • AutoSave Settings — автоматическая запись конфигурации.
  • Вторая группа команд относится к печати документов:

  • Print Preview — предварительный просмотр документа перед печатью;
  • Print (Ctrl+P) — печать документа;
  • Printer Setup — установка параметров принтера.
  • Вторая из этих команд позволяет распечатать весь текст документа с комментариями, математическими формулами, таблицами и графиками. Печать производится принтерами в графическом режиме, поэтому и не очень быстро. Зато печатаются все шрифты и математические спецзнаки. Можно напечатать и отдельные части документа.

    После этой группы команд имеется список документов (файлов с расширением .ms), которые были загружены в систему в предшествующие сеансы работы. Выбрав в этом списке название одного из файлов, можно быстро загрузить его, не тратя времени на открытие файла через команду Open. Последняя группа представлена единственной командой:
  • Exit (Alt+F4) - выйти из Maple 7.
  • Примечание 1
    Примечание 1


    Если вы работаете в русифицированной версии Windows, то горячие клавиши могут содержать вместо латинских букв русские эквиваленты. Например, команда New имеет горячие клавиши Ctrl+N, тогда как в меню они могут быть обозначены как Ctrl+T (см. Рисунок 3.1). На самом деле, как обозначать клавишу: русской буквой или латинской — дело вкуса.

    Пример использования операций Copy as



    Шаг 1

    Пример использования операций Copy as

    Рисунок 3.12. Пример использования операций Copy as Maple Text и Paste

    Обратите внимание, что графическое представление интеграла в строке вывода превратилось в его отображение в текстовом формате. То же имеет место в отношении представления производных, сумм, произведений и т. д. Обратите также внимание на то, что текстовый комментарий в данном случае выводится стандартным шрифтом. Атрибуты (признаки) стиля, цвета и размера символов теряются.

    Пример использования операций Сору



    Шаг 1

    Пример использования операций Сору

    Рисунок 3.13. Пример использования операций Сору и Paste

    Пример использования операций Copy as



    Шаг 1

    Пример использования операций Copy as

    Рисунок 3.15. Пример использования операций Copy as Maple Text и Paste Maple Text

    Любопытно сравнить две пары операций, действие которых демонстрируют Рисунок 3.12 и 3.15.

    При обнаружении указанного фрагмента он



    Шаг 1

    При обнаружении указанного фрагмента он

    Рисунок 3.16. Поиск заданного фрагмента текста

    При обнаружении указанного фрагмента он выделяется, и маркер ввода устанавливается в начало найденной подстроки. После этого можно приступить к ее редактированию.

    С помощью команды Find возможна также замена подстроки. Для этого надо указать текст замены в нижнем поле окна. Чтобы заменить найденную подстроку, надо нажать кнопку Change, чтобы заменить все подстроки, — Change All.

    Документ после удаления всех ячеек



    Шаг 1

    Документ после удаления всех ячеек

    Рисунок 3.18. Документ после удаления всех ячеек вывода

    Следует отметить, что меню Insert



    Шаг 1

    Следует отметить, что меню Insert

    Рисунок 3.19. Меню Insert

    Следует отметить, что меню Insert является контекстно-зависимым. К примеру, оно исчезает, если выделен график.

    Меню вставки разделено на две группы. В первой группе содержатся следующие команды:

  • Text (Ctrl+T) — ввод текста;
  • Standard Math (Ctrl+R) — ввод неисполняемых математических выражений;
  • Maple Input (Ctrl+M) — ввод исполняемых выражений в Maple-формате;
  • Standard Math Input (Ctrl+G) — ввод выражений в математической форме в строку ввода.
  • Во второй группе содержатся следующие команды:

  • Execution Group — вставка исполняемой ячейки до или после маркера ввода;
  • Plot — вставка пустого шаблона двумерного или трехмерного графика;
  • Spreadsheet — вставка электронной таблицы;
  • Paragraph — вставка текстовой области (абзаца);
  • Section — вставка кнопки секции;
  • Subsection — вставка кнопки подсекции;
  • HyperLink — вставка гиперссылки;
  • Object — вставка связанного или внедренного объекта;
  • Page Break — вставка разрыва страниц.
  • Перейдем к более подробному рассмотрению этих команд.

    Ввод математического выражения по команде



    Шаг 1

    Ввод математического выражения по команде

    Рисунок 3.20. Ввод математического выражения по команде Standard Math

    По завершении ввода надо нажать клавишу Enter, и выражение появится в строке ввода (Рисунок 3.21). При этом выражение будет выделено.

    По команде Insert Spreadsheet вставляется



    Шаг 1

    По команде Insert Spreadsheet вставляется

    Рисунок 3.22. Вставка шаблона электронной таблицы

    По команде Insert Spreadsheet вставляется пустая электронная таблица, во всех ячейках которой нет никаких данных. Однако помимо заполнения таблицы с помощью соответствующих операций можно провести заполнение вручную. Для этого достаточно мышью выделить ячейку, щелкнув в ней левой кнопкой. Ячейка обводится черным контуром (ячейка А1 на Рисунок 3.22), и появляется контекстное меню с полем для ввода выражения. Во время ввода выражения ячейка покрывается серой сеточкой. Если после набора выражения нажать клавишу Enter, то числовое значение выражения будет помещено в ячейку А1 таблицы. К примеру, на Рисунок 3.23 показано введенное выражение 2+3. Однако в поле редактирования сохраняется исходное выражение (Рисунок 3.23).

    Если маркер ввода находится в одной из ячеек электронной таблицы, становится доступным меню Spreadsheet (Рисунок 3.23).

    импорт данных из других программ



    Шаг 1

    импорт данных из других программ

    Рисунок 3.23. Шаблон электронной таблицы и меню Spreadsheet

  • Row — работа со строками (вставка, удаление и т. д.);
  • Column — работа со столбцами (вставка, удаление и т. д.);
  • Fill — автоматическое заполнение ячеек;
  • Import data — импорт данных из других программ (например, из MATLAB);
  • Export data — экспорт данных в другие программы;
  • Properties — просмотр свойств ячеек;
  • Show Border — управление показом обрамления таблицы;
  • Resize to Grid — изменение размеров видимой таблицы с обрезанными ячейками до размера таблицы с целыми ячейками (дополнение идет по линиям раздела ячеек).
  • Если таблица активизирована (курсор находится внутри таблицы), то нажатие правой клавиши мыши вызовет появление контекстного меню. Его вид аналогичен виду описанного выше меню Spreadsheet.

    Возможности Maple 7 в обработке табличных данных намного превосходят возможности обычных табличных процессоров. В частности, наряду с текстовыми и численными данными электронные таблицы Maple 7 могут работать с символьными данными — формулами.

    к автоматическому заполнению ячеек под



    Шаг 1

    к автоматическому заполнению ячеек под

    Рисунок 3.24. Подготовка к автоматическому заполнению ячеек под заданной ячейкой

    В окне Открытие файла вам



    Шаг 1

    В окне Открытие файла вам

    Рисунок 3.2. Окно открытия документа

    В окне Открытие файла вам нужно найти нужный файл, а затем дважды щелкнуть на его имени или на кнопке ОК. Данное окно — пример единых диалоговых окон для всех приложений Windows.

    Maple 7 — далеко не первая из версий системы компьютерной алгебры. Каждая очередная версия может иметь модифицированные элементы Maple-языка. Поэтому иногда возникает проблема частичной несовместимости документов, подготовленных в разных версиях системы Maple. Разработчики системы по мере возможностей учли это и предусмотрели автоматическое определение версии Maple, в которой был создан документ. Если выбранный документ был сохранен в старой версии программы, то перед его загрузкой появляется окно, представленное на Рисунок 3.3.

    Пример создания



    Шаг 1

    Пример создания

    Рисунок 3.27. Пример создания гиперссылки

    В большинстве случаев пользователя Maple



    Шаг 1

    В большинстве случаев пользователя Maple

    Рисунок 3.30. Окно задания и модернизации стилей

    В большинстве случаев пользователя Maple 7 вполне удовлетворят стили, заданные по умолчанию. Более того, надо помнить, что задание своего стиля неизбежно означает повышение риска несовместимости при обмене документами Maple 7. Поэтому без особой на то необходимости изменять стандартный стиль не рекомендуется.

    Однако бывают принципиальные обстоятельства, когда изменение стиля необходимо. Например, при выводе титульных надписей для графиков Maple 7 используют стандартный англоязычный шрифт Courier New. При вводе русскоязычных надписей Maple 7 воспринимает их вывод как ошибку, поскольку набор символов при вводе не соответствует набору символов, заданному в стиле. Таким образом, для организации вывода русскоязычных надписей необходимо сменить набор символов (шрифт), то есть изменить стиль. Покажем, как это делается. Вначале в списке стилей надо выбрать наименование Title, после чего нажать кнопку Modify. Появится окно Paragraph Style с параметрами стиля Title (Рисунок 3.31).

    В этом окне надо нажать кнопку Font. Появится новое окно (оно также показано на Рисунок 3.31) для выбора шрифта. В нашем случае достаточно заменить шрифт по умолчанию Courier New на шрифт Courier New Cyr. Он содержит символы кириллицы, то есть буквы русского языка. После этого задание титульных надписей для графиков на русском языке перестает быть проблемой.

    Применение операции Indent для одной



    Шаг 1

    Применение операции Indent для одной

    Рисунок 3.32. Применение операции Indent для одной из ячеек документа

    Если щелкнуть на кнопке со знаком "минус", то секция свернется и вместо нее останется только кнопка со знаком "плюс" (Рисунок 3.33).

    с закрытой секцией



    Шаг 1

    с закрытой секцией

    Рисунок 3.33. Пример документа с закрытой секцией

    в первом положении, то объект



    Шаг 1

    в первом положении, то объект

    Рисунок 3.34. Окно вставки объекта

    Если оставить переключатель в первом положении, то объект может быть создан заново с помощью подходящего приложения, например редактора Paint. Этот процесс показан на Рисунок 3.35.

    Диалоговое окно для записи файла



    Шаг 1

    Диалоговое окно для записи файла

    Рисунок 3.4. Диалоговое окно для записи файла с указанием его имени

    В списке Папка нужно найти папку, в которую вы хотите поместить файл, а в поле Имя файла вам нужно указать новое имя. Впрочем, не обязательно новое — если вы выберете другую папку, то можете сохранить и ее старым именем — оригинал не пострадает. , Maple позволяет сохранить файл в следующих форматах (список внизу окна):

  • Maple Worksheet (*.rnws/*.ms) — файлы формата Maple 7;
  • Maple Text (*.txt) — файлы в формате текста Maple;
  • HTML Source (*.html) — файлы в формате HTML;
  • Text (*.txt) — файлы в текстовом формате;
  • LaTeX Source (*.tex) — файлы в формате LaTeX.
  • Формат HTML — новый для Maple формат, позволяющий записывать файлы документов в виде web-страниц. .

    Команда Save as особенно полезна при доработке и модификации файлов, например входящих в комплект поставки системы, когда надо сохранить оригинальные файлы в неприкосновенности. Для этого достаточно записать измененные файлы под новыми именами.

    Диалоговое окно, появляющееся при закрытии



    Шаг 1

    Диалоговое окно, появляющееся при закрытии

    Рисунок 3.5. Диалоговое окно, появляющееся при закрытии модифицированного документа

    Следует помнить, что каждое окно, будучи сложным графическим объектом, занимает определенный и вовсе не малый объем памяти. Поэтому команда Close является эффективным средством освобождения оперативной памяти, особенно когда закрывается большой документ. Однако надо помнить, что бывшие в нем определения (например, значения переменных, введенные функции пользователя и т. д.) сохраняются в памяти, даже когда документ закрыт, естественно, пока вы не дадите команду restart.

    Быстро закрыть документ можно, нажав клавиши Ctrl+F4.

    Операции первой группы используют буфер



    Шаг 2

    Операции первой группы используют буфер

    Рисунок 3.9. Меню Edit

    Операции первой группы используют буфер обмена (Clipboard). Так называется специально организованная и динамически изменяющаяся область памяти в операционной системе Windows. В нее могут помещаться различные (обычно предварительно выделенные) объекты, документы и даже файлы. Буфер можно использовать для обмена объектами как в пределах текущего документа, так и между различными документами и даже приложениями.

    Примечание 1
    Примечание 1


    Очень часто некоторые операции меню Edit будут недоступны — они отображены серым шрифтом это означает, что в данный момент не существует объекта, к которому может быть применена команда. Однако в демо-версии Maple команды копирования и вставки будут недоступны всегда — таково ограничение создателей.

    Несколько следующих групп представлены одной операцией:

  • Find (Ctrl+F5) — выводит окно поиска заданной строки и ее замены на другую строку;
  • Hyperlinks — редактирование гиперссылок;
  • Object — редактирование объекта;
  • Unit Converter — перевод между различными единицами измерения;
  • Complete Command — подсказка для завершения текущей незаконченной команды Maple-языка;
  • Entry Mode (F5) — переключение режима ввода.
  • Последняя команда позволяет менять режим строк ввода — они могут содержать математические выражения или неисполняемые текстовые комментарии. Именно благодаря текстовым комментариям документы Maple 7 приобретают достаточно наглядный вид. Наглядность документов дополнительно повышается благодаря возможности представления результатов вычислений (а иногда и вводимых выражений) в естественной математической форме. Восьмая группа команд открывает подменю, содержащие команды с ячейками и секциями документа:

  • Split or Join — разделение или объединение объектов;
  • Execute — исполнение выделенных или всех строк документа;
  • Remove Output — удаление вывода для выделенных или всех строк документа.
  • Команды подменю Split or Join позволяют легко модифицировать вид документов путем разделения и объединения строк и секций.

    Пример копирования формулы из ячейки



    Шаг 2

    Пример копирования формулы из ячейки

    Рисунок 3.14. Пример копирования формулы из ячейки вывода одного документа в ячейку ввода другого документа

    Различные варианты преобразования форматов при использовании операций копирования и вставки надо учитывать при подготовке сложных документов.

    Пример замены одной подстроки



    Шаг 2

    Пример замены одной подстроки

    Рисунок 3.17. Пример замены одной подстроки другой

    Завершение ввода по команде Standard



    Шаг 2

    Завершение ввода по команде Standard

    Рисунок 3.21. Завершение ввода по команде Standard Math

    после автоматического заполнения ячеек



    Шаг 2

    после автоматического заполнения ячеек

    Рисунок 3.25. Электронная таблица с Рисунок 3. 24 после автоматического заполнения ячеек первого столбца

    о загрузке документа другой версии



    Шаг 2

    о загрузке документа другой версии

    Рисунок 3.3. Окно с предупреждением о загрузке документа другой версии Maple

    Нажмите кнопку ОК, и документ будет открыт. Не следует думать, что загруженный документ старой версии Maple непременно будет полностью работоспособен. К сожалению, это не так — некоторые документы требуют коррекции, прежде чем Maple 7 сможет их исполнить.

    Примечание 1
    Примечание 1


    Вас не должно удивлять появление в отдельных случаях элементов интерфейса с русскоязычными надписями — например, окно открытия файла (Рисунок 3.2). Они обусловлены тем, что Maple использует некоторые типовые элементы интерфейса операционной системы Windows. И если последняя русифицирована, то вполне возможно появление элементов интерфейса с русскоязычными надписями.

    После загрузки документа его содержимое появляется в новом окне (см., например, Рисунок 1.16 или 1.17) и можно приступать к работе с ним. Во многих системах открытие нового окна командой New или Орел отменяет все предыдущие действия (значения переменных, функции и т. д.). Но в Maple 7 это не так — поскольку система предполагает совместную работу в нескольких окнах, каждое новое окно будет "знать" о происходившем в других окнах. Если же вы хотите начать с нуля в новом окне — исполните в нем команду restart. Maple 7 позволяет работать и с документами, представленными в HTML формате и имеющими URL-адрес. Для загрузки таких документов служит команда Open URL. Она открывает простое окно с полем для ввода URL-адреса. Работа с ним очевидна.

    о закрытии документа при переходе



    Шаг 2

    о закрытии документа при переходе

    Рисунок 3.28. Окно с предупреждением о закрытии документа при переходе по гиперссылке и необходимости сохранения изменений

    Окна установки параметров абзацного стиля



    Шаг 2

    Окна установки параметров абзацного стиля

    Рисунок 3.31. Окна установки параметров абзацного стиля для абзаца и для выбора шрифта

    Разумеется, в понятие стиля входит не только шрифт, но и размер, начертание, цвет и т. д. Все это можно настраивать, используя описанные выше окна. При необходимости изменения стиля можно записать его в специальный файл, используя кнопку Save As Default. При этом измененный стиль становится принятым по умолчанию. Кнопка Revert As Default позволяет вернуться к типовым стилям, которые заданы разработчиками системы. Если стили подверглись небольшим изменениям, то можно сохранить их с помощью кнопки Merge Existing.

    После того как объект готов,



    Шаг 2

    После того как объект готов,

    Рисунок 3.35. Подготовка объекта в графическом редакторе PhotoShop

    После того как объект готов, достаточно выйти из приложения, в котором он создавался, — в нашем случае из редактора Paint. Для этого в меню редактора имеется команда File > Exit. Окно Paint исчезнет, а сам объект появится в той ячейке Maple 7 (Рисунок 3.36), в которой был установлен маркер ввода в момент дачи команды вставки объекта.

    в ячейку В1 вводится инертная



    Шаг 3

    в ячейку В1 вводится инертная

    Рисунок 3.26. Электронная таблица с символьными данными

    Затем во втором столбце в ячейку В1 вводится инертная формула Int(x^-Al.x), a в ячейку В2 — исполняемая формула int(x*~A2.x). После этого выделяются ячейки от В2 до В10 и исполняется команда Spreadsheet Fill Down. В результате формируется столбец с символьными значениями интегралов. Аналогично (третий этап) задается формирование столбца с символьными значениями производной от x^n (рекомендуем сделать это самостоятельно для закрепления навыков работы с электронными таблицами в среде Maple 7).

    Примечание 1
    Примечание 1


    Выше описаны лишь основы работы с электронными таблицами в среде Maple 7. Для более полного знакомства с техникой применения электронных таблиц нужно обратиться к справочной системе Maple 7.

    Гиперссылки позволяют создавать сложные структуры



    Шаг 3

    Гиперссылки позволяют создавать сложные структуры

    Рисунок 3.29. Результат активизации гиперссылки

    Гиперссылки позволяют создавать сложные структуры документов, содержащие множество объектов, вызываемых в произвольном порядке. Например, для возврата в исходный документ можно организовать обратную гиперссылку в вызываемом документе. Лучшим примером такого применения гиперссылок является справочная система Maple 7. Гиперссылки также широко используются при создании web-страниц. Maple 7 позволяет сохранять документы в виде web-страниц (формат HTML), которые без каких-либо преобразований можно публиковать в сети Интернет.

    Весьма привлекательной кажется возможность организации гиперссылок на разделы справочной системы. Она позволяет создавать учебные программы со ссылками на справки системы Maple 7.

    или другого объекта) можно поместить



    Шаг 3

    или другого объекта) можно поместить

    Рисунок 3.36. Пример документа со вставленным объектом-рисунком

    Вместо рисунка ( или другого объекта) можно поместить в документе Maple 7 значок — гипермедиа-ссылку. Для этого в окне на Рисунок 3.34 надо установить флажок В виде значка. Щелчок на вставленном в документ значке вызовет появление объекта. Этот способ удобен, когда объекты, например рисунки, имеют большой размер и их постоянное присутствие на экране нецелесообразно.

    Необязательно каждый раз создавать объект с нуля — можно загрузить его из файла, в этом случае следует установить положение переключателя Создать из файла. Для поиска нужного файла пригодится кнопка Обзор. После выбора файла надо решить, какой вид будет иметь значок связи с файлом — вид стандартного значка или уменьшенной копии изображения.

    Сохранение документа



    Сохранение документа

    Команда Save записывает содержимое активного в данный момент окна в виде файла на диск с использованием его текущего имени. Исключением будут документы, созданные командой New и не переименованные, тогда действие команды будет аналогично выполнению команды Save as, обсуждаемой ниже. Следует с осторожностью пользоваться командой Save в том случае, когда вы модернизируете какой-либо документ, но желаете сохранить оригинал в неизмененном виде, ведь содержимое модернизированного файла будет записано "поверх" оригинала. Чтобы этого не произошло, для сохранения файла следует воспользоваться командой Save as, описанной в следующем разделе. При подготовке сложных документов рекомендуется периодически (в некоторых ситуациях довольно часто) давать команду Save, сохраняя сделанные изменения. Это позволяет избежать потери хотя бы части проделанной работы в случае сбоя компьютера. (Не важно, чем будет вызвано выключение или зависание компьютера — халтурной работой электрика или программиста или шалостью вашего ребенка — если вы лишний раз сохраните файл, вам придется меньше сил потратить на его восстановление.) Выполнение команды Save не приводит к выдаче сообщений и окон (кроме уже упомянутого исключения), и поэтому ее не обременительно дать лишний раз, особенно если вы запомните "горячие" клавиши для нее — Ctrl+S.


    Создание нового документа



    Создание нового документа

    Вернемся к широко используемым операциям первой группы и рассмотрим их более подробно. Заметим, что к некоторым из них можно быстро обратиться с помощью "горячих" клавиш (они указаны в скобках после названия команды). Команда New используется для создания нового документа. Она открывает новое пустое окно редактирования и переводит Maple в режим редактирования (Рисунок 3.1).

    При создании нового документа в его начале появляется ячейка со знаком приглашения >, после которой виден мигающий маркер ввода в виде вертикальной черты |. Ячейка ввода обрамляется открывающей квадратной скобкой. Созданный документ приобретает имя Untitled (N) (в вольном переводе — "Безымянный под номером N", где N — целое число). Следуя приглашению программы, можно приступать к работе в Maple.

    Операция New дублируется кнопкой со значком в виде чистого листа, размещенной на панели инструментов. Разумеется, нажать ее вы сможете, только если панель инструментов выведена на экран.


    Удаление ячеек вывода



    Удаление ячеек вывода

    Команда Remove Output служит для удаления из документа всех ячеек вывода. Это полезно для редактирования ячеек ввода, поскольку объем документа при этом заметно сокращается. Она открывает подменю с двумя командами:

  • From Selection — удаление вывода только для выделенных ячеек;
  • From Worksheet — удаление вывода для всего документа.
  • Рассмотрим, к примеру, документ, который был представлен на Рисунок 3.16. После выполнения для него команды Remove Output From Worksheet документ принимает вид, показанный на Рисунок 3.18.

    Заметим, что документ с Рисунок 3.18 можно вернуть к исходному виду, выполнив команду Execute Worksheet, описанную выше. Однако в данном конкретном случае исполнение команды value(") даст сообщение об ошибке, поскольку в версиях Maple 6 и 7 данная команда должна быть записана в виде valueU).



    Уничтожение выделенного абзаца



    Уничтожение выделенного абзаца

    Команда Delete Paragraph служит для уничтожения блока ввода, на котором расположен курсор. При этом в буфер обмена удаленный текст не заносится. В отличие от операции вырезания Cut ее применение не загружает буфер и предотвращает нехватку оперативной памяти. Если вы случайно удалите нужную строку — есть время спохватиться — дайте команду Undo.


    Установка параметров принтера



    Установка параметров принтера

    Печать документов — одна из основных функций любой среды подготовки документов. В общем случае она предполагает установку параметров принтера. Для этого служит команда Printer Setup, приводящая к открытию диалогового окна, показанного на Рисунок 3.8.



    Установка стилей



    Установка стилей

    Команда Styles является основной, поскольку позволяет задать стиль текста — определенный набор значений доступных параметров: размещение на странице, выравнивание, шрифт, начертание, цвет, размер и т. д. Единство стилей документов важно при включении их в отчеты, курсовые и дипломные проекты, диссертации и иные документы. Придерживаться определенных стилей — это правило хорошего тона при работе как с текстовыми процессорами, так и с математическими системами. Именно поэтому ориентация на определенный стиль подготовки документов стала неотъемлемой частью пользовательского интерфейса системы Maple 7.

    Операция Styles выводит диалоговое окно Style Management, в котором можно как изменить уже существующий стиль, так и создать новый (Рисунок 3.30).



    Включение и выключение режима ввода текста



    Включение и выключение режима ввода текста

    Maple 7 позволяет вводить в ячейки текст комментариев и исполняемые математические выражения (для того чтобы ввести в одну ячейку комментарий и функцию Maple, надо воспользоваться командами меню Insert). Операция Input mode служит для переключения между режимами ввода. Горячая клавиша команды — F5. Если режим ввода текста комментария включен, приглашение в виде знака > исчезает. Если этот режим отменен, то можно вводить исполняемые математические выражения, придерживаясь синтаксиса языка Maple.


    Восстановление отмененной операции



    Восстановление отмененной операции

    Команда Redo позволяет вернуть отмененную операцию, если в этом возникает необходимость. Действие этой команды, естественно, тоже распространяется не более чем на пять операций. Команды Undo и Redo имеют кнопки (с изображением стрелок) на панели инструментов для быстрого доступа к себе.


    Вставка гиперссылки



    Вставка гиперссылки

    Еще одна возможность сделать документы более удобными в работе заключается в создании гиперссылок. Гиперссылка — это текстовая надпись, подчеркнутая снизу, при щелчке на которой Maple перейдет к сопоставленному с ней объекту. Гиперссылку можно связать со следующими объектами:

  • с файлом любого документа (Worksheet:);
  • с заданной страницей справочной системы (Help Topic:);
  • со страницей в Интернете (URL:).
  • Для создания гиперссылки надо установить на место будущей ссылки маркер ввода и выполнить операцию HyperLink. При этом появится окно связывания гиперссылки с объектом, показанное на Рисунок 3.27.

    В окне надо задать заголовок гиперссылки (в виде короткой текстовой надписи) и выбрать одно из трех положений переключателя, перечисленных выше. Если вы намерены сослаться на документ, то следует использовать кнопку просмотра Browse для поиска нужного файла. Появляющееся окно показано на Рисунок 3.27 справа.

    Как уже говорилось, гиперссылка выглядит как надпись, подчеркнутая снизу. Активизируя ее, можно вызвать объект, связанный с ней, — в нашем случае другой документ, файл которого находится на жестком диске. Использование гиперссылки на другой документ в Maple 7 реализовано не очень удачно. Дело в том, что в этом случае исходный документ по умолчанию закрывается. Если последние изменения в нем не были сохранены, то появляется окно с предупреждением об этом.1 Оно показано на Рисунок 3.28.

    Можно избежать закрытия документа, щелкнув на кнопке New Window; Maple предоставит открывающемуся документу новое окно. Это иллюстрирует Рисунок 3.29. В нем также показано контекстное меню гиперссылки. Это меню содержит три команды:

  • Properties — вывод окна свойств гиперссылки (Рисунок 3.27, слева);
  • Follow link — смена документа с гиперссылкой на указанный в ней документ;
  • Open link — открытие отдельного окна для открываемого документа (Рисунок 3.29).


  • Вставка исполняемых ячеек до и после курсора



    Вставка исполняемых ячеек до и после курсора

    Команда Execution Group обеспечивает вывод подменю с двумя командами:
  • Before Cursor (Ctrl+K) — вставка исполняемых ячеек ввода до курсора;
  • After Cursor (Ctrl+J) — вставка исполняемых ячеек ввода после курсора.
  • Напоминаем, что признаком исполняемых ячеек является знак приглашения . Данные команды позволяют ввести в любом месте документа новые входные ячейки, что часто бывает нужно при модификации документов.


    Вставка из буфера обмена в документ



    Вставка из буфера обмена в документ

    Команда Paste копирует содержимое буфера обмена, помещенное туда командами Сору или Cut, в место, указанное маркером ввода. При этом сохраняются форматы всех объектов документа, если они были скопированы (Рисунок 3.13).

    Как видно из Рисунок 3.13, возможно применение этой операции не только в пределах окна одного документа, но и при переносе данных из одного окна в другое.

    Надо отметить, что при копировании в буфер обмена математической формулы из ячейки вывода и вставке ее в строку ввода формат формулы меняется — она автоматически превращается в текстовое выражение. Это иллюстрирует Рисунок 3.14.



    Вставка из буфера обмена в формате Mapleтекста



    Вставка из буфера обмена в формате Maple-текста

    Операция Paste As Maple Text служит для вставки данных из буфера обмена с одновременным их преобразованием в текстовый формат.

    Если данные в буфер обмена поступили в результате выполнения операции Сору as Maple Text, то при операции Paste Maple Text в документ будут скопированы только данные из строк ввода в формате Maple-текста. Это показано на Рисунок 3.15.



    Вставка кнопки подсекции



    Вставка кнопки подсекции

    Подсекцией называют секцию, размещенную внутри другой секции. Создавая подсекции, можно строить документы со сложной древообразной структурой, напоминающей разделы книги с хорошей рубрикацией. Это может оказать большую помощь в создании электронных вариантов книг и обучающих программ в среде Maple 7.

    Команда Subsection создает кнопку секции внутри уже созданной секции. Все, сказанное о секциях, распространяется и на подсекции!



    Вставка кнопки секции



    Вставка кнопки секции

    Команда Section служит для установки кнопки, указывающей начало секции (см. Рисунок 2.6 с такой кнопкой) и служащей для открытия/закрытия секции. Секция может состоять из различных объектов: текстовых комментариев, строк ввода, строк вывода, графиков и других секций (подсекций).

    Как и в операционной системе Windows, значок *+" указывает на закрытую секцию, значок "-" — на открытую. Секции предоставляют дополнительную свободу управления документом.


    Вставка объектов



    Вставка объектов

    Для организации вставки объекта используется команда Insert > Object. Она выводит окно со списком тех приложений, с которыми возможна связь с применением механизма OLE. Это окно показано на Рисунок 3.34. Maple 7 использует стандартное окно вставки объектов из операционной системы Windows, поэтому если она русифицирована, то окно имеет русскоязычные надписи.



    Вставка текстовой области



    Вставка текстовой области

    Для вставки строки текстовой области служит операция Paragraph. Она создает строку без приглашения >, в которую можно вводить текст. Единственным отличием этой команды от команды Text является то, что она вставляет новую строку, не меняя статуса имеющихся строк. При вводе длинных текстов число строк ввода автоматически увеличивается.


    Ввод математических выражений



    Ввод математических выражений

    Команда Standard Math Input выводит новую строку ввода со знаком вопроса в ней. После этого ввод начинается в поле ввода строки форматирования. По завершении ввода нажимается клавиша Enter и введенное выражение появляется в строке ввода (обычно с выделенной последней частью).



    Ввод текста



    Ввод текста

    Команда Text приводит к исчезновению знака приглашения , после чего можно сразу же начинать ввод текста комментария. Данная команда позволяет формировать ячейку, содержащую текст комментария и исполняемые функции.


    Ввод выражений в стандартной форме



    Ввод выражений в стандартной форме

    Команда Standard Math выводит в строке ввода вопросительный знак. После этого в поле ввода строки форматирования можно начинать ввод неисполняемого математического выражения (Рисунок 3.20).



    Ввод выражений



    Ввод выражений

    Команда Maple Input в меню Insert превращает текущую строку в строку ввода исполняемых математических выражений. В начале строки появляется приглашение ко вводу в виде значка , после чего можно начинать ввод выражения. Кнопка со знаком х в начале контекстной панели позволяет представить вводимое выражение в естественной математической форме, если таковая возможна. В таком случае ввод выражения осуществляется в поле на контекстной панели инструментов.



    Выделение всех объектов



    Выделение всех объектов

    Команда Select All выделяет все объекты документа. Это полезно, например, для вставки всего документа в другой документ.


    Выход из системы



    Выход из системы

    Команда Exit служит для выхода из Maple. Тогда при использовании операции Exit можно наблюдать последовательное исчезновение окон документов. Если пользователь забыл записать какой-либо документ на диск, система сообщит об этом, выдав запрос. Нужно ответить Yes (Да), если документ нужно сохранить, и No (Нет), если сохранение не требуется. Однако стоит сохранить документы, подвергавшиеся редактированию и модификации, заранее — вдруг вы по ошибке нажмете не ту кнопку.

    Не следует применять команду Exit, если вам необходимо временно переключиться в окно другой программы, так как повторная загрузка Maple занимает много времени.



    Закрытие документа



    Закрытие документа

    Команда Close закрывает окно вместе с текущим документом, и система переходит к работе со следующим окном (либо к пустому серому окну, если был закрыт последний документ).

    Если закрываемый документ подвергался модификации, то система спросит, надо ли сохранять изменения (Рисунок 3.5).



    Запись документа на диск с переименованием



    Запись документа на диск с переименованием

    Команда Save As отличается от предыдущей тем, что перед записью файла на диск в появившемся диалоговом окне вы можете изменить имя файла (Рисунок 3.4).

    Таким образом можно сохранить доработанный документ и в то же время оставить неизменным оригинал.



    Запись настроек программы



    Запись настроек программы

    Для записи сделанных настроек Maple в меню File предусмотрены две команды: Save Settings и Auto Save Settings. Последняя команда — это флажок, при установке которого новая настройки Maple будут записываться автоматически при завершении работы.


    Компьютерная математика и пакет Maple

    Горизонтальное расположение окон



    Горизонтальное расположение окон

    При использовании команды Horizontal окна оказываются расположенными на экране в виде горизонтальных полос (Рисунок 4.23). Этот вариант расположения окон, как и каскадное расположение, дает обзор заголовков документов, если область просмотра каждого документа расположена сверху окна. Последнее условие может нарушаться при перемещении окон документов.


    Каскадное расположение окон



    Каскадное расположение окон

    Каскадное расположении окон напоминает колоду карт, сдвинутых так, чтобы были видны их титульные строки. Такое расположение окон показано на Рисунок 4.21.



    Контроль за предполагаемыми переменными (Assumed Variables)



    Контроль за предполагаемыми переменными (Assumed Variables)

    На переменные в Maple 7 могут быть наложены различные условия. Для этого используется специальная функция assume. Например, если переменная х может принимать только положительные значения, то для этого достаточно исполнить команду assume(x>0). Будем называть такие переменные предполагаемыми, поскольку предполагается, что они имеют какие-то дополнительные ограничения, помимо накладываемых на них типом.

    В подменю Assume Variables меню Options имеются три команды, управляющие контролем признаков предполагаемых переменных:

  • Trailing Tildes — включает маркировку предполагаемых переменных знаком тильды (-);
  • No Annotation — включает параметр "без аннотаций", то есть запрещает вывод аннотации;
  • Phrase — включает параметр вывода комментариев для предполагаемых переменных. ;
  • Предполагаемые переменные при выводе обычно обозначаются значком тильды (-) после их имени. Этот знак отображается при установки флажка Trailing Tildes (по умолчанию она включена). Однако с помощью флажка No Annotation можно отключить как это обозначение, так и короткий текстовый комментарий, который сопровождает предполагаемые переменные. Наконец, флажок Phrase включает вывод текстовых комментариев. Рисунок 4.16 наглядно иллюстрирует применение этих параметров.

    Благодаря применению предполагаемых переменных облегчается реализация ряда алгоритмов, критичных к выбору переменных. Например, если использовать вычисление квадратного корня без привлечения понятия о комплексных числах, то на численные значения переменных надо наложить условие их положительности. Контроль за статусом таких переменных и дают описанные параметры.



    Параметры экспорта документов



    Параметры экспорта документов

    Команда Export открывает очень простое окно установки параметров экспорта, показанное на Рисунок 4.14.



    Приведение в порядок значков свернутых окон



    Приведение в порядок значков свернутых окон

    Свернутые окна представлены значками. Они могут перемещаться мышью по всему пространству экрана, поэтому иногда значки оказываются хаотично разбросанными (Рисунок 4.25).



    Работа с окнами



    Работа с окнами

    Меню Window

    При серьезной работе в среде Maple 7 пользователь нередко вынужден работать одновременно с несколькими документами. Удобства такой работы зависят от того, как окна расположены в пределах экрана. Maple 7 дает возможность расположить их любым стандартным способом.

    Основные команды по установке расположения окон сосредоточены в меню Window (Рисунок 4.20).



    Помимо ряда уже рассмотренных команд



    Работа с параметрами Maple 7

    Меню Options

    Помимо ряда уже рассмотренных команд в меню Options сосредоточены средства для установки некоторых глобальных параметров ввода и вывода документов. Их число в Maple 7 существенно увеличено.

    Первая группа команд содержит две команды:

  • Replace Output — управляет характером вывода;,
  • Insert Mode — устанавливает режим вставки при вводе.
  • Во второй группе всего одна команда Browser — задание броузера для перехода по URL.

    Третья группа также представлена одной командой:

  • Export — параметры экспорта документов.
  • Четвертая группа содержит 6 команд:

  • Input Display — управление показом выражений в строке ввода;
  • Output Display — управление показом результатов вычислений;
  • Assumed Variables — контроль за предполагаемыми переменными;
  • Plot Display — управление отображением графиков;
  • Display 2D-legends — управление показом подписей обозначений двумерной графики;
  • Print Quality — управление качеством печати.
  • Пятая и шестая группы содержат по одной команде:

  • Palette Size — управление размером палитр;
  • AutoSave — управление автоматическим сохранением документа.
  • С помощью этих параметров можно настроить систему на наиболее приемлемые формы вывода результатов вычислений без задания специальных команд в документе. Однако последние могут отменять параметры, заданные с помощью меню.


    Раскрытие всех секций



    Раскрытие всех секций

    Для раскрытия всех секций служит команда Expand All Sections. Она открывает и все подсекции. К примеру, если применить эту операцию к документу, показанному на Рисунок 4.12, то он вернется к исходному виду (Рисунок 4.9).

    Таким образом, Maple 7 имеет достаточно простые, но в то же время полные средства по управлению видом пользовательского интерфейса (окна) системы и видом имеющегося в нем документа. Это позволяет пользователю настраивать интерфейс и вид документа в соответствии со своими привычками, обеспечивая комфортную работу с программой.


    Расположение окон мозаикой



    Расположение окон мозаикой

    При выполнении команды Tile устанавливается расположение окон мозаикой показанное на Рисунок 4.22. При этом окна не перекрываются, имеют примерно одинаковый размер. К сожалению, при большом числе окон область просмотра оказывается настолько мала, что работать с документами при таком расположении окон становится неудобно.

    Расположение окон мозаикой достаточно удобно при работе с двумя (или на большом экране тремя) окнами. Оно может быть полезно, например, при переносе содержимого отдельных ячеек с одного документа в другой путем перетаскивания. Можно также копировать объекты в одном окне, а затем, переключившись в другое окно, вставлять содержимое буфера обмена в нужную ячейку, используя команду Paste.



    Команды меню View разбиты на



    Шаг 1

    Команды меню View разбиты на

    Рисунок 4.1. Меню View

    Команды меню View разбиты на несколько групп. Первая группа содержит флажки, относящиеся к управлению показом главной и контекстной панелей инструментов, а также строки состояния системы:

  • Toolbar — управление показом панели инструментов;
  • Context Bar — управление показом контекстной панели;
  • Status Line — управление показом строки состояния.
  • Вторая группа задает показ палитр и представлена одной командой, открывающей подменю управления показом палитр Palettes, содержащей флажки:

  • Symbol Palette — палитра символов;
  • Expression Palette — палитра выражений;
  • Matrix Palette — палитра шаблонов матриц;
  • Vector Palette — палитра шаблонов векторов.
  • И команды:

  • Show All Palettes — показать все палитры;
  • Hide All Palettes — скрыть все палитры.
  • Третья группа в меню View задает масштаб отображения документа на экране и установку закладок (bookmarks):

  • Zoom Factor — задание масштаба просмотра документа;
  • Bookmarks — установка закладок.
  • Четвертая группа обеспечивает переходы по гиперссылкам:

  • Back — переход обратно по последней пройденной гиперссылке;
  • Forward — команда, обратная команде Back.
  • Данные команды аналогичны командам браузера и управляются историей переходов по гиперссылкам. Поэтому, если вы не использовали ни одной гиперссылки, данные команды будут недоступны. В основном данные команды и соответствующие кнопки панели инструментов необходимы при работе со справкой Maple.

    Пятая группа представлена командой Hide content, открывающей подменю скрытия элементов документа:

  • Hide Spreadsheets — скрыть электронные таблицы;
  • Hide Input — скрыть ввод;
  • Hide Output — скрыть вывод;
  • Hide Graphics — скрыть графические объекты
  • Шестая группа параметров управляет показом некоторых объектов документа:

  • Show Invisible Characters — показ непечатаемых символов;
  • Show Section Ranges (Shift+F9) — показ областей секций;
  • Show Group Ranges — показ областей групп;
  • Show OLE type — показ объектов OLE.
  • В седьмой группе содержатся следующие команды:

  • Expand All Sections — раскрыть все секции;
  • Collapse All Sections — свернуть все секции.
  • Действие всех перечисленных команд более подробно описано ниже. Рекомендуется поэкспериментировать с командами — когда вы уясните их действие, вы сможете настроить интерфейс Maple на свой вкус.

    Для создания секции или подсекции



    Шаг 1

    Для создания секции или подсекции

    Рисунок 4.8. Пример документа с открытой секцией и закрытой подсекцией

    Для создания секции или подсекции необходимо дать команду Insert > Section (или Insert > Subsection), что указано на Рисунок 4.8. Секция выделяется вертикальной одиночной линией, а подсекция — двойной линией.

    Секции и подсекции выгодно отличаются от ячеек тем, что они могут быть при необходимости закрыты и представлены только кнопкой со знаком "плюс". Таким образом, в секции удобно помещать различные вспомогательные вычисления, которые не стоит обозревать постоянно. Хотите посмотреть на них — нажмите кнопку, и содержимое секции появится под ней с выделением вертикальной чертой (Рисунок 4.9).

    Секции весьма удобно применять и для подготовки документов в форме электронных книг. В этом случае секции снабжаются текстовыми заголовками и, по существу, являются главами книги, а подсекции — параграфами. Этот способ представления документов нашел широкое применение в сети Интернет, где он (наряду с гипертекстовыми и гипермедиа-ссылками) используется при создании web-страниц. Версия Maple 7 позволяет готовить и сохранять на диске документы в формате HTML, что позволяет напрямую готовить web-страницы.

    при снятии показа областей



    Шаг 1

    при снятии показа областей

    Рисунок 4.10. Вид документа с Рисунок 4. 9 при снятии показа областей секции и подсекции

    после удаления линий показа



    Шаг 1

    после удаления линий показа

    Рисунок 4.11. Документ с Рисунок 4. 10 после удаления линий показа областей ячеек

    В этом окне можно установить



    Шаг 1

    В этом окне можно установить

    Рисунок 4.13. Окно задания браузера Интернета

    В этом окне можно установить флажок Use System Default (использовать браузер, заданный в операционной системе по умолчанию). В противном случае путь к браузеру надо указать явно, введя его в поле или отыскав его с помощью кнопки Browse.

    Окно команды



    Шаг 1

    Окно команды

    Рисунок 4.14. Окно команды Export

    Верхняя строка соответствует



    Шаг 1

    Верхняя строка соответствует

    Верхняя строка соответствует Maple-нотации, а нижняя — стандартной математической нотации.

    Шаг 1



    Шаг 1

    Шаг 1 a

    Применение параметров контроля предполагаемых



    Шаг 1

    Применение параметров контроля предполагаемых

    Рисунок 4.16. Применение параметров контроля предполагаемых переменных

    Шаг 1



    Шаг 1

    Шаг 1 а

    Окно двумерного графика



    Шаг 1

    Окно двумерного графика

    Рисунок 4.18. Окно двумерного графика и его панель инструментов

    Это меню содержит следующие



    Шаг 1

    Это меню содержит следующие

    Рисунок 4.20. Меню Window

    Это меню содержит следующие команды:

  • Cascade — каскадное расположение окон;
  • Tile — расположение окон мозаикой;
  • Horizontal — расположение окон по горизонтали;
  • Vertical — расположение окон по вертикали;
  • Arrange Icons - упорядочение расположения икон;
  • Close All — закрытие всех окон документов;
  • Close All Help - закрытие всех окон справочной системы.


  • Каскадное расположение окон



    Шаг 1

    Каскадное расположение окон

    Рисунок 4.21. Каскадное расположение окон документов

    Расположение окон



    Шаг 1

    Расположение окон

    Рисунок 4.22. Расположение окон мозаикой

    Горизонтальное расположение



    Шаг 1

    Горизонтальное расположение

    Рисунок 4.23. Горизонтальное расположение окон

    с расположением значков можно, разумеется,



    Шаг 1

    с расположением значков можно, разумеется,

    Рисунок 4.25. Хаотическое расположение значков свернутых окон

    Для наведения порядка с расположением значков можно, разумеется, переместить каждый из них в удобное место. Но это довольно утомительное занятие. Лучше воспользоваться специальной командой Arrange Icons, которая автоматически наводит порядок в расположении значков свернутых окон, аккуратно располагая их снизу экрана. Действие этой команды показано на Рисунок 4.26. Как и окно, каждый значок имеет строку заголовка с четырьмя маленькими кнопками. Первая из них открывает меню управления, а три другие используются соответственно для восстановления размера, развертывания на весь экран и закрытия окна.

    Вид экрана после выполнения команды



    Шаг 1

    Вид экрана после выполнения команды

    Рисунок 4.26. Вид экрана после выполнения команды Arrange Icons

    Пример ввода шаблона определенного интеграла



    Шаг 1

    Пример ввода шаблона определенного интеграла

    Рисунок 4.2. Пример ввода шаблона определенного интеграла из палитры выражений

    Вид документа при масштабе просмотра



    Шаг 1

    Вид документа при масштабе просмотра

    Рисунок 4.3. Вид документа при масштабе просмотра в 150 %

    Пример создания



    Шаг 1

    Пример создания

    Рисунок 4.4. Пример создания и редактирования закладки

    можно вернуть показ строк ввода,



    Шаг 1

    можно вернуть показ строк ввода,

    Рисунок 4.6. Документ со скрытыми ячейками ввода

    Разумеется, можно вернуть показ строк ввода, просто повторно дав эту команду Hide Input в подменю команды View > Hide Content > Hide Input (Рисунок 4.6). Co скрытием других компонентов документов читатель может разобраться самостоятельно.

    Помимо символа перевода строки вы



    Шаг 1

    Помимо символа перевода строки вы

    Рисунок 4.7. Вид документа с выводом непечатаемых управляющих символов

    Помимо символа перевода строки вы увидите множество символов пробела в виде точки на середине строки. По числу точек между словами можно судить о том, сколько пробелов установлено между ними. Проявятся также табуляции и другие управляющие операции, встречающиеся в документах Maple 7.

    с открытой подсекцией



    Шаг 2

    с открытой подсекцией

    Рисунок 4.9. Пример документа с Рисунок 4.8 с открытой подсекцией

    и подсекциями) занимает на экране



    Шаг 2

    и подсекциями) занимает на экране

    Рисунок 4.12. Документ с Рисунок 4.9 при закрытии всех секций

    Документ с закрытыми секциями ( и подсекциями) занимает на экране (и при распечатке принтером) минимальное место. При этом, естественно, содержимого секций и подсекций не видно.

    Первая форма наиболее компактна, но



    Шаг 2

    Первая форма наиболее компактна, но б

    Рисунок 4.15. Демонстрация вывода в различных формах

    Первая форма наиболее компактна, но менее всего наглядна. Вторая форма имитирует построение формул с помощью отдельных знаков, расположенных на разных уровнях (строках). Эти две формы позволяют использовать Maple даже в том случае, когда имеются устройства вывода (дисплеи и принтеры), работающие только в текстовых режимах. Третья форма дает вывод в виде обычных математических формул, но без возможности их редактирования.

    Четвертая форма позволяет представить результат вывода, там, где это возможно, в виде обычных математических формул с применением типовых математических знаков — интегралов, производных, сумм, произведений, квадратных корней и т. д. В большинстве случаев именно эта форма вывода является наиболее наглядной. Она подобна третьей форме, но допускает редактирование выражений. Как отмечалось, нажатием кнопки с символом "х" в панели инструментов документа можно попытаться и вводимое выражение представить в виде обычной математической формулы. Однако это не всегда удается, поскольку далеко не все однострочные функции системы Maple 7 можно представить таким образом.

    с выводом одного из них



    Шаг 2

    с выводом одного из них б

    Рисунок 4.17. Пример построения двух графиков с выводом одного из них в отдельное окно

    Следует отметить, что из всех окон (документов или графиков) в данный момент активным может быть только одно окно. Если это окно графическое, то для него выводится своя контекстная панель инструментов, позволяющая менять вид графика и некоторые параметры, используемые при его построении. Кстати говоря, запись заданного документа на диск возможна только при активном окне этого документа.

    Вертикальное расположение окон



    Шаг 2

    Вертикальное расположение окон

    Рисунок 4.24. Вертикальное расположение окон

    о том, что закрываемый документ



    Шаг 2

    о том, что закрываемый документ

    Рисунок 4.27. Окно, предупреждающие о том, что закрываемый документ был изменен

    Разумеется, такое окно будет появляться столько раз, сколько имеется модифицированных документов.

    Шаг 2



    Шаг 2

    Шаг 2

    Рисунок 4.5. Просмотр закладок

    Список открытых документов



    Список открытых документов

    Заканчивая рассмотрение меню Window, надо отметить, что оно завершается списком всех открытых в Maple 7 документов и соответственно окон (Рисунок 4.26). Щелкнув на той или иной строке этого списка, можно открыть соответствующее окно и сделать его активным.


    Управление показом графиков



    Управление показом графиков

    Графические результаты могут быть представлены прямо в документе в ячейках вывода или в отдельных окнах. Это обеспечивается двумя командами подменю Plot Display:

  • Inline — вывод графиков в ячейках вывода;
  • Window — вывод графиков в отдельных окнах.
  • На Рисунок 4.17 показан пример вывода двух графиков — один выводится с применением Inline в ячейку документа (сразу после ввода), а другой с применением Window в отдельное окно. Какой из этих двух вариантов предпочтительнее, зависит от привычек пользователя.

    Следует отметить, что из всех окон (документов или графиков) в данный момент активным может быть только одно окно. Если это окно графическое, то для него выводится своя контекстная панель инструментов, позволяющая менять вид графика и некоторые параметры, используемые при его построении. Кстати говоря, запись заданного документа на диск возможна только при активном окне этого документа.



    Управление показом компонентов документа



    Управление показом компонентов документа

    Документы Maple 7 состоят из ряда основных элементов. Это ячейки (строки) ввода и вывода, графики и электронные таблицы. При подготовке различных электронных книг, учебников и статей возникает необходимость скрыть тот или иной компонент документа. Например, педагог может захотеть скрыть от учащихся строки ввода, чтобы они могли мысленно представить функции, отображаемые показанными в документе графиками. Или, наоборот, скрыть графики, чтобы учащиеся назвали их особенности исходя из записи функций. Все эти возможности и обеспечивает команда View > Hide Content.

    Для примера на Рисунок 4.6 показан документ, у которого скрыты все строки ввода и оставлены только строки вывода.



    Управление показом контекстной панели



    Управление показом контекстной панели

    Панель Context Bar служит для размещения кнопок быстрого доступа к операциям с текущим объектом.

    Флажок Context Bar задает отображение контекстной панели на экране. Поскольку панель форматирования весьма удобна для оперативной работы, единственным мотивом временного ее удаления является необходимость высвободить больше , места на экране монитора для работы с документом.


    Управление показом непечатаемых символов



    Управление показом непечатаемых символов

    В любом документе незримо присутствуют различные непечатаемые символы, например управляющие символы перевода строки или пробелы. Это хорошо известно читателям, работающим с текстовым процессором Word. Иногда полезно вывести эти символы — например, если вам неясно, сколько пробелов стоит между какими-то словами.

    Для вывода непечатаемых символов служит команда-флажок Show Invisible Characters (Рисунок 4.7). Ее можно также дать, нажав кнопку на панели инструментов с изображением управляющего символа перевода строки — "fl". Этот символ, кстати, и является одним из наиболее часто встречающихся управляющих непечатаемых символов.



    Управление показом областей ячеек (Show Group Ranges)



    Управление показом областей ячеек (Show Group Ranges)

    Команда Show Group Ranges служит для управления показом областей ячеек (групп), то есть длинных квадратных скобок, обрамляющих ячейки слева. Если флажок установлен, то линии показа областей ячеек видны. Если его снять, то эти линии исчезают, как показано на Рисунок 4.11, где убраны линии выделения как секции и подсекции, так и ячеек.

    Убирать линии показа областей ячеек целесообразно, если документ уже отлажен. В таком документе необходимость показа областей выделения ячеек, секций и подсекций отсутствует, хотя иногда их разумно оставлять, так как они способствуют систематизации содержимого документов.


    Управление показом областей секций



    Управление показом областей секций

    Понятие о секциях и подсекциях

    Как уже отмечалось, документ Maple 7 состоит из отдельных ячеек (в оригинале — групп, groups). Они выделяются слева длинными тонкими квадратными скобками. Есть еще один способ выделения ячеек — объединение их в секции. Секция начинается с кнопки со знаком "плюс" или "минус" (Рисунок 4.8), управляющей ее состоянием: открытым или закрытым.



    Управление показом областей секций



    Управление показом областей секций

    Итак, обычно секции и подсекции выделяются вертикальными линиями, заканчивающимися короткими горизонтальными штрихами. Это позволяет судить о размерах области экрана, представляющей секцию, особенно если секция большая и целиком не помещается на экране.

    Тем не менее в окончательно отлаженном документе необходимость в применении линии показа области секции или подсекции отпадает. С помощью флажка Show Section Ranges можно управлять показом линий выделения областей секций и подсекций. Если этот флажок установлен, то линии показа областей секций и подсекций видны, как на Рисунок 4.9. Если его снять, то эти линии исчезнут (Рисунок 4.10).

    Обратите внимание, что линии выделения групп (ячеек) остаются.



    Управление показом панели инструментов (Toolbar)



    Управление показом панели инструментов (Toolbar)

    Панель инструментов (Toolbar) служит для быстрого управления системой без обращения к командам меню. Она позволяет вызывать наиболее часто используемые команды нажатием кнопки. Назначение всех кнопок этой панели было описано выше и представлено на Рисунок 1.21.

    Несмотря на удобства, предоставляемые панелью инструментов, в ряде случаев она не нужна. Например, для ввода исходных данных и их редактирования достаточно иметь на экране только контекстную панель. Панель инструментов полезна при общей отладке документов, открытии нового документа, загрузке имеющегося документа, записи документа на диск, печати документа и т. д. В ряде случаев она просто занимает часть места, нужного для лучшего обзора документа.

    Флажок Toolbar управляет показом панели инструментов.


    Управление показом строки состояния



    Управление показом строки состояния

    Строка состояния внизу экрана, как отмечалось, выводит контекстно-зависимую информацию о состоянии программы в данный момент времени. В ряде случаев ее можно считать элементом контекстно-зависимой справки. Флажок Status Bar служит для управления показом строки состояния.


    Управление построением двумерных графиков



    Управление построением двумерных графиков

    Двумерные графики обычно строятся с применением функции plot. На Рисунок 4.18 (и на Рисунок 1.24 с графиком в документе) представлено назначение кнопок контекстной панели инструментов двумерной графики. Кнопки обозначены номерами под ними, а в окне документа дано их краткое назначение.
    Панель инструментов графиков появляется только при активном окне графики или при выделении графика в ячейке документа.



    Управление построением трехмерных графиков



    Управление построением трехмерных графиков

    Трехмерные графики имеют свою контекстную панель инструментов (Рисунок 4.19; см. также Рисунок 1.25 с графиком в документе), с кнопками задания наиболее распространенных параметров для построения трехмерных графиков. Следует отметить, что панели инструментов графических окон дают доступ лишь к части параметров графиков. Более подробно состав и назначение параметров будут рассмотрены в дальнейшем при описании средств создания графиков. -Читателю настоятельно рекомендуется опробовать действие кнопок управления различными форматами графиков, что позволит быстрее освоить огромные возможности Maple 7 в создании цветных и монохромных графиков.


    Управление видом интерфейса и документа



    Управление видом интерфейса и документа



    Меню View

    Для управления видом интерфейса и документа служит меню View. Оно содержит ряд флажков и несколько команд управления общим видом программы (Рисунок 4.1). Установленные флажки, управляющие показом элементов интерфейса, распространяют свое действие на все открытые документы. При выходе из системы (командой Exit) все установки сохраняются, так что при новом запуске системы внешний вид интерфейса будет определяться именно ими.



    Управление выводом



    Управление выводом

    Команда Replace Output задает вывод результатов вычислений, заданных в ячейке, в одно и тоже место. Это означает, что если входные данные меняются, то при установленном флажке каждый последующий результат будет замещать предыдущий. Если же флажок снят, то каждый новый результат будет помещаться в новое место, то есть в документе будут выведены подряд (сверху вниз) все результаты вычислений.

    Поясним на примере. Допустим, в какой-то строке ввода мы задаем вычисляемое выражение
    2+3:

    > 2+3; 5

    Результат (в данном случае в Maple-нотации) появляется снизу. Теперь в той же строке ввода вычислим 3+4, а затем 4+5. Получим:

    > 4+5; 9

    Мы заметим, что результат появится на месте прежнего, и в конечном счете мы будем иметь в качестве результата число 9. Теперь снимем флажок Replace Output и проделаем все те же вычисления в новой строке ввода. Получим следующее:

    > 4+5; 5

    7

    9

    Здесь видны уже три ячейки вывода. Не следует следует устанавливать флажок Replace Output в том случае, когда желательно знать суть промежуточных преобразований и самих исходных выражений, поскольку они (а возможно, и предшествующие результаты преобразований) при ее использовании исчезают.



    Установка масштаба отображения документа



    Установка масштаба отображения документа

    Команда Zoom Factor задает масштаб отображения текущего документа. Он задается в процентах относительно масштаба просмотра, заданного по умолчанию, — он принят за 100 %. Команда выводит подменю с перечнем возможных масштабов просмотра. На Рисунок 4.3 показано, как будет выглядеть документ при установке масштаба просмотра в 150 %. На этом рисунке показано подменю выбора масштаба в открытом виде.

    Нетрудно заметить, что все символы документа увеличились при этом в размерах в полтора раза. Эта возможность, безусловно, полезна для пользователей с ослабленным зрением или для учителей, желающих показать примеры решения задач в среде Maple крупным планом для группы учащихся.



    Установка параметров представления строк ввода



    Установка параметров представления строк ввода

    Команда Input Display выводит подменю, позволяющее выбрать режим представления выражений в строке ввода:

  • Maple Notation — ввод выражений в Maple-нотации (в строку);
  • Standard Math Notation — ввод выражений в обычном математическом виде (его признаком является появление вопросительного знака в строке ввода).
  • В качестве примера ниже даны две формы задания ввода двойного интеграла с помощью палитры выражений:



    Установка параметров вывода



    Установка параметров вывода

    Команда Output Display раскрывает подменю, имеющее четыре команды, влияющие на вид результатов вычислений — вывода:

  • Maple Notation — вывод в одну строку (как в Maple-языке);
  • Character Notation t- вывод в виде формулы, набранной из знаков на разных строках;
  • Typeset Notation — вывод в печатной форме без возможности редактирования;
  • Standard Math Notation — вывод в виде обычной математической формулы.
  • Рисунок 4.15 наглядно иллюстрирует эти формы вывода. Последняя форма наиболее наглядна и задается по умолчанию.



    Установка режима вставки новой ячейки



    Установка режима вставки новой ячейки

    Этот флажок, будучи установленным, обеспечивает при нажатии клавиши Enter ввод новой пустой ячейки. Если флажок снят, то такая вставка не осуществляется.

    Если работа с системой происходит в форме простейшего диалога, по типу "задать вопрос — получить ответ", то рекомендуется установить режим вставки 'новой ячейки. При этом по окончании вычислений в последней ячейке тут же появляется новая пустая ячейка для последующих вычислений.


    Установка закладок



    Установка закладок

    При работе с большими документами, как и при чтении книг, полезно устанавливать специальные маркеры — закладки. Для установки такой закладки достаточно поместить в нужное место документа маркер ввода и выполнить команду View > Bookmarks > Edit Bookmarks. Она выводит окно добавления и модификации закладки (Рисунок 4.4). Кнопка ОК вводит новую закладку, а кнопка Cancel позволяет отказаться от выполнения данной операции.

    Если теперь вновь посмотреть подменю Bookmarks, в нем появится строка с созданной закладкой (Рисунок 4.5).

    В нашем случае в списке представлены две ранее созданные закладки с именами "Это определенный интеграл" и "А это значение определенного интеграла".

    При переходе по закладке строка, в которой установлена закладка, размещается в верхней части окна редактирования и маркер ввода устанавливается в место, которое определено закладкой. Таким образом, закладки — эффективное средство для быстрого перехода в отмеченные места документа. Однако надо помнить, что в отличие от закладок в книгах закладки в документах Maple 7 не видны — они имеются лишь в списке закладок, открываемом командой Bookmarks (Рисунок 4.5). Удалить созданную закладку не так-то просто: вам нужно перейти по закладке, дать команду View > Bookmarks > Edit Bookmarks и удалить текст в поле имени. Теперь нажатие кнопки ОК приведет к окну с предупреждением об удалении закладки. Нажмите ОК в обоих окнах — и закладка исчезнет.



    Вертикальное расположение окон (Vertical)



    Вертикальное расположение окон (Vertical)

    Команда Vertical задает расположение окон в виде вертикальных полос (Рисунок 4.24). Такое расположение окон удобно, если содержимое ячеек документов представлено короткими выражениями.

    Следует отметить, что описанным командам подчиняются только развернутые в данный момент окна — расположение вновь открытого или развернутого окна не зависит от данных до этого команд.



    Вывод палитр математических символов



    Вывод палитр математических символов

    Палитры математических символов, впервые введенные в версии Maple V R5, являются очень удобным средством для облегчения набора математических выражений начинающим пользователям. Они выводятся на экран командой Palettes и показаны на Рисунок 1.11. Всего имеются четыре палитры:

  • Symbol — палитра ввода греческих символов и констант;
  • Expression — палитра ввода операторов и выражений;
  • Matrix — палитра ввода матриц;
  • Vector - новая (для Maple 7) палитра ввода векторов.
  • Ввод осуществляется на место маркера ввода. Щелчок на кнопке палитры — символ или его аналог окажется в точке ввода. Параметры, которые необходимо указать, при математической нотации выражений имеют вид вопросительного знака, а при Maple-нотации — %?.

    Итак, в строке ввода введенный оператор или символ не обязательно повторит оператор или символ палитры. Это хорошо видно из Рисунок 4.2, на котором показан ввод с помощью палитры выражений шаблона определенного интеграла и его последовательное заполнение. Для наглядности заполнение каждого параметра дано в новой строке ввода.



    Задание браузера



    Задание браузера

    Для открытия документов web-страниц (по URL-адресу) Maple 7 использует какой-либо из установленных на компьютере браузеров Интернета. Для этого необходимо указать путь к браузеру с помощью команды Browser. Она открывает окно, показанное на Рисунок 4.13.



    Закрытие всех окон одновременно



    Закрытие всех окон одновременно

    Команда Close All служит для закрытия всех окон одновременно. Эта команда будет выполнена сразу только в том случае, когда все документы не модифицировались или были записаны на диск после внесения исправлений. Если какой-либо документ был изменен, но еще не сохранен, то в центре экрана появится предупреждающее сообщение об этом (Рисунок 4,27).



    Закрытие всех окон справочной системы



    Закрытие всех окон справочной системы

    В Maple 7 использована многооконная справочная система с гипертекстовыми ссылками. Поэтому при работе с ней экран системы довольно быстро оказывается забитым окнами справочной системы. Разумеется, их можно последовательно закрывать одно за другим, но это очень неудобно и долго. Команда Close All Help обеспечивает закрытие разом всех окон справочной системы, что позволяет продолжить работу с текущим документом. На окна загруженных документов операция Close All Help влияния не оказывает.



    Закрытие всех секций



    Закрытие всех секций

    Все секции и подсекции документа можно закрыть командой Collapse All Sections. К примеру, если применить ее к документу, показанному на Рисунок 4.9, то документ примет вид, показанный на Рисунок 4.12.



    Компьютерная математика и пакет Maple

    Данные множественного типа



    Данные множественного типа

    Наборы (множества)

    Любые выражения могут включаться также в наборы. Такие наборы в виде множеств создаются с помощью фигурных скобок { }:


    Идентификация констант



    Идентификация констант

    Функции type(х, constant) и type(x, realcons) возвращают логическое значение true, если х представляет целочисленную или вещественную константу, и false, если х не является константой. Таким образом, эти функции можно использовать для идентификации констант, например:


    Идентификаторы (имена) переменных



    Идентификаторы (имена) переменных

    Переменные задаются своим именем — идентификатором, который должен начинаться с буквы и быть уникальным. Это значит, что ключевые слова языка Maple нельзя использовать в качестве имен переменных. Хотя имена ряда команд и функций можно использовать в качестве идентификаторов переменных, делать это крайне нежелательно. Ограничений на длину идентификатора практически нет — точнее, она не должна превышать 524 275 символов! Так что сложностей с подбором идентификаторов для переменных у вас не будет.
    Имена переменных могут содержать одну букву (например, х, Y или Z) либо ряд букв (Xmin или Хmах). В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак _, могут использоваться в именах (например, Var_l, Var_2). Нельзя, однако, вводить в имена переменных знаки, обозначающие операторы, — например, а/b или а-b будет истолковано как деление а на b или вычитание из переменной а переменной b.
    Имена могут задаваться в обратных апострофах. При этом они просто тождественны именам без апострофов:


    Комплексные числа



    Комплексные числа

    Maple 7, естественно, может работать с комплексными числами. Мнимая единица в комплексном числе (корень квадратный из -1) обозначается как I. Функции Re(x) и Im(x) возвращают действительную и мнимую части комплексных чисел. Примеры задания комплексного числа и вывода его действительной и мнимой частей представлены ниже:



    Константы



    Константы

    Числовые константы
    Константы - это простейшие именованные объекты, несущие заранее предопределенные значения. Их имена (идентификаторы) также заранее определены и не могут меняться. Подробную информацию о константах можно найти, исполнив команду ?constant.
    Обычные числовые константы не имеют имени и представлены просто числами, типы которых были указаны выше. Можно считать, что именем такой константы является само ее значение. Например, в выражении 2*sin(1.25) числа 2 и 1.25 являются числовыми константами. При этом указание десятичной точки делает константу действительным числом — например, 2 — это целочисленная константа, а 2., 2.0 или 1.25 — это уже действительные константы.



    Контроль за числами



    Контроль за числами

    Числа могут служить объектами ввода, вывода и константами, входящими в математические выражения. Функция type(x, numeric) позволяет выяснить, является ли х числом. Если является, то она возвращает логическое значение true (истина), а если нет, то false (ложь). Например:


    Mapleязык и его синтаксис



    Maple-язык и его синтаксис

    Знаки алфавита

    Язык Maple (или Maple-язык) является одновременно входным языком общения с Maple 7 и языком ее программирования. Входящие в него средства (прежде всего операторы и функции) подобраны настолько полно и удачно, что при решении подавляющего большинства типовых математических задач от пользователя не требуется знаний даже основ программирования. Для решения нужной задачи обычно достаточно составить алгоритм и подобрать набор нужных для его реализации функций и иных средств Maple-языка.
    В то же время Maple-язык — один из самых мощных языков программирования математических задач, содержащий почти 3000 операторов, команд и функций, входящих в ядро, основную библиотеку и пакеты функций Maple 7. При этом относящаяся к традиционному программированию часть Maple-языка реализована с помощью довольно скромного набора специальных знаков и зарезервированных слов.
    Большинство функций Maple 7 (в частности, все, входящие в пакеты) написаны на этом языке. Поэтому знание этого языка является определяющим в серьезном изучении Maple. Ниже Maple-язык описывается как типичный язык программирования.
    Алфавит Maple-языка содержит 26 малых латинских букв (от а до z), 26 больших латинских букв (от А до Z), 10 арабских цифр (от 0 до 9) и 32 специальных символа (арифметические операторы +, -, *, /, знак возведения в степень ж и др.). Все они будут рассмотрены в данной главе. Имеется пять пар альтернативных символов (означающих одно и тоже):

    "и** [ и (| ] и |) { и (* } и *)

    К специальным одиночным и составным знакам относятся элементы синтаксиса языка:

  • % — системная переменная, хранящая результат предшествующей операции;
  • : — фиксатор выражения, предотвращающий вывод результата вычисления в ячейку вывода;
  • ; — фиксатор выражения, дающий вывод результата вычисления в ячейку вывода;
  • # — указатель программного комментария;
  • " — ограничитель строки (например, 'string');
  • := — оператор присваивания (например, х:=5);
  • : ; — пустой оператор;
  • :: — указатель типа переменной (например, n::integer или z: -.complex);
  • \ — знак обратного деления, который имеет множественные значения в зависимости от контекста (см. справку по этому знаку - backslash).
  • Комментарии в программе, не выводимые в ячейки вывода, задаются после символа #. В них допустимо использовать все символы кодовых таблиц, что важно при вводе русскоязычных комментариев, использующих символы кириллицы. Применение последних для идентификаторов (имен) объектов недопустимо.


    Массивы векторы и матрицы



    Массивы, векторы и матрицы

    Как отмечалось, важным типом данных являются списки (lists). Они создаются с помощью квадратных скобок, например:
  • [1,2,3,4] — список из четырех целых чисел;
  • [1. ,2.34,5] — список из двух вещественных и одного целого числа;
  • [а,b.'Привет'] — список из двух символов (переменных) и строковой константы;
  • [sin(x), 2*cos(x) ,a^2-b] — список из трех математических выражений.
  • Для создания векторов (одномерных массивов) и матриц (двумерных массивов) служит функция array. Обычно она используется в следующих формах:
  • аrrау[а. .b,sl] — возвращает вектор с индексами от а до b и значениями в одномерном списке si;
  • аrrау[а. .b,c. .d,s2] — возвращает матрицу с номерами строк от а до b, номерами столбцов от с до d и значениями в двумерном списке s2.


  • Неисполняемые программные комментарии



    Неисполняемые программные комментарии

    Часто возникает необходимость в задании программных комментариев. Любой текст после знака # рассматривается как невыводимый (неисполняемый) программный комментарий — даже если это математическое выражение. При этом он не вычисляется. Например:
    > 2+3;#Это прииер. А это выражение не вычисляется: 4+5

    .5
    Комментарии полезны в программах на Maple-языке и обычно используются для объяснения особенностей реализованных алгоритмов.


    Оценивание выражений



    Оценивание выражений

    Встречая выражение, Maple 7 оценивает его, то есть устанавливает возможность его вычисления. Если выражение — скалярная переменная, то ее значение будет выведено в ячейке вывода. Для переменных более сложных типов выводится не их значение, а просто повторяется имя переменной. Просто повторяются также имена неопределенных переменных.
    Для оценивания выражений различного типа существует группа функций, основные из которых перечислены ниже:
  • eval (array) — возвращает вычисленное содержимое массива array;
  • evalf(expr, n) — вычисляет ехрr и возвращает вычисленное значение в форме числа с плавающей точкой, имеющего n цифр после десятичной точки;
  • eval hf(ехрг) — вычисляет ехрг и возвращает вычисленное значение с точностью, присущей оборудованию данного компьютера;
  • evalf(int(f, x=a..b)) — оценивает и возвращает значение определенного интеграла int(f,x=a. .b);
  • evalf(Int(f, x=a..b)) — оценивает и возвращает значение определенного интеграла, заданного инертной функцией Int(f,x=a. .b);
  • evalf(Int(f. x=a..b, digits, flag)) — аналогично предыдущему, но возвращает значение интеграла с заданным параметром digits числом цифр после десятичной точки и со спецификацией метода вычислений flag;
  • evalm(mexpr) — вычисляет значение матричного выражения mexpr и возвращает его;
  • evalb(bexpr) — вычисляет и возвращает значения логических условий;
  • evalc(cexpr) — вычисляет значение комплексного выражения;
  • evalr (ехрr, ampl) — оценивает и возвращает значения интервальных выражений (функция должна вызываться из библиотеки);
  • shake(expr, ampl) — вычисляет интервальное выражение.
  • Для функции evalf параметр n является необязательным, при его отсутствии полагается n=10, то есть вещественные числа выводятся с мантиссой, имеющей десять цифр после десятичной запятой.
    В выражении ехрr могут использоваться константы, например Pi, exp(l), и функции, такие как ехр, 1 n, arctan, cosh, GAMMA и erf. В матричном выражении mexpr для функции evalr могут использоваться операнды в виде матриц и матричные операторы &*, +, - и ^. В комплексных выражениях mexpr наряду с комплексными операндами вида (а + I*b) могут использоваться многие обычные математические функции:

    sin

    cos

    tan

    CSC

    sec

    cot

    sinh

    cosh

    tanh

    csch

    sech

    coth

    arcsin

    arccos

    arctan

    arccsc

    arcsec

    arccot

    arcsinh

    arccosh

    arctanh

    arccsch

    arcsech

    arccoth

    exp

    In

    •sqrt

    *

    abs

    conjugate

    polar

    argument

    signura

    csgn

    Re

    Im

    Ei

    LambertW

    dilog

    surd





    Примеры применения функций оценивания даны ниже:



    Отмена операции присваивания и команда restart



    Отмена операции присваивания и команда restart

    Переменная, имеющая какое-либо значение, занимает в памяти намного больше места, чем неопределенная переменная. У последней место в памяти занимают только символы идентификатора. Поэтому нередко целесообразно отменить присваивание у тех переменных, которые в дальнейшем можно не использовать. Это может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменную. Рассмотрим следующий пример:


    Переменные



    Переменные

    Типы переменных
    Как следует из самого названия, переменные — это объекты, значения которых могут меняться по ходу выполнения документа. Пока мы рассматриваем лишь глобальные переменные, доступные для модификации значений в любом месте документа. Тип переменной в системе Maple 7 определяется присвоенным ей значением — это могут быть целочисленные (integer), рациональные (rational), вещественные (real), комплексные (complex) или строчные (string) переменные и т. д. Переменные могут также быть символьного типа (их значением является математическое выражение) или типа списка (см. далее). Для явного указания типа переменных используется конструкция:
    name::type
    где name — имя (идентификатор) переменной, type — тип переменной, например целочисленный (integer), вещественный с плавающей точкой (float), с неотрицательным значением (nonneg), комплексный (complex) и т. д.


    Последовательности выражений



    Последовательности выражений

    Maple 7 может работать не только с одиночными выражениями, но и с последовательностями выражений. Последовательность выражений — это ряд выражений, разделенных запятыми и завершенных фиксатором:



    Преобразования чисел с разным основанием



    Преобразования чисел с разным основанием

    В Maple возможна работа с числами, имеющими различное основание (base), в частности с двоичными числами (основание 2 — binary), восьмеричными (основание 8 — octal) и шестнадцатеричными (основание 16 — hex). Функция convert позволяет легко преобразовывать форматы чисел:



    Придание переменным статуса предполагаемых



    Придание переменным статуса предполагаемых

    В большинстве расчетов пользователей Maple вполне удовлетворяет статус переменных, соответствующий присвоенным им значениям. Однако серьезные расчеты предполагают, что переменные могут иметь определенные ограничения — например, они не должны принимать отрицательных значений при обычном вычислении квадратного корня или логарифма числа.
    Для придания переменным статуса предполагаемых используется функция assume: assume(x.prop): где х — переменная, имя или выражение, prop — свойство. Следующие примеры показывают применение функции assume:


    Присваивание переменным значений



    Присваивание переменным значений

    Поскольку Maple 7 прежде всего система символьной математики, то по умолчанию любые переменные рассматриваются как объекты символьного типа. Благодаря этому такие переменные могут фигурировать в математических выражениях (таких, как sia(x)/x) без их предварительного объявления. В отличие от обычных языков программирования такое использование переменных не влечет за собой появления сообщений об ошибках и является более естественным. Для присваивания переменным конкретных значений используется комбинированный символ присваивания ":=", например:
  • n:=1 — переменной n присваивается, целочисленное значение 1;
  • х:=123.456 - переменной х присваивается вещественное значение 123.456;
  • у:=17/19 — переменной у присваивается рациональное значение 17/18;
  • name:='Piter' — переменной name присваивается строковое значение "Piter";
  • expr:=2*Pi/3 — переменной ехрг присваивается значение выражения 2л/3;
  • V:=[1.2,3] - переменной V присваивается значение списка чисел [1,2,3];
  • М:=[[1,2.3].[4,5.б]] - переменной М присваивается значение двумерного массива;
  • f :=х->х^2 - переменной f присваивается значение функции пользователя f(x)=x^2.
  • Правая часть выражения присваивания определяет тип переменной. Например, она может быть целочисленной, действительной, строковой, индексированной (элемент массива) и т. д.



    Простые типы данных



    Простые типы данных

    Числа и числовые константы

    Maple 7 работает с числами следующего типа: целыми (О, 1, 123, -456 и т. д.), рациональными в виде отношения целых чисел (7/9, -123/127 и т. д.), вещественными с мантиссой и порядком (1.23Е5, 123.4567Е-10). Признаком вещественного числа является десятичная точка (запятая). Примеры простых операций с числами приведены ниже:


    Помимо приведенных вариантов функция convert



    Шаг 1

    Помимо приведенных вариантов функция convert Помимо приведенных вариантов функция convert имеет еще ряд других форм. С ними можно познакомиться с помощью справки по этой мощной функции. В дальнейшем будет приведен ряд других применений этой функции.

    автоматическое устранение из них повторяющихся



    Шаг 1

    автоматическое устранение из них повторяющихся Отличительная черта множеств — автоматическое устранение из них повторяющихся по значению элементов. Кроме того, Maple 7 расставляет элементы множеств в определенном порядке — числа в порядке увеличения значения, а символы и строки в алфавитном порядке. Для множеств нет строгого математического определения, и мы будем считать их наборами, удовлетворяющими перечисленным выше признакам.

    показывает применение этих средств



    Шаг 1

    показывает применение этих средств Рисунок 5. 2 показывает применение этих средств для построения точек, представляющих множество действительных чисел на плоскости. Для этого использована функция pointplot из пакета plots.

    Представление множества чисел на плоскости



    Шаг 1

    Представление множества чисел на плоскости

    Рисунок 5.2. Представление множества чисел на плоскости
    Двумерные списки часто путают с матрицами. Следует помнить, что векторы и матрицы создаются с помощью функции array и являются отдельным типом данных. Элементами векторов и массивов могут быть константы, переменные, выражения, списки и иные объекты. Эти элементы являются индексированными переменными и их положение указывается индексами. Имеется множество функций для работы со списками, массивами и матрицами. Они будут рассмотрены в дальнейшем. В принципе, размерность массивов, создаваемых списками, не ограничена и массивы могут быть многомерными.

    Пустая таблица резервирует память под



    Шаг 1

    Пустая таблица резервирует память под Пустая таблица резервирует память под данные. Когда параметром функции table является список выражений, он выводится в естественном порядке расположения элементов таблицы, но с произвольным порядком индексации:

    Шаг 1



    Шаг 1

    Шаг 1



    о такой экзотической возможности, как



    Шаг 1

    о такой экзотической возможности, как Стоит упомянуть о такой экзотической возможности, как задание в Maple 7 собственных констант путем описания алгоритма генерации входящих в константу цифр (это позволяет получать в представлении константы любое число цифр). Большинство пользователей довольствуется применением вместо таких констант обычных переменных подходящего типа. Зато истинные математики соревнуются друг с другом в создании все новых и новых констант и алгоритмов их вычислений. Примеры этого творчества можно найти на сайте фирмы Wateloo Maple.

    в идентификаторах различаются, так что



    Шаг 1

    в идентификаторах различаются, так что Строчные и прописные буквы в идентификаторах различаются, так что Varl и varl — это разные переменные.
    Для проверки предполагаемого имени на уникальность достаточно выполнить команду ?name, где name — выбранное имя. Если при этом откроется окно справки с этим именем, значит, оно уже использовано в Maple. Лучше воздержаться от его применения, так как связанная с этим именем команда или функция перестает работать, как только это имя закрепляется за какой-либо переменной.

    Здесь не удалось вычислить интеграл



    Шаг 1

    Здесь не удалось вычислить интеграл Здесь не удалось вычислить интеграл с подынтегральной функцией х"2 из-за того, что переменная х уже определена ранее как целочисленная переменная со значением 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).
    Для отмены присваивания надо использовать следующее выражение:

    и при выводе сопровождается знаком



    Шаг 1

    и при выводе сопровождается знаком Обратите внимание, что в этом примере переменная х помечена как положительная и при выводе сопровождается знаком тильды -, как бы предупреждающим нас о ее особом статусе. Это не означает, что она не может принять отрицательное значение. Однако с помощью функции is можно убедиться в ее особом статусе и при необходимости программным путем исключить вычисления для х <0. Кроме того, о свойствах переменной можно узнать с помощью функции about (name).
    Иногда к уже имеющимся признакам надо добавить новые. Для этого используется функция additionally:

    и вычисления математических выражений более



    Шаг 1

    и вычисления математических выражений более Символьные преобразования и вычисления математических выражений более подробно будут рассмотрены в следующем уроке.
    Для выполнения любых математических операций необходимо обеспечить ввод в систему исходных данных — в общем случае математических выражений. Для ввода их и текстовых комментариев служат два соответствующих типа строк ввода. Переключение типа текущей строки ввода осуществляется клавишей F5. Строка ввода математических выражений имеет отличительный символ >, а строка ввода текстов такого признака не имеет.
    В строке ввода может располагаться несколько выражений. Фиксаторами (указанием, что выражение окончено) их могут быть символы ; (точка с запятой) и : (двоеточие). Символ ":" фиксирует выражение и задает вывод результатов его вычисления. А символ ":" фиксирует выражение и блокирует вывод результатов его вычисления. Фиксаторы выполняют также функцию разделителей выражений, если в одной строке их несколько.
    Ввод выражения оканчивается нажатием клавиши Enter. При этом маркер ввода (жирная мигающая вертикальная черта) может быть в любой позиции строки. Если надо перенести ввод на новую строку, следует нажимать клавиши Shift и Enter совместно. С помощью одного, двух или трех знаков % (в реализациях до Maple V R5 это был знак прямых кавычек ") можно вызывать первое, второе или третье выражение с конца сессии:

    В дальнейшем мы многократно будем



    Шаг 1

    В дальнейшем мы многократно будем В дальнейшем мы многократно будем применять функции оценивания для демонстрации тех или иных вычислений.

    Для автоматического формирования последовательности выражений



    Шаг 1

    Для автоматического формирования последовательности выражений Для автоматического формирования последовательности выражений применим специальный оператор $, после которого можно указать число выражений или задать диапазон формирования выражений:

    Шаг 1



    Шаг 1

    Шаг 1



    Как видно из этих примеров,



    Шаг 1

    Как видно из этих примеров, Как видно из этих примеров, ввод и вывод чисел имеет следующие особенности:
  • для отделения целой части мантиссы от дробной используется разделительная точка;
  • нулевая мантисса не отображается (число начинается с разделительной точки);
  • мантисса отделятся от порядка пробелом, который рассматривается как знак умножения;
  • мнимая часть комплексных чисел задается умножением ее на символ мнимой единицы I (квадратный корень из -1).
  • Десятичная точка в числах имеет особый статус — указание ее в любом месте числа, даже в конце, делает число вещественным и ведет к переводу вычислений в режим работы с вещественными числами. При этом количеством выводимых после десятичной точки цифр можно управлять, задавая значение системной переменной окружения Digits:

    Комплексные числа обычно представляют на



    Шаг 1

    Комплексные числа обычно представляют на Комплексные числа обычно представляют на так называемой комплексной плоскости, у точек которой координата х задает действительную часть комплексного числа, а у (мнимая ось) показывает мнимую часть такого числа. На Рисунок 5.1 показано задание в виде радиус-векторов комплексного числа z = 4+3I, -z и комплексно-сопряженного числа 4-3I.
    Окружность радиуса abs(z)=sqrt(a2 + b2) представляет абсолютное значение комплексного числа z=a+b*I. Она является геометрическим множеством комплексных чисел, образованных концом вращающегося радиус-вектора числа z вокруг его начала в точке (0, 0) комплексной плоскости. Позже мы рассмотрим ряд функций для работы с комплексными числами.

    можно использовать для проверки того,



    Шаг 1

    можно использовать для проверки того, Функции type(x, integer), type(x, rational) и type(x, fraction) можно использовать для проверки того, имеет ли х значение соответственно целого числа, рационального числа или простой дроби:

    В конце приведенных примеров показано,



    Шаг 2

    В конце приведенных примеров показано, В конце приведенных примеров показано, как можно выделить отдельные компоненты таблицы и вывести значения и индексы таблицы с помощью функций entries и indices. Следующие примеры показывают, что таблицу можно использовать для выполнения математических преобразований:

    Шаг 2



    Шаг 2

    Шаг 2

    в прямые апострофы ликвидирует присваивание.



    Шаг 2

    в прямые апострофы ликвидирует присваивание. Итак, заключение имени переменной в прямые апострофы ликвидирует присваивание. Так что запись х:='х' означает, что переменной х возвращается статус неопределенной переменной. Теперь можно вычислить интеграл:

    а вначале задан признак положительности,



    Шаг 2

    а вначале задан признак положительности, В этом примере переменной а вначале задан признак положительности, а затем а<=0. Оба признака удовлетворяются только при a= 0, что и подтверждает вывод информации о статусе этой переменной функцией about (а).
    Предполагаемую переменную можно также изменить путем присваивания ей нового значения, противоречащего ее статусу:

    Особая роль при вводе выражений



    Шаг 2

    Особая роль при вводе выражений Особая роль при вводе выражений принадлежит знакам прямого апострофа (одиночного ' или двойного ''). Заключенное в такие знаки выражение освобождается от одной пары (закрывающего и открывающего знаков '):

    Для создания последовательностей выражений можно



    Шаг 2

    Для создания последовательностей выражений можно Для создания последовательностей выражений можно использовать также функцию seq:

    для отметки предполагаемых переменных, постоянные



    Шаг 2

    для отметки предполагаемых переменных, постоянные Часто встречаются также знаки ~ для отметки предполагаемых переменных, постоянные интегрирования и другие специальные обозначения. По мере упоминания в тексте таких объектов вывода они будут описаны.

    имеет множество функций. Они



    Шаг 2

    имеет множество функций. Они Для работы с числами Maple 7 имеет множество функций. Они будут рассмотрены в дальнейшем. На комплексной плоскости числа задаются координатами точек (х, у) (Рисунок 5.1).

    Шаг 2



    Шаг 2

    Шаг 2



    с помощью выражения вида



    Шаг 3

    с помощью выражения вида Можно сделать переменную х неопределенной и с помощью выражения вида x:=evaln(x). Это поясняет следующий пример:

    Для отмены переменным статуса предполагаемых



    Шаг 3

    Для отмены переменным статуса предполагаемых Для отмены переменным статуса предполагаемых используются те же приемы, что и при отмене присвоенного значения. Например, запись х:=' х' отменяет статус предполагаемой для переменной х.

    Некоторые другие возможности обрамления выражений



    Шаг 3

    Некоторые другие возможности обрамления выражений Некоторые другие возможности обрамления выражений апострофами мы рассмотрим позже. Наиболее важная из них — временная отмена выполненного ранее присваивания переменным конкретных значений.
    Для завершения работы с текущим документом достаточно исполнить команду quit, done или stop, набранную в строке ввода (со знаком ; в конце).

    Шаг 3



    Шаг 3

    Шаг 3

    и комплексных чисел на плоскости



    Шаг 3

    и комплексных чисел на плоскости

    Рисунок 5.1. Представление обычных и комплексных чисел на плоскости
    Для представления чисел на Рисунок 5.1 используется функция pointplot(list), где list — список координат точек. Эта функция становится доступной при подключении пакета plots командой with(plots). Кроме того, использована функция вывода ряда графических объектов на один график — display (см. далее описание представления комплексных чисел).
    С помощью функции convert Maple 7 может преобразовывать числа с различным основанием (от 2 до 36, в том числе бинарные и шестнадцатеричные) в десятичные числа:

    Шаг 3



    Шаг 3

    Шаг 3

    они демонстрируют замену функции косинуса



    Шаг 3

    они демонстрируют замену функции косинуса Следует внимательно присмотреться к этим примерам — они демонстрируют замену функции косинуса на отрицательный синус и синуса на косинус.

    Для отмены присваивания значений разом



    Шаг 4

    Для отмены присваивания значений разом Для отмены присваивания значений разом всем переменным (и введенным функциям пользователя) можно использовать команду restart. Следующий пример поясняет ее применение:

    реализует точную арифметику. Это



    Шаг 4

    реализует точную арифметику. Это При символьных вычислениях Maple 7 реализует точную арифметику. Это значит, что результат может быть получен с любым числом цифр. Однако надо помнить, что идеально точные численные вычисления выполняются только в случае целочисленных операций, например таких, как приведены ниже:

    Следует отметить, что команда restart



    Шаг 5

    Следует отметить, что команда restart Следует отметить, что команда restart отменяет все предшествующие определения, что иногда чревато осложнениями. Применяйте ее только тогда, когда вы уверены, что предшествующая заданной часть документа (или даже ряда документов) действительно не важна.
    Важно отметить, что Maple сохраняет в памяти все определения и присваивания, которые были сделаны во всех загруженных в систему документах. Поэтому результаты вычислений в текущем документе могут зависеть от определений в других документах. Команда restart позволяет исключить эту зависимость.

    Шаг 5



    Шаг 5

    Шаг 5

    Списки выражений



    Списки выражений

    Для создания упорядоченных наборов — списков — служат квадратные скобки [ ]:
    > [10,2+3.4+4,8,5,1]: [10,5,8,8,5,1]
    Как нетрудно заметить, элементы списков преобразуются и выводятся строго в том порядке, в каком они были заданы. Списки широко применяются для задания векторов и матриц.
    В ряде случаев, например при подготовке данных для двумерных графиков, возникает необходимость в подготовке парных списков — скажем, координат точек (х, у) графика. Для этого можно использовать функцию zip(f, u, v) или zip(f, u, v, d). Здесь f — бинарная функция, u, v — списки или векторы, d — необязательное значение. Примеры применения функции zip даны ниже:


    Строки и комментарии



    Строки и комментарии

    Строковые данные

    Строки как тип данных — это просто цепочки символов. Они обычно используются для создания текстовых комментариев. Строки должны каким-либо образом выделяться, чтобы Maple не отождествляла их с именами констант и переменных. Для этого строки-комментарии имеют внутренний разделительный признак, который устанавливается при их вводе (нажатием клавиши F5, которое приводит к исчезновению знака >).
    В других случаях последовательность символов рассматривается как строка, если она заключена в обратные апострофы, то есть в знаки '. Два апострофа подряд формируют апостроф как знак символьной строки, например `abc``def ` дает строку abc`def. Любое математическое выражение может входить в строку, разумеется, оно при этом не выполняется:
    > '2+2 не всегда "четыре"';
    2+2 не всегда 'четыре'


    Строковые константы



    Строковые константы

    Строковыми константами являются произвольные цепочки символов, заключенные в обратные апострофы, например 'Hello', 'Привет', 'My number' и т. д. Числа, заключенные в апострофы, например '123456', также становятся строковыми константами, которые нельзя использовать в арифметических выражениях. Строковые константы представляют значения строковых переменных. В них можно использовать символы кириллицы при условии, что соответствующий шрифт имеется.


    Таблицы



    Таблицы

    Еще одним важным типом множественных данных являются таблицы. Они задают данные с произвольной индексацией. Для создания таблиц служит функция table, которая при вызове в простейшем виде table[] создает шаблон пустой таблицы:


    Встроенные в ядро константы



    Встроенные в ядро константы

    Есть также ряд констант, которые правильнее считать заведомо определенными глобальными переменными:
  • false — логическое значение "ложно";
  • gamma — константа Эйлера, равная 0.5772156649...;
  • infinity — положительная бесконечность (отрицательная задается как infinity);
  • true — логическое значение "истинно";
  • Catalan — константа Каталана, равная 0.915965594...;
  • FAIL — специальная константа (см. справку, выдаваемую по команде ?FAIL);
  • I — мнимая единица (квадратный корень из -1);
  • Pi — представляет константу = 3.141...
  • Любопытно, что в этот список не входит основание натурального логарифма — число е. В качестве этой константы рекомендуется использовать ехр(1). Она отображается как жирная прямая буква Е. A exp(l.0) выводит 2.71828... (что и следовало ожидать).


    Выражения и основы работы с ними



    Выражения и основы работы с ними

    Выражения и их ввод

    Фактически Maple 7 — это система для манипулирования математическими выражениями.
    Выражение в системе Maple — это объект, вполне соответствующий сути обычного математического выражения. Оно может содержать операторы, операнды и функции с параметрами. В этом уроке выражения записываются на Maple-языке без использования специальных средств для их представления в естественном математическом виде. Благодаря этому запись выражений и приводимых примеров одинаково пригодна для любой реализации системы Maple — даже под MS-DOS. Такая запись получается наиболее короткой, ее можно выводить и распечатывать без применения графических средств. Кроме того, она соответствует виду, принятому в справочной системе Maple.
    Однако пользовательский интерфейс системы Maple 7 для Windows позволяет представлять как вводимые, так и выводимые выражения в самых различных формах, в том числе в естественном математическом виде — примеры этого многократно приводились и будут приводиться в дальнейшем. Maple 7 имеет многочисленные функции преобразования форматов, позволяющие менять форму представления данных.
    Выражения в Maple могут оцениваться и изменяться в соответствии с заданными математическими законами и правилами преобразований. Например, функция упрощения выражений simplify способна упрощать многие математические выражения, записанные в качестве ее параметра (в круглых скобках):


    Вывод выражений



    Вывод выражений

    При выполнении порой даже простых операций результаты получаются чрезвычайно громоздкими. Для повышения наглядности выражений Maple 7 выводит их с выделением общих частей выражений и с присваиванием им соответствующих меток. Метки представлены символами #N, где N — номер метки. Помимо меток при выводе результатов вычислений могут появляться и другие специальные объекты вывода, например корни RootOf, члены вида О(х"), учитывающие погрешность при разложении функций в ряд, и обозначения различных специальных функций, таких как интегральный синус, гамма-функция и др. Примеры такого вывода приведены ниже:




    Зарезервированные слова



    Зарезервированные слова

    Зарезервированные слова используются для создания условных выражений, циклов, процедур и управляющих команд. Список 42 зарезервированных слов Maple 7 дан ниже.
    and

    break

    by

    catch

    description

    do

    done

    el if

    else

    end

    error

    export

    fi

    finally

    for

    from

    global

    if

    in

    intersect

    local

    minus

    mod

    module

    next

    not

    od

    option

    options

    or

    proc

    quit

    read

    return

    save

    stop

    then

    to

    try

    union

    use

    while







    Совокупность правил, по которым записываются определения всех объектов Maple-языка, называется его синтаксисом. Некоторые особенности синтаксиса полезно знать уже в начале освоения Maple. Например, то что знак - (минус) имеет двойное значение. Применительно к одному числу, переменной или выражению он меняет их знак. Однако два знака минус подряд (например, в записи --3) задавать нельзя. Другое назначение знака минус — создание операции вычитания, например 5-2 или а-b. Соответственно двойное назначение имеет и знак •+, причем число без знака считается положительным, так что +5=5.
    При вводе действительных чисел с порядком для указания порядка используется символ * (например, 2*1(Г100 или 2*1(Г-100). Для возведения числа в степень наряду с оператором *• можно использовать и составной оператор ** (две звездочки подряд). Для изменения общепринятого приоритета вычислений используются круглые скобки, в них же задаются параметры функций и процедур. Более подробно синтаксис Maple-языка рассматривается ниже.
    Некоторые операторы представлены двумя символами — например, оператор присваивания переменным их значения := содержит двоеточие и знак равенства. В таких операторах между символами недопустим знак пробела. Однако его можно использовать между отдельными частями выражений — так, (а+b)/с эквивалентно (а + b) / с.
    По набору операторов и функций Maple-язык намного превосходит любой универсальный язык программирования. Это позволяет наряду с обычными программными конструкциями задавать множество специальных конструкций, подчас резко упрощающих запись математических выражений. К примеру, возможна работа со списками имен функций. Язык Maple имеет множество операций над символьными выражениями и гибкий аппарат создания и преобразования типов данных и результатов вычислений.
    Для большинства пользователей возможности языка Maple кажутся явно избыточными, и большинство наиболее распространенных операций в нем реализуется несколькими способами. Однако каждый пользователь волен выбирать из множества возможностей именно те, которые ему необходимы в конкретной предметной области. Поскольку таких областей превеликое множество, то обширные возможности Maple лишними не являются.


    Защита идентификаторов констант



    Защита идентификаторов констант

    Имена встроенных констант (как и имена функций) защищены специальным атрибутом protected. Поэтому (без его снятия) константам нельзя присваивать какие-либо значения:


    Компьютерная математика и пакет Maple

    Бинарные (инфиксные) операторы



    Бинарные (инфиксные) операторы

    Бинарные (инфиксные) операторы используются с двумя операндами, обычно размещаемыми по обе стороны от оператора. В ядро Maple 7 включено около трех десятков бинарных операторов. Основные из них перечислены в табл. 6.1.

    Tаблица 6.1. Бинарные операторы

    Обозначение
    Оператор
    +
    Сложение
    -
    Вычитание
    *
    Умножение
    /
    Деление
    ** или ^
    Возведение в степень
    mod
    Остаток от деления
    $
    Оператор последовательности
    .

    Разделительная точка
    @
    Оператор композиции
    @@
    Повторение композиции
    ,
    Разделитель выражений
    :=
    Присваивание
    . ..
    Задание интервала
    /
    Разделитель выражений
    &*
    Некоммутативное умножение
    &
    Нейтральный оператор
    ||
    Конкатенация (объединение)
    Примеры использования бинарных операторов:


    Функции для работы с векторами и матрицами



    Функции для работы с векторами и матрицами


    Элементы векторов и матриц
    Элементы векторов и матриц являются индексированными переменными, то есть место каждого элемента вектора определяется его индексом, а у матрицы — двумя индексами. Обычно их обобщенно обозначают как i (номер строки матрицы или порядковый номер элемента вектора) iij (номер столбца матрицы). Допустимы операции вызова нужного элемента и присваивания ему нового значения:
    V[1] — вызов i-го элемента вектора V;
    M[i, j] — вызов элемента матрицы М, расположенного на г-н строке в j-ы столбце;
    V[i]:=x — присваивание нового значения х i-му элементу вектора V;
    M[i,j]:=x — присваивание нового значения х элементу матрицы М.


    Функции для работы со строковыми данными



    Функции для работы со строковыми данными


    Контроль типа строковых данных
    Напоминаем, что строковые данные представляются совокупностью любых символов в обратных апострофах, например *Привет* или `2+2`. Для контроля объектов на принадлежность к строковым данным служит функция type с параметром string:


    Функции комплексного аргумента



    Функции комплексного аргумента

    Для комплексных чисел и данных, помимо упомянутых в предшествующем разделе, определен следующий ряд базовых функций:
  • argument — аргумент комплексного числа; 1
  • conjugate — комплексно-сопряженное число;
  • Im — мнимая часть комплексного числа;
  • Re — действительная часть комплексного числа;
  • роlаг — полярное представление комплексного числа (библиотечная функция).
  • Примеры применения:


    Функции с элементами сравнения



    Функции с элементами сравнения

    В алгоритме вычисления ряда функций заложено сравнение результата с некоторым опорным значением. К таким функциям относятся:
  • abs — абсолютное значение числа;
  • ceil — наименьшее целое, большее или равное аргументу;
  • floor — наибольшее целое, меньшее или равное аргументу;
  • frac — дробная часть числа;
  • trunc — целое, округленное в направлении нуля;
  • round — округленное значение числа;
  • signum (х) — знак х (-1 при х < 0, 0 при х = 0 и +1 при х > 0).
  • Для комплексного аргумента х эти функции определяются следующим образом:
  • tranc(x) = trunc(Re(*)) + I*trunc(IM(x));
  • round(x) = round(Re(.r)) + I*round(Im(x));
  • frac(x) - frac(Re(*)) + I*hac(Im(x)).
  • Для введения определения значения floor(x) от комплексного аргумента прежде всего запишем а = Re(x) - fооr(Re(x)) и b = Im(x) - floor(Im(x)). Тогда flооr(x) = floor(Re(x)) + I*floor(Im(x)) + X, где


    Функциональные операторы



    Функциональные операторы

    Функциональные операторы Maple-языка являются альтернативами функций и записываются в двух формах.
    Нотация
    Запись оператора
    "arrow" (стрелочная)
    vars -> result
    "angle bracket" (в угловых скобках)

    Данные операторы могут использоваться для реализации подстановок. Например, запись х -> х^2 означает подстановку х*2 на место переменной х. Возможны и такие подстановки в множественной форме:


    Гиперболические функции



    Гиперболические функции

    Гиперболические функции представлены следующим набором:
  • sinh — гиперболический синус;
  • cosh — гиперболический косинус;
  • tanh — гиперболический тангенс;
  • sech — гиперболический секанс;
  • csch — гиперболический косеканс;
  • coth — гиперболический котангенс.
  • Примеры применения гиперболических функций представлены ниже:


    Интерактивный ввод строк



    Интерактивный ввод строк

    Для интерактивного ввода строк можно использовать функцию readline(filename), задав в качестве имени файла terminal или опустив имя файла. В этом случае ввод строки осуществляется с клавиатуры компьютера:
    > s:=read1ine();
    > Привет мой друг!
    s:="Привет мой друг!"
    ПРИМЕЧАНИЕ
    Полезно обратить внимание на то, что запрос в ходе интерактивного ввода может быть сделан на русском языке (если установленный для запросов шрифт имеет символы кириллицы). Нужно также, чтобы и шрифт строки вывода содержал кириллицу, иначе в строке вывода будет типичная "абракадабра" — смесь непонятных символов.


    Логические операторы



    Логические операторы

    Логические (или булевы) операторы указывают на логическую связь величин (или выражений). Прежде всего они представлены рядом бинарных операторов, приведенных в табл. 6.3.




    Математические функции



    Математические функции

    Понятие о встроенных функциях
    Maple 7 имеет полный набор элементарных математических функций. Все они, кроме арктангенса двух аргументов, имеют один аргумент х, например sin(x). Он может быть целым, рациональным, дробно-рациональным, вещественным или комплексным числом. В ответ на обращение к ним элементарные функции возвращают соответствующее значение. Поэтому они могут быть включены в математические выражения. Все описанные здесь функции называются встроенными, поскольку они реализованы в ядре системы.
    Как правило, если аргументом функции является фундаментальная константа, целое или рациональное число, то функция выводится с таким аргументом без получения результата в форме действительного числа с плавающей точкой. Например:


    Нейтральные операторы определяемые пользователем



    Нейтральные операторы, определяемые пользователем

    Для создания нейтральных (задаваемых пользователем и в момент задания неисполняемых) операторов, определяемых пользователем, служит знак амперсанда — &. Синтаксис нейтрального оператора следующий:
    &name
    Имя оператора строится по правилам задания допустимых идентификаторов. Также в качестве имени может быть использована последовательность (один и более) специальных символов. В последовательности специальных символов не должно быть букв, цифр, подчеркивания, а также следующих символов:
    & | () {} [] :: '' # <перевод строки> <пробел>
    Максимальная длина имени — 495 символов. Нейтральные операторы могут быть унарными и бинарными. Примеры задания бинарного нейтрального оператора приведены ниже:


    Некоторые целочисленные функции и факториал



    Некоторые целочисленные функции и факториал

    Ниже представлены наиболее распространенные целочисленные функции Maple 7, используемые в теории чисел:
  • factorial (n) — функция вычисления факториала (альтернатива — оператор !);
  • iquo(a.b) — целочисленное деление а на b;
  • irem(a,b) — остаток от деления а на b;
  • igcd(a b) — наибольший общий делитель;
  • lcm(a,b) — наименьшее общее кратное.
  • Примеры применения:


    Обработка строк



    Обработка строк

    Имеется ряд функций для работы со строками. Из них наиболее важны следующие:
  • lenght(str) — возвращает число символов, содержащихся в строке str;
  • substring(str,a. .b) — возвращает подстроку строки str от а-го символа до b-го;
  • cat(strl,str2....) — возвращает строку, полученную объединением строк strl, str2,... (альтернатива — оператор конкатенации в виде точки .);
  • SearchText(s.str) — производит поиск подстроки s в строке str и при его успехе возвращает номер позиции s в строке str (при отсутствии s в str функция возвращает 0).
  • Примеры применения этих функций (в виде продолжения ранее приведенных примеров) представлены ниже:


    Обратные гиперболические функции



    Обратные гиперболические функции

    Как и тригонометрические функции, гиперболические имеют свои обратные функции:
  • arcsinh — гиперболический арксинус;
  • arccosh — гиперболический арккосинус;
  • arctanh — гиперболический арктангенс;
  • arcsech — гиперболический арксеканс:
  • arccsch — гиперболический арккосеканс:
  • arccoth — гиперболический арккотангенс.
  • Примеры применения:


    Обратные тригонометрические функции



    Обратные тригонометрические функции

    К обратным тригонометрическим относятся следующие функции:
  • arcsin — арксинус;
  • arccos — арккосинус;
  • arctan — арктангенс;
  • arcsec — арксеканс;
  • arccsc — арккосеканс;
  • arccot — арккотангенс.
  • Примеры вычислений:


    Операции над матрицами с численными элементами



    Операции над матрицами с численными элементами

    Над матрицами с численными элементами можно выполнять разнообразные операции. Ниже приведены основные из них:


    Операции с векторами



    Операции с векторами

    Важное достоинство систем компьютерной алгебры, к которым относится и Maple 7, заключается в возможности выполнения аналитических (символьных) операций над векторами и матрицами.
    Приведем примеры операций над векторами:


    Оператор % и команда history



    Оператор % и команда history

    Мы уже неоднократно отмечали, что оператор % обеспечивает подстановку в строку ввода (или в выражение) последнего результата операции, Х% — предпоследнего и %%% — третьего с конца. Есть еще одна иногда полезная возможность проследить за ходом частных вычислений внутри документа — применение команды-функции history. В Maple V R5 это была библиотечная функция, которая требовала вызова из библиотеки. В Maple 7 такого вызова уже не требуется. Функция history (ехрr) или history() создает список переменных вида от, где индекс f = 1, 2, 3.... Этим переменным можно присваивать значения в диалоговом режиме и отслеживать результаты вычислений. Команда off;, вводимая после использования данной функции, завершает работу с ней. Ниже представлен диалог с применением функции history:




    Операторы и операнды



    Операторы и операнды

    Виды операторов
    Операторы во входном языке и языке программирования Maple служат для конструирования выражений. Формально операторы представлены своими идентификаторами в виде специальных математических знаков, слов и иных имен. Операторы, как это вытекает из их названия, обеспечивают определенные операции над данными, представленными операндами.
    Имеется пять основных типов операторов:

  • binary — бинарные операторы (двумя операндами);
  • unary — унарные операторы (с одним операндом);
  • nullary — нульарные операторы (без операнда — это одна, две и три пары кавычек);
  • precedence — операторы старшинства (включая логические операторы);
  • functional — функциональные операторы.
  • Для просмотра операторов и их свойств можно использовать следующие команды:
    > ?operators[binary];
    > ?operators[unary];
    > ToperatorsCnullary];
    > ?operators[precedence];
    > ?operators[functional]:
    А для изучения примеров применения операторов нужно задать и исполнить команду:
    > ?operators[examples];
    Команда:
    > Tdefine:
    позволяет ознакомиться с функций define. С ее помощью можно определять новые операторы.


    Операторы объединения пересечения и исключения для множеств



    Операторы объединения, пересечения и исключения для множеств

    Для данных типа "множество" определены следующие бинарные операторы:
  • union — включает первый операнд (множество) во второй;
  • intersect — создает множество, содержащее общие для операндов элементы;
  • minus — исключает из первого операнда элементы второго операнда.
  • В любом случае, в результирующем множестве устраняются повторяющиеся элементы. Действие этих операторов поясняют следующие примеры:


    Определение операторов с помощью оператора define



    Определение операторов с помощью оператора define

    Большие возможности для создания операторов с заданными свойствами предоставляет специальный оператор define. Он записывается в следующей форме:
    define(oper, property1, property2. ._)
    Здесь ореr — имя определяемого оператора, property!, property2 и т. д. — наименования свойств. В принципе, оператор define позволяет создавать операторы с новыми свойствами, которые отсутствуют у операторов и функций, встроенных в систему.
    Могут быть указаны следующие свойства операторов:
  • unary — унарный оператор;
  • binary — бинарный оператор;
  • diff — дифференциальный оператор;
  • linear — линейный оператор;
  • multilinear — множественный линейный оператор;
  • flat — ассоциативный оператор, для которого f(x/(y,z)) = f(f(x,y),z) = f(x,y,z);
  • orderless — коммутативный симметричный оператор, такой что f(x,y) = f(y,x),
  • antisymmetric — асимметричный оператор, такой что f(x,y) = -f(y,xc);
  • zero — нулевой оператор (например, V:=Vector(5,shape=zero) задает вектор с 5 нулевыми элементами);
  • identity — единичный оператор (например, M:=Matrix(3,3,shape=identity) задает единичную матрицу).
  • Следующий пример задает линейный оператор L:


    Преобразование списков в векторы и матрицы



    Преобразование списков в векторы и матрицы

    Прежде всего надо обратить внимание на то, что векторы и матрицы хотя и похожи на списки, но не полностью отождествляются с ними. В этом можно убедиться с помощью следующих примеров, в которых функция type используется для контроля типов множественных объектов (векторов и матриц):


    Преобразование строки в математическое выражение



    Преобразование строки в математическое выражение

    Часто возникает необходимость в интерактивном вводе математических выражений. Для ввода с запросом выражения используется функция readstat(promt), где promt — строка с текстовым комментарием. Пример ее применения дан ниже:


    Шаг 1



    Шаг 1

    Шаг 1

    может использоваться для создания сложных



    Шаг 1

    может использоваться для создания сложных Оператор композиции @@ может использоваться для создания сложных функций, содержащих цепные дроби:

    Еще несколько примеров работы со



    Шаг 1

    Еще несколько примеров работы со

    Рисунок 6.4. Примеры применения специальных функций
    Еще несколько примеров работы со специальными функциями представлены на Рисунок 6.5. Как видно из приведенных примеров, на экране монитора можно получить математически ориентированное представление специальных функций, обычно более предпочтительное, чем представление на Maple-языке или в текстовом формате. Записи функций при этом выглядят как в обычной математической литературе.

    используя функцию преобразования данных convert,



    Шаг 1

    используя функцию преобразования данных convert, Однако, используя функцию преобразования данных convert, можно преобразовывать одномерные списки в векторы, а двумерные — в матрицы. Функция type используется в следующих формах:
  • type(V, vector) — тестирует аргумент V и возвращает true, если V — вектор, и false в ином случае;
  • type(M,matrix) — тестирует аргумент М и возвращает true, если М — матрица, и false в ином случае.
  • Здесь параметры vector и matrix используются для указания того, какой тип объекта проверяется.
    ПРИМЕЧАНИЕ
    Обратите внимание на то, что матрицы отображаются иначе, чем двумерные списки, без двойных квадратных скобок. Отображение вектора подобно отображению одномерного списка, поэтому здесь особенно важен контроль типов данных.

    В этих примерах используется функция



    Шаг 1

    В этих примерах используется функция В этих примерах используется функция evalm(M), осуществляющая вычисление матрицы или вектора М.
    ПРИМЕЧАНИЕ
    Рекомендуется перед проведением символьных операций с векторами и матрицами очистить память от предшествующих определений с помощью команды restart. Если какие-то элементы векторов или матриц были ранее определены, это может привести к очень сильным искажениям вида конечных результатов. Очистка памяти устраняет возможность ошибок такого рода.

    Шаг 1



    Шаг 1

    Шаг 1



    Эти функции дают достаточно средств



    Шаг 1

    Эти функции дают достаточно средств Эти функции дают достаточно средств для обработки данных строкового типа, которые можно применять не только для создания текстовых комментариев, но и для управления вычислительным процессом в программах.

    Альтернативой может стать ввод строкового



    Шаг 1

    Альтернативой может стать ввод строкового Альтернативой может стать ввод строкового выражения с последующим преобразованием его в математическое выражение с помощью функции parse:

    что эти операторы заданы ключевыми



    Шаг 1

    что эти операторы заданы ключевыми Напоминаем, что эти операторы заданы ключевыми словами. Обратите внимание на то, что в Maple 7 результат применения оператора union представлен членами, расположенными в довольно произвольном порядке.

    Шаг 1



    Шаг 1

    Шаг 1

    Шаг 1



    Шаг 1

    Шаг 1



    часто используется для задания



    Шаг 1

    часто используется для задания Функциональный оператор в Maple 7 часто используется для задания функций пользователя, которое будет рассмотрено несколько позднее.

    Шаг 1



    Шаг 1

    Шаг 1

    Для задания некоторых свойств операторов



    Шаг 1

    Для задания некоторых свойств операторов Для задания некоторых свойств операторов можно использовать уравнения и соотношения вида f(x)=value. Чтобы свойство выполнялось для всех аргументов (или некоторого класса аргументов), используется описание forall. Так, приведенный ниже пример задает оператор F, который вычисляет n-е число Фибоначчи (n > 2):

    и исключения из этого правила



    Шаг 1

    и исключения из этого правила Нетрудно заметить, что есть и исключения из этого правила — например, на экране монитора ехр(1) будет выведено как константа е, а значение функции arcsin( 2) все же вычислено и результат получен как 1/6 от константы Pi. Вообще говоря, если результат выражается через фундаментальную математическую константу, то он будет вычислен и представлен ею. В противном случае функция с целочисленным и рациональным аргументом или с константой просто повторяется в строке вывода в установленном для этой строки формате.
    Для получения подробной информации о некоторой произвольной функции достаточно задать команду:
    ?
    Ввиду общеизвестности элементарных функций мы не будем обсуждать ни их свойства, ни допустимые для них пределы изменения аргумента.

    В последних двух примерах применения



    Шаг 1

    В последних двух примерах применения В последних двух примерах применения оператора факториала полезно обратить внимание, что запись n!! означает лишь (n!)!, а не n!! = 2*4*6*..., то есть произведение четных целых чисел. Действие других функций очевидно.

    Многие свойства тригонометрических функций можно



    Шаг 1

    Многие свойства тригонометрических функций можно Многие свойства тригонометрических функций можно оценить, рассматривая их графики. Для построения таких графиков можно использовать функцию pi ot. На Рисунок 6.1 сверху показаны графики ряда тригонометрических функций.

    К этому классу функций принадлежит



    Шаг 1

    К этому классу функций принадлежит К этому классу функций принадлежит еще одна полезная функция: arctan(y.x) = argument(x+I*y)
    Она возвращает угол радиус-вектора в интервале от -Pi до Pi при координатах конца радиус-вектора х и у (см. пример ниже):

    сверху представлены графики гиперболического



    Шаг 1

    сверху представлены графики гиперболического На Рисунок 6. 2 сверху представлены графики гиперболического синуса, косинуса и тангенса. По ним можно судить о поведении этих функций.

    Графики обратных гиперболических синуса, косинуса



    Шаг 1

    Графики обратных гиперболических синуса, косинуса Графики обратных гиперболических синуса, косинуса и тангенса представлены на Рисунок 6.2 снизу.

    функция ceil для комплексного аргумента



    Шаг 1

    функция ceil для комплексного аргумента Наконец, функция ceil для комплексного аргумента определяется следующим образом:
    cell(x) = -fооr(-х)
    Примеры применения:

    Обратите внимание на то, что



    Шаг 2

    Обратите внимание на то, что Обратите внимание на то, что соотношения fib(0)=l и fib(l)=l задают начальные значения целочисленного массива чисел Фибоначчи, которые нужны для реализации обычного итерационного алгоритма их нахождения, — напоминаем, что очередное число Фибоначчи равно сумме двух предшествующих чисел Фибоначчи.
    Последний пример иллюстрирует применение системной функции time для определения времени, затраченного на вычисление значения функции fib(20). Это время задается в секундах. Нетрудно заметить, что даже для ПК с процессором Pentium II 350 МГц это время оказалось довольно значительным (более 3 с), поскольку каждое новое число Фибоначчи вычисляется заново.

    Шаг 2



    Шаг 2

    Шаг 2

    Графики ряда обратных тригонометрических функций



    Шаг 2

    Графики ряда обратных тригонометрических функций Графики ряда обратных тригонометрических функций показаны на Рисунок 6.1.

    Шаг 2



    Шаг 2

    Шаг 2

    Шаг 2



    Шаг 2

    Шаг 2



    Шаг 2



    Шаг 2

    Шаг 2

    Шаг 2



    Шаг 2

    Шаг 2



    Примеры работы со специальными математическими



    Шаг 2

    Примеры работы со специальными математическими

    Рисунок 6.5. Примеры работы со специальными математическими функциями
    На Рисунок 6.5 показаны примеры разложения специальных функций в ряды и применения функции convert для их преобразования.
    Много информации о поведении специальных функций дает построение их графиков. На Рисунок 6.6 показано построение семейства графиков функций Бесселя BesselJ разного порядка и гамма-функции. Эти функции относятся к числу наиболее известных. Если читателя интересуют те или иные специальные функции, следует прежде всего построить и изучить их графики.
    Подробное описание специальных функций можно найти в справочниках [43-45] и в справочной базе данных Maple 7.


    Рекомендуется внимательно изучить эти примеры



    Шаг 2

    Рекомендуется внимательно изучить эти примеры Примечание 1
    Примечание 1


    Рекомендуется внимательно изучить эти примеры и попробовать свои силы в реализации простых матричных операций. Мы вернемся к гораздо более серьезному описанию матричных операций и функций в дальнейшем.

    Шаг 2



    Шаг 2

    Шаг 2



    Из приведенных примеров видно, что


    Из приведенных примеров видно, что контроль строкового типа осуществляется не очень строго, — в частности, единичные символы рассматриваются как строковые и без заключения их в апострофы. В строках могут быть символы кириллицы, но гарантии в правильности обработки таких символов нет — надо мириться с тем, что Maple — англоязычная программа и ее возможности в поддержке других языков ограниченны.

    Обратите внимание на то, что



    Шаг 2

    Обратите внимание на то, что Обратите внимание на то, что функция evaln не смогла вычислить строковое выражение `2+3` поскольку оно не является числовым типом данных. Однако функция parse преобразовала это выражение в числовое, что и привело к его вычислению.

    и значения глобальных переменных 01



    Шаг 2

    и значения глобальных переменных 01 К сожалению, полученный результат и значения глобальных переменных 01 после завершения работы с данной функцией становятся недоступными, так что практической пользы от ее применения не так уж много. Разумеется, внутри блока history вы можете присвоить результат другой переменной и он сохранится (попробуйте это сделать сами). При каждом очередном применении функции history нумерация переменных 0i начинается с начала, так что какой-либо преемственности при использовании этой функции нет.
    Функция history может применяться в качестве средства начальной отладки вычислений. Внутри фрагмента программы, заданного функцией history, можно задавать построения графиков. Например, при исполнении фрагмента программы:

    в управляющих структурах программ, составленных


    Логические операторы часто используются в управляющих структурах программ, составленных на языке программирования Maple. Такое их применение мы рассмотрим позже.

    хорошо видна их периодичность. Функция



    Шаг 3

    хорошо видна их периодичность. Функция

    Рисунок 6.1. Графики ряда тригонометрических и обратных тригонометрических функций
    Из графиков тригонометрических функций (Рисунок 6.1, сверху) хорошо видна их периодичность. Функция тангенса имеет разрывы, и ее значение в этих точках в пределе равно бесконечности. Поэтому для наглядного ее представления вместе с функциями синуса и косинуса (их экстремальные значения по модулю равны 1) приходится вводить ограничения на масштаб графика по оси у.
    Примечание 1
    Примечание 1


    Обратите внимание на параметр color=black в функции построения графиков plot. Он задает построение всех графиков черным цветом, что сделано для более четкой печати их в книге. Если убрать этот параметр, то графики разных функций будут строиться с использованием разных цветов, что облегчит их различение. Другие способы выделения отдельных кривых будут описаны в дальнейшем при описании графических возможностей системы Maple 7.

    В отличие от тригонометрических гиперболические



    Шаг 3

    В отличие от тригонометрических гиперболические

    Рисунок 6.2. Графики основных гиперболических и обратных гиперболических функций
    ПРИМЕЧАНИЕ
    В отличие от тригонометрических гиперболические функции не являются периодическими. Функция гиперболического тангенса имеет симметричную кривую с характерными ограничениями. Поэтому она широко используется для моделирования передаточных характеристик нелинейных систем с ограничением выходного параметра при больших значениях входного параметра.

    Графики ряда алгебраических функций показаны



    Шаг 3

    Графики ряда алгебраических функций показаны Графики ряда алгебраических функций показаны на Рисунок 6.3.



    А вот еще один пример



    Шаг 3

    А вот еще один пример А вот еще один пример применения этого оператора для составления цепного радикала и вычисления ряда таких цепочек в цикле:



    Шаг 3



    Шаг 3

    Шаг 3

    Приведем еще ряд примеров выполнения



    Шаг 3

    Приведем еще ряд примеров выполнения Приведем еще ряд примеров выполнения символьных операций с одной матрицей:

    с функцией history отличается не



    Шаг 3

    с функцией history отличается не будет построен график синусоиды. В целом работа с функцией history отличается не слишком высокой стабильностью, так что возможности этой функции пока остаются не слишком востребованными.

    Среди других функций для работы


    Среди других функций для работы с матрицами полезно обратить внимание на функцию mар, которая применяет заданную операцию (например, функции дифференцирования diff и интегрирования int) к каждому элементу матрицы. Примеры такого рода даны ниже:

    показаны также графики синусоиды


    Рисунок 6.З. Графики ряда алгебраических функций
    На Рисунок 6. 3 показаны также графики синусоиды с экспоненциально падающей и нарастающей амплитудой. Читателю рекомендуется попробовать свои силы в построении графиков комбинаций различных функций.

    Шаг 4



    Шаг 4

    Шаг 4

    Графики функций Бесселя



    Шаг 4

    Графики функций Бесселя

    Рисунок 6.6. Графики функций Бесселя и гамма-функции

    Шаг 5



    Шаг 5

    Шаг 5



    В результате возвращаются матрицы, каждый



    Шаг 6

    В результате возвращаются матрицы, каждый В результате возвращаются матрицы, каждый элемент которых представлен производной или интегралом. Аналогично можно выполнять над матрицами и другие достаточно сложные преобразования.
    В дальнейшем мы продолжим изучение матричных функций и операций, включенных в пакеты Maple 7.

    Символьные операции с матрицами



    Символьные операции с матрицами

    Ниже представлены примеры символьных операций, осуществляемых над квадратными матрицами одного размера:




    Специальные математические функции



    Специальные математические функции

    Специальные математические функции обычно являются решениями линейных дифференциальных уравнений различного типа и выражаются в виде интегралов, не представимых через элементарные функции. Maple 7 имеет практически полный набор таких функций. Их представления можно найти в справочной литературе, а также в справочной базе данных Maple. В связи с этим ограничимся приведением названий наиболее важных специальных функций:
  • AiryAi (Bi) — функции Эйри;
  • AngerJ — функция Ангера;
  • bernoulli — числа и полиномы Бернулли;
  • Bessel I (J, К, Y) — функции Бесселя разного рода;
  • Beta — бета-функция;
  • binomial — биноминальные коэффициенты;
  • Chi — интегральный гиперболический косинус;
  • Ci — интегральный косинус;
  • csgn — комплексная сигнум-функция;
  • dilog — дйлогарифм;
  • Dirac — дельта-функция Дирака;
  • Ei — экспоненциальный интеграл;
  • EllipticCE (CK, CPi, E, F, К, Modulus, Nome, Pi) — эллиптические интегралы;
  • erf — функция ошибок;
  • erfc — дополнительная функция ошибок;
  • euler — числа и полиномы Эйлера;
  • FresnelC (f, g, S) — интегралы Френеля;
  • GAMMA — гамма-функция;
  • GaussAGM — арифметико-геометрическое среднее Гаусса;
  • HankelHl (H2) — функции Ганкеля;
  • harmonic — частичная сумма серии гармоник;
  • Heaviside — функция Хевисайда;
  • JacobiAM (CN, CD, CS, ON, DC, DS, NC, NO, NS, SC, SO, SN) - эллиптические функции Якоби;
  • JacobiThetal (2, 3, 4) — дзета-функции Якоби;
  • JacobiZeta — зет:функция Якоби;
  • KelvinBer (Bei, Her, Hei, Ker, Kei) — функции Кельвина;
  • Li — логарифмический интеграл;
  • 1nGAMMA — логарифмическая гамма-функция;
  • MeijerG — G-функция Мейджера;
  • pochhammer — символ Похгамера;
  • polylog — полилогарифмическая функция;
  • Psi — дигамма-функция;
  • Shi — интегральный гиперболический синус;
  • Si — интегральный синус;
  • Ssi — синусный интеграл смещения;
  • StruveH (L) — функции Струве;
  • surd — неглавная корневая функция;
  • LambertW — W-функция Ламберта;
  • WeberE — Е-функция Вебера;
  • WeierstrassP — Р-функция Вейерштрасса;
  • WeierstrassPPrime — производная Р-функции Вейерштрасса;
  • WeierstrassZeta — зета-функция Вейерштрасса;
  • WeierstrassSigma — сигма-функция Вейерштрасса;
  • Zeta — зета-функция Римана и Гурвица.
  • Ввиду большого числа специальных функций и наличия множества примеров их вычисления в справочной системе Maple 7 ограничимся несколькими примерами вычисления наиболее распространенных специальных функций. По их подобию читатель может опробовать в работе и другие специальные функции.
    На Рисунок 6.4 даны примеры применения ряда специальных функций. Обратите особое внимание на первый пример. Он показывает, как средствами системы Maple 7 задается определение функций Бесселя. Показано, что функции Бесселя являются решениями заданного на Рисунок 6.4 дифференциального уравнения второго порядка. Maple 7 способна вычислять производные и интегралы от специальных функций.


    Специальные типы операторов



    Специальные типы операторов

    Операторы в Maple описывают операции по преобразованию данных, в частности выражений. Последние, в свою очередь, можно отнести к данным абстрактного типа. Могут быть описаны следующие типы операторов:
  • неопределенные (f);
  • нейтральные (&);
  • процедурные;
  • функциональные;
  • композиционные (@).
  • Оператор относится к неопределенным, если он не был заранее определен. Такой оператор не выполняет никаких действий и просто повторяется в строке вывода:
    > restar:f(1,2,а):
    f(l,2,a)
    Композиционные операторы (на базе знака @) мы уже применяли. Другие типы операторов рассмотрены ниже.


    Степенные и логарифмические функции



    Степенные и логарифмические функции

    К степенным и логарифмическим относятся следующие функции системы Maple 7:
  • ехр — экспоненциальная функция;
  • ilog10 — целочисленный логарифм по основанию 10 (возвращает целую часть от логарифма по основанию 10);
  • ilog — целочисленный логарифм (библиотечная функция, возвращающая
  • целую часть от натурального логарифма);
  • n — натуральный логарифм;
  • log — логарифм по заданному основанию (библиотечная функция);
  • log10 — логарифм по основанию 10;
  • sqrt — квадратный корень.
  • Примеры применения:


    Унарные операторы



    Таблица 6.2. Унарные операторы

    Обозначение
    Оператор
    +
    Унарный плюс (префикс)
    -
    Унарный минус (префикс)
    ;
    Факториал (постфикс)
    .
    Десятичная точка (префикс или постфикс)
    $
    Последовательность (префикс)
    not Логическое отрицание (префикс)
    &string Метка (префикс)
    Примеры применения унарных операторов:


    З Бинарные логические операторы



    Таблица 6.З. Бинарные логические операторы

    Обозначение
    Оператор
    <
    Меньше
    <"
    Меньше или равно
    >
    Больше
    >=
    Большее или равно
    -
    Равно
    О
    Не равно
    and
    Логическое "и"
    or
    Логическое "или"
    Конструкции с этими операторами, такие как х=у, возвращают логическое значение — константу true, если условие выполняется, и false, если оно не выполняется. Кроме того, к логическим операторам относится унарный оператор not — он представляет логическое "нет". Для возврата логических значений выражений с этими операторами используется функция evalb(условие), например:


    Тригонометрические функции



    Тригонометрические функции

    В ядре Maple определены следующие тригонометрические функции:
  • sin — синус;
  • cos — косинус;
  • tan — тангенс;
  • sec — секанс;
  • csc — косеканс;
  • cot — котангенс.
  • Все эти функции являются периодическими (с периодом 2л, кроме тангенса и котангенса, у которых период равен л) и определены для действительного и комплексного аргументов. Примеры вычислений:


    Унарные арифметические операторы



    Унарные арифметические операторы

    Унарные операторы используются с одним операндом. Они могут быть префиксными, если оператор стоит перед операндом, и постфиксными, если он стоит после операнда. К унарным относятся семь операторов, приведенных в табл. 6.2.




    Компьютерная математика и пакет Maple

    Циклы for и while



    Циклы for и while

    Зачастую необходимо циклическое повторение выполнения выражения заданное число раз или до тех пор, пока выполняется определенное условие. Maple 7 имеет обобщенную конструкцию цикла, которая задается следующим образом:
    | for | |from | |to | |by | (while | do Statement sequence> od;
    Здесь name — имя управляющей переменной цикла, exprl, ехрr2 и ехрrЗ — выражения, задающие начальное значение, конечное значение и шаг изменения переменной name, ехрr4 — выражение, задающее условие, пока цикл (набор объектов между словами do и od) будет выполняться.
    В ходе выполнения цикла управляющая переменная меняется от значения exprl до значения ехрr2 с шагом, заданным ехрrЗ. Если блок by <ехрr2> отсутствует, то управляющая переменная будет меняться с шагом +1 при ехргКехрг2. Это наглядно поясняет следующий пример:
    > for i front 1 to 5 do printd) od;
    1
    2
    3
    4
    5
    В нем выводятся значения переменной i в ходе выполнения цикла. Нетрудно заметить, что она и впрямь меняется от значения 1 до значения 5 с шагом +1. Следующий пример показывает, что границы изменения управляющей переменной можно задать арифметическими выражениями:
    > for i from 7/(2+5) to 2+3 do printd) od:
    1
    2
    3
    4
    5
    А еще один пример показывает задание цикла, у которого переменная цикла меняется от значения 1 до 10 с шагом 2:
    > for i from 1 to 10 by 2 do printd) od: 1 3 5 7 9
    8 этом случае выводятся нечетные числа от 1 до 9. Шаг может быть и отрицательным:
    > for i from 9 to 1 by -2 do print(i) od:
    9
    7
    5
    3
    1
    Следует отметить, что если exprl>expr2 задать заведомо невыполнимое условие, например, ехрr1>ехрг2 и положительное значение шага, то цикл выполняться не будет. Цикл можно прервать с помощью дополнительного блока while <ехрr4>. Цикл с таким блоком выполняется до конца или до тех пор, пока условие ехрг4 истинно.
    > for i from 1 to 10 by 2 while i<6 do print(i) od:
    1
    3
    5
    Таким образом, конструкция цикла в Maple-языке программирования вобрала в себя основные конструкции циклов for и while. Есть еще одна, более специфическая конструкция цикла:
    |for | |in | |whi1e | do statement sequence> od:
    Здесь exprl задает список значений, которые будет принимать управляющая переменная name. Цикл будет выполняться, пока не будет исчерпан список и пока выполняется условие, заданное выражением ехрг2. Следующий пример иллюстрирует сказанное:
    > for i in [1.2,5,-1.7.12] do print(i) od;
    1
    2 5 -1 7
    12 > for i in [1,2.5.-1,7.12] while i>0 do print(i) od:
    1
    2 5
    В цикле этого вида управляющая переменная может меняться произвольно. Циклы могут быть вложенными. Это иллюстрирует следующий пример, создающий единичную матрицу на базе заданного массива М:


    Дополнительные возможности Mapleязыка



    Дополнительные возможности Maple-языка

    Переназначение определений
    В большинстве случаев Maple-язык использует достаточно длинные идентификаторы для своих определений, например функций. Однако с помощью функции al i as можно изменить любое определение на другое, если оно кажется пользователю более удобным. Функция alias записывается в виде:
    alias(e1. е2. .... еN)
    где e1, e2, ..., eN — ноль или более равенств.
    Эта функция возвращает список переназначений и осуществляет сами переназначения. Например, для замены имени функции BesselJ на более короткое имя BJ достаточно параметром функции alias записать BJ=BesselJ:
    > alias(BJ-BesseU):
    BJ,Fx
    > [BJ(0.1.),Besse1J(0,1.)]:
    [.7651976866, .7651976866]
    Можно также переназначить функцию пользователя:


    Функции пользователя



    Функции пользователя

    Упрощенные функции пользователя
    Хотя ядро Maple 7, библиотека и пакеты содержат свыше 3000 функций, всегда может оказаться, что именно нужной пользователю (и порою довольно простой) функции все же нет. Тогда возникает необходимость в создании собственной функции, именуемой функцией пользователя. Начнем описание с обычных функций пользователя, задающих некоторую зависимость от одной или ряда переменных в явном виде.
    Основным средством расширения Maple-языка являются модули — процедуры. Однако на первый взгляд они довольно сложны. Есть и более простые способы задания функций пользователя. Один из таких способов заключается просто в присваивании введенной функции (в виде выражения) некоторой переменной: Name:-выражение
    Этот прием фактически означает просто операцию присваивания. Следующие примеры иллюстрируют технику работы с такими функциями:


    Функция вывода сообщений об ошибках ERROR



    Функция вывода сообщений об ошибках ERROR

    При профессиональной подготовке процедур пользователь должен предусмотреть их поведение при возможных ошибках. Например, если он готовит процедуру или функцию, вычисляющую квадратный корень из действительных чисел, то надо учесть, что такой корень нельзя извлекать из отрицательных чисел (будем, исключительно в учебных целях, считать, что комплексные числа в данном примере недопустимы).
    Для контроля за типом данных обычно используются различные функции оценки и тестирования. При выявлении ими ошибки, как правило, предусматривается вывод соответствующего сообщения. Для этого используется функция ERROR:
    ERROR(expr_1. expr_2. ...)
    где ехрr_1, ... - ряд выражений (возможно, пустой). Наиболее часто ERROR выводит просто строковое сообщение об ошибке, например ERROR (`strings'). Полное сообщение об ошибке имеет вид:
    Error, (in name) string. ...
    Приведем пример процедуры, в которой предусмотрен вывод сообщения об ошибке при задании переменной х < 0:
    > f := ргос (х) if x<0 then error "invalid variable x: XI". x else x*(l/2) end if end proc; f:= proc (x) if x < 0 then error "invalid variable x: %1" x else sqrt(x) end if end proc
    > f(3.): 1.732050808
    > f(-3.);
    Error, (in f) invalid variable x: -3.
    > lasterror;
    "invalid variable x: %1" -3.
    > lastexception;
    f, "invalid variable x: %1", -3.
    Эта процедура вычисляет квадратный корень из числа х. При х < 0 выводится заданное сообщение об ошибке. Еще раз обращаем внимание читателя на учебный характер данного примера, .поскольку вычисление квадратного корня (в том числе из комплексных и отрицательных действительных чисел) реализовано встроенной функцией sqrt.


    Генерация кодов на языке Фортран



    Генерация кодов на языке Фортран

    Язык Фортран вот уже многие десятилетия используется для программирования вычислительных задач. Накоплены обширные библиотеки решения таких задач на Фортране. Почитателей этого языка Maple 7 порадует тем, что она позволяет готовить коды для программ на Фортране. Для этого вначале надо загрузить библиотечную функцию:
    > with(codegen.fortran);
    [fortran ]
    После этого может использоваться функция fortran:
    fortran(expr.filename=str.optimized)
    Два последних параметра не обязательны при выводе выражения ехрr в форме, присущей языку Фортран:
    > fortran(a*x*2+b*x+c);
    t0 = a*x**2+b*x+c
    > fortran(diff(x"n,x$2));
    t0 = x**n*n**2/x**2-x**n*n/x**2
    Параметр optimize позволяет генерировать оптимизированные коды:
    > fortran(a*x*2+b*x+c.optimized);
    t1 = x**2 t4 = a*tl+b*x+c
    При этом вычислительный процесс строится так, чтобы минимизировать число арифметических операций.


    Генерация кодов на языке С



    Генерация кодов на языке С

    Язык С (Си) также широко используется для решения вычислительных задач. Достаточно отметить, что сама система Maple 7 создана на языке С.
    Для генерации кодов на языке С вначале надо подключить соответствующую функцию:
    > with(codegen.C); [С]
    Затем можно использовать функцию С:
    С(ехрг.folename=str.optimi zed)
    Эта функция используется по аналогии с функцией fortran, что и показывают приведенные ниже примеры:
    > C(d1ff(x4>,x$2));
    t0 = pow(x,1.0*b)*b*b/(x*x)-pow(x,1.0*b)*b/(x*x);
    > C(diff(xAb,x$2),optimized);
    tl = pow(x,1.0*b);
    t2 = b*b;
    t4 = x*x;
    t5 = l/t4; '
    t9 = tl*t2*t5-tl*b*t5;
    Обширные возможности преобразования выражений в различные формы предоставляет функция convert. А функция interface позволяет управлять выводом. К сожалению, объем книги не позволяет рассмотреть все многочисленные варианты применения этих функций.


    Графическая визуализация результатов



    Графическая визуализация результатов выполнения функций пользователя

    В ряде случаев весьма желательна визуализация результатов выполнения функций пользователя. Порой она может давать неожиданный результат. На Рисунок 7.1 представлены примеры задания двух функций пользователя от двух переменных и построение их графиков с помощью функции plot3d.




    Импликативные функции



    Импликативные функции

    Другой важный класс функций, которые нередко приходится задавать, — импликативные функции, в которых связь между переменными задана неявно, в виде какого-либо выражения. Самый характерный пример такой функции — это выражение для задания окружности радиуса r: х^2 + у^2 = r^2.
    Итак, импликативные функции записываются как уравнения. Соответственно их можно решать с помощью функции solve. Следующие примеры иллюстрируют задание уравнения окружности в общем и в частном (численном) виде:


    Ключи в процедурах



    Ключи в процедурах

    В объявление процедуры можно включить ключевые слова, вводимые словом
    options opseq
    Иногда их называют расширяющими ключами. Предусмотрены следующие ключи:
  • arrow — определят процедуру -оператор в нотации ->;
  • bulltin — определяет функцию как встроенную;
  • call_external — задает обращение к внешним программным модулям;
  • copyright — защищает процедуру от копирования;
  • inline — определяет процедуру как подчиненную (возможно, не для всех процедур - см. справку);
  • load=memberName — загружает нужный для определений процедуры модуль (см. также опцию unload и детали в справке);
  • operator — объявляет процедуру — функциональный оператор;
  • system — определяет процедуру как системную,
  • remember — определяет таблицу памяти для процедуры;
  • trace — задает трассировку процедуры;
  • unl oacNnemberName — выгружает нужный для определения процедуры модуль (см. опцию load).

  • Ключ remember
    Ключ remember обеспечивает занесение результатов обращений к процедуре в таблицу памяти, которая используется при исполнении процедуры. Функция ор позволяет вывести таблицу:
    > f:=proc(x) options remember; х^3 end:
    > f(2):
    8
    > f(3):
    27
    > op(4,eval(f)): table([2 = 8, 3 = 27]) ,
    Ключ remember особенно полезен при реализации итерационных процедур. К примеру, в приведенной ниже процедуре (без использования ключа remember) время вычисления n-го числа Фибоначчи растет пропорционально квадрату n:
    > f:=proc(n) if n<2 then n else f(n-l)+f(n-2) fi end;
    f:=proc(w)if n <2 then и else f(n - l) + ft>-2)endif endproc
    > time(f(30)): 27.400
    > f(30): 832040
    Вычисление f(30) по этой процедуре на ПК с процессором Pentium II 350 МГц занимает около 30 с — см. контроль этого времени с помощью функции time (результат в секундах).
    Стоит добавить в процедуру ключ remember, и время вычислений резко уменьшится:
    > restart;
    > fe:-proc(n) options remember: if n<2 then n else fe(n-l)+fe(n-2) fi end:
    > fe(30);
    832040
    > time(fe(30));
    0.
    При этом вычисление fe(30) происходит практически мгновенно, так как все промежуточные результаты в первом случае вычисляются заново, а во втором они берутся из таблицы. Однако это справедливо лишь тогда, когда к процедуре было хотя бы однократное обращение. Обратите внимание на то, что данные процедуры являются рекурсивными — в их теле имеется обращение к самим себе.

    Ключ builtin
    Ключ builtin придает процедуре статус встроенной. Он должен использоваться всегда первым. С помощью функции eval(name) можно проверить, является ли функция с именем name встроенной:
    > eval(type);
    proc() option builtin; 268 end proc
    > eval(print);
    proc() option builtin; 229 end proc
    Числа в теле процедур указывают системные номера функций. Следует отметить, что в новой версии Maple 7 они существенно отличаются от принятых в предшествующих версиях.

    Ключ system
    Этот ключ придает процедуре статус системной. У таких процедур таблица памяти может быть удалена. У обычных процедур таблица памяти не удаляется и входит в так называемый "мусорный ящик" (garbage collector).

    Ключи operator и arrow
    Эта пара ключей задает процедуре статус оператора в "стрелочной" нотации (->). Это достаточно пояснить следующими примерами:


    Макросы



    Макросы

    Макрос — это макрокоманда, короткая запись длинных определений. По сравнению с переназначениями макросы более гибки и могут использоваться для сокращения операций загрузки новых определений из библиотеки и пакетов. Макросы создаются с помощью функции macro:
    macrc(e1, e2, .... en)
    где el, е2, ....,, en — ноль или более равенств.
    В следующем примере функция numbperm с помощью макроса заменена на пр:
    > numbperm([l,2,3,4]);
    24
    > macro(np=numbperm(V));

    > V:=[1.2.3.4]:
    F:=[l,2,3,4]
    > np(V);
    24
    Макросы могут быть использованы для конструирования выражений из их макроопределений.


    Модули



    Модули

    Модули придают языку программирования Maple 7 некоторые свойства языков объектно-ориентированного программирования. Они служат для реализации абстрактного типа данных на основе инкапсуляции — объединения данных и процедур их обработки. Модули задаются ключевым словом module с пустыми скобками () и завершаются словами end module или просто end:
    name := module()
    export eseq; local Iseq; global gseq:
    option optseq: description desc:
    Тело модуля
    end module (или просто end)
    Хотя структура модуля во многом напоминает структуру процедуры, включая объявление локальных и глобальных переменных, параметров и описаний, между ними есть существенная разница:
  • модуль не имеет списка входных параметров; О в модуле могут размещаться данные;
  • модули могут использоваться для создания пакетов процедур, доступ к которым обеспечивается командой with;
  • модули имеют свойства в виде локальных переменных и методы в виде процедур интерфейса модулей;
  • реализация абстрактных типов данных с помощью модулей скрыта от пользователя;
  • модули могут содержать оператор export eseq, объявляющий экспортируемые переменные модуля;
  • для доступа к экспортируемым переменным модуля может использоваться специальный оператор ":-" (двоеточие и минус);
  • модули и процедуры могут вкладываться друг в друга без ограничения уровня вложенности;
  • модули могут иметь специальные конструкторы объектов.
  • Следующий пример демонстрирует создание модуля pt, в котором заданы две операции (сложения plus и умножения times) и показан доступ к ним:
    > pt:= module()
    export plus, times;
    plus := (a.b) -> a + b;
    times := (a.b) -> a * b: end module:
    pt := module () export plus, times; end module
    > pt:-p1us(3,5);
    8
    > pt:=times(3,7);
    21
    Детальную информацию о модулях и о конструкторах объектов можно найти в справках по ним. Некоторые пакеты Maple 7 (в основном сравнительно новые) реализованы уже не в виде процедур, а в виде модулей (например, в виде модуля сделан пакет LinearAlgebra). В простейшем виде модули могут использоваться всеми пользователями системы Maple 7, но их серьезное применение (например, с целью создания полноценных пакетов Maple 7) требует серьезного знакомства с техникой объектно-ориентированного программирования. Такое знакомство выходит за рамки данной книги.


    Объявления переменных глобальными с помощью слова global



    Объявления переменных глобальными с помощью слова global

    Говорят, что запретный плод сладок! Что бы ни говорили о нежелательности - работы с глобальными переменными, бывает, что их применение желательно или даже необходимо. Чтобы сделать переменные внутри процедуры глобальными, достаточно объявить их с помощью ключевого слова global, после которого перечисляются идентификаторы переменных.
    Следующий пример поясняет применение оператора global в процедуре:
    > а:=1;b:=1:
    а := 1
    b := 1
    > fg:=proc(x,y)
    > global a,b;
    > a:-x^2:b:=y^2:
    > RETURN(sqrt(a+b));
    > end;
    fg := proc (x, y) global a, b; a := x^2; b := y^2; RETURN( sqrt( a + b)) end proc
    > fg(3.4):
    5 > [a.b]:
    [9,16]
    В примере переменным а и b вначале присвоены значения 1. Поскольку они в процедуре объявлены глобальными, то внутри процедуры они принимают новые значения х2 и у2. В результате при выходе из процедуры они имеют уже новые значения. Это и есть побочный эффект при исполнении данной процедуры. Если пользователь не знает (или не помнит), что та или иная процедура имеет побочный эффект, то он рискует получить самые неожиданные (и неверные) результаты своих вычислений.
    Примечание 1
    Примечание 1


    Следует отметить, что нельзя делать глобальными переменные, указанные в списке параметров процедуры, поскольку они уже фактически объявлены локальными. Такая попытка приведет к появлению сообщения об ошибке следующего вида "Error, argument and global'x' have the same name". При этом соответствующие переменные останутся локальными.


    Объявления переменных локальными с помощью оператора local



    Объявления переменных локальными с помощью оператора local

    Если в теле процедуры имеются операции присваивания для ранее определенных (глобальных) переменных, то изменение их значений в ходе выполнения процедуры создает так называемый побочный эффект. Он способен существенно изменить алгоритм решения сложных задач и, как правило, недопустим. Поэтому Maple-язык программирования имеет встроенные средства для исключения побочных эффектов. Встречая такие операции присваивания, Maple-язык корректирует текст процедуры и вставляет в нее объявление переменных локальными с помощью ключевого слова local и выдает предупреждающую надпись о подобном применении:
    > restart:m:=0;
    m := 0
    > modc:=proc(z)
    > m:=evalf(sqrt(Re(zr2+Im(zr2)):RETURN(m)
    > end:
    Warning, 'm' is implicitly declared local to procedure 'mode'
    mode := proc (z) local т; т := evalf(sqrt(9*(z)A2 + 3(z)A2)); RETURN(m) end proc
    > modc(3.+I*4.): 5.000000000
    > m;
    0
    Обратите внимание на то, что в тело процедуры было автоматически вставлено определение local m, задающее локальный статус переменной т. Оператором print можно вывести текст процедуры:
    > print(modc);
    proc(z) local m; m := evalf(sqrt(R(z)^2 + J(z)^2)); RETURN(m) endproc


    Общая форма задания процедуры



    Общая форма задания процедуры

    Выше мы рассмотрели основные частные формы задания процедур. Все они могут быть объединены в общую форму задания процедуры:
    name:-proc() # объявление процедуры
    local; # объявление локальных переменных
    g1oba1; # объявление глобальных переменных
    options; # объявление расширяющих ключей
    description; # объявление комментарий
    # выражения - тело процедуры
    end; (или end:) # объявление конца процедуры
    Эта форма охватывает все описанные выше частные формы и позволяет готовить самые сложные и надежно работающие процедуры.


    Операции ввода и вывода



    Операции ввода и вывода

    Считывание и запись программных модулей
    В уроке 2 рассматривалась работа с файлами документов. Вводимые в текущий документ программные модули хранятся вместе с ним, так что при отказе от загрузки какого-либо документа все его программные блоки не могут использоваться в других документах. Кроме того, порой неудобно загружать объемный документ ради использования одного или нескольких модулей, например процедур. Поэтому в Maple 7 введены средства, позволяющие записывать нужные модули (в том числе результаты вычислений) на диск и считывать их в случае необходимости.
    Для записи на диск используется оператор save:

  • save filename — запись всех определений текущего файла под именем filename;
  • save name_l, name_2, .... name_k, filename — запись избранных модулей с именами name_l, name_2, ..., name_k под именем filename.
  • Считывание имеющегося на диске файла filename осуществляется оператором read:
    read
    При считывании все имеющиеся в файле определения становятся доступными для рабочих документов Maple. При записи файлов отдельных определений используется специальный внутренний Maple-формат файлов. Для загрузки файлов типа *.m из стандартной библиотеки используется функция readlib. А для записи файлов в качестве библиотечных достаточно в имени filename оператора save указать расширение .т. Разумеется, можно считывать такие файлы и оператором read, указав в имени файла расширение .m:
    > save my_proc,4myJib.nT: # запись файла пу_ргос и
    > # библиотечного файла my_lib.m:
    > load 'myjlib.m': # считывание библиотечного файла
    > # myjib.m.


    Оператор возврата значения RETURN



    Оператор возврата значения RETURN

    Как отмечалось, процедуры, которые возвращают значение результата в ответ на обращение к ним, во многом тождественны функциям. Будем называть их процедурами-функциями. Обычно процедура возвращает значение последнего выражения в ее теле или выражения, намеченного к возврату специальным оператором RETURN:


    Операторы пропуска и прерывания



    Операторы пропуска и прерывания

    Иногда бывает нужным пропустить определенное значение переменной цикла. Для этого используется оператор next (следующий). Приведенный ниже пример иллюстрирует применение оператора next в составе выражения if-fi для исключения вывода значения i = -2:
    > for 1 in [1,2.3.-2.4] do if i--2 then next else print(i) fi od:
    1
    2 .3
    4
    Другой оператор — break — прерывает выполнение фрагмента программы (или цикла). Его действие поясняет слегка модифицированный предшествующий пример:
    > for i in [1.2.3.-2,4] do if i=2 then break else print(i) fi od:
    1
    2
    3
    В данном случае при значении i = -2 произошло полное прекращение выполнения цикла. Поэтому следующее значение 4 переменной z присвоено не было и это значение на печать не попало.
    Любой из операторов quit, done или stop обеспечивает также прерывание выполнения текущей программы (в частности, цикла), но при этом окно текущего документа закрывается.


    Основной способ задания функции пользователя



    Основной способ задания функции пользователя

    Более гибкий способ задания полноценных функций пользователя базируется на применении функционального оператора. При этом используется следующая конструкция:
    name:=(x,y,...)->expr
    После этого вызов функции осуществляется в виде name(x.y,...), где (х.у,...) — список формальных параметров функции пользователя с именем name. Переменные, указанные в списке формальных параметров, являются локальными. При подстановке на их место фактических параметров они сохраняют их значения только в теле функции (ехрr). За пределами этой функции переменные с этими . именами оказываются либо неопределенными, либо сохраняют ранее присвоенные им значения. Следующие примеры иллюстрируют сказанное:


    Процедуры и процедурыфункции



    Процедуры и процедуры-функции

    Простейшие процедуры
    Процедурой называют модуль программы, имеющий самостоятельное значение и выполняющий одну или несколько операций, обычно достаточно сложных и отличных от операций, выполняемых встроенными операторами и функциями.
    Процедуры являются важнейшим элементом структурного программирования и служат средством расширения возможностей системы Maple 7 пользователем. Каждая процедура имеет свое уникальное имя и список параметров (он может быть пустым). Процедуры вызываются так же, как встроенные функции, — указанием их имени со списком фактических параметров. При этом просто процедуры обычно не возвращают каких-либо значений после своего исполнения, хотя могут присваивать значения входящим в них переменным. Процедуры-функции в ответ на обращение к ним возвращают некоторое значение. Они как бы являются новыми функциями, задаваемыми пользователем. Описанные ранее функции пользователя фактически являются процедурами-функциями с несколько упрощенной структурой. Простейшая форма задания процедуры следующая:
    name :=ргос(Параметры)
    Тело процедуры
    end;
    Параметры процедуры задаются перечислением имен переменных, например ргос(х) или proc(x.y.z). С помощью знака :: после имени переменной можно определить ее тип, например в объявлении prog(n::Integer) объявляется, что переменная п является целочисленной. При вызове процедуры выражением вида:
    name(Фактические_параметры)
    фактические параметры подставляются на место формальных. Несоответствие фактических параметров типу заданных переменных ведет к сообщению об ошибке и к отказу от выполнения процедуры.
    В качестве примера ниже приведена процедура вычисления модуля комплексного числа г — в данном случае это единственный параметр процедуры:


    Работа с отладчиком программ



    Работа с отладчиком программ

    В большинстве случаев составители программ (процедур) редко прибегают к пошаговой их отладке. Средства общей диагностики Maple 7 развиты настолько хорошо, что позволяют выявлять грубые ошибки в процедурах при их выполнении. Иногда, правда, для этого приходится неоднократно "прогонять" процедуру, пока она не начнет работать как задумано. Тем не менее для отладки процедур служит специальный интерактивный отладчик (debugger). Опишем, как его запустить и как с ним работать.
    Допустим, мы составили некоторую процедуру demo, вычисляющую сумму квадратов чисел (1^2+2^2+...+n^2):
    > demo:=proc(n::integer) local y,i:
    > y:=0:
    > for i to n do y:=y+i^2 od
    > end;
    demo := proc (n::integer) local y, i; у := 0;
    for i to n do у := у + i^2 end do end proc
    > demo(3):
    14
    Чтобы включить отладчик в работу, надо исполнить команду stopat:
    > stopat(demo);
    [demo]
    > demo(3);
    demo:
    1* y:=0;
    DBG>
    Признаком, указывающим на работу отладчика, является изменение приглашения к вводу со знака > на DBG> (как нетрудно догадаться, DB6 означает debugger). Теперь, подавая команды next (следующий), step (шаг) и stop (остановка), можно проследить выполнение процедуры:
    DBG> next
    0
    demo:
    2 for i to n do
    end do
    DB6> step
    0
    demo:
    3 y:=y+i^2
    DBG> Step
    1
    demo:
    3 y:=y+i^2
    DB6> step
    5
    demo:
    3 y:=y+iA2
    DBG> step
    14
    В последнем случае процедура по шагам дошла до конца вычислений; на этом работа отладчика завершается сама собой.
    Можно также вывести листинг процедуры с помощью команды showstat:
    > showstat(demo):
    demo :=proc(n::integer)
    local у, i;
    1* y:=0;
    2 for i to n do
    3 y:=y+i^2
    end do end proc
    Обратите внимание, что в этом листинге строки вычисляемых элементов пронумерованы. Это сделано для облегчения разбора работы процедуры.
    В общем случае отладчик выключается при выполнении команд stopat, stopwhen или stoperr. Если используется команда stopat, то вывод на экран соответствует исполнению последней выполненной команды. Для отмены этой команды используется команда unstopat.
    Команда stopwhen позволяет установить точку наблюдения за указанной в команде переменной. Отменить ее можно командой unstopwhen. Команда stoperror позволяет задать остановку при появлении определенной ошибки. Для отмены этой команды используется команда unstoperror.
    Команда cont используется для продолжения работы до следующей точки прерывания, установленной указанными выше командами, или до конца процедуры. Для прерывания отладки можно использовать команду quit. После команды stop можно вычислить любое Maple-выражение.
    В действительности команд отладчика намного больше и их функции более развиты, чем это описано выше. Пользователи, заинтересованные в серьезной работе с отладчиком (скорее всего, их немного), могут просмотреть его подробное описание. Для этого в разделе справочной системы Context найдите раздел Programming, а в нем — раздел Debugging.


    Заданный таким образом объект все



    Шаг 1

    Заданный таким образом объект все Заданный таким образом объект все же не является полноценной функцией пользователя, и прежде всего потому, что в нем используются только глобальные переменные (х и у) и нет объявленного списка параметров, от которых зависит значение функции. При этом значения переменных функции приходится заведомо задавать отдельно, используя операции присваивания. Подобные конструкции нельзя ввести в библиотеки Maple 7.

    Ключ trace задает вывод отладочной



    Шаг 1

    Ключ trace задает вывод отладочной

    Ключ trace
    Ключ trace задает вывод отладочной информации:
    > о:=ргос(х,у) option trace, arrow; x-sqrt(y) end:
    о := proc (x, y) option trace, arrow, x - sqrt(y) end proc
    > o(4,2.);
    {--> enter o, args = 4,2.
    2.585786438
    <-- exit о (now at top level) = 2.585786438}
    2.585786438

    Ключ copyright
    Этот ключ защищает тело процедуры от просмотра. Это поясняют следующие два примера:
    > o:=proc(x,y) x-sqrt(y) end:
    о := proc (x, у) х- sqii(y) end proc
    > oo:=proc(x.y) option Copyright; x-sqrt(y) end;
    oo := proc(x,y) ... endproc
    > oo(4.2);
    2.585786438
    Нетрудно заметить, что во втором примере тело процедуры уже не просматривается. Для отмены защиты от просмотра можно использовать оператор interfасе(verboseproc=2).

    Действие функции трассировки отменяется командой



    Шаг 1

    Действие функции трассировки отменяется командой Действие функции трассировки отменяется командой untrace:

    Можно построить графики введенных



    Шаг 1

    Можно построить графики введенных Можно построить графики введенных процедур-функций. Они представлены на Рисунок 7,4.

    Нетрудно заметить, что при вычислении



    Шаг 1

    Нетрудно заметить, что при вычислении Нетрудно заметить, что при вычислении функции m(х.у) переменные х и у имели значения 3 и 4, однако за пределами функции они сохраняют нулевые значения, заданные им перед введением определения функции пользователя. Еще один способ задания функции пользователя базируется на применении функции unapply: name:=unapply(expr.varl.var2,...) Ниже даны примеры такого задания функции пользователя:

    имеет также типичные файловые



    Шаг 1

    имеет также типичные файловые Maple 7 имеет также типичные файловые операции:
  • writeto — запись в файл;
  • appendto — добавление к файлу;
  • open — открытие файла;
  • close — закрытие файла;
  • write — запись в открытый файл;
  • save — запись выражений в файл;
  • read — считывание из файла.
  • Их реализация, однако, зависит от платформы, на которой установлена система, и от ее настройки.

    Для отмены переназначения, например BJ,



    Шаг 1

    Для отмены переназначения, например BJ, Для отмены переназначения, например BJ, используется та же функция alias с повтором переназначения:
    > a1ias(B>BJ): Fx
    > BJ(0,1.); BJ(0,1.)
    Обратите внимание на то, что BJ исчезло из списка переназначений и функция BJ(0,1.) уже не вычисляется, поскольку ее больше нет.

    Шаг 1



    Шаг 1

    Шаг 1 а

    Шаг 1



    Шаг 1

    Шаг 1

    а

    Для графической визуализации импликативных функций



    Шаг 1

    Для графической визуализации импликативных функций Для графической визуализации импликативных функций служит функция implicitplot пакета plots. На Рисунок 7.2 представлено задание двух импликативных функций и построение их графиков.

    Шаг 1



    Шаг 1

    Шаг 1

    а



    Этот пример имеет не более



    Шаг 1

    Этот пример имеет не более Этот пример имеет не более чем познавательное значение, поскольку для создания такой матрицы Maple 7 имеет функцию identity, с помощью которой функция array позволяет сразу создать единичную матрицу:

    После ввода заголовка процедуры под



    Шаг 1

    После ввода заголовка процедуры под Примечание 1
    Примечание 1


    После ввода заголовка процедуры под строкой ввода появляется сообщение: "Warning, premature end of input". Оно указывает на то, что ввод листинга процедуры не закончен и должен быть продолжен до тех пор, пока не будет введено завершающее слово end листинга процедуры. Если после этого слова поставить символ точки с запятой, то листинг процедуры будет выведен на экран дисплея.
    Теперь для вычисления модуля достаточно задать обращение к процедуре modc(z), указав вместо z конкретное комплексное число:
    > modc(3.+I*4.); 5.000000000
    Нетрудно заметить, что при знаке : после завершающего слова end текст процедуры повторяется в строке вывода (в общем случае в несколько ином виде). Если это повторение не нужно, после слова end надо поставить знак двоеточия. Обратите также внимание на то, что для обозначения действительной и мнимой частей процедуры в ее тексте появились готические буквы.

    Параметром оператора RETURN может быть



    Шаг 1

    Параметром оператора RETURN может быть Параметром оператора RETURN может быть любое выражение. В Maple не принято выделять процедуры-функции в какой-то отдельный класс. Действует правило — если не использован оператор RETURN, процедура возвращает значение последнего выражения в ее теле. Для устранения выдачи значений выражений внутри процедуры-функции после них просто надо установить знак двоеточия.

    При отладке алгоритмов выполнения вычислений



    Шаг 2

    При отладке алгоритмов выполнения вычислений При отладке алгоритмов выполнения вычислений надо тщательно следить за сообщениями об ошибках. Для этого в Maple предусмотрены функция traceerr и системная переменная lasterr, в которой сохраняется последнее сообщение об ошибке. При каждом обращении к tracerr переменная lasterr очищается:
    > 2/0;
    Error, numeric exeption:division by zero
    > 2/4;
    1/2
    > 2/.3;
    6.666666667
    > lasterror:
    "division by zero"
    > traperror(3/4);
    3/4
    > lasterror;
    lasterror
    > traperror(5/0);
    Error, numeric exeption:division by zero
    > lasterror:
    "numeric exeption:division by zero"
    Этот пример показывает, как может быть проведено отслеживание ошибок в ходе вычислений. Вообще говоря, пользователь системы Maple 7 редко привлекает описанные средства, поскольку проще отладить вычислительный алгоритм прежде, чем на его основе будет составлена процедура. При правильном построении процедур ошибочные ситуации заведомо предусматриваются и должным образом обрабатываются.

    С помощью функции with можно



    Шаг 2

    С помощью функции with можно

    Рисунок 7.4. Построение графиков процедур-функций f1, f2 и f3
    С помощью функции with можно убедиться, что библиотека mylib действительно содержит только что введенные в нее процедуры. Их список должен появиться при обращении with (mylib):
    > with(mylib);
    [f1,f2,f3]
    Теперь надо записать эту библиотеку под своим именем на диск с помощью команды save:
    > save(mylib,`c:/ mylib.m);
    Обратите особое внимание на правильное задание полного имени файла. Обычно применяемый для указания пути знак \ в строках Maple-языка используется как знак продолжения строки. Поэтому надо использовать либо двойной знак \\, либо знак /. В нашем примере файл записан в корень диска С. Лучше поместить библиотечный файл в другую папку (например, в библиотеку, уже имеющуюся в составе системы), указан полный путь до нее.
    После всего этого надо убедиться в том, что библиотечный файл записан. После этого можно сразу и считать его. Для этого вначале следует командой restart устранить ранее введенные определения процедур:
    > restart;
    С помощью команды with можно убедиться в том, что этих определений уже нет:
    > with(mylib):
    Error, (in pacman:-pexports) mylib is not a package
    После этого командой read надо загрузить библиотечный файл:
    > read('c:/mylib.m');
    Имя файла надо указывать по правилам, указанным для команды save. Если все выполнено пунктуально, то команда with должна показать наличие в вашей библиотеке списка процедур fl, f2 и f3:
    > with(mylib):
    [f1. f2. f3]
    И наконец, можно вновь опробовать работу процедур, которые теперь введены из загруженной библиотеки:
    > fl(x):
    sin(x) + cos(x) > simplify(f2(y});
    1 > f3(0):
    1 > f3(1.);
    .8414709848
    Описанный выше способ создания своей библиотеки вполне устроит большинство пользователей. Однако есть более сложный и более "продвинутый" способ ввода своей библиотеки в состав уже имеющейся. Для реализации этого Maple 7 имеет следующие операции записи в библиотеку процедур si, s2, ... и считывания их из файлов filel, file2, ...:
    savelib(s1. s2, .... sn, filename)
    readlib(f. file1. file2. ...)
    С помощью специального оператора makehelp можно задать стандартное справочное описание новых процедур:
    makehelp(n.f.b).
    где n — название темы, f — имя текстового файла, содержащего текст справки (файл готовится как документ Maple) и b — имя библиотеки. Системная переменная libname хранит имя директории библиотечных файлов. Для регистрации созданной справки надо исполнить команду вида:
    libname:-libname. '/mylib":
    С деталями применения этих операторов можно ознакомиться в справочной системе.
    К созданию своих библиотечных процедур надо относиться достаточно осторожно. Их применение лишает ваши Maple-программы совместимости со стандартной версией Maple 7. Если вы используете одну-две процедуры, проще поместить их в те документы, в которых они действительно нужны. Иначе вы будете вынуждены к каждой своей программе прикладывать еще и библиотеку процедур. Она нередко оказывается большей по размеру, чем файл самого документа. Не всегда практично прицеплять маленький файл документа к большой библиотеке, большинство процедур которой, скорее всего, для данного документа попросту не нужны. Особенно рискованно изменять стандартную библиотеку Maple 7.
    Впрочем, идти на это или нет — дело каждого пользователя. Разумеется, если вы готовы создать серьезную библиотеку своих процедур, то ее надо записать и тщательно хранить. С Maple 7 поставляется множество библиотек полезных процедур, составленных пользователями со всего мира, так что и вы можете пополнить ее своими творениями (см. урок 14).

    Последний пример показывает возможность проведения



    Шаг 2

    Последний пример показывает возможность проведения Последний пример показывает возможность проведения символьных операций с функцией пользователя.

    Результат выполнения команды форматирования гибкого



    Шаг 2

    Результат выполнения команды форматирования гибкого б

    Рисунок 7.5. Результат выполнения команды форматирования гибкого диска

    Примеры задания функций пользователя двух



    Шаг 2

    Примеры задания функций пользователя двух б

    Рисунок 7.1. Примеры задания функций пользователя двух переменных с построением их графиков
    ВНИМАНИЕ
    При задании функций пользователя рекомендуется просмотреть их графики в нужном — диапазоне изменения аргументов. К сожалению, наглядными являются только графики функций одной и двух переменных.

    В данном случае задано построение



    Шаг 2

    В данном случае задано построение

    Рисунок 7.2. Задание двух импликативных функций и построение их графиков
    В данном случае задано построение двух эллипсов. Верхний — это окружность, сплюснутая по вертикали, а второй — наклонный эллипс.

    Шаг 2



    Шаг 2

    Шаг 2

    б

    В заключение отметим, что возможна



    Шаг 2

    В заключение отметим, что возможна В заключение отметим, что возможна упрощенная частная конструкция цикла типа while:
    while expr do statseq od:
    Здесь выражения statseq выполняются, пока выполняется логическое условие ехрr. Пример такого цикла:
    > n:=1:
    n:=1 .
    > while n<16 do n:"2*n od;
    n:=2
    n := 4
    n := 8
    n :=16
    В этом примере идет удвоение числа n с начальным значением n = 1 до тех пор, пока значение n меньше 16.

    с функцией if для моделирования



    Шаг 3

    с функцией if для моделирования в

    Рисунок 7.3. Применение конструкции с функцией if для моделирования сигналов
    К сожалению, функции на базе конструкции if не всегда корректно обрабатываются функциями символьной математики. Поэтому надо тщательно контролировать полученные в этом случае результаты.

    Создание своей библиотеки процедур



    Создание своей библиотеки процедур

    Если приведенные выше примеры составления процедур кажутся вам простыми, значит, вы неплохо знаете программирование и, скорее всего, уже имеете несколько полезных процедур, которые вы хотели бы сохранить — если не для потомков, то хотя бы для своей повседневной, работы. Сделать это в Maple 7 довольно просто.
    Прежде всего надо определить имя своей библиотеки, например mylib, и создать для нее на диске каталог (папку) с заданным именем. Процедуры в Maple 7 ассоциируются с таблицами. Поэтому вначале надо задать таблицу-пустышку под будущие процедуры:
    > restart;
    > mylib:=tab1e():
    mylib := table([])
    Теперь надо ввести свои библиотечные процедуры. Они задаются с двойным именем — вначале указывается имя библиотеки, а затем в квадратных скобках имя процедуры. Для примера зададим три простые процедуры с именами fl, f2 и f3:
    > mylib[fl]:=proc(x: Anything) sin(x)+cos(x) end:
    > mylib[f2]:=proc(x:anything) sin(x)^2+cos(x)^2 end:
    > mylib[f3]:=proc(x::anything) if x=0 then 1 else sin(x)/x fi end:
    Рекомендуется тщательно проверить работу процедур, прежде чем записывать их на диск. Ограничимся, скажем, такими контрольными примерами:


    Средства контроля и отладки процедур



    Средства контроля и отладки процедур

    Большая часть функций и операторов системы Maple 7 реализована в виде процедур, написанных на Maple-языке программирования. Благодаря возможности их просмотра пользователь получает неисчерпаемый источник примеров программирования на этом языке. Кроме того, пользователь может создавать свои собственные процедуры.
    Для контроля и отладки процедур прежде всего надо уметь вывести их текст. Для этого служит функция:
    print(name);
    где name — имя процедуры.
    Однако перед тем, как использовать эту функцию, надо исполнить команду:
    > interfасе(verboseproc=2,prettyprint-l.version);
    Maple Worksheet Interface, Maple 7, IBM INTEL NT, May 28 2001 Build ID 96223
    Ее смысл будет пояснен ниже. Пока же отметим, что эта команда обеспечивает полный вывод текста процедур библиотеки. Встроенные в ядро процедуры, написанные не на Maple-языке, в полном тексте не представляются. Поясним это следующими примерами:
    > print(evalf);
    proc() option builtin, remember; 167 end proc
    > print(erf);
    proc(x::algebraic)
    local Re_x, Im_x, sr, si, xr, xi;
    option ' Copyright (c) 1994 by the University of Waterloo. All rights reserved`.;
    if nargs <> 1 then error "expecting 1 argument, got %1", nargs
    elif type(x, 'complex(float)') then evalf('erf (x)) elif x = 0 then 0 elif type(x, 'infinity') then
    if type(x, {'cxjnfinity', 'undefined'}) thenundefined + undefined*!
    elif type(Re(x), 'infinity') then CopySign(l, Re(x))
    elif type(x, 'imaginary') then x
    else infinity + infinity*I
    end if
    elif type(x, 'undefined') then x*undefined elif type(x, 'complex(numeric)')
    then
    if csgn(x) = -1 then -erf(-x) else 'erf'(x)
    end if elif type(x, '*')
    and type(op(l, x), 'complex(numeric)')
    and csgn(op(l, x)) = -1 then -erf(-x) elif type(x, ' +')
    and traperror(sign(x)) = -1 then -erfC-x)
    else erf(x) := 'erf'(x) end if end proc
    Здесь вначале выполнен вывод сокращенного листинга встроенной в ядро процедуры evalf, а затем выведен полный листинг процедуры вычисления функции ошибок erf. Эта функция имеет довольно короткую процедуру — многие важные функции и операторы задаются гораздо более сложными и большими процедурами.
    Но вернемся к функции interface. Эта функция служит для управления выводом и задается в виде: interface( arg1. arg2, ... ) где аргументы задаются в виде равенств вида name=va1ue и слов-указателей:
    ansi
    autoassign
    echo
    error-break
    errorcursor
    imaginaryunit
    indentamount
    labelling
    label width
    latexwidth
    "longdelim
    patchl evel
    plotdevice
    plqtoptions
    plotoutput
    postplot
    preplot
    prettyprint
    prompt
    quiet
    rtablesize
    screenheight
    screenwidth
    showassuraed
    verboseproc
    version
    warnl evel
    К сожалению, объем и характер данной книги не позволяют остановиться на всех вариантах использования этой очень мощной функции, тем более что в ней может использоваться множество аргументов. Мы рассмотрим только некоторые, наиболее важные возможности.
    Указание verboseproc=n задает степень детальности вывода листинга процедур. При n=0 текст не выводится, при n=1 выводится текст только заданных пользователем процедур, а при n=2 — всех процедур на Maple-языке. Пример этого был дан выше. Указание prettyprint=0 или 1 управляет выводом стандартных сообщений. Указание plotdevice=string управляет выводом графики, например plotdevice=gif указывает на то, что запись графиков в виде файлов будет происходить в формате .gif.
    Одним из основных средств отладки процедур является функция трассировки trace(name). Детальность ее работы задается системной переменной printlevel (уровень вывода). При printlevel :=n (значение n = 1 по умолчанию) выводится результат только непосредственно исполняемой функции или оператора. Для вывода информации о выполнении k-ro уровня вложенности надо использовать значение этой переменной от 5*k до 5*(k+i). Так, при п от 1 до 5 выводятся результаты трассировки первого уровня, при и от 6 до 10 — второго и т. д. Максимальное значение п = 100 обеспечивает трассировку по всем уровням вложенности процедуры name. Следующий пример показывает осуществление трассировки для функции int(x^n,x):


    Статус переменных в процедурах и циклах



    Статус переменных в процедурах и циклах

    Переменные, которые указываются в списке параметров (например, г, в нашем случае), внутри процедуры являются локальными. Это означает, что изменение их значений происходит лишь в теле процедуры, то есть локально. За пределами тела процедуры эти переменные имеют то значение, которое у них было до использования процедуры. Это хорошо поясняет следующий пример:
    > restart:z:=l;
    z :=
    > modc:=proc(z)
    > evalf(sqrt(Re(z)"2+Im(z)"2));
    > end;
    mode := proc(z) evalf(sqrt( modc(3.+I*4.):
    5.000000000
    > z;
    1
    Нетрудно заметить, что внутри процедуры 2 = 3 + I*4, тогда как вне ее значение z= 1, Таким образом, имена переменных в списке параметров процедуры могут совпадать с именами глобальных переменных, используемых за пределами процедуры.
    Переменные, которым впервые присваивается значение в процедуре, также относятся к локальным. Кроме того, переменные, применяемые для организации циклов, являются локальными. Все остальные переменные — глобальные.


    Условные выражения



    Условные выражения

    Для подготовки разветвляющихся программ в Maple-язык программирования включен оператор if, позволяющий создавать следующую конструкцию:
    if <Условие сравнения? then <Элементы>
    |elif "Условие сравнения> then <Элементы>|
    |e1se <Элементы>|
    fi:
    В вертикальных чертах | | указаны необязательные элементы данной конструкции. Следующих два вида условных выражений чаще всего используются на практике:
  • if <Условие> then <Элементы 1> fi — если Условие выполняется, то исполняются Элементы 1, иначе ничего не выполняется;
  • if <Условие> then <Элененты 1> else <Элененты 2> fi — если Условие выполняется, то исполняются Элементы 1, иначе исполняются Элементы 2.
  • В задании условий используются любые логические конструкции со знаками сравнения (<, <=, >, >=, =, <>) и логические операторы and, or и not, конструкции с которыми возвращают логические значения true и false. Рассмотрим следующий простой пример:
    > х:-5:
    > if x<0 then print('Negative') fi;
    Negative
    > x:-l: > if x<0 then print('Negative') fi;
    В этом примере анализируется значение х. Если оно отрицательно, то с помощью функции вывода print на экран выводится сообщение "Negative". А вот если х неотрицательно, то не выводится никакого сообщения. В другом примере если х неотрицательно, то выводится сообщение "Positive":
    > х.— 5:
    > if x<0 then print('Negative') else print('Positive') fi;
    Negative > x:-l:
    > if x<0 then printСNegative") else printC'Positive') fi;
    Positive
    Приведем еще один пример, показывающий особую форму задания конструкции if-then-else-fi:
    > х:=-5:
    > 'if (x<0, printCNegative').print('Positive'));
    Negative
    > х:=1:
    > *1f (х<0. print("Negative'),printrPositive'));
    Positive
    В этой конструкции вида 'if '(Условие. Выражение1, Выражение2)
    если Условие выполнятся, то будет исполнено Выражение!, в противном случае будет исполнено Выражение2. Ввиду компактности записи такая форма условного выражения нередко бывает предпочтительна, хотя она и менее наглядна. На Рисунок 7.3 представлено применение данной конструкции для моделирования трех типов сигналов.




    Внешние вызовы



    Внешние вызовы

    Maple 7 имеет команду system(string), с помощью которой можно исполнить любую команду MS-DOS, записанную в виде строки string. Например, для форматирования гибкого диска из среды Maple 7 можно использовать стандартную команду MS-DOS:
    > system(`format a:`);
    На экране появится окно MS-DOS с начальным диалогом форматирования диска А. Это окно показано на Рисунок 7.5.
    При работе в операционной системе Windows эта возможность практически бесполезна, поскольку форматирование диска с большими удобствами можно выполнить средствами Windows.
    Внешние вызовы командой system куда более полезны для MS-DOS-реализаций Maple, которые кое-где используются и по сей день. Но поскольку данная книга посвящена самым современным Windows-реализациям системы Maple 7, более подробное рассмотрение операций внешних вызовов не имеет особого смысла.


    Вывод в специальных форматах



    Вывод в специальных форматах

    Вывод в формате LaTeX
    Maple 7 имеет ряд средств для общения с другими программами. Часть из них, в основном относящаяся к обмену через файлы, уже была описана. Однако Maple 7 способна генерировать коды для прямого их включения в такие программы, причем не только математические.
    Для подготовки математических статей и книг широкое распространение получили редакторы ТеХ и LaTeX. Для подготовки выражений или файлов в их формате служит функция:
    latex(expr.filename)
    Параметр filename не обязателен, если достаточно получить нужное выражение в ячейке вывода Maple 7:
    > latex(a*x^2+b*x+c):
    а{х}^{2}+bх+с
    > latex(diff(xAn.x$2));
    {\frac {{х}^{n}{n}^{2}}{{х}^{2}}{\frас {{х}^{n}n}{{х}^{2}}}


    Вызов внешних процедур написанных на языке С



    Вызов внешних процедур, написанных на языке С

    Maple 7 имеет средства для вызова внешних откомпилированных процедур, написанных на языке С. Такая необходимость для подавляющего числа пользователей Maple 7 вызывает большие сомнения в силу следующих причин:
  • вся идеология системы Maple 7 основана на максимальном исключении программирования на других языках, помимо Maple-языка;
  • язык С сложен для большинства пользователей Maple 7, которых трудно отнести к "путным" программистам;
  • отладка комплекса Maple 7 + компилятор С (например, фирмы Microsoft) вряд ли под силу обычным пользователям, тем более что на практике такой комплекс реально не работает без кропотливой отладки.
  • Учитывая сказанное, мы отметим лишь, что для использования внешних процедур (например, остро нужных пользователю или более быстрых, чем аналогичные процедуры Maple) используется специальная команды define_external, которая генерирует две интерфейсные программы — на языке С и на языке Maple соответственно. Программа на языке С компилируется вместе с внешней процедурой, которая будет использоваться. Результирующий код создает динамически подключаемую бублиотеку DLL. В свою очередь, программа на языке Maple служит как интерфейсная для организации взаимодействия с вызываемой внешней процедурой. Более подробное описание возможностей работы с внешними процедурами можно найти в справке по ним.


    Запись и считывание данных



    Запись и считывание данных

    Обширные возможности Maple 7 делают привлекательным применение этой программы для автоматической обработки данных, поступающих от каких-либо экспериментальных установок. Для этого установки снабжаются интерфейсными платами (например, аналого-цифровыми преобразователями) и необходимым программным обеспечением. Возможна и передача данных, полученных с помощью Maple 7, в экспериментальные установки.
    Обмен информацией между Maple 7 и внешней средой (к ней, кстати, относятся и другие программы) чаще всего осуществляется через файлы текстового формата, поскольку именно с такими файлами могут работать практически все программы. Для записи данных в файл служит оператор writedata:
    writedata[APPEND](fileID. data)
    writedata[APPEND](fileID, data, format)
    writedata[APPEND](filelD, data, format, default)
    Здесь filelD — имя или дескриптор файла данных, data — список, вектор или матрица данных, format — спецификация формата данных (integer, float или string), default — процедура, задающая запись нечисловых данных, например:
    writedata(F.A.float.proc(f.x) fprintf(f/CMPLX(%g,%g)',Re(x).Im(x)) end):
    Необязательный указатель APPEND используется, если данные должны дописываться в уже созданный файл. Считывание из файла filename обеспечивает функция readdata:
    readdata(filelID. n)
    readdata(fileID, format, n)
    readdata(fileID. format)
    Здесь n — целое положительное число, задающее число считываемых столбцов. Ниже представлены примеры этих операций:


    

        Биржевой анализ: Технический анализ - Инструменты - Софт