(Продолжение. Начало в №3)
Входной язык системы
Алфавит
Алфавит определяет совокупность символов и слов, которые используются для записи команд.
Алфавит системы содержит:
- малые и большие латинские буквы;
- малые и большие греческие буквы;
- арабские цифры от 0 до 9;
- системные переменные;
- операторы;
- имена встроенных функций;
- специальные знаки;
- малые и большие буквы кириллицы.
Правила синтаксиса языка системы
- Все имена команд и функций записываются буквами латинского алфавита.
- Аргументы команд и функций записываются в круглых скобках.
- Ввод команды завершается символом ";" или "$".
- Большая и маленькая буквы различаются.
- В числах целая часть от дробной отделяется точкой.
- Знаки арифметических операций обязательно должны указываться в выражениях.
- Порядок действий в выражении отвечает общепринятому порядку действий в математике.
Система осуществляет синтаксический контроль входных данных, и при наличии ошибки вместо ячейки вывода выводит соответствующее сообщение в ячейке ввода, которое содержит ошибку:
Текстовые комментарии
Для ввода комментариев выполняется команда Cell > Insert Text Cell (ячейка, вставить текстовую ячейку).
Текст в текстовых ячейках имеет одинаковый, заранее определенный стиль. Это касается всех объектов системы: переменных, чисел, текстовых заголовков и т.п., форматы которых учитывают сложившуюся практику оформления научно-технических вычислений. Вместе с тем, стиль любого объекта, в том числе и текстовых ячеек, можно изменить. Для этого следует осуществить такие действия:
- Выполнить команду Правка > Настройка или щелкнуть на панели инструментов кнопку "Настроить wxMaxima", что приведет к появлению окна "Конфигурация wmMaxima".
- Перейти на вкладку "Стиль".
- В списке "Стили" выбрать элемент "Text Cell" и выбрать для него нужный шрифт, начертание и т.п.
Объекты системы
Вычисления в системе осуществляются с помощью математических выражений, которые являются главным объектом любой математической системы. Выражение определяет то, что должно быть вычислено в численном или символьном виде. Математические выражения состоят из чисел, констант, переменных, операторов, функций и специальных знаков.
Операторы
Арифметические операторы
Операторы - это элементы языка, с помощью которых создаются математические выражения. К ним, например, принадлежат знаки арифметических операций, вычисления сумм, произведений, производных, интегралов. Операторы используются вместе с операндами. Например, в выражении "5-1" знак "-" является оператором вычитания, а числа "5" и "1" - операндами.
Как было отмечено выше, нажатие <Enter> указывает системе на необходимость вычисления математического выражения. Если Maxima работает в режиме автоматических вычислений, то после этого будет получен результат. Однако если вычисления выполняются достаточно долго, то удобнее работать в ручном режиме, получая результаты вычислений только тогда, когда это необходимо. Выбор режима работы осуществляется в настройках системы. Обращение к настройкам осуществляется командой Правка > Настройка. После этого появится окно "Конфигурация wmMaxima", в котором для установки режима автоматических вычислений следует в группе "Параметры" установить флажок для поля-метки "Enter evaluates cells" (Выводить ячейки с вычислениями). В ручном режиме вычислить значение текущей ячейки можно командой Cell > Evaluate Cell (ячейка, вычислить ячейку), при помощи пункта "Evaluate Cell" из контекстного меню, если его вызывать на квадратной скобке ячейки, или нажатием комбинации клавиш <Ctrl>+<Enter>.
После вычисления объекта в ячейке Maxima выводит результат и ожидает следующую команду (на панели состояния в этой время отображается текст "Готова к вводу").
Как было отмечено ранее, документ системы состоит из отдельных ячеек, в которых хранится вся информация. Если необходимо скрыть результат, то следует нажать на треугольный маркер в скобке, после чего этот маркер окрашивается в черный цвет. Нажатие на нем приводит к отображению содержания ячейки. Вообще визуально очень просто выяснить, какие ячейки содержат результаты вычисления, а какие - нет. Если маркер окрашен в черный цвет, то это и является признаком того, что ячейка содержит результат, а если нет, то результат еще следует вычислить.
Во время ввода команд система дает возможность упрощать выполнение некоторых действий. Например, чтобы вести скобки вокруг выражения, достаточно выделить это выражение мышью и нажать "(".
Табл. 1. Арифметические операции |
Следует заметить, что система не имеет четкого разграничения между операторами и функциями. Более того, каждый оператор - это в действительности функция:
(%(%i1) "+"(1,3,5);
(%(%o1) 9
Если Maxima не может получить для выражения однозначный результат (например, если недостаточно данных), то она пытается максимально упростить это выражение. Например, если значение для переменной x не задано, то попытка определить для нее абсолютное значение приведет к такому результату:
Попытка произвести математическое действие, для которого отсутствующее точное решение, приведет к тому, что результат будет представлен в символьном виде:
Но система предоставляет возможность вычислить подобные выражения и в численном виде. Для этого следует выделить результат в ячейке вывода, вызывать на ней контекстное меню и выбрать из него пункт "To Float" (преобразовать в число с плавающей точкой).
Логические операторы (операторы отношения)
Логические операторы предназначены для сравнения двух величин.
Табл. 2. Логические операторы |
Переменные
Правила присвоения имен переменным:
- они могут состоять из латинских букв и цифр, знака "минус", а также символов кириллицы;
- большие и маленькие буквы различаются;
- должны начинаться только с буквы;
- не могут содержать пробелов;
- не могут совпадать с именами встроенных или определенных пользователем функций, а также системных переменных.
Для присвоения переменным значений используют символ ":".
c:2; b:3;
Если какой-то символ уже имеет значение, то его все равно можно использовать в выражении. Для этого используется символ апостроф: его применение перед любым символом или выражением предотвращает вычисление выражения.
Например:
При этом следует обратить внимание на следующее. Если апостроф применяется перед именем функции, то блокируется вычисление самой функции, но не ее аргументов. Если же поставить апостроф перед выражением и поместить его в скобки, то не вычисляемым будет все выражение в целом, то есть и все функции, которые входят к него, и все аргументы этих функций.
Например:
В терминологии системы не вычисляемая форма выражения называется "noun form", а вычисляемая - "verb form".
С другой стороны, система может принудительно вычислить любое выражение, для чего используется двойной апостроф. Выполним это для предыдущих вычислений:
Оператор, представляемый двумя апострофами, является синонимом функции ev. Сама функция ev предоставляет намного более широкие возможности, чем простое принудительное вычисление заданного выражения: она может принимать произвольное число аргументов, первый из которых является вычисляемым выражением, а остальные - это специальные опции, которые как раз и влияют на то, как именно будет проводиться вычисление. Точно так же, как двойной апостроф - сокращение для ev без дополнительных опций, есть еще и упрощенная запись функции ev с параметрами: в этом случае вместо имени функции и скобок вообще ничего писать не нужно; то есть выражение ev (выражение, опция1, опция2) можно записать как "выражение, опция1, опция2".
В системе существует возможность отображения всех переменных, которые используются в текущей сессии. Для этого следует выполнить команду Maxima > Show Variables (Показать переменные). После этого в ячейке ввода появится текст "values", а в ячейке вывода в квадратных скобках - перечень переменных.
Значение переменной можно очистить с помощью команды kill(). Для этого нужно ввести kill(name), где name - имя выражения, которое уничтожается; причем это может быть как имя, назначенное вами, так и любая ячейка ввода или вывода. С помощью команды kill(all) можно очистить сразу всю память и освободить все имена. В этом случае очистятся также и все ячейки ввода-вывода, а их нумерация опять начнется с единицы.
Размерные величины
Для использования размерных величин нужно дозагрузить специальный пакет:
load(units)
Для добавления единицы измерения после ввода числового значения следует ввести символ "*" и общепринятое сокращенное название единицы. В дальнейшем действия с такими переменными будут осуществляться с учетом единиц измерения.
По умолчанию пакет работает в системе МКС (метры-килограммы-секунды) и конвертирует другие единицы измерения в семь базовых единиц этой системы.
При необходимости Maxima позволяет изменить систему размерных единиц. Для этого используется команда setunits, аргументами которой являются три базовых единицы измерения: веса, длины и времени. После этого введенные ранее переменные, являющиеся размерными величинами, автоматически переводятся к выбранной системе:
Для возврата к системе МКС команда setunits имеет вид:
setunits([kg, m, s])
Наконец пакет также предоставляет возможность перевода размерных единиц из одной системы измерений в другую. Для этого используется функция Convert, которая имеет такой синтаксис:
Convert[название величины, которую следует перевести в другую систему; название величины, которуе следует получить]
Системные (зарезервированные) переменные
Программа содержит несколько системных переменных. Как правило, имена системных переменных начинаются со знака "%". Это позволяет, в первую очередь, избежать их возможного совпадения с именами переменных, которые присваиваются пользователями, и которые зачастую стремятся сделать их максимально короткими. Благодаря этому также легко определить зарезервированные системой имена.
Зарезервированными именами ? и е обозначены общеизвестные математические константы; а через %c с номером обозначаются константы, которые используются во время интегрирования, для которых в математике использование буквы "c" является общепринятым.
Табл. 3. Основные системные переменные |
Системные переменные защищены: нельзя изменить их значение или удалять. Например, при попытке присвоить такой переменной какое-то значение, программа выдаст сообщение об ошибке:
Системные опции
Программа имеет группу зарезервированных переменных, которые называют системными опциями (optional variable). С их помощью изменяется характер выполнения вычислений или действие определенных функций. По сути это переключатели, имеющие два значения: истина и ложь. Их действие в каждом случае является уникальным, и что именно при этом происходит, следует определять из документации.
Функции
Все функции и операторы Maxima работают как с действительными, так и с комплексными числами.
Правила записи функций:
- Имя функции начинается с маленькой буквы, поскольку в противоположном случае запись функции будет считаться символьным выражением.
- Аргументы функции заключаются в круглых скобках.
- Функции можно вкладывать одна в одну.
Табл. 4. Элементарные математические функции |
Функции отсечения
Функции отсечения - это функции, в которых возвращаемый результат зависит от знака или значения аргумента. Во время вычисления происходит сравнение аргумента с некоторыми числовыми константами, например с нулем или целым числом.
Табл. 5. Функции отсечения |
Функции пользователя
Система дает возможность создавать собственные функции.
Для определения собственной функции после записи имени создаваемой функции используется комбинация символов ":=". Но аналогия здесь прослеживается не с алгоритмическим языком Pascal, как может показаться на первый взгляд, а с обозначениями, которые используются в программе: с одной стороны, определение функции можно воспринимать как уравнение (обозначается знаком "="), а с другого - оно родственно с назначением имени некоторому выражению, для чего используется символ ":". Следовательно, определение функции можно считать симбиозом этих двух выражений, и потому полностью логично, что с этой целью используются оба символа.
Например:
Валерий ФЕТИСОВ
Горячие темы