Иллюстрированный самоучитель по Mathematica

         

Управление процессом вычислений


Основные команды управления процессом вычислений сосредоточены в подменю Evalution меню Kernel:

  • Evaluate Cells (Shift+Enter) — вычисление выделенных ячеек;
  • Evaluate in Place (Shift+Ctrl+Enter) — вычисление выделенного выражения «на месте»;
  • Evaluate Next Input (Shift+Enter на цифровом поле клавиатуры) — вычисление следующей строки ввода;

  • Evaluate in Subsession — вычисление выделенных ячеек в параллельном интерактивном сеансе работы с ядром;
  • Evaluate Notebook — вычисление всех ячеек документа;
  • Evaluate Initialization — вычисление инициализационных ячеек;
  • Enter Subsection — запуск диалогового сеанса работы с ядром;
  • Exit Subsection — завершение диалогового сеанса работы с ядром.

Рис. 2.39. Меню Kernel и его подменю Evaluation

Данная группа команд управляет вычислением ячеек. Перед вычислением каждая ячейка оценивается по своим признакам. Команда Evaluate Cells оценивает все выделенные ячейки, вызывает их вычисление и помещает результат вычисления каждой ячейки сразу после нее. Это одна из наиболее распространенных команд. Следует помнить, что, казалось бы, естественное нажатие клавиши Enter вызывает лишь переход на новую строку, а не вычисление выделенных ячеек ввода. При управлении с клавиатуры вычисление выделенных ячеек происходит при одновременном нажатии клавиш Shift и Enter.

Особое внимание надо обратить на команду Evaluate in Place. Допустим, вы ввели в ячейку ввода, выражение

(2+3)/7

Выделите мышью выражение (2+3). Теперь, исполнив команду Evaluate in Place нажатием клавиш Ctrl+Shift+Enter, мы получим в строке ввода следующее:

5/7

Таким образом, выражение (2 + 3) было вычислено прямо в строке ввода, и на его месте появился результат — 5. Если теперь исполнить команду Evaluate Cells, то появится строка вывода с результатом:

5/7

Поскольку результат представлен дробно-рациональным числом, он повторяет выражение в строке ввода, но в ином формате — в формате вывода.

Команда Evaluate Next Input позволяет последовательно вычислить ряд ячеек, расположенных под выделенной ячейкой.
Если текстовый курсор находится в ячейке ввода, данная команда вычисляет эту ячейку. В противном случае она перемещает выделение на следующую ячейку. Последующее использование команды ведет к исполнению этой ячейки, затем к выделению следующей ячейки, ее вычислению и т. д. Таким образом, можно последовательно вызывать вычисление ячеек документа, используя эту команду дважды для каждой ячейки.

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

Команда Evaluate Initialization вычисляет все ячейки, помеченные как инициали-зационные, то есть имеющие символ «т» над квадратной скобкой, обрамляющей ячейку. О задании такого признака говорилось ранее в разделе «Манипуляции с ячейками». Ячейки с указанным признаком выполняются этой командой без их выделения.

Следующие две команды меню Kernel управляют процессом текущих вычислений:

  • Interrupt (Alt+,) — прерывание вычислений;
  • Abort (Alt+.) — полное прекращение вычислений.
Их действие вполне очевидно. Команда Interrupt служит для прерывания текущих вычислений. Эта команда при исполнении задает запрос о том, каким образом вы хотите прервать вычисления и сколько шагов вычислений надо еще сделать. Разумеется, можно и отменить прерывание. Команда Abort вызывает полное прекращение вычислений, так что их можно возобновить лишь с самого начала. Вместо результата выдается сообщение $Abort.

Полезно запомнить клавиатурные комбинации для этих команд, поскольку «зависание» системы из-за чрезмерно большого времени исполнения неудачного алгоритма (например, глубокой рекурсии) не редкость.Кстати, в процессе таких вычислений команды прерывания доступны и из меню.

Используйте команды Interrupt и Abort, если вы загнали систему в режим «вечных вычислений» — зацикливание. Это позволит вам благополучно выйти из этого режима, сохранив текущие данные и текущую программу (документ). Иные способы прерывания вычислений чреваты потерей текущих данных и документа.




Содержание раздела