История проекта, известного сейчас под именем Maxima, началась в конце 60-х г.г. в Массачусетском технологическом институте, где в рамках проекта MAC была создана программа символьных вычислений, получившая название Macsyma (MAC Symbolic MAnipulation). Языком программирования был выбран Lisp. Как показало время, это был полностью оправданный выбор, поскольку и сейчас этот язык не только существует, но и продолжает развиваться.
Macsyma была первой программой символьных вычислений, и много положений ее идеологии были позже заимствованны известными сейчас коммерческими продуктами Maple и Mathematica. Macsyma была закрытым коммерческим проектом, поскольку его финансировали, в частности, и военные организации, например, Оборонный и энергетический департамент США (Departments of Energy & Defence, DOE & DOD), Агентство перспективных разработок министерства обороны США (DAPRA - Defense Advanced Research Project Agency), на средства которого, кстати, была создана первая сеть национального масштаба ARPANET. Проект с переменной активностью действовал достаточно длительное время.
В 1982 г. профессор Уильям Шелтер (William Schelter) на основе кода Macsyma начал создавать собственную версию программы под названием Maxima. В 1998 г. Шелтеру удалось получить от DOE & DOD права на публикацию кода по лицензии GPL. С этого момента Maxima позиционируется как свободное программное обеспечение с открытым кодом. Сам проект Macsyma прекратил свое существование в 1999 г., но У. Шелтер продолжал заниматься разработкой Maxima вплоть до своей смерти в 2001 г. И после его смерти программа продолжает активно развиваться.
Инсталляция Maxima содержит два варианта: консольный (XMaxima) и с графическим интерфейсом (wmMaxima). Далее рассматривается последняя стабильная версия с графическим интерфейсом 5.27.0. Система имеет много локализаций, в том числе и русскую. При этом во время инсталляции автоматически выбирается та локализация, языковая раскладка которой по умолчанию является основной. Вместе с тем следует заметить, что русская локализация последних версий является достаточно несовершенной, в ней отсутствует перевод очень многих команд и текста в окнах. Остается только надеяться, что вопрос локализации - это вопрос только времени.
Базовая функциональность системы значительно расширяется специализированными пакетами, предназначенными для работы с размерными величинами, дополнительными функциями для работы с матрицами, работы с графами и т.п. Они есть в составе инсталляции системы и для работы с ними пользователю необходимо во время работы просто дозагрузить нужный пакет.
Для подключения пакета следует выполнить команду
load (имя пакета)
После инсталляции программы на компьютере она достаточно неожиданно может и не работать. Решение этой проблемы находим в сопроводительном файле readme.txt, где читаем такое: "Иногда графическая оболочка Maxima (xmaxima или wxMaxima) не может запустить Maxima, или сообщает о превышении времени ожидания, или не может получить результат выполнения команд Maxima. Весьма вероятно, что данная проблема вызвана установленным в системе брандмауэром и/или антивирусным программным обеспечением. Графическая оболочка Maxima взаимодействует с вычислительным ядром посредством сокетов. Брандмауэр и/или антивирус могут блокировать данное взаимодействие, т.к. некоторые вредоносные программы тоже используют сокеты". Например, у меня это осуществлял брандмауэр. Во время загрузки программы он выдавал сообщение, что Maxima стремится получить доступ к Интернету, и после запрета выхода выдал сообщение "Not connected to Maxima!", и программа, соответственно, не работала. Таким образом, для работы программы нужно позволить вашему брандмауэру и антивирусу позволить использовать сокет. По умолчанию используется порт 4010. Это значение, кстати, можно и изменить, изменив соответствующую настройку, доступ к которым осуществляется командой Правка > Настройка.
Интерфейс системы
Окно программы
Главное окно программы Maxima является документом, в котором вводятся команды и выражения и выводятся результаты. При этом формулы вводятся в текстовом виде, а результаты отображаются в графическом виде с помощью привычных математических символов.
В начале работы с программой можно инициировать режим, при котором после загрузки программы появляется окно "Подсказка дня". Для этого (или - наоборот - для отключения его вывода) следует выполнить команду Помощь > Show Tips (показывать подсказки) и установить или снять флажок для поля-метки "Показывать советы при старте".
Для просмотра общей информации про систему (номер ее версии, информация о лицензии, по которой распространяется Maxima и т.п.) выполните команду Помощь > Build Info (информация о текущей версии).
Окно программы содержит типичные элементы Windows: панель заголовка с названием активного документа, строка системного меню, панель инструментов и строка состояния.
В главном окне программы можно также вывести несколько панелей, доступ к которым осуществляется по команде Maxima > Panes (панели):
- General Math (общие математические действия). Обеспечивает доступ к самым распространенным действиям: упрощению математических выражений, дифференцированию, построению графиков.
- Statistics (статистика). С помощью этой панели пользователь может быстро рассчитать такие широко используемые статистические показатели как средняя величина, дисперсия или построить статистический график, в частности, гистограмму.
- History (история). Отображает все команды, которые были введены в текущем сеансе работы.
- Insert Cell (вставка в ячейку). Позволяет вставить в документ объекты разного формата, в том числе текстовые комментарии, изображения.
Все панели являются плавающими и их можно простым перетягиванием переместить в любое место главного окна.
В окне можно увеличивать или уменьшать масштаб отображения документа, для чего соответственно применяются команды Правка > Zoom In (увеличение размера) или Правка > Zoom Out (уменьшение размера). По команде Правка > Set Zoom система позволяет установить фиксированный размер масштаба. Вообще же во время работы можно применить полноэкранный режим, применив команду Правка > Full Screen.
Документ системы
После загрузки системы ее главное окно содержит новый рабочий документ, в котором и осуществляются непосредственно все вычисления. Он состоит из отдельных ячеек, в которых хранится вся информация. Ячейки с левой стороны выделяются квадратными скобками.
Добавлять новые выражения можно в любом месте документа.
Любой фрагмент документа можно удалить. Для удаления ячейки следует ее выделить, нажав на скобку, а потом, например, нажать <Delete> или кнопку на панели инструментов.
Любые вычисления, порой достаточно сложные, в системе можно выполнить в режиме прямых вычислений, то есть без подготовки программы. Это превращает систему в мощный калькулятор, способный осуществлять не только обычные для калькуляторов вычисления, например, выполнять арифметические операции и вычислять элементарные функции, но и осуществлять операции с векторами и матрицами, комплексными числами, рядами и полиномами, решать системы линейных уравнений и т.п.
Для использования системы в режиме прямых вычислений нужно знать, как именно в этом случае вводится информация.
Правила ввода информации в документ
- Вся информация вводится и хранится в ячейках. Различают ячейки ввода, которые помечают буквой i (от английского input) и ячейки вывода, которые помечают буквой o (от английского output). Система автоматически нумерует каждый ввод и вывод, благодаря чему каждая ячейка имеет уникальную метку. Метка - это имя ячейки, заключенное в круглые скобки: (%i1), (%o23) где n - n-й номер ячейки ввода (или вывода). Ячейки ввода выделяются красным цветом, ячейки вывода - коричневым.
- Для ввода новой информации, то есть для создания новой ячейки, необходимо щелкнуть между двумя ячейками, или перед первой ячейкой или после последней ячейки в документе и начать набирать информацию.
- Для вычисления математического выражения и отображения в документе результата по окончанию ввода выражения следует нажать <Enter>. Результат вычисления помещается и отображается в ячейке вывода.
- Если математическое выражение заканчивается символом ";", то это является требованием для вычисления математического выражения и отображения в документе результата. Заметим, что этот символ автоматически добавляется системой в конце выражения при нажатии <Enter>.
- Для продолжения ввода информации без вычисления следует нажать <Shift>+<Enter>. Такое действие приводит к появлению новой строки в ячейке ввода.
- Если вывод результата вычисления не нужно, то ввод информации заканчивается символом "$". При этом ячейка вывода не отображается. Но сама ячейка создается и она будет содержать результат вычисления, что позволяет при необходимости обратиться к ней.
- В одной строке могут быть несколько команд, но каждая из них все равно будет иметь свою ячейку вывода. При этом каждую команду (кроме последней) следует завершать или символом ";" или символом "$".
- Для обращения к определенной ячейке используется ее метка, например:
Однако нужно осторожно использовать такое обращение: на практике достаточно часто придется редактировать документ, вставляя новые ячейки и удаляя существующие. Во время новой загрузки измененного документа, Maxima автоматически перенумерует ячейки, из-за чего старая нумерация с обращением к конкретным ячейкам может стать неправильной и повлечет появление ошибок. - Последняя ячейка вывода обозначается через "%", а последняя ячейка ввода - "_". Это позволяет обратиться к ним без использования их меток.
- Для редактирования информации следует установить курсор в любое место ячейки ввода и начать вводить новые данные или изменять существующие.
- Для удаления ячейки нужно ее выделить, щелкнув ее скобку. Можно осуществить выделение нескольких смежных ячеек, протянув по ним мышью. Но общепринятого характера выделения (например, выделение нескольких произвольных ячеек при нажатой клавише <Ctrl>) Maxima не поддерживает.
Сессия. Операции с документами
Сеанс работы с Maxima называют сессией. Сессия по существу является текущим документом, который содержит работу пользователя с системой. Она содержит команды ввода, вывода и сообщения об ошибках. Сессию можно сохранить на диске выполнив команду Файл > Сохранить. Файл сессии имеет расширение WXM. Открытие файла сессии осуществляется командой Файл > Open или щелчком кнопки "Открыть документ" на панели инструментов.
Другие действия работы с документом (сессией) осуществляются аналогично работе с документами в других Windows-приложениях. Кнопки для работы с документами: загрузить новый документ, сохранить или распечатать существующий - есть и среди пунктов меню команды Файл и на панели инструментов. Вместе с тем, следует заметить, что Maxima позволяет работать в сеансе только с одним документом, потому вам придется закрыть документ, с которым происходит робота в текущей сессии перед тем, как загрузить другой.
После загрузки документа пользователь может вычислить как результат отдельной ячейки или группы ячеек, выполнив команду Cell > Evaluate Cell (ячейка, вычислить ячейку), так и всего документа, выполнив команду Cell > Evaluate All Cells (вычислить все ячейки). При этом все ячейки нумеруются последовательно заново, начиная с первого номера.
Доступ к справочной системе осуществляется по команде Помощь > Maxima Help. Справку о конкретной функции можно получить и из командной строки, набрав в нем "? имя функции", например:
? diff
Кроме справки, для многих функций Maxima содержит встроенные примеры их использования. Пример загружается командой example(). Вызов ее без аргумента отобразит список всех доступных примеров. Вызов наподобие example(name) загрузит в текущую сессию и выполнит заданный как аргумент пример.
example(diff);
Валерий ФЕТИСОВ
Комментарии
Кстати, пользуюсь. И давно. Но почему-то в голову не приходило писать статью.
Спасибо за полезный материал!
Автор, а кроме Венды др. ОС -- не?
Да, те же NIX-системы - без проблем.
И я о том же.