- •Работа с выражениями
- •Создание графических изображений
- •Решение уравнений, систем и неравенств
- •Пределы и ряды
- •Дифференцирование и интегрирование
- •Операции с матрицами
- •Логические выражения
- •Система символьной математики Maxima
- •Работа с выражениями
- •Алгебраические преобразования
- •Решение уравнений
- •Определение функций
- •Построение графиков
- •Операции математического анализа
- •Матричные вычисления
- •Программирование в системе Maxima
Программирование в системе Maxima
До сих пор мы использовали систему Maxima в интерактивном режиме, подобно калькулятору. Если часто приходится выполнять определенную последовательность вычислений, то лучше оформить ее в виде программы, которая затем вызывается в случае надобности. Ниже приводится небольшая программа для нахождения критических точек функции f(x). Пользователю предлагается ввести функцию f, после чего вычисляется производная введенной функции и при помощи функции solve решается уравнение fx = 0. Программа записывается в текстовый файл и затем загружается в систему Maxima при помощи функции batch. Приведем текст программы:
/* -----------------------------------------------------
Это файл critpoints.max:
(Maxima использует комментарии в стиле C)
-------------------------------------------------- */
critpts():=(
print("Программа нахождения критических точек"),
/* Запрос на ввод функции */
print("Введите функцию f(x):"),
f:read(),
/* Печать введенной функции (для контроля) */
print("f = ",f),
/* В переменную eq помещаем значение производной */
eq:diff(f,x),
/* Решаем уравнение */
solve(eq, x)
)$
Программа состоит из единственной функции (без аргументов), которая называется critpts. Команды отделяются друг от друга запятыми. Вот пример выполнения программы:
(C1) batch("critpoints.max");
batching #p/home/test/critpoints.max
(C2) critpts() := (PRINT("Программа #
нахождения критических точек"),
PRINT("Введите функцию f(x):"),
f : READ(),
PRINT("f = ", f),
eq : DIFF(f, x),
SOLVE(eq, x))
(C3) critpts() ;
Программа нахождения критических точек
Введите функцию f(x):
(x+2)/(x^2+1);
x + 2
f = ------
2
x + 1
(D3) [x = - SQRT(5) - 2, x = SQRT(5) - 2]
