`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Mathematica 5: твердая "пятерка"

0 
 

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

Развитие систем компьютерной математики (СКМ) продолжается не один десяток лет. Первоначально вычислительная техника использовалась именно для ускорения численных расчетов, что и отражено в названии "компьютер" -- вычислитель. Затем появились системы, способные в разумное время выполнять некоторые аналитические преобразования -- находить первообразные и производные, разлагать функции в ряды и т. д. В прошлом эти довольно сложные операции были доступны только для больших ЭВМ и суперкомпьютеров. Впоследствии развитие элементной базы вычислительной техники при параллельном совершенствовании алгоритмов дало возможность перенести решение подобных задач на мини-ЭВМ, а потом и на персональные компьютеры.

Mathematica 5 твердая "пятерка"Сегодня кажется почти невероятным, но был период, когда именно Украина занимала в данной области лидирующие позиции. Созданные во второй половине 70-х годов малые инженерные ЭВМ класса "Мир" позволяли выполнять аналитические преобразования практически на аппаратном уровне. Был разработан и успешно применялся язык символьных вычислений "Аналитик". Как считают многие специалисты, эти технологии настолько опередили современный им уровень научно-технической мысли, что просто не были поняты адекватно... И без должной поддержки прекратили свое развитие.

По-настоящему широкое распространение и внедрение СКМ, впрочем, как и большинства других программных средств, начинается только с массовым распространением ПК современного типа на границе 80--90-х годов. Именно в это время появились наиболее популярные сегодня математические пакеты -- Mathematica, Maple, Mathcad и др. Более других известен, пожалуй, первый из них, созданный компанией Wolfram Research еще 15 лет назад. Ему-то и посвящена настоящая статья, тем более что юбилей был отмечен и выпуском очередной версии.


Секрет успеха

Мы не будет описывать развитие Mathematica от первой версии (1988) до наших дней, чтобы не отвлекаться от основной темы (каждый желающий сможет найти эту информацию на узле разработчика). Скажем только, что Mathematica родилась как достаточно амбициозный для своего времени проект, который должен был включать следующие компоненты:
  • универсальное ядро, одинаково работающее на различных компьютерных платформах;
  • многофункциональный язык программирования, ориентированный на математические приложения;
  • современный пользовательский интерфейс и издательскую систему для работы с научно-технической документацией, содержащей, как правило, большое количество формул и рисунков;
  • обширный набор вспомогательных прикладных пакетов и расширений.
Сегодня можно сказать, что проект не только был реализован в полной мере, но и продолжает более чем успешно развиваться. Несмотря на некоторые шероховатости, которые неизменно сопровождают каждое крупное начинание, Mathematica в течение последнего десятилетия прочно удерживает лидирующие позиции среди аналогичных программ.

Вряд ли будет ошибкой назвать самым важным качеством, принесшим Mathematica огромный успех, универсальность. Данная СКМ в одной оболочке объединяет математический процессор, позволяющий производить как символьные (аналитические), так и численные расчеты, графическую подсистему для визуализации данных, издательскую систему для подготовки публикаций, средства коммуникации с другими приложениями. Благодаря такому сочетанию Mathematica практически не имеет равных в своем сегменте рынка. Ближайший конкурент, математический пакет Maple -- также довольно мощная СКМ, но по некоторым параметрам все-таки значительно уступающая продукту Wolfram Research (например, ее издательские возможности существенно скромнее).

Универсальность Mathematica проявляется не только в широте охвата прикладных областей, но и в ориентации на пользователей различного уровня. Из того, что система является высокоинтеллектуальным продуктом, вовсе не следует, что ее могут использовать только представители научной элиты. Скорее, наоборот -- в последние годы Wolfram Research все активнее (и вполне оправданно) продвигает свою продукцию в сферу высшего и даже среднего образования.


Внутри коробки

Mathematica 5 твердая "пятерка"
Оболочка Mathematica позволяет одновременно работать с множеством инструментов
Итак, Mathematica с самого начала создавалась как объединение ядра (идентично работающего на всех платформах и машинах от ПК до суперкомпьютеров) и оболочки. Такая двухзвенная архитектура имеет ощутимые преимущества. Ядро функционирует как универсальный математический процессор, оболочка же обеспечивает пользовательский интерфейс. На основании такой конструкции возможно создание распределенной вычислительной системы, отдельные компоненты которой реализуются на различных программных и аппаратных платформах. При этом вместо стандартно поставляемой с продуктом оболочки допускается использование собственных разработок.

Например, для интеграции с Java-программами система содержит специальное приложение J/Link. Оно обеспечивает двунаправленное взаимодействие Java-кода и ядра Mathematica. J/Link позволяет загружать произвольные Java-классы, создавать Java-объекты и средствами Mathematica обращаться к их методам и свойствам. Практически все операции, доступные в программах на Java, можно выполнять и в Mathematica, скажем, создать собственный пользовательский интерфейс, который полностью заменит стандартный и предоставит новые элементы (мастера, диалоги) для каких-то специфических целей.

Еще одной важнейшей составной частью системы являются пакеты расширений (add-ons). Они представляют собой наборы модулей, написанных на встроенном языке программирования Mathematica и объединенных по тематике решаемых задач. Пакеты призваны добавить в систему ряд функций, изначально отсутствующих в ядре. С их созданием и модификацией справятся даже опытные пользователи, что упрощает адаптацию под конкретные задачи. Однако применение пакетов имеет некоторые особенности. Так, скорость их работы несколько ниже, чем у встроенных в ядро функций. Кроме того, перед использованием пакеты необходимо предварительно загрузить и сделать доступными. Поэтому с каждой новой версией Mathematica большое количество полезных и популярных функций, поставлявшихся ранее в виде расширений и прошедших таким образом некоторую "обкатку", переносится в ядро и становится органичной частью системы.

Mathematica, как и другие СКМ подобного уровня, имеет достаточно стандартных средств для решения сложнейших математических задач -- многие пользователи ими и ограничиваются. Однако при возникновении по-настоящему неординарных проблем Mathematica готова предоставить весь спектр изощренных инструментов программирования.

Интерпретируемый язык Mathematica является проблемно-ориентированным языком сверхвысокого уровня. По своим возможностям он значительно превосходит распространенные универсальные языки общего назначения, вроде С, С++, Basic, Java и др. При этом его трудно отнести к какому-либо конкретному типу. Он объединил лучшие средства ряда поколений языков, как названных выше, так и многих других, благодаря чему позволяет реализовывать практически все известные концепции и приемы программирования.

Мощь системы Mathematica как инструмента для решения математических задач обусловлена огромным набором готовых процедур, среди которых немало таких, что реализуют сложные преобразования и современные вычислительные методы (как численные, так и аналитические). Среди них -- основные операции анализа, расчет специальных математических функций и многие другие, требующие на обычных языках составления довольно сложных программ.

К характерным особенностям системы Mathematica надо отнести и комплексную визуализацию всех этапов вычислений, начиная с легко понятного и естественного ввода текстов и формул и заканчивая выводом результатов в разнообразных формах -- с использованием графиков и диаграмм различного вида, средств анимации и синтеза звуков.

Наконец, укажем на такую немаловажную деталь, как грамотная и оригинальная организация справочной системы (называемой Help Browser), предоставляющей исчерпывающую и адекватную информацию о пакете. Более того, в нее традиционно включается полный текст бестселлера автора и разработчика системы Стивена Волфрема (Stephen Wolfram) -- The Mathematica Book (в Mathematica 5 входит пятое издание).


Еще один шаг к совершенству

Mathematica 5 твердая "пятерка"
Cправочная система Help Browser стала еще более удобной
В области компьютерной математики каждый выпуск Mathematica традиционно воспринимается как событие первостепенной важности. Не стала исключением и Mathematica 5. Заметим, что до этого в течение четырех лет Mathematica сменила несколько "дробных" номеров (4.0, 4.1 и 4.2), поэтому "целая" версия означает не просто очередную модификацию, а действительно новую веху в развитии продукта.

Усовершенствования коснулись всех без исключения характеристик системы, особенно производительности символьных и численных расчетов. Благодаря введению новых алгоритмов, выполнение некоторых операций ускорилось в десятки и даже сотни раз. Не ставя цель подробно рассмотреть все нововведения, мы остановимся только на ключевых моментах. Более детальную информацию с конкретными примерами можно найти на узле разработчиков.

Численные расчеты. В этой области доработке подверглись главным образом алгоритмы, отвечающие за выполнение операций линейной алгебры (действия над разреженными и плотными матрицами, линейно-алгебраические операции произвольной точности, решения систем линейных матричных уравнений), поиска экстремумов (поддержка крупномасштабного линейного программирования методами внутренней точки, новая функция численной глобальной минимизации), численного решения дифференциальных уравнений. Кроме того, значительно усовершенствованы алгоритмы для работы с числами произвольной точности и арифметики больших чисел, включая оптимизацию кода под конкретный процессор.

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

Программирование и системное ядро. Новая версия Mathematica предоставляет функции для работы с разреженными массивами и новые методы программирования списков. Появилась возможность отображения промежуточных результатов при работе итеративных алгоритмов, доработана система измерений продолжительности процедур.

Для создания на базе Mathematica распределенных вычислительных комплексов в новую версию добавлен модуль .NET/Link, позволяющий интегрировать Mathematica с приложениями, использующими технологическую платформу Microsoft .NET (аналогично J/Link и Java).

Нынешняя версия выпускается для всех основных современных программных платформ (Windows, Macintosh, Linux и Unix) и аппаратных архитектур, в том числе 64-битных (причем с оптимизированным кодом). Особо отметим, что Mathematica 5 полностью работоспособна даже на устаревшей Windows 95, хотя сами разработчики для этой ОС рекомендуют версию 4.2.

Интерфейс, форматы, издательские возможности. Mathematica 5 поддерживает более 50 форматов экспорта/импорта -- рекордное число для математических пакетов. Основными из них традиционно являются TeX, MathML и XML, дополнительно появилась возможность сохранения рабочих документов в формате XHTML с использованием таблиц стилей CSS. В списке графических форматов появились PNG, SVG и DICOM (Digital Imaging and Communications in Medicine, широко используемый в радиологии).

Выше упоминалось, что Mathematica обладает мощными издательскими возможностями. В новой версии они стали еще шире и изощренней благодаря специальному add-on-пакету AuthorTools, который обеспечивает несколько десятков операций для создания предметных указателей (индексов) и оглавлений, настройки колонтитулов и оформления сносок, поддерживает поля для отображения даты/времени и других параметров, позволяет добавлять файлы в справочную систему Mathematica (ставшей даже еще более гибкой и удобной).

Для создания презентаций появилась специальная панель, с помощью которой можно быстро сделать новый ролик, вставить слайд, сгенерировать оглавление.


Наконец пришло время добавить к бочке меда ложку дегтя, а именно: сообщить читателям, во сколько же все это великолепие обойдется. К сожалению, для рядового отечественного пользователя стоимость Mathematica пока что непомерно велика, даже несмотря на то, что для Украины и России предлагаются специальные цены (например, $1320 против $1880 для Северной Америки), а академическим организациям и студентам предоставляются еще более щадящие условия (и адаптированные версии). И все же, если речь идет о крупных научно-технических проектах, подобные вложения вполне оправданны. Ведь приобретение СКМ дает исследователю доступ к уникальному инструменту, способному окупить все затраты. Как мы старались показать, набор реализованных в Mathematica средств настолько широк, что обычно значительно превосходит реальные запросы рядового пользователя. Следовательно, выбрав Mathematica, вы будете иметь все необходимое для организации полного цикла работ -- от проведения черновых расчетов до составления итогового отчета.
0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT