Впрочем, не всякая задача имеет точное решение, и поэтому численные вычисления тоже не забыты, причем с рядом очень приятных особенностей. Так, величина целых чисел неограничена, а вычисления с плавающей точкой могут выполняться с любой заранее заданной точностью. Хотите увидеть факториал 1000 — пожалуйста! А ведь это число с 2568 цифрами. Хотите число π с сотней знаков после запятой — никаких проблем! Главное, чтобы хватило вычислительных ресурсов компьютера[Распечатка числа p со ста знаками после запятой хранится у меня дома как реликвия из далекого 1981 года. Вычислялось оно на отечественной ЦВМ «Мир-1», умевшей работать с произвольно задаваемой точностью чисел, с помощью встроенной функции arcos(-1). Процесс расчета занимал около пятидесяти минут, а ресурсов там было — 600-килогерцовое АЛУ, 4 Кбайт оперативной памяти на магнитных сердечниках и никаких внешних накопителей, кроме считывателя перфоленты. — С.Л.]. Ну и наконец, построение красивых графиков — неотъемлемая часть любой системы аналитических вычислений. Математика — наука абстрактная, а человеческое мышление образно. Хорошо известно — подавляющая часть информации поступает к человеку через зрение, поэтому без визуализации математических данных не обойтись.
Помимо основных математических возможностей, каждая система аналитических вычислений имеет встроенный язык программирования. С помощью этого языка возможности системы можно расширять, и каждая САВ имеет большую библиотеку пакетов для решения специальных математических задач.
Посмотрим, как работает САВ не практике. На рис. 1 и 2 показано, как Maxima справляется с тремя задачками из курса школьной алгебры: упрощение тригонометрического выражения, решение системы линейных уравнений и построение графика функции y=x/[(x—1)(x^2—2)]. Трехмерные графики выглядят еще интереснее. Axiom обладает своей собственной графической подсистемой, способной создавать двух— и трехмерные графики очень высокого качества. На рис. 3 изображена поверхность, известная как тригонометрический винт и построенная с помощью Axiom. А Maxima для построения графиков использует внешнюю программу gnuplot. Результат работы такой «связки» можно видеть на рис. 4. Давайте устроим маленькую математическую викторину — что за функция изображена на этом рисунке? Ответ найдете в конце статьи.
Как видите, все довольно просто. Правда, и задачи тоже простые — они выбраны такими для иллюстрации. Но главная сила САВ в том, что они способны решать чрезвычайно громоздкие задачи. Например, Axiom может взять любой интеграл, если только он «берется» в элементарных функциях. Более того: в отличие от численных расчетов, являющихся по своей природе приближенными и потому не имеющих «доказательной силы» с точки зрения чистой математики, аналитические результаты, полученные с помощью САВ, вполне можно использовать для строгих математических доказательств. Но даже если вы не профессионал в математике и подобные возможности вам ни к чему, все равно использование САВ в виде интеллектуального калькулятора может быть весьма полезным.
Из далеко не полного перечисления общих возможностей САВ ясно, что подобные программы весьма сложны и требуют для своего создания больших усилий. Трудозатраты на такую систему оцениваются в несколько десятков человеко-лет и требуют от программиста солидной математической подготовки. Откуда тогда могли появиться свободные системы аналитических вычислений Maxima и Axiom? На самом деле оба пакета имеют весьма длительную историю.
Особенно любопытна «биография» Maxima. Все началось в 1967 году в Массачусетском технологическом институте. В рамках проекта создания искусственного интеллекта была инициирована разработка первой системы компьютерной алгебры Macsyma. Далее программа в течение многих лет использовалась и развивалась в университетах Северной Америки, где появилось множество вариантов системы. Maxima является одним из таких вариантов, созданным профессором Вильямом Шелтером (William Schelter) в 1982 году. В 1998 году он получил официальное разрешение Министерства энергетики США на выпуск Maxima под лицензией GPL. А начиная с 2001 года Maxima развивается как свободный международный проект, базирующийся на SourceForge.
История axiom почти столь же долгая. Система аналитических вычислений Scratchpad развивалась с 1971 года как научный проект исследовательского центра имени Томаса Ватсона фирмы IBM. В начале 1990-х годов Scratchpad был продан фирме NaG (Numerical algorithms Group) и переименован в axiom. А в 2002 году NaG выпустила axiom под свободной лицензией типа лицензии BSD (здесь можно попробовать axiom в действии через веб-интерфейс).