Компьютерра - Журнал «Компьютерра» № 16 от 25 апреля 2006 года
- Название:Журнал «Компьютерра» № 16 от 25 апреля 2006 года
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Компьютерра - Журнал «Компьютерра» № 16 от 25 апреля 2006 года краткое содержание
Журнал «Компьютерра» № 16 от 25 апреля 2006 года - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Автор: Вадим Житников
В давние, давние времена компьютеры занимались только своими прямыми обязанностями: они считали. Складывали и вычитали, решали системы уравнений, интегрировали и дифференцировали. Рассчитывали траектории баллистических ракет и аэродинамические характеристики самолетов, предсказывали погоду и моделировали атомные реакторы. С тех пор отношение к технике, которая когда-то называлась вычислительной, сильно изменилось — и сейчас во многих домашних и офисных компьютерах самой сложной «математической» программой является стандартный «Калькулятор». Неужели математика сдала свои позиции в эпоху персональных компьютеров?
Разумеется, это не так. Просто компьютеры в полной мере демонстрируют свое главное свойство: быть универсальным устройством — каждый получает от них то, что ему нужно. Так что если вы являетесь студентом, инженером или научным сотрудником и вам требуется решать на ПК именно математические задачи, то современные компьютеры открывают перед вами самые широкие возможности.
Существует множество программ, предназначенных для узкоспециализированных математических расчетов. Больше всего известны и широко распространены универсальные пакеты-комбайны, пригодные для занятий самой разной математической деятельностью. По функциональности они делятся в целом на две категории: пакеты, предназначенные в основном для численных расчетов (например, MatLab) и системы компьютерной алгебры (Computer Algebra System), к которым относятся Mathematica, Maple и (отчасти) MathCAD — они также называются системами символьных или аналитических вычислений (Symbolic Manipulation Program). Это наиболее универсальные математические программы, способные решать самые разные задачи, причем как численно, так и точно — аналитически.
Возможностей у подобного софта — множество, и есть только одна проблема: все эти программы довольно дороги. А как же свободное программное обеспечение, спросите вы? Оказывается, и здесь дело обстоит неплохо. Существуют альтернативы как для MatLab (системы Octave и Scilab), так и свободные системы аналитических вычислений — Maxima и Axiom. О последних и поведем речь.
Но сначала чуть подробнее о том, что же умеют делать универсальные системы компьютерной алгебры, к которым относятся Maxima и Axiom. Если кратко, то подобные программы обладают «знаниями» алгебры и математического анализа в объеме первых курсов любого технического университета. Системы аналитических вычислений (САВ) умеют преобразовывать выражения: упрощать, приводить подобные, раскрывать скобки или, наоборот, группировать подобные члены. Они умеют вычислять производные, пределы и интегралы, решать системы алгебраических и дифференциальных уравнений, производить вычисления с матрицами. Могут упрощать и преобразовывать тригонометрические выражения. Все это делается точно, аналитически.

Впрочем, не всякая задача имеет точное решение, и поэтому численные вычисления тоже не забыты, причем с рядом очень приятных особенностей. Так, величина целых чисел неограничена, а вычисления с плавающей точкой могут выполняться с любой заранее заданной точностью. Хотите увидеть факториал 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? На самом деле оба пакета имеют весьма длительную историю.
Читать дальшеИнтервал:
Закладка: