Операторы SOLVE и SOLUTIONS предназначены для решения равенств и неравенств, используя точные алгебраические методы. Функция с оператором SOLVE возвращает результат решения в форме равенств и/или неравенств. Функция с оператором SOLUTIONS возвращает результат решения в форме вектора значений, которые удовлетворяют равенства или неравенства. Для примера возьмем уравнения и неравенства вида: F(x) {<|?|=|?|>} const.
Справа от операторов решения показан результат их работы с уравнениями, сформированными из трех, приведенных ниже, функций:
[f(x):=x^3-3*x^2 -13*x+1, f2:=(a*b+c)/(a*c - b), f3(x):=ABS(ABS(2*x+1) -5)]
SOLVE(f1(x), x) x = 5 ? x = -3 ? x = 1;
SOLVE(f1(x)=0, x) x = 5 ? x = -3 ? x = 1;
SOLVE([f1(x)=0], x) [x = -3, x = 1, x = 5];
SOLUTIONS(f(x), x) [1, -3, 5].
SOLVE(f2, c) c = - a*b;
SOLVE([f2], c) [c = - a*b];
SOLUTIONS([f2], c) [- a*b].
SOLVE(f3(x)=2, x) x = -4 ? x = 3 ? x = -2 ? x = 1;
SOLVE(f3(x)>2, x) x < -4 ? -2 < x < 1 ? x > 3;
SOLVE([f3(x)=2], x) [x = -4, x = -2, x = 1, x = 3];
SOLVE([f3(x)>2], x) [x < -4, -2 < x < 1, x > 3];
SOLUTIONS(f3(x)=2, x) [1, -2, 3, -4].
Для численного решения трансцендентных уравнений одной переменной в список параметров модифицированного оператора NSOLVE(*) добавляются еще два фактических параметра: нижний и верхний пределы диапазона, в котором может находиться его корень. Уравнение желательно представлять в неявной форме, то есть с правой частью равной нулю, который записывать необязательно, так как при подстановке функции в оператор NSOLVE(*) он по умолчанию подразумевается. Исполняется оператор нажатием кнопки [»]. Например:
f(x) := (EXP(x) + 3)/(x + SIN(x)) - 5*x;
NSOLVE(f(x), x, 0, 2) x = 0.7279145842.
Точность решения этого уравнения может быть задана либо из меню опций или из командной строки оператором присвоения:
NotationDigits := 20;
NSOLVE(f(x), x, 0, 2) x = 0.72791458423664709195.
Показанный способ установки количества значащих десятичных разрядов в выводимых числах результатов вычислений будет действовать для всех операторов, записанных в текущей сессии, пока аналогичным образом или через меню его значение не будет изменено на другое. Такой способ установки позволителен для всех инициализируемых параметров пакета Derive.