Журнал «Компьютерра» № 16 от 25 апреля 2006 года, стр. 17

Разумеется, история рождения на свет HTC Wizard отличается от изложенной, хотя выбор такого процессора я склонен объяснять именно нежеланием разработчиков рисковать. Заодно, может, решили, что серию раздвижных терминалов будет открывать сравнительно недорогая модель: в случае неудачных продаж потери бы были меньше. Пока вынужден констатировать, что доступного устройства не получилось, все же трубка за 620 долларов в эту категорию не попадает. Снижения стоимости следует ждать не раньше, чем на рынок выйдут и проведут там определенное время новые смартфоны SonyEricsson, Nokia E-series, а также представители отряда HTC Hermes. В общем, не так уж и долго осталось.

Софтерра: Компьютеры, математика и свобода

Автор: Вадим Житников

В давние, давние времена компьютеры занимались только своими прямыми обязанностями: они считали. Складывали и вычитали, решали системы уравнений, интегрировали и дифференцировали. Рассчитывали траектории баллистических ракет и аэродинамические характеристики самолетов, предсказывали погоду и моделировали атомные реакторы. С тех пор отношение к технике, которая когда-то называлась вычислительной, сильно изменилось – и сейчас во многих домашних и офисных компьютерах самой сложной «математической» программой является стандартный «Калькулятор». Неужели математика сдала свои позиции в эпоху персональных компьютеров?

Компьютеры и математика

Разумеется, это не так. Просто компьютеры в полной мере демонстрируют свое главное свойство: быть универсальным устройством – каждый получает от них то, что ему нужно. Так что если вы являетесь студентом, инженером или научным сотрудником и вам требуется решать на ПК именно математические задачи, то современные компьютеры открывают перед вами самые широкие возможности.

Существует множество программ, предназначенных для узкоспециализированных математических расчетов. Больше всего известны и широко распространены универсальные пакеты-комбайны, пригодные для занятий самой разной математической деятельностью. По функциональности они делятся в целом на две категории: пакеты, предназначенные в основном для численных расчетов (например, MatLab) и системы компьютерной алгебры (Computer Algebra System), к которым относятся Mathematica, Maple и (отчасти) MathCAD – они также называются системами символьных или аналитических вычислений (Symbolic Manipulation Program). Это наиболее универсальные математические программы, способные решать самые разные задачи, причем как численно, так и точно – аналитически.

Возможностей у подобного софта – множество, и есть только одна проблема: все эти программы довольно дороги. А как же свободное программное обеспечение, спросите вы? Оказывается, и здесь дело обстоит неплохо. Существуют альтернативы как для MatLab (системы Octave и Scilab), так и свободные системы аналитических вычислений – Maxima и Axiom. О последних и поведем речь.

Системы аналитических вычислений

Но сначала чуть подробнее о том, что же умеют делать универсальные системы компьютерной алгебры, к которым относятся Maxima и Axiom. Если кратко, то подобные программы обладают «знаниями» алгебры и математического анализа в объеме первых курсов любого технического университета. Системы аналитических вычислений (САВ) умеют преобразовывать выражения: упрощать, приводить подобные, раскрывать скобки или, наоборот, группировать подобные члены. Они умеют вычислять производные, пределы и интегралы, решать системы алгебраических и дифференциальных уравнений, производить вычисления с матрицами. Могут упрощать и преобразовывать тригонометрические выражения. Все это делается точно, аналитически.

Журнал «Компьютерра» № 16 от 25 апреля 2006 года - _636b9a1.jpg

