Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая информатика.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
671 Кб
Скачать
☆

Программирование в системе 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]