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

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

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

1.3. Отображение данных

Если после выражения вы введёте знак точки с запятой " ; ", Mathematica вычислит значение выражения, но не выведет его на экран в ячейке Out. Это оказывается полезным, если результат является промежуточным в расчётах, и нет необходимости его видеть. В примере на рис. 1.8 мы задаём последовательность из 100 натуральных чисел, но не выводим её на экран, а затем находим сумму всех чисел последовательности.

Использование символа " ; " для сокрытия результатов вычислений

Рис. 1.8. Использование символа " ; " для сокрытия результатов вычислений

Выражению не обязательно следует вмещаться в одну строчку: его можно "растянуть" на несколько строк, при этом Mathematica сама будет расценивать эти несколько строчек как единое целое (П. Веллин и др. [14, с. 22]). Однако для этого необходимо, чтобы выражение было заключено в скобки (пример In[1] на рис. 1.9), либо чтобы последним на строке оставался оператор действия, а каждая новая строчка начиналась с числа или переменной (пример In[2]). Если строка будет начинаться с оператора, то строки будут рассмотрены как содержащие разные выражения (пример In[3]).

Если в примере In[1] на рис. 1.9 мы воссоединили выражение искусственно, при помощи предназначенных для группировки круглых скобок, то в примере In[4] растянутое на несколько строчек выражение было обособлено квадратными скобками, использующимися изначально при задании функции логарифма Log.

Запись одного выражения в несколько строк

Рис. 1.9. Запись одного выражения в несколько строк

Зачастую средствами Mathematica приходится выполнять достаточно громоздкие вычисления, и если программа при этом выполняет свои функции без проблем, то у пользователя может возникнуть некоторый дискомфорт из-за обилия введённых данных на экране. Для разрешения этой ситуации в Mathematica предусмотрена возможность оставлять комментарии к тексту программы. Делается это обособлением комментариев сочетанием символов (* и *) — см. In[1] рис. 1.10.

Комментарий может также играть роль пробела. Так выражение x(**)y приведёт к перемножению x и y — пример In[4] рис. 1.10.

Ввод комментариев в Mathematica

Рис. 1.10. Ввод комментариев в Mathematica

В примере In[1] на рис. 1.10. мы также познакомились с новой командой " % ". Её ввод автоматически означает ссылку на предыдущее вычисленное выражение.

К слову, в Mathematica имеется обширная справочная документация, для пользования которой есть множество способов (П. Веллин и др. [14, с. 26–27]). Например, если нам в точности известно имя той или иной функции, например, function, но мы не знаем, для чего она используется, или просто хотим уточнить её синтаксис, следует в окно редактирования ввести ?function и запустить вычисления (нажав Shift+Enter). Если же мы доподлинно знаем лишь фрагмент имени функции, например, func, то, введя ?func, мы получим на экране подсказку, содержащую имена всех функций, начинающихся на func. Если нажать на символ ", откроется окно Help-браузера, в котором дана более детальная информация о функции. На рис. 1.11 показан пример получения справки о функции Integrate и функциям начинающимся на Plo.

Получение справки о функциях

Рис. 1.11. Получение справки о функциях

Ещё один способ получить справку о функции — щелкнуть на ней курсором и нажать на клавиатуре клавишу F1. Это приведёт вас непосредственно к статье об этой функции в Help-браузере.

1.4. Ядро и интерфейсный процессор — базовые компоненты Mathematica

Теперь мы знаем достаточно для того, чтобы осуществлять простейшие вычисления в Mathematica, то есть, выражаясь языком сотрудников отдела кадров, мы стали пользователями начального уровня. Однако для большей полноты наших знаний о программе скажем несколько слов о "двуличии" Mathematica и узнаем, с чем мы имеем дело при работе за компьютером, и что на самом деле производит вычисления (П. Веллин и др. [14, с. 24]).

