Опубликован: 03.12.2012 | Доступ: свободный | Студентов: 1143 / 280 | Длительность: 16:43:00
Лекция 2:

Первое знакомство с Mathematica

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: В настоящей лекции мы впервые познакомимся с пакетом Mathematica, её возможностями при выполнении вычислений, узнаем некоторые встроенные функции. Мы научимся осуществлять элементарные математические операции, "задавать вопросы" Mathematica (вводить данные) и "получать ответы" (получать результат вычислений), а также пользоваться встроенной документацией, расширяющей возможности пользователя при работе пакетом.

Цель лекции: познакомиться с основными возможностями пакета и базовыми принципами работы в системе компьютерной алгебры Mathematica.

1.0. Введение: Основные возможности системы компьютерной алгебры Mathematica

Пакет Mathematica совершенствуется и развивается уже не одно десятилетие, начиная с конца восьмидесятых годов прошлого века. За эти годы Mathematica из программируемого калькулятора, однако, уже тогда способного на многое в математике, выросла в полноценную систему компьютерной алгебры. Все возможности Mathematica можно разделить на 4 больших категории: численные расчёты, символьные вычисления, визуализация и программирование. Краткую обобщённую классификацию возможностей Mathematica приводят А.Н. Прокопеня и А.В. Чичурин в книге [5, с. 6–7]. В редуцированном виде приведём её в нашем курсе.

  1. Численные расчеты
    • Mathematica позволяет производить вычисления с любой точностью. Это отличает её от обычного калькулятора, для которого точность вычислений фиксирована. Также Mathematica может производить расчеты с использованием специальных функций.
    • Mathematica умеет вычислять интегралы, численно решать алгебраические и дифференциальные уравнения и системы уравнений.
    • Mathematica позволяет производить статистический анализ численных данных, производить Фурье-анализ, интерполяцию и аппроксимацию данных с помощью метода наименьших квадратов.
    • Mathematica прекрасно работает не только с числами, но и с матрицами, обеспечивая выполнение всех операций линейной алгебры.
  2. Символьные вычисления
    • Mathematica позволяет оперировать алгебраическими формулами: разлагать на множители, раскрывать скобки или напротив, производить упрощение многочленов и т.д.
    • Mathematica позволяет находить решения дифференциальных уравнений, находить интегралы и производные в символьном виде.
    • Mathematica может разлагать функцию в ряд, вычислять пределы.
  3. Визуализация или графика
    • Mathematica умеет строить двух- и трехмерные графики аналитических функций, заданных явно или параметрически, а также контурные и плотностные графики. Помимо функциональных зависимостей Mathematica умеет визуализировать дискретные наборы данных.
    • Mathematica обладает значительным набором инструментов, опций, позволяющих контролировать оформление изображений, графиков. Так, например, можно изменять цвет графиков, управлять тенями, освещением и яркостью и т.д.
    • Mathematica позволяет строить изображения, используя элементарные графические объекты, стандартные фигуры. В двумерной графике это — многоугольники, окружности, дуги и т.д., в трёхмерной графике — параллелепипеды, сферы, цилиндры, конусы и т.д. Также Mathematica позволяет добавлять текстовые комментарии в любое место двумерного или трехмерного графического объекта.
  4. Программирование
    • Mathematica позволяет создавать дополнительные функции под нужды пользователя. Использование именно этой возможности подразумевает функциональный стиль программирования.
    • Mathematica обладает таким инструментом, как правила преобразований, которые позволяют одним символьным выражениям ставить в соответствие другие символьные выражения и численные значения. На этой возможности базируется так называемый стиль программирования, основанный на правилах преобразования.
    • В Mathematica содержится большое количество встроенных функций, позволяющих разветвлять вычисления в зависимости от выполнения определённых условий, многократно выполнять тот или иной алгоритм действий, реализуя тем самым процедурный стиль программирования.
    • Mathematica сама по себе представляет собой язык программирования высокого уровня, на котором можно писать как малые, так и большие программы.

1.1. Начало работы в Mathematica. Интерфейс программы

1.1.1.Главное меню программы

Mathematica, как и всякая программа, предназначенная для выполнения под Windows, запускается после двойного щелчка кнопкой мыши на соответствующей пиктограмме. На рис. 1.1 приведён снимок экрана с запущенной программой Mathematica. Основные элементы интерфейса программы следующие: в самом верху экрана располагается строка главного меню, белая прямоугольная область в средней части экрана — окно редактирования или окно ввода; тяготеющие к правой части экрана окна — палитры.

Начнём описание интерфейса программы с главного меню.

Пункты главного меню Mathematica достаточно подробно описаны в книгах А. П. Мостовского [4, с. 6–8] и А. В. Чигарева [6, с. 115–124].

Пункт меню File предназначен для работы непосредственно с файлами программы. С его помощью можно, например, создавать новые файлы (New), выбирать из каталога ранее уже созданные (Open...), сохранять файлы (Save As), перезаписывать (Save) или закрывать их без сохранения (Close), управлять параметрами представления данных на экране (Printing Settings), печатать документы (Print...) и завершать работу всей программы (Exit).

Пункт меню Edit содержит основные операции редактирования данных на экране. Среди них отмена операции (Undo), копирование фрагментов документа в буфер обмена с их удалением из текста программы (Cut) и без удаления (Copy), вставка фрагментов из буфера обмена в заданную область документа (Paste), удаление фрагментов документа (Clear). Помимо этого, в данном пункте меню содержатся команды для поиска выражений в тексте программы: это Find... для задания шаблона для поиска, а также Find Next и Find Previous для перехода к следующему и предыдущему фрагментам текста, соответственно, совпадающим с шаблоном. Подпункт Preferences... ответственен за управление настройками самого пакета.

