В статье рассматриваются неочевидные моменты работы в Mathematica, которые вызывают у начинающего пользователя вопросы. Впрочем и автор, как инженер, работает в математических пакетах время от времени. Приходится вспоминать названия функций, пути к папкам, пункты меню, смотреть старые блокноты и гуглить. Пусть будет статья, в которой все в одном месте. Итак, Mathematica полезные заметки.
Mathematica полезные заметки — общие замечания
Статья разбита на тематические разделы. Разделы делятся пунктами на маленькие заметки. Нумерация пунктов — сквозная. Как правило, к каждой заметке прикреплен рисунок.
Интерфейс и система
- В правой части экрана есть серые скобки. Обычно, на каждую строку вычисления есть одна скобка для входной ячейки, одна для выходной и одна общая. Скобки нужны для сворачивания больших портянок кода. Двойным кликом можно скрывать и разворачивать либо ввод, либо вывод.
- Предиктивный интерфейс. Строку Suggections Bar можно отключить. Edit → Preferences → Вкладка Interface:
- Где настраивать системные переменные, при запуске Mathematica? В файле инициализации init.m. Этот файл есть для установки пакета в целом, а есть для пользователя, запускающего ядро системы. Путь к файлу можно выудить из системных переменных: $BaseDirectory, $UserBaseDirectory. Подробнее — по указанной ссылке (раздел Details).
- Палеты. Палеты очень полезны. Палеты можно создавать программно, а можно при помощи команды Generate Palette from Selection. Палета — это почти обычный файл блокнота (nb). При установке палеты, Вы выбираете такой файл и Ваша палета появляется в меню Palettes. Не спешите устанавливать свои палеты. Их затруднительно потом удалять.
С учетом этого, правильным и безопасным решением кажется программная генерация палет. Например:
- Размер истории команд по-умолчанию равен бесконечности. Имейте это ввиду, при масштабной автоматизации. Быть может, стоит добавить $HistoryLength = 10 в файл init.m (см. п.3).
Вычисления
- Математика считает точные вещи, например корень из 2 — это точно. А вот число, что Вы видите на экране калькулятора 1,414 — это, с точки зрения математики, не точно. Это десятичное представление. Для получения численных ответов, используйте функцию N[…]. Вот, как это работает:
- Язык Mathematica чувствителен к регистру. Должна работать подсказка при вводе второй буквы правильного названия функции или переменной.
- Какие формы вызова функции доступны в Mathematica? На рисунке ниже показано определение функции одного аргумента и вызов в стандартной, префиксной, постфиксной формах. Затем определяется функция двух переменных и вызывается в инфиксной форме.
- Есть оператор Set (=) и SetDelayed (:=). Отличаются тем, что первый оператор Set вычисляет то, что справа и тут же присваивает результат выражению слева. Теперь, если в выражениях, найдется левая часть, она сразу меняется на правую. Оператор SetDelayed присваивает, но не вычисляет. Прекрасный пример тут.
- Переменные могут быть инициализированными и не инициализированными. Не инициализированные переменные не вычисляются в выражениях. Переменные должны быть не инициализированными для работы функции Solve.
- В уравнениях используется двойной знак равенства — функция Equal, а не одинарный (присваивание).
- В имени переменной нельзя использовать подчеркивание. Не заработает.
- Избегайте использования названий переменных в одну букву. Кто знает, под что она может быть зарезервирована?