Когда мы работаем в Mathematica, на самом деле мы имеем дело с двумя разными программами — интерфейсным процессором (the front end) и ядром (the kernel). Интерфейсный процессор — это и есть пользовательский интерфейс, включающий в себя окно редактирования, в которое мы вводим данные, строку меню, палитру инструментов, упрощающих ввод данных. Ядро программы непосредственно выполняет вычисления. Таким образом, типичный процесс взаимодействия пользователя с Mathematica состоит из следующих шагов (компонент Mathematica, отвечающий за выполнение каждого шага дан в скобках) (П. Веллин и др. [14, с. 24]):

  • ввод данных в окно редактирования (интерфейсный процессор с подачи пользователя);
  • отправка введённых данных в ядро для выполнения вычислений (интерфейсный процессор);
  • выполнение вычислений и отправка обратно в интерфейсный процессор (ядро);
  • вывод результатов на экран в окно редактирования (интерфейсный процессор).

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

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

Хотя, обычно ядро работает стабильно, но порой во время работы программы возникает ситуация, когда Mathematica "начинает себя плохо вести" — долгое время не выдаёт результатов вычислений (например, если на входе была поставлена слишком сложная задача), зависает. В этом случае можно не ждать реакции компьютера и самостоятельно прервать вычисления. Способ, который предлагает П. Веллин и др. [14, с. 19], зависит от операционной системы компьютера. Для Macintosh — это комбинация клавиш Command key+точка, а затем буква A, для Windows — " Alt+точка ", для Unix — " Ctrl+точка ", а затем буква A.

Иногда эта попытка остановить вычисления оказывается неудачной. Если остановки вычислений не произошло в течение нескольких минут, Mathematica кажется зависшей, следует выполнить действие "kill the kernel". Для этого нужно выбрать подпункт Quit Kernel->local в пункте меню Evaluation. Для перезапуска ядра без перезапуска интерфейсного процессора необходимо выбрать в том же пункте команду Start Kernel local, либо просто известным способом заставить Mathematica произвести вычисления: ядро при этом запустится самостоятельно.

Ключевые термины

Интерфейсный процессор (front-end processor) — компонент пакета Mathematica, управляющий взаимодействием с периферийными устройствами.

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

Операндвыражение, содержащее и данные, и операторы.

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

Палитра — дополнительная панель с кнопками быстрого управления.

Ядро (kernel) — компонент пакета Mathematica, непосредственно выполняющий вычисления.

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

Краткие итоги

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

Вопросы

  1. Каковы основные возможности пакета Mathematica как системы компьютерной алгебры и языка программирования?
  2. Перечислите и по возможности опишите основные элементы интерфейса программы Mathematica.
  3. Для каких задач предназначен пункт главного меню File; Edit; Insert; Format; Cell; Graphics; Evaluations; Palettes; Window; Help?
  4. Что понимают под ячейкой в окне ввода? Каким образом ячейки обозначаются на экране?
  5. Что такое палитры, и для каких целей они предназначены?
  6. Каким образом в Mathematica задаются простейшие математические операции?
  7. Поясните вопрос о порядке выполнения операций при работе Mathematica со сложными выражениями.
  8. Какие виды скобок используются в Mathematica? Для каких целей?
  9. Для каких целей в Mathematica применяется знак " ; "?
  10. Поясните вопрос о записи выражений на нескольких строках.
  11. Что такое интерфейсный процессор и ядро пакета Mathematica? Какие функции они выполняют?
  12. Как пользователю следует себя вести, если Mathematica перестаёт реагировать на "внешние раздражители", "зависает"?

Упражнения

  1. Выведите на экран значение числа \pi с точностью до 5 значащих цифр; до 15 значащих цифр. Найдите разность между первым и вторым выражениями.
  2. Запишите выражение 2*3/2-52, пользуясь различными способами ввода арифметических операторов, вычислите результат выражения.
  3. Вычислите натуральный логарифм трёх произвольных чисел от 0 до 10, найдите их сумму, произведение.
  4. Найдите числа, комплексно-сопряжённые числам 5i, 3-2i, log(5)+7i.
  5. Запишите в столбик первые 10 букв латинского алфавита, при помощи символа " ; " выведите в выходную ячейку каждую вторую букв; каждую третью букву; только гласные.
  6. "Растяните" несколькими способами выражение 1-2*3+4*5-6+7 на три строчки, вычислите результат выражения.
  7. Получите разными способами справку по функциям Plot3D, Integrate, Simplify.
  8. "Зациклите" программу, задав вычисление выражения For[i=0,i<5,{i^2}], прервите вычисления известными вам способами.
< Лекция 1 || Лекция 2: 123 || Лекция 3 >