- •Математические пакеты. Курс лекций Введение
- •1 Анализ состояния рынка математических пакетов
- •1.1 Цели и задачи математического моделирования
- •1.2 Принципы построения математических моделей
- •1.2.1 Основные этапы моделирования
- •1.2.2 Постановка задачи моделирования
- •1.2.3 Построение схемы модели, выделение основных частей и процессов
- •1.2.4 Математическое описание основных частей и процессов
- •1.2.5 Построение решения, связывающего изменяемые параметры и критерий оптимизации
- •1.2.6 Исследование решения на экстремум
- •1.3 Обзор прикладных пакетов математического моделирования
- •1.3.1 Пакеты общего назначения
- •1.3.2 Альтернативные пакеты
- •1.3.3 Специализированные пакеты
- •1.3.4 Узкоспециализированные пакеты
- •1.3.5 Пакеты статистического анализа данных
- •1.4 Применение математических пакетов в интернет технологиях
- •1.4.1 Проприетарные математические программы и пакеты в Интернете
- •1.4.2 Свободные кроссплатформенные математические программы и пакеты в Интернете
- •1.4.3 Математические программы и пакеты реализованные на языках программирования
- •1.4.4 Библиотеки алгоритмов
- •1.4.5 Математические порталы, универсальные библиотеки текстов программ и статей по математической тематике
- •1.4.6 Специализированные библиотеки текстов программ и статей по математической тематике
- •1.4.7 Обзор информационных ресурсов Интернета по математике
- •1.4.8 Поиск и просмотр математической литературы
- •1. Поиск и просмотр математической литературы.
- •1.4.9 Математические документы в Интернете
- •1.4.10 Языки разметки для создания электронных публикаций
- •1.Языки разметки для создания электронных публикаций.
- •1.4.11 Математические конференции в Интернете
- •2 Математические пакеты
- •2.1 Математический пакет MathCad
- •2.1.1 Основные возможности MathCad
- •2.1.2 Особенности интерфейса
- •2.1.3 Особенности при работе с графикой
- •2.1.4 Расширение функциональности Mathcad
- •2.1.5 Взаимодействие с другими программами
- •2.1.6 Использование компонентов
- •2.1.7 Комплектации
- •2.2 Математический пакет Mupad
- •2.3 Математический пакет MatLab
- •2.3.1 Язык MatLab
- •2.3.2 Ключевые возможности Matlab
- •2.3.3 Расширение функциональности Matlab. Библиотеки
- •2.3.4 Возможности использования некоторых библиотек Matlab
- •2.3.5 Математика и вычисления Matlab
- •2.3.6 Альтернативные пакеты. SciLab
- •2.3.7Альтернативные пакеты. Oktave
- •2.4 Математический пакет Maple
- •2.4.1 Интерфейс Maple
- •2.4.2 Вычисления в Maple
- •2.4.3 Графика в Maple
- •2.4.4 Специализированные приложения Maple
- •2.4.5 Программирование Maple
- •2.4.6 Интернет-совместимость Maple
- •2.4.7. Перспективы развития Maple
- •2.4.8 Альтернативные пакеты Maple
- •2.5 Пакет Mathematica
- •2.5.1 Альтернативные пакеты
- •2.6 Пакет для построения графиков и функций FlatGraph
- •3 Среда Scilab
- •3.1 Введение в среду Scilab
- •3.3 Основы работы в Scilab
- •3.3.1 Текстовые комментарии
- •3.3.2 Элементарные математические выражения
- •3.3.3 Переменные в Scilab
- •3.3.4 Системные переменные Scilab
- •3.4 Функции в Scilab
- •3.4.1 Элементарные математические функции
- •3.5 Контрольные вопросы
2.4.8 Альтернативные пакеты Maple
В качестве более простых, но идеологически близких альтернатив программе Maple можно отметить такие пакеты, как Derive (http://www.chartwellyorke.com/derive.html), Scientific WorkPlace (http://www.mackichan.com/) и YaCaS (www.xs4all.nl/~apinkus/yacas.html).
Как мы уже говорили, система Scientific
WorkPlace (SWP, текущая версия 5.5) (Рисунок
2.22,2.23) поначалу развивалась как редактор
научных текстов, позволяя легко набирать
и редактировать математические формулы.
Рисунок 2.22 – Интерфейс Scientific WorkPlace
Однако со временем компания MacKichan Software, Inc. (разработчик системы Scientific WorkPlace) лицензировала символьный движок Maple у компании Waterloo Maple, Inc., и теперь эта программа объединяет простой в использовании текстовый процессор, обеспечивающий создание математических текстов и систему компьютерной алгебры в одной среде. Благодаря встроенной системе компьютерной алгебры вы можете производить вычисления прямо в документе. Конечно, у этой программы нет таких возможностей, как у Maple, однако она маленькая и простая в использовании.
Рисунок 2.23 – Интерфейс Scientific WorkPlace
Что касается YaCaS (аббревиатура от выражения Yet Another Computer Algebra System — еще одна система компьютерной алгебры), то это бесплатная кроссплатформенная альтернатива Maple, построенная на тех же принципах (2.24). Мощный и высокоэффективный движок YaCaS полностью реализован на C++ на условиях открытой лицензии (OpenSource). Интерфейс, конечно, более бедный и простой, чем у маститых конкурентов, но довольно удобный.
Рисунок 2.24 – Интерфейс пакета YaCaS
А вот маленькая коммерческая математическая система Derive (текущая версия 6.1) существует уже довольно давно, но, конечно, не может рассматриваться как полноценная альтернатива Maple, хотя она и по сей день привлекательна своей нетребовательностью к аппаратным ресурсам ПК. Более того, при решении задач умеренной сложности она демонстрирует даже более высокое быстродействие и большую надежность решения, чем первые версии систем Maple и Mathematica. Впрочем, системе Derive трудно всерьез конкурировать с этими системами — как по обилию функций и правил аналитических преобразований, так и по возможностям машинной графики и по удобству пользовательского интерфейса. Пока что Derive является больше учебной системой компьютерной алгебры начального уровня.
И хотя новейшая версия Derive 6 под Windows уже имеет современный удобный интерфейс (Рисунок 2.25,2.26), он во многом уступает изысканному интерфейсу маститых конкурентов. А в плане возможности графической визуализации результатов вычислений Derive и вообще далеко отстает от конкурентов.
Рисунок 2.25 – Интерфейс пакета Derive6
Рисунок 2.26 – Интерфейс пакета Derive6
2.5 Пакет Mathematica
Mathematica (http://www.wolfram.com/)
Минимальные требования к системе:
процессор Pentium II или выше;
128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);
400-550 Мбайт дискового пространства;
операционные системы: Windows 98/Me/ NT 4.0/2000/2003 Server/2003x64/XP/XP x64.
Компания Wolfram Reseach, Inc., разработавшая систему компьютерной математики Mathematica (Рисунок 2.27,2.28), по праву считается старейшим и наиболее солидным игроком в этой области. Пакет Mathematica (текущая версия 5.2) повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде. Можно даже сказать, что Mathematica обладает значительной функциональной избыточностью (там, в частности, есть даже возможность для синтеза звука).
Рисунок 2.27 – Интрефейс пакета Mathematica
Mathematica объединяет в единое целое числовое и символьное вычислительное ядро, графическую систему, язык программирования, систему документации и возможность взаимодействия с другими приложениями. Для всей среды Mathematica нет единственного конкурента. Вообще говоря, конкуренты делятся на следующие группы: численные пакеты, системы компьютерной алгебры, приложения дл набора текста и подготовки документации, графические и статистические системы, традиционные языки программирования (средства разработки интерфейсов) и электронные таблицы. С тех пор, как Mathematica впервые появилась, другие математические пакеты существенно расширили спектр собственных возможностей, первоначально они предназначались для решения задач, относящихся лишь к одной или двум вышеперечисленным категориям. Однако вряд ли эта мощная математическая система, претендующая на мировое лидерство, нужна секретарше или даже директору небольшой коммерческой фирмы, не говоря уже о рядовых пользователях. Но, несомненно, любая серьезная научная лаборатория или кафедра вуза должна иметь подобную программу, если там всерьез заинтересованы в автоматизации выполнения математических расчетов любой степени сложности. Несмотря на свою направленность на серьезные математические вычисления, системы класса Mathematica просты в освоении и могут использоваться довольно широкой категорией пользователей — студентами и преподавателями вузов, инженерами, аспирантами, научными работниками и даже учащимся математических классов общеобразовательных и специальных школ. Все они найдут в подобной системе многочисленные полезные возможности для применения.
Рисунок 2.28 – Интрефейс пакета Mathematica
При этом широчайшие функции программы не перегружают ее интерфейс и не замедляют вычислений. Mathematica неизменно демонстрирует высокую скорость символьных преобразований и численных расчетов. Программа Mathematica из всех рассматриваемых систем наиболее полна и универсальна, однако у каждой программы есть как свои достоинства, так и недостатки. А главное — у них есть свои приверженцы, которых бесполезно убеждать в превосходстве другой системы. Но те, кто серьезно работает с системами компьютерной математики, должны пользоваться несколькими программами, ибо только это гарантирует высокий уровень надежности сложных вычислений.
Отметим, что в разработках различных версий системы Mathematica, наряду с головной фирмой Wolfram Research, Inc., принимали участие другие фирмы и сотни специалистов высокой квалификации, в том числе математики и программисты. Есть среди них и представители пользующейся уважением и спросом за рубежом математической школы России. Система Mathematica является одной из самых крупных программных систем и реализует наиболее эффективные алгоритмы вычислений. К их числу, например, относится механизм контекстов, исключающий появление в программах побочных эффектов.
Система Mathematica сегодня рассматривается как мировой лидер среди компьютерных систем символьной математики для ПК, обеспечивающих не только возможности выполнения сложных численных расчетов с выводом их результатов в самом изысканном графическом виде, но и проведение особо трудоемких аналитических преобразований и вычислений.
Mathematica имеет несколько основных особенностей и предназначена для решения широкого спектра задач. Вот некоторые классы задач, решаемых с помощью Mathematica:
Работа с символьными комплексными вычислениями, использующими сотни тысяч или миллионы членов. агрузка, анализ и визуализация данных.
Решение обычных и дифференциальных уравнений, а также задач численной или символьной минимизации.
Численное моделирование и имитация, построение систем управления, начиная от простейших и заканчивая столкновениями галактик, финансовыми убытками, сложными биологическими системами, химическими реакциями, изучением влияния на окружающую среду и магнитными полями в ускорителях элементарных частиц.
Простая и быстрая разработка приложений (RAD) для технических компаний и финансовых учреждений.
Создание профессиональных, интерактивных, технических отчетов и документов для распространения в электронном виде или на бумаге.
Подробная техническая документация, например, для патентов США.
Проведение специальных презентаций и семинаров.
Иллюстрирование математических или научных концепций для учащихся, начиная от колледжа и заканчивая аспирантурой.
Версии системы под Windows имеют современный пользовательский интерфейс и позволяют готовить документы в форме Notebooks (записных книжек). Они объединяют исходные данные, описания алгоритмов решения задач, программ и результатов решения в самой разнообразной форме (математические формулы, числа, векторы, матрицы, таблицы и графики).
Mathematica была задумана как система, максимально автоматизирующая труд научных работников и математиков-аналитиков, поэтому она заслуживает изучения даже в качестве типичного представителя элитных и высокоинтеллектуальных программных продуктов высшей степени сложности. Однако куда больший интерес она представляет как мощный и гибкий математический инструментарий, который может оказать неоценимую помощь большинству научных работников, преподавателей университетов и вузов, студентов, инженеров и даже школьников.
С самого начала большое внимание уделялось графике, в том числе динамической, и даже возможностям мультимедиа — воспроизведению динамической анимации и синтезу звуков. Набор функций графики и изменяющих их действие опций очень широк. Графика всегда была сильной стороной различных версий системы Mathematica и обеспечивала им лидерство среди систем компьютерной математики.
В результате Mathematica быстро заняла ведущие позиции на рынке символьных математических систем. Особенно привлекательны обширные графические возможности системы и реализация интерфейса типа Notebook. При этом система обеспечивала динамическую связь между ячейками документов в стиле электронных таблиц даже при решении символьных задач, что принципиально и выгодно отличало ее от других подобных систем.
Кстати, центральное место в системах класса Mathematica занимает машинно-независимое ядро математических операций, которое позволяет переносить систему на различные компьютерные платформы. Для переноса системы на другую компьютерную платформу используется программный интерфейсный процессор Front End. Именно он определяет, какой вид имеет пользовательский интерфейс системы, то есть интерфейсные процессоры систем Mathematica для других платформ могут обладать своими нюансами. Ядро сделано достаточно компактным для того, чтобы можно было очень быстро вызвать из него любую функцию. Для расширения набора функций служат библиотека (Library) и набор пакетов расширения (Add-on Packages). Пакеты расширений готовятся на собственном языке программирования систем Mathematica и являются главным средством для развития возможностей системы и их адаптации к решению конкретных классов задач пользователя. Кроме того, системы имеют встроенную электронную справочную систему — Help, которая содержит электронные книги с реальными примерами.
Таким образом, Mathematica — это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемноориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой — интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Таким образом, Mathematica как система программирования имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения (Add-ons) появляется возможность подстраиваться под запросы любого пользователя, (хотя рядовому пользователю эти средства программирования могут и не понадобиться — он вполне обойдется встроенными математическими функциями системы, поражающими своим обилием и многообразием даже опытных математиков).
К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.
