йНМЯОЕЙР ОН МЮВЕПРЮРЕКЭМНИ ЦЕНЛЕРПХХ хМФЕМЕПМЮЪ ЦПЮТХЙЮ юПУХРЕЙРСПЮ щбл хМТНПЛЮРХЙЮ Х ХМТНПЛЮЖХНММШЕ РЕУМНКНЦХХ

Предыдущий разделУровень вышеСледующий раздел

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

Предыдущий разделУровень вышеСледующий раздел

мЮВЕПРЮРЕКЭМЮЪ ЦЕНЛЕРПХЪ Х ХМФЕМЕПМЮЪ ЦПЮТХЙЮ, ОЕПЯОЕЙРХБЮ