Читать «Журнал «Компьютерра» № 9 от 7 марта 2006 года» онлайн - страница 44
Компьютерра
Человечество штурмует (или точнее будет сказать — осаждает?) неприступную крепость математики вот уже несколько тысячелетий. Раньше в этом бою мы могли полагаться только на свои собственные силы, на силы своего интеллекта. С появлением вычислительной техники ситуация изменилась: теперь наш арсенал постоянно пополняется новыми «осадными орудиями»; математические пакеты, такие как Maple или Matlab, занимают все более важное место в жизни «бойцов математического фронта». Но это «тяжелая артиллерия», с которой не всякий сумеет управиться.
Algebrus — совсем другое дело. Разработка Владислава Апостолюка сочетает простой и удобный интерфейс с впечатляющими возможностями для решения широкого круга математических задач. Едва ли не более важным, однако, является наличие огромного потенциала для расширения этих возможностей: Algebrus представляет собой среду разработки, ориентированную на алгоритмизацию математических вычислений; в ее основе лежит специализированный язык программирования XPascal, являющийся, как нетрудно догадаться из названия, расширенной и снабженной библиотекой математических методов версией Паскаля. Этот язык призван помочь тем, кто не нашел в стандартных библиотеках Algebrus нужных функций и взялся писать их сам. Но прежде чем разбираться, чему можно «научить» Algebrus, выясним, что он уже умеет.
Использование командной строки на главной панели программы открывает доступ ко всем или почти ко всем функциям, реализованным в Algebrus’е. Для тех же, кого командная строка по каким-либо причинам не устраивает, есть панели Evaluator и Plotter, облекающие функции в простую и удобную интерфейсную оболочку (рис. 1). Впрочем, и в самой командной строке нет ничего мудреного. Скажем, чтобы воспользоваться ею как обыкновенным калькулятором, не требуется никаких предварительных знаний о программе: в качестве команды можно ввести строчку вида «2*2» и мгновенно получить ожидаемый ответ "4". Разумеется, Algebrus знает элементарные (и не только) математические функции, так что наличие синуса (sin), логарифма (ln) или даже гамма-функции (Gamma) в выражении его не смутит. Впрочем, подобной функциональностью сейчас никого не удивишь, а Algebrus’у по зубам и гораздо более сложные задачи. Например, команда LinearSolve позволяет легко решать системы линейных уравнений: в качестве аргументов ей подаются матрицы коэффициентов системы и вектор правых частей. Так, команда LinearSolve({{2,1},{1,2}},{4,5}) выдаст решение системы {2x+y=4, x+2y=5}.
Среди других возможностей программы можно назвать операции с многочленами (поиск корней и экстремумов, дифференцирование и т. д.), решение простых геометрических задачек (таких как нахождение площадей многоугольников или вычисление третьей стороны треугольника по двум другим сторонам и углу между ними), статистические расчеты (например, можно посчитать корреляцию между двумя наборами чисел), численное интегрирование, решение обыкновенных дифференциальных уравнений и многие другие.
Большинство встроенных функций можно найти на панели Evaluator — при этом программа сразу же предложит ввести необходимые аргументы и посчитает результат — так что запоминать синтаксис команд не обязательно (рис. 2).