|
*** |
Восьмой кленовый листокКонстантин НОСОВ Казалось бы, прошло совсем немного времени с тех пор, как мы рассказывали читателям о замечательном математическом пакете Maple 7 (см. статьи «Maple — кленовый символ математики», МК № 3 (174), и «Математические пироги с кленовым сиропом», МК № 10 (181)). Однако производители продукта не долго удовлетворялись достигнутым и уже успели выпустить очередную восьмую версию пакета, обладающую еще более широкими возможностями. Усовершенствований в новой версии довольно много. Разработчики условно разделяют их на радикальные, существенные и косметические. При описании нововведений уделим главное внимание практической стороне дела, т.е. конкретным преимуществам восьмой версии пакета. В Maple 8 имеется четыре радикальных (см. упомянутую классификацию) изменения. Разберем их последовательно. Важнейшее усовершенствование новой версии — небывалое расширение интерактивности пакета благодаря поддержке приложений Maplets. Что это такое? Maplets представляет собой мощную, базирующуюся на Java технологию, соединяющую вычислительные возможности Maple и настраиваемый пользовательский интерфейс. Если раньше Maple действовал исключительно как командный интерпретатор (требовавший все команды и процедуры задавать в строке ввода), то новая версия позволяет скрыть «за кадром» весь код, предоставив пользователю возможность работы с удобным и привычный интерфейсом. Мы не будем останавливаться на синтаксисе, оставив удовольствие разбираться с этим вопросом читателю. Впоследствии, если данная тема вам покажется интересной, я берусь подготовить отдельный материал по Maplets. Достаточно отметить, что данная технология представлена в Maple особым пакетом, состоящим из нескольких подпакетов, выполняющих специальные задачи. Продемонстрируем работу Maplets на наглядном примере.
Пакет Maplets позволяет задействовать практически все элементы интерфейса, используемые в современных приложениях: меню, диалоговые окна, различные списки, кнопки и т.д. Кроме того, он отображает таблицы данных и графики, а также позволяет манипулировать ими. Для начинающих пользователей в пакет Maplets включен специальный обучающий подпакет примеров Examples, с помощью которого на тестовых примерах можно легко ознакомиться со основными приемами программирования приложений Maplets. Технология Maplets, как указывалось, базируется на платформе Java и для запусков программ Maplets на компьютере необходимо иметь установленную JVM (Java Virtual Machine). Это, безусловно, накладывает некоторые, хотя и не очень существенные, ограничения на использование Maplets. Программы этого пакета могут быть запущены как изнутри самим Maple, так и вне его с помощью специальной утилиты MapletViewer, выполненной в виде отдельного исполнимого модуля. Обратите внимание, данная возможность присутствует только в версии для Windows. Рабочий документ сохраняется в формате Maplets при помощи стандартной команды Save As, файл с Maplets-программой имеет расширение *.maplet. Безусловно, Maplets — очень перспективная технология для создания сложных вычислительных пакетов, однако ощутимым недостатком ее нынешней версии является отсутствие привычной визуальной среды разработки и полноценных средств отладки. По этому поводу могу только высказать предположение, что будущие версии Maple, скорее всего, будут содержать эти столь необходимые инструменты. Следующее радикальное обновление — введение в состав пакета Student подпакета Calculus1, который также служит образовательно-обучающей цели. В Calculus1 включены процедуры, помогающие студентам и учащимся наглядно представить основные факты из стандартного курса теории функций одной вещественной переменной. Процедуры пакета разделяются на визуальные (для графической демонстрации материала) и иллюстрирующие одношаговое выполнение вычислений.
Значение одношаговых процедур по достоинству могут оценить студенты, выполняющие контрольные задания по высшей математике. Maple и раньше мог решить любую задачу на нахождение пределов, производных и интегралов. Однако пользователя зачастую интересует не только ответ, но и подробно расписанное решение. Подпакет Calculus1 дает возможность представить всю процедуру. Опять-таки, не углубляясь в синтаксис, приведем наглядный пример. Допустим, нам необходимо продифференцировать некоторую функцию. Пошаговое дифференцирование состоит в последовательном применении к функции основных правил дифференцирования (теорем о производной суперпозиции, частного, произведения и т.д.) и основной таблицы производных. Используя Calculus1, пользователь может последовательно применять эти операции и прослеживать, как преобразуется исходное выражение. В конце вычислений остается лишь вывести полное решение, которое остается только переписать в тетрадь и заверить преподавателя, что все это сделано собственноручно :-). Следующее радикальное нововведение — пакет ScientificConstants — переносит нас из математики в область физики и химии. Он вполне способен заменить несколько объемных справочников по этим дисциплинам (содержит до 13 тыс. констант!) и позволяет использовать эту информацию в научных и инженерных расчетах. Пакет предоставляет доступ к двум главным типам физических постоянных — фундаментальным физическим константам и свойствам химических элементов периодической системы Менделеева. Фундаментальные физические константы могут быть получены в нескольких системах измерения; кроме того, каждая константа может быть изменена. У пользователя также есть возможность ввести неограниченное количество собственных констант. Аналогично можно получать детальные сведения о химических элементах периодической системы (атомный вес, температуру точек замерзания и кипения, плотность, энергию ионизации и бета-распада, электропроводность и т.д.) и их изотопах. Пользуясь данной информацией, несложно, к примеру, наглядно представить связь между такими важнейшими характеристиками элементов, как атомный вес, число нейтронов и стабильность ядра. К радикальным новшествам относится и введение новых методов решения дифференциальных уравнений. Хотя Maple и раньше являлся мощным инструментом решения задач этого вида, нынешняя версия значительно расширила и усовершенствовала прежние методы. Не будем детально вдаваться в эту область, а только отметим несколько моментов. В 8-ой версии появились принципиально новые средства численного интегрирования граничных задач для дифференциальных уравнений (как обыкновенных, так и в частных производных), а также введены специальные графические процедуры для визуализации найденных численных решений. Перейдем теперь к обновлениям, характеризуемым как существенные. К ним прежде всего относится введение ряда новых пакетов (специальных внутренних модулей Maple, расширяющих область применения приложения). Мы остановимся только на наиболее важных. Хорошая новость для пользователей, работающих одновременно с Maple и программами на других языках. В новую версию включен пакет CodeGeneration, преобразующий процедуры Maple в программы на C, Fortran 77 и Java. Он значительно расширяет функции пакета codegen, использовавшегося для этих целей в предыдущих версиях. А вот пакет LargeExpressions поможет пользователю в работе с большими выражениями. Он содержит удобный механизм преобразования громоздких выражений. Чтобы сделать эти формулы обозримыми и наглядными, вводятся новые обозначения (замены). Пакет MatrixPolynomialAlgebra включает набор процедур для алгебраических преобразований матричных полиномов. С его помощью можно выполнять такие часто используемые функции, как определение степеней и коэффициентов полинома, матрично-полиномиальное деление, представление матричного полинома в специальных формах и некоторые другие. Еще одно нововведение — пакет SoftwareMetrics — поддерживает набор уникальных функций, позволяющих оценить сложность кода процедур Maple (как пользовательских, так и встроенных). С его помощью можно вычислить цикломатическую метрику МакКэйба (связанную с количеством логических условий в коде), алгоритмическую метрику Хэлстэда (которая является комплексной оценкой кода и отражает его объем, сложность и даже меру использования программистом возможностей языка) и метрику глубины (характеризует глубину вложенности конструкций в коде программы). Новая версия Maple наконец-то может быть использована в такой важной и нетривиальной области анализа, как вариационное исчисление. С помощью пакета VariationalCalculus можно находить уравнения Эйлера-Лагранжа для простейших интегральных функционалов, проверять некоторые достаточные условия экстремумов функционалов и решать другие смежные задачи. Новый пакет векторного исчисления VectorCalculus дополняет унаследованные из предыдущих версий алгебраические пакеты. Основное его назначение — обеспечить работу с различными системами координат и предоставить пользователю новые процедуры для действий с многомерными массивами. Пакет Worksheet обеспечивает взаимодействие рабочих документов Maple (worksheets) с XML-документами. Вообще говоря, работа с форматом XML не является чем-то новым для программы. В Maple по-прежнему поддерживается пакет XMLTools (пришедший из прошлых версий), содержащий десятки функций для манипулирования форматом XML. Но введенный в 8-ую версию пакет Worksheet делает следующий шаг к более глубокому взаимодействия с XML-форматом. С его помощью можно как экспортировать документы Maple в XML-формат, так и осуществлять обратную операцию путем импорта. Пакет включает синтаксический анализатор (parser) для корректного построение XML-документа и средства форматирования документа Maple для адекватной передачи структуры XML. Таким образом, благодаря использованию Worksheet, наш кленовый пакет приобретает некоторые черты XML-редактора. Также изменения коснулись многих старых пакетов и функций, но мы не станем вдаваться в столь мелкие детали, равно как и останавливаться на косметических усовершенствованиях. Из важных нововведений отметим такое мощное и удобное средство, как построитель графиков (Interactive Plot Builder). В предыдущих версиях для глубокой настройки графиков (т.е. для задания нужной толщины кривых, палитры заливки, шрифтов надписей и других многочисленных атрибутов) необходимо было глубоко вникать в синтаксис команд и характеристики многочисленных параметров. И если для профессионала это не составляло труда, то новичок обычно ограничивался поверхностным использованием обширного ассортимента возможностей. В новой версии благодаря Plot Builder начинающий пользователь может создавать сложнейшие графики с такой же легкостью, как и многоопытный гуру. Построитель графиков, представляющий собой удобный мастер, позволит в несколько шагов построить нужный график, причем без явного использования синтаксиса графических команд. Подведем краткие итоги. Не будем повторять того, что сказано о Maple в предыдущих материалах (имею в виду его исключительное, практически уникальное место в классе вычислительных пакетов). Попробуем определить тенденцию, которая наметилась в развитии этой замечательной программы (за три неполных года на рынок были выпущены три новые версии, что позволяет выявить некоторые закономерности). Итак, что же главное, по мнению автора, в эволюции продукта? Прежде всего, оставаясь профессиональным математическим пакетом, Maple приобретает все больше функциональных возможностей для широкого применения в образовательной и обучающей сфере. В 8-ой версии, наконец, сделан решительный шаг к созданию современного дружественного интерфейса, что позволяет избавиться от устаревшего способа взаимодействия с пакетом через командную строку. Обращает на себя внимание расширение возможностей работы с различными форматами (XML, MathML, LaTeX и HTML) и включение в область применения пакета новых дисциплин (физика, химия). Завершая материал, хочется выразить надежду, что наметившиеся тенденции будут продолжены и в следующих версиях и, кроме того, появятся новые, не менее важные и перспективные направления развития. Источник: http://www.mycomp.com.ua/ |
|
Copyright © "Internet Zone", info@izcity.com |