При помощи команд, содержащихся в пункте меню Insert, можно вводить данные в окно редактирования. Например, можно задавать верхние и нижние индексы при помощи содержащихся в подпункте Typesettings команд Superscript и Subscript, обособлять тексты скобками различного вида при помощи команд Matching [], Matching (), Matching {} и т.д. Можно вставлять в текст программы объекты, созданные в других программах, например, графику, формулы и т.д.

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

Управлять ячейками данных позволяет пункт меню Cell (подробней о ячейках см. пункт 1.1.2 настоящей лекции). С его помощью можно устанавливать формат ячеек (Cell Properties), преобразовывать их тип (Convert To), группировать (Grouping), объединять (Merge Cells) и разделять (Divide Cells) ячейки и т.д.

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

В пункте меню Evaluations собраны команды для непосредственного управления ходом вычислений, работой с ядром программы. С их помощью можно осуществлять вычисления в пределах одной ячейки программы (Evaluate Cells, Evaluate Initialization Cells), в пределах всей программы (Evaluate Notebook), отключать ядро (Quit Kernel) программы и вновь запускать его (Start Kernel) и т.д.

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

Команды для управления внешним видом окон, их расположением, собраны в пункте меню Window. Содержание этого пункта типично для большинства программ, предназначенных для работы в ОС Windows.

Последний пункт меню, Help, содержит команды для работы со справочными данными по пакету Mathematica.

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

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

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

1.1.2. Окно ввода

Все элементы интерфейса Mathematica выводятся независимо друг от друга: отдельно — строка меню, отдельно — окна (в том числе окно редактирования), отдельно палитры инструментов. В одно и то же время на экране могут быть представлены одни элементы, и скрыты другие. Кроме того, можно, перетаскивая мышкой, помещать элементы программы в любое удобное место экрана, изменять их размеры (В. П. Дьяконов [2, с. 35–37]). В окне редактирования имеются полосы прокрутки для скроллинга не помещающихся на экране текстов.

Все введённые в окно ввода данные в Mathematica содержатся в отдельных, определённым образом выделенных областях экрана, называемых ячейками. Итак, программа запущена, и в центральной части экрана появилась девственно чистая область — окно ввода. Именно в эту область и предстоит вводить данные. Как только будет введён первый символ, в правой части окна ввода появится квадратная скобка: она обозначает вертикальные границы ячейки, содержащей введенный с клавиатуры символ. Исходные данные содержатся во входных ячейках (Input), а результат преобразований — в выходных (Output). А. П. Мостовской в [4, с. 6] определяет ячейку в Mathematica следующим образом: "Под ячейкой понимается связная часть рабочего поля, содержащая задачу, ответ, текст или другое".

После того, как на экране появилось окно редактирования (при первом старте Mathematica или после выбора подпункта New в пункте меню File), вы сразу же можете вводить данные. Например, если вы наберёте N[E,10] и нажмёте Shift+Enter (удерживая Shift, нажмёте Enter) для начала вычислений, Mathematica выведет на экран приближённое значение экспоненты с точностью до 10-и значащих цифр — см. рис. 1.2.

Экспонента с точностью до 10-и значащих цифр

Рис. 1.2. Экспонента с точностью до 10-и значащих цифр

Таким образом, чтобы Mathematica произвела вычисление введённого выражения, необходимо, оставив курсор внутри ячейки с входными данными, нажать сочетание клавиш Shift+Enter. Заметим, что после того, как вы заставили программу произвести вычисления в окне редактирования, Mathematica добавляет к данным на экране подсказки в виде In[1]:= для входных данных, и Out[1]:= для данных на выходе, т.е. результатов вычислений — также см. в качестве примера рис. 1.2. При этом исходное значение оказывается присвоенным объекту In[1], а результат вычислений — объекту Out[1] (Е. М. Воробьёв [1, с. 8–9]). В нашем примере на рис. 1.2 в текущей сессии работы с программой ввод с клавиатуры In[1] будет эквивалентен вводу выражения N[E,10], а ввод Out[1] — вводу 2.718281828.

Скажем ещё несколько слов о скобке в правой части экрана, очерчивающей границы ячейки с входными данными и результатами их преобразований. Если все заданные вычисления завершены успешно или ещё не проводились, ячейка обозначается тонкой правой квадратной скобкой, цвет которой зависит от цветовой схемы, используемой в операционной системе пользователя (см. пример на рис. 1.2). Изменение внешнего вида скобки может многое сказать о текущем состоянии вычислений. Если скобка изменила цвет на яркий, привлекающий внимание, и толщину, а в верхней её части появился значок +, это значит, что в синтаксисе содержащихся в ячейке выражений имеется ошибка: узнать на характере ошибки можно, нажав на + (см. верхний пример на рис. 1.3).

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

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

Разные типы скобки, очерчивающей ячейку

Рис. 1.3. Разные типы скобки, очерчивающей ячейку

1.1.3. Палитры математических функций

В данной лекции мы уже упомянули такой термин, как палитры. В Mathematica палитра — панель с кнопками быстрого управления.

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

Разработчики Mathematica сумели реализовать положительный эффект от вспомогательных панелей, минимизировав причиняемые им неудобства. Они создали инструментальные палитры, содержащие определённым образом сгруппированные команды для ввода математических выражений, отсутствующих на клавиатуре символов, команд управления вычислениями, инструментов работы с текстом и графикой. Палитрам не обязательно всё время находиться на экране, и по желанию пользователя они могут быть перемещены в любое место экрана или вовсе скрыты. Управлять палитрами можно при помощи команд, собранных в пункте главного меню Palettes.

На скриншоте на рис. 1.1 представлено несколько палитр, имеющихся в Mathematica.

< Лекция 1 || Лекция 2: 123 || Лекция 3 >