Mathematica полезные заметки

Mathematica - Трехмерный график функции от двух переменных
Mathematica — Трехмерный график функции от двух переменных

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

Mathematica полезные заметки — общие замечания

Статья разбита на тематические разделы. Разделы делятся пунктами на маленькие заметки. Нумерация пунктов — сквозная. Как правило, к каждой заметке прикреплен рисунок.

Интерфейс и система

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

    Блокнот Mathematica 11 - Входная и выходная ячейки, Suggestions Bar.
    Блокнот Mathematica 11 — Входная и выходная ячейки, Suggestions Bar.
  2. Предиктивный интерфейс. Строку Suggections Bar можно отключить. Edit → Preferences → Вкладка Interface:

    Mathematica полезные заметки. Отключение предиктивного интерфейса (Suggestions Bar)
    Отключение предиктивного интерфейса (Suggestions Bar).
  3. Где настраивать системные переменные, при запуске Mathematica? В файле инициализации init.m. Этот файл есть для установки пакета в целом, а есть для пользователя, запускающего ядро системы. Путь к файлу можно выудить из системных переменных:  $BaseDirectory,  $UserBaseDirectory. Подробнее — по указанной ссылке (раздел Details).

    Mathematica - Просмотр системной переменной UserBaseDirectory
    Mathematica — Просмотр системной переменной UserBaseDirectory
  4. Палеты. Палеты очень полезны. Палеты можно создавать программно, а можно при помощи команды Generate Palette from Selection. Палета — это почти обычный файл блокнота (nb). При установке палеты, Вы выбираете такой файл и Ваша палета появляется в меню Palettes. Не спешите устанавливать свои палеты. Их затруднительно потом удалять.
    Mathematica - Палеты
    Mathematica — Палеты.

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

    Mathematica - Программная генерация палеты
    Mathematica — Программная генерация палеты для чистки переменных текущего контекста.
  5. Размер истории команд по-умолчанию равен бесконечности. Имейте это ввиду, при масштабной автоматизации. Быть может, стоит добавить $HistoryLength = 10 в файл init.m (см. п.3).

    Вычисления

  6. Математика считает точные вещи, например корень из 2 — это точно. А вот число, что Вы видите на экране калькулятора 1,414 — это, с точки зрения математики, не точно. Это десятичное представление. Для получения численных ответов, используйте функцию N[…]. Вот, как это работает:
    Mathematica - Численное представление результата
    Mathematica — Численное представление результата. И кстати, функция N[…] вторым аргументом может принимать количество знаков.
  7. Язык Mathematica чувствителен к регистру. Должна работать подсказка при вводе второй буквы правильного названия функции или переменной.
  8. Какие формы вызова функции доступны в Mathematica? На рисунке ниже показано определение функции одного аргумента и вызов в стандартной, префиксной, постфиксной формах. Затем определяется функция двух переменных и вызывается в инфиксной форме.

    Mathematica - Формы вызова функции
    Mathematica — Формы вызова функции. Оператор := является инфиксным.
  9. Есть оператор Set (=) и SetDelayed (:=). Отличаются тем, что первый оператор Set вычисляет то, что справа и тут же присваивает результат выражению слева. Теперь, если в выражениях, найдется левая часть, она сразу меняется на правую. Оператор SetDelayed присваивает, но не вычисляет. Прекрасный пример тут.

    Mathematica полезные заметки - Отложенное присвоение, немедленное присвоение
    Mathematica полезные заметки — Отложенное присваивание, немедленное присваивание.
  10. Переменные могут быть инициализированными и не инициализированными. Не инициализированные переменные не вычисляются в выражениях. Переменные должны быть не инициализированными для работы функции Solve.

    Mathematica - Инициализированная и не инициализированная переменная
    Mathematica — Инициализированная и не инициализированная переменная. Функция Solve работает после сброса переменной x.
  11. В уравнениях используется двойной знак равенства — функция Equal, а не одинарный (присваивание).
  12. В имени переменной нельзя использовать подчеркивание. Не заработает.
  13. Избегайте использования названий переменных в одну букву. Кто знает, под что она может быть зарезервирована?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.