, задания на вычисление задаются в виде символьных (формульных) выражений и результаты вычислений также получаются в символьном виде. Численные результаты при этом являются частными случаями результатов символьных вычислений.
К примеру, попытка вычислить в общем виде выражение sin(x)²+cos(x)²=1 с помощью численных математических систем или программ на обычных языках программирования к успеху не приведет. Вместо ожидаемого результата появится сообщение об ошибке вида: «Переменная х не определена!».
СКА не только не боятся применения неопределенных переменных, но и предпочитают работать с ними. Зададим, к примеру, в Maple 9.5 квадратное уравнение, присвоив его выражение переменной eq (файл solve):
>> eq:=a*x^2+b*x+c=0;
eq:= ах² + bx + с = 0
Проверим статус переменной х.
>> х;
x
Переменная просто повторена в выводе, что и указывает на то, что она неопределенная. Теперь попробуем решить уравнение, используя функцию solve:
>> solve(eq,x);
Получено хорошо известное решение для квадратного уравнения. А теперь попробуем найти аналитическое решение для других переменных a, b и с:
>> solve(eq,а);
>> solve(eq,b);
>> solve(eq,с);
-ax² - bx
Решение прошло успешно — во всех случаях пoлvчeны аналитические выражения для решения. Они более тривиальные, чем решение eq относительно х.
Не следует считать решения в аналитическом виде ограничением СКА. Большинство СКА, в том числе и Maple 9.5/10 легко решают подавляющее большинство задач и в численном виде и являются универсальными СКМ. Так, определив переменные а, b и с, присвоением им некоторых значений
>> а:=2:b:=3:с:=4:
получим решение в численном виде:
>> solve(eq,х);
Оно получено в виде комплексно-сопряженных чисел, в них I это мнимая единица, т. е. √-1.
1.2.5. Данные о скорости вычислений в Maple 9.5
В последних реализациях Maple много внимания было уделено повышению скорости вычислений. Система Maple 8, к примеру, вычисляла факториал максимально возможного числа 32000, затрачивая на это (на ПК с процессором Pentium III 600 МГц) 2,784 с [22]. A Maple 9.5 на современном ПК с процессором Pentium 4 Hyper Threading 2,6 ГГц справляется с этим в более чем в двадцать раз быстрее (файл bench):
>> restart: t := time(): 32000!: TIME-time()-t;
TIME = 0.125
Разумеется, выигрыш в скорости в данном случае обусловлен как применением более скоростного компьютера, так и системы Maple 9.5. К примеру, на том же компьютере Maple 8 выдала результат за 0,583 с, a Maple 7 — 0,610 с. Таким образом, скорость вычисления у Maple 9.5 в данном случае (при равных аппаратных возможностях) оказалась выше более чем вдвое. Любопытно, что при повторном выполнении этой команды время выполнения было показано нулевым, что свидетельствует об эффективном кэшировании программных кодов.