Введение
В настоящее время компьютерная промышленность предлагает инженеру целый ряд разнообразных средств моделирования, позволяющих не только моделировать сложные динамические системы, но и проводить с ними эксперименты. Наиболее полное исследование общесистемных проблем получается в результате моделирования объектов с помощью современных технологий, реализованных в специализированных вычислительных пакетах или пакетах визуального моделирования.
Пакетов визуального моделирования так же существует великое множество. В них пользователю предоставляется возможность описывать моделируемую систему преимущественно в визуальной форме, например, графически представляя как структуру системы, так и ее поведение (например, при помощи карты состояний). Такой подход позволяет пользователю не заботится о реальной программной реализации модели, что значительно упрощает процесс моделирования. Результаты эксперимента в пакетах визуального моделирования предоставляются в более наглядной для человека форме: в виде графиков, гистограмм или схем с применением анимации. Также в той или иной мере поддерживается технология объектно-ориентированного моделирования, что позволяет повторно использовать экземпляры моделей с возможностью внесения в них тех или иных коррективов. Из множества существующих на сегодняшний день пакетов визуального моделирования особый интерес вызывают универсальные пакеты, не ориентированные на определенную узкоспециальную область (физика, химия, электроника и т.д.) или определенные типы моделей (чисто дискретные или чисто непрерывные), а позволяющие моделировать принадлежащие различным прикладным областям структурно-сложные гибридные системы. Одними из таких пакетов являются: пакет Mathcad; подсистема Simulink пакета MATLAB а так же Mathematica и Maple
Сравнительный анализ инструментов MathCad и MatLab при моделировании динамических систем
Подсистема Simulink пакета MATLAB
Simulink — интегрированный с MATLAB интерактивный инструмент для моделирования, имитации и анализа динамических систем. Он дает возможность строить графические блок-диаграммы, имитировать динамические системы, исследовать работоспособность систем, отлаживать и совершенствовать их. Simulink это платформа для проектирования и имитации работы динамических систем в различных отраслях.
В распоряжении пользователей имеются интерактивная графическая среда и настраиваемые библиотеки блоков, которые позволят с высокой точностью проектировать, создавать и тестировать модели цифровых устройств, средств коммуникации и других динамических систем. Возможности среды Simulink могут быть расширены путем подключения дополнительных модулей, которые позволят решать специфические задачи, связанные с моделированием и проектированием, а также помогут генерировать программный код, реализовывать различные алгоритмы, выполнять тестирование и проверки. Simulink тесно интегрируется с системой MATLAB, предоставляя пользователям мгновенный доступ к внушительному набору средств разработки алгоритмов, визуализации и анализа данных, организации доступа к данным, а также численных расчетов. Имеется возможность быстро создавать, моделировать и эксплуатировать подробные блок-схемы систем, собранные из готовых блоков, предлагаемых в среде Simulink.
Программа Simulink предоставляет набор инструментов для моделирования иерархических структур, управления данными и настройки подсистем. Предлагаемые средства существенно упрощают создание точных и компактных представлений, независимо от сложности исходной системы. Simulink также интегрируется с Stateflow для моделирования поведения, вызванного событиями. Эти преимущества делают Simulink наиболее популярным инструментом для проектирования систем управления и коммуникации, цифровой обработки и других приложений моделирования.
Для построения блок-схем Simulink имеет обширную библиотеку блочных компонентов и удобный редактор блок-схем, являющийся типичным средством визуально-ориентированного программирования.
Программа Simulink является приложением к пакету MATLAB. Однако Simulink является достаточно самостоятельным инструментом MATLAB и при работе с ним совсем не требуется знать сам MATLAB и остальные его приложения. С другой стороны, доступ к функциям MATLAB и другим его инструментам остается открытым и их можно использовать в Simulink. Часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink (например, LTI-Viewer приложения Control System Toolbox-пакета для разработки систем управления). Имеются также дополнительные библиотеки блоков для разных областей применения (например, Power System Blockset — моделирование электротехнических устройств, Digital Signal Processing Blockset — набор блоков для разработки цифровых устройств и т.д). Simulink может использоваться, чтобы исследовать поведение широкого диапазона практических динамических систем, включая электрические цепи, амортизаторы, тормозные системы, и много других электрических, механических и термодинамических систем.
При работе с Simulink пользователь имеет возможность модернизировать библиотечные блоки, создавать свои собственные, а также составлять новые библиотеки блоков.
При моделировании пользователь может выбирать метод решения дифференциальных уравнений, а также способ изменения модельного времени (с фиксированным или переменным шагом). В ходе моделирования имеется возможность следить за процессами, происходящими в системе. Для этого используются специальные устройства наблюдения, входящие в состав библиотеки Simulink. Результаты моделирования могут быть представлены в виде графиков иди таблиц.
Преимущество Simulink заключается также в том, что он позволяет пополнять библиотеки блоков с помощью подпрограмм, написанных как на языке MATLAB, так и на языках С++, Fortran и Ada.
Обзор программ для символьной математики
Символьная, или, как еще говорят, компьютерная, математика либо компьютерная алгебра, — большой раздел математического моделирования. В принципе, программы такого рода можно отнести к инженерным программам автоматизированного проектирования. Таким образом, в области инженерного проектирования выделяют три основных раздела:
- CAD — Computer Aided Design;
- CAM — Computer Aided Manufacturing;
- CAE — Computer Aided Engeneering.
Сегодня серьезное конструирование, градостроительство и архитектура, электротехника и масса смежных с ними отраслей, а также учебные заведения технической направленности уже не могут обойтись без систем автоматизированного проектирования (САПР), производства и расчетов. А математические пакеты являются составной частью мира CAE-систем, но эта часть никак не может считаться второстепенной, поскольку некоторые задачи вообще невозможно решить без помощи компьютера. Более того, к системам символьной математики сегодня прибегают даже теоретики (так называемые чистые, а не прикладные математики), например для проверки своих гипотез.
Всего каких-нибудь 10 лет назад эти системы считались сугубо профессиональными, но середина 90-х годов стала переломным моментом для мирового рынка CAD/CAM/CAE-систем массового применения. Тогда, впервые за долгое время, пакеты для параметрического моделирования с промышленными возможностями стали доступны пользователям персональных компьютеров. Создатели подобных систем учли требования широкого круга пользователей и таким образом дали возможность десяткам тысяч инженеров и математиков использовать на своих персональных рабочих местах новейшие достижения науки в области технологий CAD/CAM/CAE-систем.
Так что же умеют программы математического моделирования? Неужели они требуют от ученых умения программировать на тех или иных алгоритмических языках, отлаживать программы, отлавливать ошибки и тратить массу времени на получение результата? Нет, те времена давно прошли, и теперь в математических пакетах применяется принцип конструирования модели, а не традиционное «искусство программирования». То есть пользователь лишь ставит задачу, а методы и алгоритмы решения система находит сама. Более того, такие рутинные операции, как раскрывание скобок, преобразование выражений, нахождение корней уравнений, производных и неопределенных интегралов компьютер самостоятельно осуществляет в символьном виде, причем практически без вмешательства пользователя.
Современные математические пакеты можно использовать и как обычный калькулятор, и как средства для упрощения выражений при решении каких-либо задач, и как генератор графики или даже звука! Стандартными стали также средства взаимодействия с Интернетом, и генерация HTML-страниц выполняется теперь прямо в процессе вычислений. Теперь можно решать задачу и одновременно публиковать для коллег ход ее решения на своей домашней странице.
Рассказывать о программах математического моделирования и возможных областях их применения можно очень долго, но мы ограничимся лишь кратким обзором ведущих программ, укажем их общие черты и различия. В настоящее время практически все современные CAE-программы имеют встроенные функции символьных вычислений. Однако наиболее известными и приспособленными для математических символьных вычислений считаются Maple, MathCad, Mathematica и MatLab. Но, делая обзор основных программ символьной математики, мы укажем и на возможные альтернативы, идеологически схожие с тем или иным пакетом-лидером.
Так что же делают эти программы и как они помогают математикам? Основу курса математического анализа в высшей школе составляют такие понятия, как пределы, производные, первообразные функций, интегралы разных видов, ряды и дифференциальные уравнения. Тому, кто знаком с основами высшей математики, наверняка известны десятки правил нахождения пределов, взятия интегралов, нахождения производных и т.д. Если добавить к этому то, что для нахождения большинства интегралов нужно также помнить таблицу основных интегралов, то получается поистине огромный объем информации. И если какое-то время не тренироваться в решений подобных задач, то многое быстро забывается и для нахождения, например, интеграла посложнее придется уже заглядывать в справочники. Но ведь взятие интегралов и нахождение пределов в реальной работе не является главной целью вычислений. Реальная цель заключается в решении каких-либо проблем, а вычисления — всего лишь промежуточный этап на пути к этому решению.
С помощью описываемого ПО можно сэкономить массу времени и избежать многих ошибок при вычислениях. Естественно, CAE системы не ограничиваются только этими возможностями, но в данном обзоре мы сделаем упор именно на них.
Отметим только, что спектр задач, решаемых подобными системами, очень широк:
- проведение математических исследований, требующих вычислений и аналитических выкладок;
- разработка и анализ алгоритмов;
- математическое моделирование и компьютерный эксперимент;
- анализ и обработка данных;
- визуализация, научная и инженерная графика;
- разработка графических и расчетных приложений.
При этом отметим, что поскольку CAE-системы содержат операторы для базовых вычислений, то почти все алгоритмы, отсутствующие в стандартных функциях, можно реализовать посредством написания собственной программы.
Mathematica (http://www.wolfram.com/)
Минимальные требования к системе:
- процессор Pentium II или выше;
- 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);
- 400-550 Мбайт дискового пространства;
- операционные системы: Windows 98/Me/ NT 4.0/2000/2003 Server/2003×64/XP/XP x64.
Компания Wolfram Reseach, Inc., разработавшая систему компьютерной математики Mathematica, по праву считается старейшим и наиболее солидным игроком в этой области. Пакет Mathematica (текущая версия 5.2) повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде. Можно даже сказать, что Mathematica обладает значительной функциональной избыточностью (там, в частности, есть даже возможность для синтеза звука).
Однако вряд ли эта мощная математическая система, претендующая на мировое лидерство, нужна секретарше или даже директору небольшой коммерческой фирмы, не говоря уже о рядовых пользователях. Но, несомненно, любая серьезная научная лаборатория или кафедра вуза должна иметь подобную программу, если там всерьез заинтересованы в автоматизации выполнения математических расчетов любой степени сложности. Несмотря на свою направленность на серьезные математические вычисления, системы класса Mathematica просты в освоении и могут использоваться довольно широкой категорией пользователей — студентами и преподавателями вузов, инженерами, аспирантами, научными работниками и даже учащимся математических классов общеобразовательных и специальных школ. Все они найдут в подобной системе многочисленные полезные возможности для применения.
При этом широчайшие функции программы не перегружают ее интерфейс и не замедляют вычислений. Mathematica неизменно демонстрирует высокую скорость символьных преобразований и численных расчетов. Программа Mathematica из всех рассматриваемых систем наиболее полна и универсальна, однако у каждой программы есть как свои достоинства, так и недостатки. А главное — у них есть свои приверженцы, которых бесполезно убеждать в превосходстве другой системы. Но те, кто серьезно работает с системами компьютерной математики, должны пользоваться несколькими программами, ибо только это гарантирует высокий уровень надежности сложных вычислений.
Отметим, что в разработках различных версий системы Mathematica, наряду с головной фирмой Wolfram Research, Inc., принимали участие другие фирмы и сотни специалистов высокой квалификации, в том числе математики и программисты. Есть среди них и представители пользующейся уважением и спросом за рубежом математической школы России. Система Mathematica является одной из самых крупных программных систем и реализует наиболее эффективные алгоритмы вычислений. К их числу, например, относится механизм контекстов, исключающий появление в программах побочных эффектов.
Система Mathematica сегодня рассматривается как мировой лидер среди компьютерных систем символьной математики для ПК, обеспечивающих не только возможности выполнения сложных численных расчетов с выводом их результатов в самом изысканном графическом виде, но и проведение особо трудоемких аналитических преобразований и вычислений. Версии системы под Windows имеют современный пользовательский интерфейс и позволяют готовить документы в форме Notebooks (записных книжек). Они объединяют исходные данные, описания алгоритмов решения задач, программ и результатов решения в самой разнообразной форме (математические формулы, числа, векторы, матрицы, таблицы и графики).
Mathematica была задумана как система, максимально автоматизирующая труд научных работников и математиков-аналитиков, поэтому она заслуживает изучения даже в качестве типичного представителя элитных и высокоинтеллектуальных программных продуктов высшей степени сложности. Однако куда больший интерес она представляет как мощный и гибкий математический инструментарий, который может оказать неоценимую помощь большинству научных работников, преподавателей университетов и вузов, студентов, инженеров и даже школьников.
С самого начала большое внимание уделялось графике, в том числе динамической, и даже возможностям мультимедиа — воспроизведению динамической анимации и синтезу звуков. Набор функций графики и изменяющих их действие опций очень широк. Графика всегда была сильной стороной различных версий системы Mathematica и обеспечивала им лидерство среди систем компьютерной математики.
В результате Mathematica быстро заняла ведущие позиции на рынке символьных математических систем. Особенно привлекательны обширные графические возможности системы и реализация интерфейса типа Notebook. При этом система обеспечивала динамическую связь между ячейками документов в стиле электронных таблиц даже при решении символьных задач, что принципиально и выгодно отличало ее от других подобных систем.
Кстати, центральное место в системах класса Mathematica занимает машинно-независимое ядро математических операций, которое позволяет переносить систему на различные компьютерные платформы. Для переноса системы на другую компьютерную платформу используется программный интерфейсный процессор Front End. Именно он определяет, какой вид имеет пользовательский интерфейс системы, то есть интерфейсные процессоры систем Mathematica для других платформ могут обладать своими нюансами. Ядро сделано достаточно компактным для того, чтобы можно было очень быстро вызвать из него любую функцию. Для расширения набора функций служат библиотека (Library) и набор пакетов расширения (Add-on Packages). Пакеты расширений готовятся на собственном языке программирования систем Mathematica и являются главным средством для развития возможностей системы и их адаптации к решению конкретных классов задач пользователя. Кроме того, системы имеют встроенную электронную справочную систему — Help, которая содержит электронные книги с реальными примерами.
Таким образом, Mathematica — это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемноориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой — интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Таким образом, Mathematica как система программирования имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения (Add-ons) появляется возможность подстраиваться под запросы любого пользователя, (хотя рядовому пользователю эти средства программирования могут и не понадобиться — он вполне обойдется встроенными математическими функциями системы, поражающими своим обилием и многообразием даже опытных математиков).
К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.
В качестве более простых, но идеологически близких альтернатив программы Mathematica можно назвать такие пакеты, как Maxima (http://maxima.sourceforge.net/) и Kalamaris (developer.kde.org/
Отметим, что система Maxima — это некоммерческий проект с открытым кодом. В программе Maxima для математической работы используется язык, сходный с языком в пакете Mathematica, а графический интерфейс построен по тем же принципам. Изначально программа называлась Xmaxima и создавалась для UNIX-систем.

Кроме того, сейчас у системы Maxima есть еще более мощный, эффективный и дружественный кроссплатформенный графический интерфейс, который называется Wxmaxima (http://wxmaxima.sourceforge.net). И хотя этот проект пока что существует лишь в бета-версии, он постепенно превращается в очень серьезную альтернативу коммерческим системам.
Что касается программы Kalamaris, то это также новый проект, который имеет подход и идеологию, схожие с системой Mathematica. Проект еще не завершен, но тоже является неплохой бесплатной альтернативой такому коммерческому монстру, как Mathematica.
Maple (http://www.maplesoft.com/)
Минимальные требования к системе:
• процессор Pentium III 650 МГц;
• 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт);
• 400 Мбайт дискового пространства;
• операционные системы: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home.
Программа Maple (последняя версия 10.02) — своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде. Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MatLab, а также в состав пакетов для подготовки научных публикаций Scientific WorkPlace и Math Office for Word.
Пакет Maple — совместная разработка Университета Ватерлоо (шт. Онтарио, Канада) и Высшей технической школы (ETHZ, Цюрих, Швейцария). Для его продажи была создана специальная компания — Waterloo Maple, Inc., которая, к сожалению, больше прославилась математической проработкой своего проекта, чем уровнем его коммерческой реализации. В результате система Maple ранее была доступна преимущественно узкому кругу профессионалов. Сейчас эта компания работает совместно с более преуспевающей в коммерции и в проработке пользовательского интерфейса математических систем фирмой MathSoft, Inc. — создательницей весьма популярных и массовых систем для численных расчетов MathCad, ставших международным стандартом для технических вычислений.
Maple предоставляет удобную среду для компьютерных экспериментов, в ходе которых пробуются различные подходы к задаче, анализируются частные решения, а при необходимости программирования отбираются требующие особой скорости фрагменты. Пакет позволяет создавать интегрированные среды с участием других систем и универсальных языков программирования высокого уровня. Когда расчеты произведены и требуется оформить результаты, то можно использовать средства этого пакета для визуализации данных и подготовки иллюстраций для публикации. Для завершения работы остается подготовить печатный материал (отчет, статью, книгу) прямо в среде Maple, а затем можно приступать к очередному исследованию. Работа проходит интерактивно — пользователь вводит команды и тут же видит на экране результат их выполнения. При этом пакет Maple совсем не похож на традиционную среду программирования, где требуется жесткая формализация всех переменных и действий с ними. Здесь же автоматически обеспечивается выбор подходящих типов переменных и проверяется корректность выполнения операций, так что в общем случае не требуется описания переменных и строгой формализации записи.
Пакет Maple состоит из ядра (процедур, написанных на языке С и хорошо оптимизированных), библиотеки, написанной на Maple-языке, и развитого внешнего интерфейса. Ядро выполняет большинство базовых операций, а библиотека содержит множество команд — процедур, выполняемых в режиме интерпретации.
Интерфейс Maple основан на концепции рабочего поля (worksheet) или документа, содержащего строки ввода-вывода и текст, а также графику.
Работа с пакетом происходит в режиме интерпретатора. В строке ввода пользователь задает команду, нажимает клавишу Enter и получает результат — строку (или строки) вывода либо сообщение об ошибочно введенной команде. Тут же выдается приглашение вводить новую команду и т.д.
Интерфейс Maple
Рабочие окна (листы) системы Maple могут быть использованы либо как интерактивные среды для решения задач, либо как система для подготовки технической документации. Исполнительные группы и электронные таблицы упрощают взаимодействие пользователя с движком Maple, выполняя роль тех первичных средств, при помощи которых в систему Maple передаются запросы на выполнение конкретных задач и вывод результатов. Оба эти типа первичных средств допускают возможность ввода команд Maple.
Система Maple позволяет вводить электронные таблицы, содержащие как числа, так и символы. Они совмещают в себе математические возможности системы Maple с уже знакомым форматом из строк и столбцов традиционных электронных таблиц. Электронные таблицы системы Maple можно использовать для создания таблиц формул.
Для облегчения документирования и организации результатов вычислений имеются опции разбиения на параграфы и разделы, а также добавления гиперссылок. Гиперссылка является навигационным средством. Одним щелчком мыши по ней вы можете перейти к другой точке в пределах рабочего листа, к другому рабочему листу, к странице помощи, к рабочему листу на Web-сервере или к любой другой Web-странице.
Рабочие листы можно организовать иерархически, в виде разделов и подразделов. Разделы и подразделы можно как расширять, так и сворачивать. Система Maple, подобно другим текстовым редакторам, поддерживает опцию закладок.
Вычисления в Maple
Систему Maple можно использовать и на самом элементарном уровне ее возможностей — как очень мощный калькулятор для вычислений по заданным формулам, но главным ее достоинством является способность выполнять арифметические действия в символьном виде, то есть так, как это делает человек. При работе с дробями и корнями программа не приводит их в процессе вычислений к десятичному виду, а производит необходимые сокращения и преобразования в столбик, что позволяет избежать ошибок при округлении. Для работы с десятичными эквивалентами в системе Maple имеется специальная команда, аппроксимирующая значение выражения в формате чисел с плавающей запятой. Система Maple вычисляет конечные и бесконечные суммы и произведения, выполняет вычислительные операции с комплексными числами, легко приводит комплексное число к числу в полярных координатах, вычисляет числовые значения элементарных функций, а также знает много специальных функций и математических констант (таких, например, как «е» и «пи»). Maple поддерживает сотни специальных функций и чисел, встречающихся во многих областях математики, науки и техники. Приведем лишь некоторые из них:
- функция ошибок;
- эйлерова константа;
- экспоненциальный интеграл;
- эллиптическая интегральная функция;
- гамма-функция;
- зета-функция;
- ступенчатая функция Хевисайда;
- дельта-функция Дирака;
- бесселева и модифицированная бесселева функции.
Система Maple предлагает различные способы представления, сокращения и преобразования выражений, например такие операции, как упрощение и разложение на множители алгебраических выражений и приведение их к различному виду. Таким образом, Maple можно использовать для решения уравнений и систем.
Maple также имеет множество мощных инструментальных средств для вычисления выражений с одной или несколькими переменными. Программу можно использовать для решения задач дифференциального и интегрального исчисления, вычисления пределов, разложений в ряды, суммирования рядов, умножения, интегральных преобразований (таких как преобразование Лапласа, Z-преобразование, преобразование Меллина или Фурье), а также для исследования непрерывных или кусочно-непрерывных функций.
Maple может вычислять пределы функций, как конечные, так и стремящиеся к бесконечности, а также распознает неопределенности в пределах. В этой системе можно решать множество обычных дифференциальных уравнений (ODE), а также дифференциальные уравнения в частных производных (PDE), в том числе задачи с начальными условиями (IVP) и задачи с граничными условиями (BVP).
Одним из наиболее часто используемых в системе Maple пакетов программ является пакет линейной алгебры, содержащий мощный набор команд для работы с векторами и матрицами. Maple может находить собственные значения и собственные векторы операторов, вычислять криволинейные координаты, находить матричные нормы и вычислять множество различных типов разложения матриц.
Для технических применений в Maple включены справочники физических констант и единицы физических величин с автоматическим пересчетом формул. Особенно эффективна Maple при обучении математике. Высочайший интеллект этой системы символьной математики сочетается с прекрасными средствами математического численного моделирования и с просто потрясающими возможностями графической визуализации решений. Такие системы, как Maple, можно применять как в преподавании, так и для самообразования при изучении математики от самых азов до вершин.
Графика в Maple
Система Maple поддерживает как двумерную, так и трехмерную графику. Таким образом, можно представить явные, неявные и параметрические функции, а также многомерные функции и просто наборы данных в графическом виде и визуально искать закономерности.
Графические средства Maple позволяют строить двумерные графики сразу нескольких функций, создавать графики конформных преобразований функций с комплексными числами и строить графики функций в логарифмической, двойной логарифмической, параметрической, фазовой, полярной и контурной форме. Можно графически представлять неравенства, неявно заданные функции, решения дифференциальных уравнений и корневые годографы.
Maple может строить поверхности и кривые в трехмерном представлении, включая поверхности, заданные явной и параметрической функциями, а также решениями дифференциальных уравнений. При этом представлять можно не только в статическом виде, но и в виде двух- или трехмерной анимации. Эту особенность системы можно использовать для отображения процессов, протекающих в режиме реального времени.
Отметим, что для подготовки результата и документирования исследований в системе имеются все возможности выбора шрифтов для названий, надписей и другой текстовой информации на графиках. При этом можно варьировать не только шрифты, но и яркость, цвет и масштаб графика.
Специализированные приложения
Обширный набор мощных инструментальных приложений Maple PowerTools и пакетов для таких областей, как анализ методом конечных элементов (FEM), нелинейная оптимизация и др., полностью удовлетворят пользователей с университетским математическим образованием. В Maple включены также пакеты подпрограмм для решения задач линейной и тензорной алгебры, евклидовой и аналитической геометрии, теории чисел, теории вероятностей и математической статистики, комбинаторики, теории групп, интегральных преобразований, численной аппроксимации и линейной оптимизации (симплекс-метод), а также задач финансовой математики и многих, многих других.
Для финансовых расчетов предназначен программный пакет Finance. C его помощью можно вычислять текущую и накопленную сумму ежегодной ренты, совокупную ежегодную ренту, сумму пожизненной ренты, совокупную пожизненную ренту и процентный доход на облигации. Вы можете строить таблицу амортизации, определять реальную сумму ставки для сложных процентов и вычислять текущее и будущее фиксированное количество для конкретной ставки и сложных процентов.
Программирование
Система Maple использует процедурный язык 4-го поколения (4GL). Этот язык специально предназначен для быстрой разработки математических подпрограмм и пользовательских приложений. Синтаксис данного языка аналогичен синтаксису универсальных языков высокого уровня: C, Fortran, Basic и Pascal.
Maple может генерировать код, совместимый с такими языками программирования, как Fortran или C, и с языком набора текста LaTeX, который пользуется большой популярностью в научном мире и применяется для оформления публикаций. Одно из преимуществ этого свойства — способность обеспечивать доступ к специализированным числовым программам, максимально ускоряющим решение сложных задач. Например, используя систему Maple, можно разработать определенную математическую модель, а затем с ее помощью сгенерировать код на языке C, соответствующий этой модели. Язык 4GL, специально оптимизированный для разработки математических приложений, позволяет сократить процесс разработки, а настроить пользовательский интерфейс помогают элементы Maplets или документы Maple со встроенными графическими компонентами.
Одновременно в среде Maple можно подготовить и документацию к приложению, так как средства пакета позволяют создавать технические документы профессионального вида, содержащие текст, интерактивные математические вычисления, графики, рисунки и даже звук. Вы также можете создавать интерактивные документы и презентации, добавляя кнопки, бегунки и другие компоненты, и, наконец, публиковать документы в Интернете и развертывать интерактивные вычисления в Сети, используя сервер MapleNet.
Интернет-совместимость
Maple является первым универсальным математическим пакетом, который предлагает полную поддержку стандарта MathML 2.0, управляющего как внешним видом, так и смыслом математики в Интернете. Эта эксклюзивная функция делает текущую версию MathML основным средством Интернет-математики, а также устанавливает новый уровень совместимости многопользовательской среды. TCP/IP-протокол обеспечивает динамический доступ к информации из других Интернет-ресурсов, например к данным для финансового анализа в реальном времени или к данным о погоде.
Перспективы развития
Последние версии Maple, помимо дополнительных алгоритмов и методов решения математических задач, получили более удобный графический интерфейс, продвинутые инструменты визуализации и построения графиков, а также дополнительные средства программирования (в том числе по совместимости с универсальными языками программирования). Начиная с девятой версии в пакет был добавлен импорт документов из программы Mathematica, а в справочную систему были введены определения математических и инженерных понятий и расширена навигация по страницам справки. Кроме того, было повышено полиграфическое качество формул, особенно при форматировании больших и сложных выражений, а также значительно сокращен размер MW-файлов для хранения рабочих документов Maple.
Таким образом, Maple — это, пожалуй, наиболее удачно сбалансированная система и бесспорный лидер по возможностям символьных вычислений для математики. При этом оригинальный символьный движок сочетается здесь с легко запоминающимся структурным языком программирования, так что Maple может быть использована как для небольших задач, так и для серьезных проектов.
К недостаткам системы Maple можно отнести лишь ее некоторую «задумчивость», причем не всегда обоснованную, а также очень высокую стоимость этой программы (в зависимости от версии и набора библиотек цена ее доходит до нескольких десятков тысяч долл., правда студентам и научным работникам предлагаются дешевые версии — за несколько сотен долл.).
Пакет Maple широко распространен в университетах ведущих научных держав, в исследовательских центрах и компаниях. Программа постоянно развивается, вбирая в себя новые разделы математики, приобретая новые функции и обеспечивая лучшую среду для исследовательской работы. Одно из основных направлений развития этой системы — повышение мощности и достоверности аналитических (символьных) вычислений. Это направление представлено в Maple наиболее широко. Уже сегодня Maple может выполнять сложнейшие аналитические вычисления, которые нередко не по силам даже опытным математикам. Конечно же, Maple не способна на гениальные догадки, но зато рутинные и массовые расчеты система выполняет с блеском. Другое важное направление — повышение эффективности численных расчетов. В результате этого заметно возросла перспектива использования Maple в численном моделировании и в выполнении сложных вычислений — в том числе с произвольной точностью. И наконец, тесная интеграция Maple с другими программными средствами — еще одно важное направление развития этой системы. Ядро символьных вычислений Maple уже включено в состав целого ряда систем компьютерной математики — от систем для широкого круга пользователей типа MathCad до одной из лучших систем для численных расчетов и моделирования MatLab.
Все эти возможности в сочетании с прекрасно выполненным и удобным пользовательским интерфейсом и мощной справочной системой делают Maple первоклассной программной средой для решения самых разнообразных математических задач, способной оказать пользователям действенную помощь в решении учебных и реальных научно-технических задач.
Альтернативные пакеты
В качестве более простых, но идеологически близких альтернатив программе Maple можно отметить такие пакеты, как Derive (http://www.chartwellyorke.com/derive.html), Scientific WorkPlace (http://www.mackichan.com/) и YaCaS (www.xs4all.nl/
Как мы уже говорили, система Scientific WorkPlace (SWP, текущая версия 5.5) поначалу развивалась как редактор научных текстов, позволяя легко набирать и редактировать математические формулы. Однако со временем компания MacKichan Software, Inc. (разработчик системы Scientific WorkPlace) лицензировала символьный движок Maple у компании Waterloo Maple, Inc., и теперь эта программа объединяет простой в использовании текстовый процессор, обеспечивающий создание математических текстов и систему компьютерной алгебры в одной среде. Благодаря встроенной системе компьютерной алгебры вы можете производить вычисления прямо в документе. Конечно, у этой программы нет таких возможностей, как у Maple, однако она маленькая и простая в использовании.
Что касается YaCaS (аббревиатура от выражения Yet Another Computer Algebra System — еще одна система компьютерной алгебры), то это бесплатная кроссплатформенная альтернатива Maple, построенная на тех же принципах. Мощный и высокоэффективный движок YaCaS полностью реализован на C++ на условиях открытой лицензии (OpenSource). Интерфейс, конечно, более бедный и простой, чем у маститых конкурентов, но довольно удобный.
А вот маленькая коммерческая математическая система Derive (текущая версия 6.1) существует уже довольно давно, но, конечно, не может рассматриваться как полноценная альтернатива Maple, хотя она и по сей день привлекательна своей нетребовательностью к аппаратным ресурсам ПК. Более того, при решении задач умеренной сложности она демонстрирует даже более высокое быстродействие и большую надежность решения, чем первые версии систем Maple и Mathematica. Впрочем, системе Derive трудно всерьез конкурировать с этими системами — как по обилию функций и правил аналитических преобразований, так и по возможностям машинной графики и по удобству пользовательского интерфейса. Пока что Derive является больше учебной системой компьютерной алгебры начального уровня.
И хотя новейшая версия Derive 6 под Windows уже имеет современный удобный интерфейс, он во многом уступает изысканному интерфейсу маститых конкурентов. А в плане возможности графической визуализации результатов вычислений Derive и вообще далеко отстает от конкурентов.


MatLab (http://www.mathworks.com/)
Минимальные требования к системе:
- процессор Pentium III, 4, Xeon, Pentium M; AMD Athlon, Athlon XP, Athlon MP;
- 256 Мбайт оперативной памяти (рекомендуется 512 Мбайт);
- 400 Мбайт дискового пространства (только для самой системы MatLab и ее Help);
- операционная система Microsoft Windows 2000 (SP3)/XP.
Система MatLab относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE (то есть сильна и в других областях). MatLab — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение и в самом названии системы — MATrix LABoratory, то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.
Несмотря на то что изначально MatLab предназначалась исключительно для вычислений, в процессе эволюции (а сейчас выпущена уже версия 7), в дополнение к прекрасным вычислительным средствам, у фирмы Waterloo Maple по лицензии для MatLab было приобретено ядро символьных преобразований, а также появились библиотеки, которые обеспечивают в MatLab уникальные для математических пакетов функции. Например, широко известная библиотека Simulink, реализуя принцип визуального программирования, позволяет построить логическую схему сложной системы управления из одних только стандартных блоков, не написав при этом ни строчки кода. После конструирования такой схемы можно детально проанализировать ее работу.
В системе MatLab также существуют широкие возможности для программирования. Ее библиотека C Math (компилятор MatLab) является объектной и содержит свыше 300 процедур обработки данных на языке C. Внутри пакета можно использовать как процедуры самой MatLab, так и стандартные процедуры языка C, что делает этот инструмент мощнейшим подспорьем при разработке приложений (используя компилятор C Math, можно встраивать любые процедуры MatLab в готовые приложения).
Библиотека C Math позволяет пользоваться следующими категориями функций:
- операции с матрицами;.
- сравнение матриц;
- решение линейных уравнений;
- разложение операторов и поиск собственных значений;
- нахождение обратной матрицы;
- поиск определителя;
- вычисление матричного экспоненциала;
- элементарная математика;
- функции beta, gamma, erf и эллиптические функции;
- основы статистики и анализа данных;
- поиск корней полиномов;
- фильтрация, свертка;
- быстрое преобразование Фурье (FFT);
- интерполяция;
- операции со строками;
- операции ввода-вывода файлов и т.д.
При этом все библиотеки MatLab отличаются высокой скоростью численных вычислений. Однако матрицы широко применяются не только в таких математических расчетах, как решение задач линейной алгебры и математического моделирования, обсчета статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Именно универсальность аппарата матричного исчисления значительно повышает интерес к системе MatLab, вобравшей в себя лучшие достижения в области быстрого решения матричных задач. Поэтому MatLab давно уже вышла за рамки специализированной матричной системы, превратившись в одну из наиболее мощных универсальных интегрированных систем компьютерной математики.
Для визуализации моделирования система MatLab имеет библиотеку Image Processing Toolbox, которая обеспечивает широкий спектр функций, поддерживающих визуализацию проводимых вычислений непосредственно из среды MatLab, увеличение и анализ, а также возможность построения алгоритмов обработки изображений. Усовершенствованные методы графической библиотеки в соединении с языком программирования MatLab обеспечивают открытую расширяемую систему, которая может быть использована для создания специальных приложений, пригодных для обработки графики.
Основные средства библиотеки Image Processing Tollbox:
- построение фильтров, фильтрация и восстановление изображений;
- увеличение изображений;
- анализ и статистическая обработка изображений;
- выделение областей интересов, геометрические и морфологические операции;
- манипуляции с цветом;
- двумерные преобразования;
- блок обработки;
- средство визуализации;
- запись/чтение графических файлов.
Таким образом, систему MatLab можно использовать для обработки изображений, сконструировав собственные алгоритмы, которые будут работать с массивами графики как с матрицами данных. Поскольку язык MatLab оптимизирован для работы с матрицами, в результате обеспечивается простота использования, высокая скорость и экономичность проведения операций над изображениями.
Таким образом, программу MatLab можно использовать для восстановления испорченных изображений, шаблонного распознавания объектов на изображениях или же для разработки каких-либо собственных оригинальных алгоритмов обработки изображений. Библиотека Image Processing Tollbox упрощает разработку высокоточных алгоритмов, поскольку каждая из функций, включенных в эту библиотеку, оптимизирована для максимального быстродействия, эффективности и достоверности вычислений. Кроме того, библиотека обеспечивает разработчика многочисленным инструментарием для создания собственных решений и для реализаций сложных приложений обработки графики. А при анализе изображений использование мгновенного доступа к мощным средствам визуализации помогает моментально увидеть эффекты увеличения, восстановления и фильтрации.
Среди других библиотек системы MatLab можно также отметить System Identification Toolbox — набор инструментов для создания математических моделей динамических систем, основанных на наблюдаемых входных/выходных данных. Особенностью этого инструментария является наличие гибкого пользовательского интерфейса, позволяющего организовать данные и модели. Библиотека System Identification Toolbox поддерживает как параметрические, так и непараметрические методы. Интерфейс системы облегчает предварительную обработку данных, работу с итеративным процессом создания моделей для получения оценок и выделения наиболее значимых данных. Быстрое выполнение с минимальными усилиями таких операций, как открытие/сохранение данных, выделение области возможных значений данных, удаление погрешностей, предотвращение ухода данных от характерного для них уровня.
Наборы данных и идентифицируемые модели организуются графически, что позволяет легко вызвать результаты предыдущих анализов в течение процесса идентификации системы и выбрать следующие возможные шаги процесса. Основной пользовательский интерфейс организует данные для показа уже полученного результата. Это облегчает быстрое сравнение по оценкам моделей, позволяет выделять графическими средствами наиболее значимые модели и исследовать их показатели.
А что касается математических вычислений, то MatLab предоставляет доступ к огромному количеству подпрограмм, содержащихся в библиотеке NAG Foundation Library компании Numerical Algorithms Group Ltd (инструментарий имеет сотни функций из различных областей математики, и многие из этих программ были разработаны широко известными в мире специалистами). Это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Таким образом, MatLab вобрала и опыт, и правила, и методы математических вычислений, накопленные за тысячи лет развития математики. Одну только прилагаемую к системе обширную документацию вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению.
Из недостатков системы MatLab можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (а между тем объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MatLab-программ. Сегодня система MatLab широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.
Поэтому для проведения аналитических преобразований в MatLab используется ядро символьных преобразований Maple, а из Maple для численных расчетов можно обращаться к MatLab. Ведь недаром символьная математика Maple вошла составной частью в целый ряд современных пакетов, а численный анализ от MatLab и наборы инструментов (Toolboxes) уникальны. Тем не менее математические пакеты Maple и MatLab — это интеллектуальные лидеры в своих классах, это образцы, определяющие развитие компьютерной математики.
В качестве более простых, но идеологически близких альтернатив программе MatLab можно отметить такие пакеты, как Octave (www.octave.org), KOctave (bubben.homelinux.net/
Octave — это программа числовых вычислений, хорошо совместимая с MatLab. Интерфейс системы Octave, конечно, беднее, и у нее нет таких уникальных библиотек, как у MatLab, зато это очень простая в освоении программа, нетребовательная к системным ресурсам. Распространяется Octave на условиях открытой лицензии с исходным кодом (OpenSource) и может стать хорошим подспорьем для учебных заведений.
Программа KOctave по сути представляет собой более продвинутый графический интерфейс для системы Octave. В результате использования KOctave система Octave становится полностью похожей на MatLab.

Простенькая математическая программа Genius, естественно, не может поспорить по мощности с именитыми конкурентами, но идеология математических преобразований у нее сходна с MatLab и Maple. Распространяется Genius тоже на условиях открытой лицензии с исходным кодом (OpenSource). Она имеет собственный язык GEL, развитый инструментарий Genius Math Tool и хорошую систему подготовки документов для публикации (с использованием таких языков оформления, как LaTeX, Troff (eqn) и MathML). Очень хороший графический интерфейс программы Genius сделает работу с ней простой и удобной.
MathCad (http://www.mathsoft.com/, http://www.mathcad.com/)
Минимальные требования к системе:
- процессор Pentium II или выше;
- 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);
- 200-400 Мбайт дискового пространства;
- операционные системы: Windows 98/Me/NT 4.0/2000/XP.
В отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакета MatLab, программа MathCad (текущая версия 13) — это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом. MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакета Maple. Зато интерфейс программы MathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общеупотребительной математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку производителя (как можно видеть по версии продукта, обновление этой программы происходит чаще, чем других, упомянутых в этом обзоре, хотя год выпуска первой версии у них примерно один и тот же — 1996-1997 годы). Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MatLab и даже малютке Derive. Однако по программе MathCad выпущено много книг и обучающих курсов, в том числе у нас в России. Сегодня эта система стала буквально международным стандартом для технических вычислений и даже многие школьники осваивают и используют MathCad.
Для небольшого объема вычислений MathCad идеален — здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft Excel прямо внутри MathCad-документа.
В общем, MathCad — это очень простая и удобная программа, которую можно рекомендовать широкому кругу пользователей, в том числе не очень сведущих в математике, а особенно тем, кто только постигает ее азы.
В качестве более дешевых, простых, но идеологически близких альтернатив программе MathCad можно отметить такие пакеты, как уже упомянутый YaCaS, коммерческую систему MuPAD (http://www.mupad.de/) и бесплатную программу KmPlot (http://edu.kde.org/kmplot/).
Программа KmPlot распространяется на условиях открытой лицензии с исходным кодом (OpenSource). Она очень проста в освоении и подойдет даже школьникам.
Что касается программы MuPAD, то она представляет собой современную интегрированную систему математических вычислений, при помощи которой можно производить численные и символьные преобразования, а также чертить двумерные и трехмерные графики геометрических объектов. Однако по своим возможностям MuPAD значительно уступает своим маститым конкурентам и является, скорее, системой начального уровня, предназначенной для обучения.
Заключение
Несмотря на то что в области компьютерной математики не наблюдается такого разнообразия, как, скажем, в среде компьютерной графики, за видимой ограниченностью рынка математических программ скрываются их поистине безграничные возможности! Как правило, CAE-системы охватывают практически все области математики и инженерных расчетов.
Когда-то системы символьной математики были ориентированы исключительно на узкий круг профессионалов и работали на больших компьютерах (мэйнфреймах). Но с появлением ПК эти системы были переработаны под них и доведены до уровня массовых серийных программных систем. Сейчас на рынке сосуществуют системы символьной математики самого разного калибра — от рассчитанной на широкий круг потребителей системы MathCad до компьютерных монстров Mathematica, MatLab и Maple, имеющих тысячи встроенных и библиотечных функций, широкие возможности графической визуализации вычислений и развитые средства для подготовки документации.
Отметим, что практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК. Они давно знакомы пользователям и широко распространены на всех платформах — от наладонника до суперкомпьютера.
Сравнительная характеристика возможностей Matlab и Mathcad
Типа «wysiwyg». Набор выражений происходит от позиции курсора. Выражений с клавиатуры приходится вводить относительно немного, так как в командном окне имеются различные палитры инструментов.
Три окна: командное окно, все переменные и их типы и окно подсказок. Есть строка приглашения, обозначается знаком «>>». В отличие от Mathcad все функции приходится вводить с клавиатуры.
Работа с массивами и матрицами
Предоставлен достаточный набор функций для проведения различных операций с матрицами и векторами. Некоторые операции можно брать с соответствующей палитры, другие — вводить с клавиатуры или вставлять из меню Вставка->Функции .
Матрицы и вектора формируются при помощи списка элементов. Функции вводятся с клавиатуры.
Различает решение уравнений и систем уравнений. Команды можно набирать с клавиатуры, можно вставлять из меню.
Решает уравнения и системы уравнений функцией с различными параметрами.
Приведен в таблице целый ряд операторов, как простых типа сложения, так и вычисления суммы, произведения, интегралов и производных и т.д., которые можно вводить с клавиатуры или вставлять из соответствующей палитры.
Здесь в отличие от Mathcad все операторы вводятся с клавиатуры в виде отдельных символов и функций. Дан относительно подробный список операторов.
Построены по принципу всех функций: название функции и параметры в скобках. Можно выделить функции упрощения выражения, раскрытия скобок, тригонометрические и целый ряд других.
Здесь в основном используются только функции, которые вводятся с клавиатуры.
Предоставлены шаблоны для создания программ и подпрограмм. В качестве выходного значения указывается последнее значение, вычисленное программой. Также внутри программы можно использовать функции, описанные ранее. Программы пишутся в том же файле, что и все вычисления.
Здесь программы создаются в виде отдельных М — файлов. Если написать программу какой-нибудь функции, то эту функцию можно будет использовать как стандартную. Также в программу можно вставлять комментарии.
Графики строятся на основе имеющихся шаблонов. Основные виды: график в декартовой плоскости, в полярной системе координат, трёхмерный в виде гладкой поверхности, в виде контурных кривых и т.д. Сначала задаётся функция графика, диапазон, затем строится сам график, который можно редактировать.
Функция графика создаётся из командной строки. Графики создаются на формах в определённой системе координат. В команде построения можно указывать свойства графика.
Mathcad или matlab что лучше
← →
michael_b ( 2003-03-23 14:03 ) [0]
Учусь на первом курсе мех-мата потребовалоcь выполнять громоздкие выклабди и тп и тд
Посоветуйте, что начать изучать MathCAD, Maple или MatLab?
← →
big_rom ( 2003-03-23 15:18 ) [1]
Лучьше матан. Даже если выкладки большие.(мое и только мое мнение)
← →
Mystic ( 2003-03-23 15:32 ) [2]
Я бы советовал MATLAB. Может для выполнения выкладок возможно это и не самое лучшее средство. Но как средство выполнения расчетов, создание программ, моделирования не имеет равных.
Если же ты имеешь склонности к программированию, то MATLAB предоставляет собственный язык программирования (с поддержкой GUI). Кроме того, почти все вычислительные алгоритмы представлены в исходниках. При желании их легко изменить/дополнить.
← →
DrPass ( 2003-03-23 15:38 ) [3]
Еще есть Mathematica — вообще для извращенцев технической мысли. Но вообще современный MathCAD способен удовлетворить все потребности инженера, и при этом совершенно не напрягать мозги. Я бы выбрал его.
← →
Mystic ( 2003-03-23 16:58 ) [4]
> вообще современный MathCAD способен удовлетворить все потребности
> инженера, и при этом совершенно не напрягать мозги.
Студента — да. Инженера — имхо, навряд-ли. В одно время MathCAD я откинул из-за малой функциональности + порекомендовали MATLAB. Просто интересно, что изменилось за это время. Есть ли
1. Считывание данных из внешних устройств.
2. Моделирование.
3. Генерирование C++ кода.
4. Генерирование готового для прошивки в ПЗУ кода для real-time систем (поддерживается до четырех тиов процессоров).
4. Отладка state-chart диаграмм.
5. Идентификация систем. Нейронные сети. Нечеткая логика. Обработка изображений. .
6. Возможности расширения.
← →
jack128 ( 2003-03-23 19:19 ) [5]
Мне больше нравится MathCAD, для студента ИМХО больше подходит.
← →
nikkie ( 2003-03-23 20:12 ) [6]
Ну до кучи надо и за MAPLE вступиться.
Его сила — символьные вычисления. Я на нем считал, поскольку в него входят алгоритмы вычисления базиса Гребнера (символьное решение систем алгебраических уравнений). А если нужны теоретико-групповые вычисления, то надо использовать GAP.
Имхо, для первого курса (ангем небось решать собрался?) любая программа пойдет. Выбирай из соображений, что есть под рукой, и чем собираешься в будущем заниматься.
← →
NetBreaker666 ( 2003-03-23 20:48 ) [7]
Все зависит от того, что требуеться ?
Если что-то поектировать, то — MathCAD — вообщем CAD есть CAD.
Если какие-то вычисления, которые базируются на преобразованиях матриц — MatLAB.
Для всего остального — Maple. Вообще я использую только Maple, наверное, потому-что лично знаю человека, который руководит этим проектом, и еще пару человек из Waterloo да и сам чуть не стал участником проекта 🙂 Просто принято, что амтлаб лучше работает с матрицам, но я лично разницы не заметил, а Maple — всеравно удобней.
← →
Marser ( 2003-03-23 23:19 ) [8]
MathCad довольно мощный и очень простой в использовании.Для пределов, прозводных и инетегралов даже очень ничего.Остальное пока не пробовал, как и не пробовал в МачКаде диффуры и ряды.
← →
alxx ( 2003-03-24 10:50 ) [9]
У матлаба есть Symbolic Math Toolbox — Вот это действительно круто. Причем мне кажется, что MatLab очень гибкий — на нем можно программировать даже. Даже с базами данных работать. Даже картинки фильтровать. Много всего интересного.
← →
Думкин ( 2003-03-24 10:54 ) [10]
> big_rom © (23.03.03 15:18)
Абсолютно согласен. Особенно если речь идет о ММФ. На первых курсах — рользующимся калькулятором, надо руки отрубать.
Если хочешь понимать и знать математику — делай выкладки на бумаге. А с 1-го курса полезешь в эти вещи — быть тебе обезьяной — аминь.
← →
Внук ( 2003-03-24 11:14 ) [11]
Не хочу вступать в долгие дискуссии о том, что круче. Просто выскажу свое мнение 🙂
Я выбираю Maple.
Специальность моя — "Прикладная математика, механика", скоро диссертацию защищаю. Вполне хватает.
← →
michael_b ( 2003-03-24 19:15 ) [12]
> big_rom © (23.03.03 15:18)
> Думкин © (24.03.03 10:54)
Да я чтоб проверить правильно-ли на бумаге сосчитал. А изучать хочется сразу что-то перспективное, что пригодится в будущем. Вдруг я стану инженером или еще кем-нибудь, кому это пригодится.
← →
Mystic ( 2003-03-25 01:46 ) [13]
Некоторые возможности MATLAB
Basic feature:
Math and computation
Algorithm development
Modeling, simulation, and prototyping
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development, including graphical user interface
building
Visually model and simulate complex reactive systems based
on finite state machine theory.
Design and develop deterministic, supervisory control systems.
Easily modify your design, evaluate the results, and verify
the system"s behavior at any stage of your design.
Automatically generate integer or floating-point code directly
from your design (requires Stateflow Coder).
Take advantage of the integration with the MATLAB and Simulink
environments to model, simulate, and analyze your system.
Transform your model into executable real-time code.
Rapid prototyping for control systems and digital signal
processing applications.
xPC Target is part of a family of software products that you use
to create real-time control systems. Some of these products are
required while others you use for special applications.
The Data Acquisition Toolbox is a collection of M-file functions
and MEX-file dynamic link libraries (DLLs) built on the MATLABо
Technical Computing Environment. The toolbox provides you with
these main features:
A framework for bringing live, measured data into MATLAB using
PC-compatible, plug-in data acquisition hardware
Support for these popular hardware devices:
National Instruments E Series and 1200 Series boards
ComputerBoards (Measurement Computing Corporation) boards
Agilent Technologies E1432A/33A/34A VXI modules
Microsoft Windows sound cards
Additionally, you can use the Data Acquisition Toolbox Adaptor
Kit to interface unsupported hardware devices to the toolbox.
Support for analog input (AI), analog output (AO), and digital
I/O (DIO) subsystems including simultaneous AI and AO
conversions
Data buffering for background acquisitions
Data logging
Event-driven acquisitions
The CDMA Reference Blockset is a collection of Simulinkо blocks
designed to help you develop and simulate CDMA wireless communication
systems, based on the current North American IS-95A CDMA (code
division multiple access) standard.
The Communications Toolbox is a set of MATLABо functions that can
help you design and analyze advanced communication systems.
Functions in the toolbox can accomplish these tasks:
Random signal production
Error analysis, including eye diagrams and scatter plots
Source coding, including scalar quantization, differential pulse
code modulation, and companders
Error-control coding, including convolutional and linear block coding
Analog and digital modulation/demodulation
Filtering of data using special filters
Computations in Galois fields
The Communications Blockset is a collection of Simulinkо blocks designed
for research, development, system design, analysis, and simulation in the
communications area. You can use the blockset"s ready-to-use blocks
directly, or you can easily modify them to implement your own methods and
algorithms. Blocks in this product can model various processes within
communication systems, including:
Signal generation
Source coding
Error-control coding
Interleaving
Modulation/demodulation
Transmission along a channel
Synchronization
← →
Mystic ( 2003-03-25 01:48 ) [14]
MATLAB has a rich collection of functions immediately useful to the control
engineer or system theorist. Complex arithmetic, eigenvalues, root-finding,
matrix inversion, and FFTs are just a few examples of MATLAB"s important
numerical tools. More generally, MATLAB"s linear algebra, matrix computation,
and numerical analysis capabilities provide a reliable foundation for control
system engineering as well as many other disciplines.
The Database Toolbox is one of an extensive collection of toolboxes for
use with MATLABо. The Database Toolbox enables you to move data (both
importing and exporting) between MATLAB and popular relational databases.
This book describes the Datafeed Toolbox for MATLABо. The Datafeed Toolbox
enables MATLAB users to obtain financial data from a financial data server
and to enter this data into the MATLAB environment.
The DSP Blockset brings the full power of Simulinkо to DSP system design
and prototyping by providing key DSP algorithms and components in
Simulink"s adaptable block format. The blockset gives you the core
components such as buffers, linear algebra solvers, dyadic filter banks,
and parametric estimators that allow you to rapidly and efficiently
assemble complex DSP systems.
Excel Link is a software add-in that integrates Microsoft Excel and MATLAB
in a Microsoft Windows-based computing environment. By connecting Excel and
MATLAB, you can access the numerical, computational, and graphical power of
MATLAB from Excel worksheet and macro programming tools. Excel Link lets
you exchange and synchronize data between the two environments.
Filter Design Toolbox is a collection of tools built on top of the MATLAB
computing environment and the Signal Processing Toolbox. The toolbox includes
a number of advanced filter design techniques that support designing,
simulating, and analyzing fixed-point and custom floating-point filters
for a wide range of precisions.
MATLAB and the Financial Toolbox provide a complete integrated computing
environment for financial analysis and engineering. The toolbox has everything
you need to perform mathematical and statistical analysis of financial data
and display the results with presentation-quality graphics. You can quickly
ask, visualize, and answer complicated questions.
Compute and analyze prices, yields, and sensitivities for derivatives and
other securities, and for portfolios of securities.
Perform Securities Industry Association (SIA) compatible fixed-income
pricing, yield, and sensitivity analysis.
Analyze or manage portfolios.
Design and evaluate hedging strategies.
Identify, measure, and control risk.
Analyze and compute cash flows, including rates of return and depreciation
streams.
Analyze and predict economic activity.
Create structured financial instruments, including foreign-exchange
instruments.
Teach or conduct academic research.
The Financial Derivatives Toolbox computes pricing and sensitivities of interest
rate contingent claims based upon sets of zero coupon bonds or the Heath-Jarrow-
Morton (HJM) evolution model of the interest rate term structure.
This book describes the Financial Time Series Toolbox for MATLAB, a collection of
tools for the analysis of time series data in the financial markets. Financial
engineers working with time series data, such as equity prices or daily interest
fluctuations, can use this toolbox for more intuitive data management than with
regular vectors or matrices.
← →
Mystic ( 2003-03-25 01:49 ) [15]
The Fixed-Point Blockset includes a collection of blocks that extend the standard
Simulink block library. With these blocks, you can create discrete-time dynamic
systems that use fixed-point arithmetic. As a result, Simulink can simulate
effects commonly encountered in fixed-point systems for applications such as
control systems and time-domain filtering. The Fixed-Point Blockset includes
these major features:
Integer, fractional, and generalized fixed-point data types:
Unsigned and two"s complement formats
Word size from 1 to 128 bits
Floating-point data types:
IEEE-style singles and doubles
A nonstandard IEEE-style data type, where the fraction (mantissa) can range
from 1 to 52 bits and the exponent can range from 1 to 11 bits
Methods for overflow handling, scaling, and rounding of fixed-point data types
Tools are provided to facilitate:
The collection of minimum and maximum simulation values
The optimization of scaling parameters
The display of input and output signals
With the Real-Time Workshopо, you can generate C code for execution on a
fixed-point embedded processor; the generated code uses only integer types
and automatically includes all operations, such as shifts, needed to account
for differences in fixed-point locations
The Fuzzy Logic Toolbox is a collection of functions built on the MATLABо numeric
computing environment. It provides tools for you to create and edit fuzzy inference
systems within the framework of MATLAB, or if you prefer you can integrate your fuzzy
systems into simulations with Simulinkо, or you can even build stand-alone C
programs that call on fuzzy systems you build with MATLAB. This toolbox relies heavily
on graphical user interface (GUI) tools to help you accomplish your work, although
you can work entirely from the command line if you prefer.
MATLAB and the GARCH Toolbox provide an integrated computing environment for modeling
the volatility of univariate economic time series. The GARCH Toolbox uses a general
ARMAX/GARCH composite model to perform simulation, forecasting, and parameter
estimation of univariate time series in the presence of conditional heteroskedasticity.
Supporting functions perform tasks such as pre- and post-estimation diagnostic testing,
hypothesis testing of residuals, model order selection, and time series transformations.
Graphics capabilities let you plot correlation functions and visually compare matched
innovations, volatility, and return series. More specifically, you can:
Perform Monte Carlo simulation of univariate returns, innovations, and conditional
volatilities
Specify conditional mean models of general ARMAX form and conditional models of
general GARCH form for univariate asset returns
Estimate parameters of general ARMAX/GARCH composite models via the maximum
likelihood method
Generate minimum mean square error forecasts of the conditional mean and conditional
variance of univariate return series
Perform pre- and post-estimation diagnostic and hypothesis testing, such as Engle"s
ARCH test, Ljung-Box Q-statistic test, likelihood ratio tests, and AIC/BIC model
order selection
Perform graphical correlation analysis, including auto-correlation, cross-correlation,
and partial auto-correlation
Convert price/return series to return/price series, and transform finite-order ARMA
models to infinite-order AR and MA models
The Image Processing Toolbox is a collection of functions that extend the capability
of the MATLABо numeric computing environment. The toolbox supports a wide range of
image processing operations, including:
Geometric operations
Neighborhood and block operations
Linear filtering and filter design
Transforms
Image analysis and enhancement
Binary image operations
Region of interest operations
← →
Mystic ( 2003-03-25 01:50 ) [16]
The Instrument Control Toolbox is a collection of M-file functions built on the MATLAB
Technical Computing Environment. The toolbox provides you with these features:
A framework for communicating with instruments that support the GPIB interface
(IEEE-488, HPIB), the VISA standard, and the serial port interface (RS-232, RS-422,
and RS-485). Note that the toolbox extends the basic serial port features included
with MATLAB.
Functions for transferring data between MATLAB and your instrument:
The data can be binary (numerical) or text.
Text data can be any command used by your instrument such as a command given by
the Standard Commands for Programmable Instruments (SCPI) language.
The transfer can be synchronous and block the MATLAB command line, or asynchronous
and not block the MATLAB command line.
Event-based communication
Functions for recording data and event information to a text file
Tools that facilitate instrument control in an easy-to-use graphical environment
Welcome to the Mapping Toolbox for MATLABо. The Mapping Toolbox allows you to read,
analyze, and display geographic information within MATLAB. Since the earth and most
heavenly bodies are generally spherical in shape, geographic data is usually defined
on a spherical or elliptical coordinate system. Distance, azimuth, area, and even
straight lines on the curved surface of the earth are defined differently than in
MATLAB"s cartesian coordinates.
The MATLAB о C Math Library makes the mathematical core of MATLAB available to
application programmers. The library is a collection of more than 400 mathematical
routines written in C. Programs written in any language capable of calling C functions
can call these routines to perform mathematical computations.
The MATLAB C/C++ Graphics Library is a collection of MATLAB graphics routines
distributed as a single library. The graphics library makes the MATLAB plotting and
visualization capabilities available to stand-alone C and C++ applications.
The MATLAB Compiler automatically converts MATLAB M-files to C and C++ code. By
using the Compiler with the MATLAB C/C++ Math and Graphics Libraries you can
automatically convert your MATLAB applications that contain math and graphics to C
and C++ code for standalone applications.
The Motorola DSP Developer"s Kit enables you to develop application software for
Motorola DSPs in the MathWorks MATLAB and Simulink environments. It provides an
object-oriented interface to program MEX-files or S-functions that call the appropriate
Motorola Suite56 DSP Simulator.
The Model Predictive Control (MPC) Toolbox is a collection of functions (commands)
developed for the analysis and design of model predictive control (MPC) systems.
Model predictive control was conceived in the 1970s primarily by industry. Its
popularity steadily increased throughout the 1980s. At present, there is little
doubt that it is the most widely used multivariable control algorithm in the chemical
process industries and in other areas. While MPC is suitable for almost any kind of
problem, it displays its main strength when applied to problems with:
A large number of manipulated and controlled variables
Constraints imposed on both the manipulated and controlled variables
Changing control objectives and/or equipment (sensor/actuator) failure
Time delays
The m-Analysis and Synthesis Toolbox (m-Tools) is a collection of functions (commands)
developed primarily for the analysis and synthesis of control systems, with an emphasis
on quantifying the effects of uncertainty. m-Tools provides a consistent set of data
structures for the unified treatment of systems in either a time domain, frequency
domain, or state-space manner. m-Tools also gives MATLAB users access to recent
developments in control theory, namely H_inf optimal control and m analysis and
synthesis techniques. This package allows you to use sophisticatedmatrix perturbation
results and optimal control techniques to solve control design problems. Control design
software, such as m-Tools, provides a link between control theory and control
engineering.
← →
Mystic ( 2003-03-25 01:51 ) [17]
The Nonlinear Control Design (NCD) Blockset provides a Graphical User Interface (GUI)
to assist in time domain based control design. With this blockset, you can tune parameters
within a nonlinear SIMULINKо model to meet time domain performance requirements by
graphically placing constraints within a time domain window. Any number of SIMULINK
variables including scalars, vectors, and matrices can be declared tunable by entering
the variable name into the appropriate dialog box. Uncertainty bounds can be placed on
other variables in the model for robust control design. The NCD Blockset makes attaining
performance objectives and optimizing tunable parameters an intuitive and easy process.
Neural networks are composed of simple elements operating in parallel. These elements are
inspired by biological nervous systems. As in nature, the network function is determined
largely by the connections between elements. We can train a neural network to perform a
particular function by adjusting the values of the connections (weights) between
elements.
The Partial Differential Equation (PDE) Toolbox provides a powerful and flexible environment
for the study and solution of partial differential equations in two space dimensions and time.
The equations are discretized by the Finite Element Method (FEM). The objectives of the PDE
Toolbox are to provide you with tools that:
Define a PDE problem, i.e., define 2-D regions, boundary conditions, and PDE coefficients.
Numerically solve the PDE problem, i.e., generate unstructured meshes, discretize the
equations, and produce an approximation to the solution.
Visualize the results.
Electrical power systems are combinations of electrical circuits, and electro-mechanical
devices, like motors and generators. Engineers working in this discipline are constantly
asked to improve the performance of the systems. Requirements for drastically increased
efficiency have forced power system designers to use power electronic devices and
sophisticated control system concepts that tax traditional analysis tools and techniques.
Further complicating the analyst"s role is the fact that the system is often so nonlinear,
the only way to understand it is through simulation.
The Requirements Management Interface allows you to associate requirements with Simulink
models, Stateflowо diagrams, and MATLABо M-files. There is a standard version of the
Requirements Management Interface and a version that works with the DOORS requirements
management system, a product offering from Quality Systems & Software, Inc. (QSS).
The Report Generator is a software package that can take any information from your MATLAB
workspace and export it to a document in the form of a report. The reports that you create
with the Report Generator can include figures, data, variables, and functions from your
models or M-files, as well as snapshots of system graphics and figures.
The Robust Control Toolbox is written in M-files using the matrix functions of the Control
System Toolbox and MATLAB. It enables you to do УrobustФ multivariable feedback control
system modeling, analysis and design based on the singular-value Bode plot. Many of the
functions described in the Robust Control Toolbox UserТs Guide incorporate theory originally
developed at USC by the authors. The early version of the Robust Control Toolbox called LINF
was distributed widely.
← →
Mystic ( 2003-03-25 01:53 ) [18]
The Signal Processing Toolbox is a collection of tools built on the MATLABо numeric computing
environment. The toolbox supports a wide range of signal processing operations, from waveform
generation to filter design and implementation, parametric modeling, and spectral analysis.
This toolbox contains MATLAB versions of the essential programs of the B-spline package
(extended to handle also vector-valued splines) as described in A Practical Guide to Splines,
(Applied Math. Sciences Vol. 27, Springer Verlag, New York (1978), xxiv + 392p), hereafter
referred to as PGS. The toolbox makes it easy to create and work with piecewise-polynomial
functions.
The Symbolic Math Toolboxes incorporate symbolic computation into MATLABо"s numeric
environment. These toolboxes supplement MATLAB"s numeric and graphical facilities with
several other types of mathematical computation.
Calculus: Differentiation, integration, limits, summation, and Taylor series
Linear Algebra: Inverses, determinants, eigenvalues, singular value decomposition,
and canonical forms of symbolic matrices
Simplification: Methods of simplifying algebraic expressions
Solution of Equations: Symbolic and numerical solutions to algebraic and differential
equations
Special Mathematical Functions: Special functions of classical applied mathematics
Variable-PrecisionArithmetic: Numerical evaluation of mathematical expressions to any
specified accuracy
The System Identification Toolbox is for building accurate, simplified models of complex
systems from noisy time-series data. It provides tools for creating mathematical models of
dynamic systems based on observed input/output data. The toolbox features a flexible
graphical user interface that aids in the organization of data and models. The identification
techniques provided with this toolbox are useful for applications ranging from control system
design and signal processing to time-series analysis and vibration analysis. Michel Misiti,
Georges Oppenheim, and Jean-Michel Poggi are mathematics professors at Ecole Centrale de Lyon,
University of Marne-La-Vallee and Paris 5 University. Yves Misiti is a research engineer
specialized in Computer Sciences at Paris 11 University.
ИМХО, кое-что из этого может пригодиться.
← →
Думкин ( 2003-03-25 04:50 ) [19]
> michael_b (24.03.03 19:15)
Ну, тогда — все пробовать надо.
Но у нас больше от от пакета Mathematic пищат. Книг по нему — проблемно, и в основном дерьмо полное, но возможностей там — вагон, с тележкой. Интерфейс беднее, чем в приведенных — но мощь — посильнее, видимо.
Для не очень больших наворотов — MathCad идет — для первого курса хватит.
Но если все это лицензионное — то деньги не маленькие.
← →
Kapusto ( 2003-03-25 09:04 ) [20]
Если надо просто числа перемолоть, лабораторку там обработать — проще всего в MathCAD"e.
А вот для символьных вычислений лучше MATLAB, использовал помнится и Mathеmatic"у, но к ее интерфейсу так привыкнуть и не смог.
Но. Но. Но. в любом случае необходимо _точное_ знание того, что должно получиться в результате, т.е. очень хорошее знание предметной области. 🙂