Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы работы в xwMaxima. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Каждую следующую команду не обязательно писать с но­вой строки; если ввести несколько команд в одну строчку, каж­дой из них все равно будет соответствовать свое имя ячейки. К примеру, здесь в строке после метки %i1 введены ячейки от %i1 до %i4; в ячейке %i3 используются %i1 и %i2 (обозначенная как _ - предыдущий ввод).
Рис. 9. Пример ввода команд в одну строку
В wxMaxima последнюю или единственную команду в строке можно не снабжать завершающим символом - это срабо­тает так же, как если бы она была завершена ; , то есть вывод за­глушен не будет (рис. 8, 9).
Помимо использования имен ячеек, мы, естественно, мо­жем и сами давать имена любым выражениям. По-другому мож­но сказать, что мы присваиваем значения переменным, с той раз­ницей, что в виде значения такой переменной может выступать любое математическое выражение. Делается это с помощью двоеточия - знак равенства оставлен уравнениям, которые, учи­тывая общий математический контекст записи, проще и привыч­нее так читаются. И к тому же, так как основной конек Maxima — символьная запись и аналитические вычисления, уравнения дос­таточно часто используются. Например (рис. 10):
Рис. 10. Принцип присвоения выражений
11
В каком-то смысле двоеточие даже нагляднее в таком кон­тексте, чем знак равенства: это можно понимать так, что задаем некое обозначение, а затем через двоеточие расшифровываем, что именно оно обозначает. После того, как выражение поименовано, мы в любой момент можем вызвать его по имени (рис. 11):
Рис. 11. Вызов переменной по имени
Любое имя можно очистить от присвоенного ему выраже­ния функцией kill() и освободить занимаемую этим выражением память. Для этого нужно просто набрать kill(name), где name – имя уничтожаемого выражения; причем это может быть как имя, назначенное вами, так и любая ячейка ввода или вывода. Точно так же можно очистить разом всю память и освободить все име­на, введя kill(all). В этом случае очистятся в том числе и все ячей­ки ввода-вывода, и их нумерация опять начнется с единицы.
Первоначально при знакомстве с программным пакетом wxMaxima для удобства работы необходимо настроить рабочий язык – русский. Для этого необходимо нажать Edit → Configura­tion → Options → Language (рис. 12). Выбираем Russian. Затем кнопку ОК. Перезапускаем программу и язык становится русским.
12
Рис. 12. wxMaxima configuration
3.1. Ввод простейших команд в wxMaxima
После запуска wxMaxima появляется окно программы
(рис. 13).
Рис. 13. Окно программы wxMaxima
В верхней графической части окна интерфейса Maxima рас-
сказывает, что загружена версия 16.04.21, Maxima приготовилась воспринимать команды. Разделителем команд является сим­вол;(точка с запятой). После ввода команды необходимо нажать клавишу Enter для ее обработки и вывода результата.
В ранних версиях Maxima и некоторых ее оболочках (на-
пример, wxMaxima), и в консольной версии наличие точки с за­пятой после каждой команды строго обязательно. Поэтому на­стоятельно рекомендуем при использовании Maximaне забывать добавлять точку с запятой; после каждой команды.
В случае, когда выражение надо отобразить, а не вычис-
лить, перед ним необходимо поставить знак ‘ (одинарная кавыч­ка). Но этот метод не работает, когда выражение имеет явное значение, например, выражение sin(π) Maxima рассматривает как нуль и при наличии апострофа (рис.14).
Трудно предусмотреть многообразие возможных вариантов
использования Максимы для расчета или преобразования выра­жений. В сложных случаях можно попытаться получить справку на английском языке.
13
Рис. 14. Команды представления и расчета интеграла
3.2. Обозначение команд и результатов вычислений
После ввода каждой команде присваивается порядковый
номер. На приведенном ниже рис. 15 введенные команды имеют номера 4–6 и обозначаются соответственно (%i4), (%i5), (%i6). Результаты вычислений имеют соответственно порядковый но­мер (%o4), (%o5) и т. д. Где "i" – сокращение от англ. input (ввод), а "o" – англ. output (вывод).
Рис. 15. Правила записи команд
Этот механизм позволяет при дальнейшей записи команд
сослаться на ранее записанные, например, (%i1)+(%i2) будет оз­начать добавление к выражению первой команды выражения второй с последующим вычислением результата. Также можно использовать и номера результатов вычислений, например, таким образом (%o1)*(%o2).
14
Для последней выполненной команды в Maxima есть спе-
циальное обозначение – %.
Пример: Вычислить значение производной функции в точ-
ке х=1 (рис. 16).
)
(
=Ā+
Рис. 16. Решение функции в точке х
1
Команда (%i19) была выполнена, и был получен результат
(diff). Поэтому следующая команда (%i17) сослалась на уже по­лученный результат, но уточнила значение переменной х, поэто­му команда получала вид (%i17) (%о17), х = 1.
3.3. Ввод числовой информации
Правила ввода чисел в Maxima точно такие, как и для мно-
гих других подобных программ. Целая и дробная части десятич­ных дробей разделяются символом точка. Перед отрицательными числами ставится знак минус. Числитель и знаменатель обыкно­венных дробей разделяется при помощи символа / (прямой слэш) (рис. 17).
Рис. 17. Ввод дробей
15
Обратите внимание, что если в результате выполнения опе-
е
󰇻
(
−
1
)
󰇻
1
+
(5)
2
⁄
рации получается некоторое символьное выражение, а необходи­мо получить конкретное числовое значение в виде десятичной дроби, то решить эту задачу позволит применение оператора numer. В частности, он позволяет перейти от обыкновенных дро­бей к десятичным.
Здесь Maxima, прежде всего, действовала по умолчанию.
Она сложила дроби 3/7 и 5/3 по правилам арифметики точно: на­шла общий знаменатель, привела дроби к общему знаменателю и сложила числители. В итоге она получила 44/21. Лишь после то­го, как мы попросили её получить численный ответ, она вывела приближенный, с точностью 16 знаков численный ответ 2,095238095238095.
3.4. Константы
В Maxima для удобства вычислений есть ряд встроенных
констант, самые распространенные из них показаны в следующей таблице (табл.1):
Таблица 1
Названия констант и их обозначение в Maxima
Название Обозначение
(число Пи) %pi
(экспонента) %e Мнимая единица ( +∞ (плюс бесконечность) inf
- ∞ (минус бесконечность) minf Истина true Ложь false Комплексная бесконечность infinity Слева (в отношении пределов) minus Справа (в отношении пределов) plus
Золотое сечение (
)
)
%i
%phi
16
3.5. Арифметические операции
Обозначения арифметических операций в Maxima ничем не отличаются от классического представления, используются ма­тематические знаки: + – * /.
Рис. 18. Возведение в степень
Возведение в степень можно обозначать тремя способами: ^,^^
, ** (рис. 18).
Извлечение корня степени n записывают, как степень ^^(1/n).
Maxima находит факториал числа. Эта операция обознача­ется восклицательным знаком.
Например, 6!=1 2 3 4 5 6=120.
Для увеличения приоритета операции, как и в математике, при записи команд для Maxima используют круглые () скобки.
3.6. Переменные
Для хранения результатов промежуточных расчетов при­меняются переменные. Заметим, что при вводе названий пере­менных, функций и констант важен регистр букв, так переменные x и X – это две разные переменные.
Присваивание значения переменной осуществляется с ис­пользованием символа: (двоеточие), например, x: 5; (рис. 19).
17
Если необходимо удалить значение переменной (очистить ее), то применяется метод kill:
kill(x) – удалить значение переменной x;
kill(all) – удалить значения всех используемых ранее пере-
менных (рис. 19).
Рис. 19. Присвоение и удаление данных
И, кроме того, метод kill начинает новую нумерацию для исполняемых команд (обратите внимание, что ответом на коман­ду (%i3), приведенную выше, оказался ответ с номером ноль (%o0) done, и далее нумерация команд продолжилась с единицы).
3.7. Математические функции
В Maxima имеется достаточно большой набор встроенных математических функций. Вот некоторые из них (табл. 2).
Встроенные математические функции Maxima
Функции Обозначение
1 2
Тригонометрические sin(синус)
cos(косинус) tan (тангенс)
cot (котангенс) Обратные тригонометриче­ские
Секонс, косеконс Sec x = 1/cos x, (суконс),
asin(арксинус)
acos (арккосинус)
atan (арктангенс)
acos (арккотангенс)
Csc x=1/sin x, (косенконс)
18
Таблица 2
Окончание табл. 2
1 2
Гиперболические sinh(гиперболический синус)
cosh(гиперболический косинус)
tanh(гиперболический тангенс)
coth(гиперболический котангенс)
sech(гиперболический секанс)
cosh (гиперболический косеканс) Натуральный логарифм Квадратный корень Модуль Остаток от деления Минимальный из списка min(x1,…, xN) Максимальный из списка max(x1,…,xN) Знак аргумента sign(x)=pos (x>0);
log();
sqrt();
abs();
mod()
sing(x)=zero (x=0);
sign(x)=neg (x<0);
sign(x)=pnz – (не определен)
Следует иметь ввиду, что некоторые названия функций от­личаются от названий, используемых в отечественной литерату­ре: Вместо tg – tan, вместо ctg – cot, вместо arcsin – asin, вместо
arccos – acos, вместо arctg – atan, вместо arcctg – acot, вместо ln – log, вместо cosec – csc (рис. 20).
Рис. 20. Представление функций
19
3.8. Правило записи функций
Для записи функции необходимо указать ее название, а за­тем в круглых скобках записать через запятую значения аргумен­тов. Если значением аргумента является список, то он заключает­ся в квадратные скобки, а элементы списка также разделяются запятыми (рис. 21).
Пример:
sin(x);
integrate(sin(x),x, - 5,5);
plot2d([sin(x)+3,cos(x)],[x, - %pi, %pi],[y, - 5,5]);
Рис. 21. Выполнение примера
3.9. Пользовательские функции
Пользователь может задать собственные функции (рис. 22). Для этого сначала указывается название функции, в скобках пе­речисляются названия аргументов, после знаков := (двоеточие и равно) следует описание функции. После задания пользователь­ская функция вызывается точно так, как и встроенные функции Maxima.
Пример:
Рис. 22. Запись функций
20