Впрочем, не всякая задача имеет точное решение, и поэтому численные вычисления тоже не забыты, причем с рядом очень приятных особенностей. Так, величина целых чисел неограничена, а вычисления с плавающей точкой могут выполняться с любой заранее заданной точностью. Хотите увидеть факториал 1000 – пожалуйста! А ведь это число с 2568 цифрами. Хотите число ? с сотней знаков после запятой – никаких проблем! Главное, чтобы хватило вычислительных ресурсов компьютера[Распечатка числа p со ста знаками после запятой хранится у меня дома как реликвия из далекого 1981 года. Вычислялось оно на отечественной ЦВМ «Мир-1», умевшей работать с произвольно задаваемой точностью чисел, с помощью встроенной функции arcos(-1). Процесс расчета занимал около пятидесяти минут, а ресурсов там было – 600-килогерцовое АЛУ, 4 Кбайт оперативной памяти на магнитных сердечниках и никаких внешних накопителей, кроме считывателя перфоленты. – С.Л.]. Ну и наконец, построение красивых графиков – неотъемлемая часть любой системы аналитических вычислений. Математика – наука абстрактная, а человеческое мышление образно. Хорошо известно – подавляющая часть информации поступает к человеку через зрение, поэтому без визуализации математических данных не обойтись.

Журнал «Компьютерра» № 16 от 25 апреля 2006 года - _636g9u2.jpg

Помимо основных математических возможностей, каждая система аналитических вычислений имеет встроенный язык программирования. С помощью этого языка возможности системы можно расширять, и каждая САВ имеет большую библиотеку пакетов для решения специальных математических задач.

Журнал «Компьютерра» № 16 от 25 апреля 2006 года - _636w9s3.jpg

Посмотрим, как работает САВ не практике. На рис. 1 и 2 показано, как Maxima справляется с тремя задачками из курса школьной алгебры: упрощение тригонометрического выражения, решение системы линейных уравнений и построение графика функции y=x/[(x–1)(x^2–2)]. Трехмерные графики выглядят еще интереснее. Axiom обладает своей собственной графической подсистемой, способной создавать двух– и трехмерные графики очень высокого качества. На рис. 3 изображена поверхность, известная как тригонометрический винт и построенная с помощью Axiom. А Maxima для построения графиков использует внешнюю программу gnuplot. Результат работы такой «связки» можно видеть на рис. 4. Давайте устроим маленькую математическую викторину – что за функция изображена на этом рисунке? Ответ найдете в конце статьи.

Журнал «Компьютерра» № 16 от 25 апреля 2006 года - _636f9e4.jpg

Как видите, все довольно просто. Правда, и задачи тоже простые – они выбраны такими для иллюстрации. Но главная сила САВ в том, что они способны решать чрезвычайно громоздкие задачи. Например, Axiom может взять любой интеграл, если только он «берется» в элементарных функциях. Более того: в отличие от численных расчетов, являющихся по своей природе приближенными и потому не имеющих «доказательной силы» с точки зрения чистой математики, аналитические результаты, полученные с помощью САВ, вполне можно использовать для строгих математических доказательств. Но даже если вы не профессионал в математике и подобные возможности вам ни к чему, все равно использование САВ в виде интеллектуального калькулятора может быть весьма полезным.

Математика и свобода

Из далеко не полного перечисления общих возможностей САВ ясно, что подобные программы весьма сложны и требуют для своего создания больших усилий. Трудозатраты на такую систему оцениваются в несколько десятков человеко-лет и требуют от программиста солидной математической подготовки. Откуда тогда могли появиться свободные системы аналитических вычислений Maxima и Axiom? На самом деле оба пакета имеют весьма длительную историю.

Особенно любопытна «биография» Maxima. Все началось в 1967 году в Массачусетском технологическом институте. В рамках проекта создания искусственного интеллекта была инициирована разработка первой системы компьютерной алгебры Macsyma. Далее программа в течение многих лет использовалась и развивалась в университетах Северной Америки, где появилось множество вариантов системы. Maxima является одним из таких вариантов, созданным профессором Вильямом Шелтером (William Schelter) в 1982 году. В 1998 году он получил официальное разрешение Министерства энергетики США на выпуск Maxima под лицензией GPL. А начиная с 2001 года Maxima развивается как свободный международный проект, базирующийся на SourceForge.