Применение средств Wolfram Mathematica для создания интерактивных иллюстраций | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №8 (55) август 2013 г.

Статья просмотрена: 5853 раза

Библиографическое описание:

Четвериков, М. А. Применение средств Wolfram Mathematica для создания интерактивных иллюстраций / М. А. Четвериков. — Текст : непосредственный // Молодой ученый. — 2013. — № 8 (55). — С. 62-66. — URL: https://moluch.ru/archive/55/7481/ (дата обращения: 17.12.2024).

В данной работе рассмотрены преимущества использования интерактивных иллюстраций и основные способы их разработки при помощи пакета компьютерной алгебры WolframMathematica.

Ключевые слова: Wolfram Mathematica, система компьютерной алгебры, интерактивная компьютерная графика, .NET Framework, Wolfram|Alpha, Computable Document Format, Wolfram.NET/Link, MathLink.

Введение

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

Нередко для подобных иллюстраций необходимы сложные математические, геометрические, статистические и аналитические расчёты. В данном случае огромную пользу принесут программы математического моделирования и системы компьютерной алгебры, примерами которых являются Mathcad, Wolfram Mathematica и Matlab.

Возможность создания интерактивной графики широко обеспечивается в системе компьютерной алгебре Wolfram Mathematica. Это позволяет объединить всю вычислительную и алгоритмическую мощность Wolfram Mathematica для расчёта и прорисовки динамически изменяющихся элементов интерактивной графики: символьных и числовых вычислений или графиков функций.

Wolfram Mathematica

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

Кроме того, Mathematica это интерпретируемый язык функционального программирования. Mathematica поддерживает и процедурное программирование с применением стандартных операторов управления выполнением программы (циклы и условные переходы), и объектно-ориентированный подход. Mathematica допускает отложенные вычисления. Также в систему Mathematica можно задавать правила работы с теми или иными выражениями [1].

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

Wolfram Mathematica это программное обеспечение, не только для математических вычислений, это гораздо больше: от моделирования и симуляции, визуализации, документации, до создания веб-сайтов. Wolfram Mathematica обладает возможностью осуществлять вызовы функций и принимать вызовы с C,.NET, Java и других языков, генерировать C код, компилировать автономные библиотеки и исполняемые файлы [3].

Все вычисления в Wolfram Mathematica находятся в блокнотах и имеют расширение .nb. В блокнотах находятся как и код, так и результаты вычислений. Блокноты разбиты на ячейки различного типа: ячейки ввода (в них задаются команды, которые будут вычислены), ячейки результата (в них выводится результат вычислений) и другие ячейки (ячейки с текстом, заголовки и все остальное) [3]. Пример блокнота Wolfram Mathematica представлен на рис. 1.

Рис. 1. Демонстрация блокнота Wolfram Mathematica

Wolfram|Alpha API

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

Разработчиками Wolfram|Alpha было создано API для обеспечения возможности встраивания результатов выполнения запросов к системе в веб-сайты, прикладные и развлекательные приложения. Для некоммерческого использования данное API бесплатно. К сожалению, возможно выполнение только одной команды, что, в свою очередь, делает невозможным использование модулей и функций.

Демонстрация выполнения запроса в системе Wolfram|Alpha представлена на рис. 2. При использовании же API, ответ возвращается в виде XML.

Рис. 2. Демонстрация работы Wolfram|Alpha

Computable Document Format

Формат вычисляемых документов (Computable Document Format или CDF) — это электронный формат документов, созданный с целью облегчения создания динамически сгенерированного интерактивного контента. Формат разработан компанией Wolfram Research. Формат вычисляемых документов предусматривает такие графические элементы пользователя как ползунки, меню и кнопки. Содержимое документа обновляется с использованием встроенной вычислительной подсистемы при взаимодействии с графическими элементами пользователя. В документе могут использоваться текст, таблицы, изображения, звуки и анимации. Формат CDF предусматривает использование печатной вёрстки и технических обозначений системы Wolfram Mathematica. Также поддерживаются компоновки документа с разбивкой на страницы, со структурной детализацией и режим слайд-шоу. Стилистическое оформление документа можно контролировать с использованием каскадных таблиц стилей.

CDF файлы можно просматривать с помощью бесплатной программы CDF Player, которую можно загрузить с сайта компании Wolfram Research. В отличие от статических форматов, таких как PDF и предварительно сгенерированного информационного материала в форматах, таких как Adobe Flash, и благодаря тому, что программа CDF Player целиком содержит библиотеку времени исполнения системы Wolfram Mathematica, содержимое документа может генерироваться в ответ на действие пользователя с помощью любых алгоритмов или визуализационных функций, которые можно описать в системе Wolfram Mathematica. Это делает CDF особенно уместным для научного, инженерного и другого технического материала, а также электронных учебников [5].

Файлы формата CDF могут быть созданы из существующих блокнотов Wolfram Mathematica или с нуля. Они могут содержать абсолютно все, что может быть создано в блокноте Wolfram Mathematica. Основное отличие между блокнотом Wolfram Mathematica и файлом формата.cdf заключается в возможности взаимодействия с документом при его просмотре в CDF Player. Файлы блокнота в Wolfram Mathematica (файлы с расширением .nb) при просмотре в CDF Player отображаются как статичные документы, однако в файле формата.cdf любой объект, созданный с помощью функции Manipulate, обладает полной интерактивностью при просмотре в CDF Player [6].

Примером данной реализации интерактивной иллюстрации является разработанное программное обеспечение для поиска кривой Парето и компромиссной кривой (рис. 3) для численной минимизации критериев.

Рис. 3. Пример создания CDF файла

Wolfram.NET/Link

Для обмена данными между Wolfram Mathematica и другими программами существует специально разработанный протокол MathLink. Модуль .NET/Link позволяет программисту избегать низкоуровневых деталей этого процесса и позволяет программисту писать высокоуровневый код под .NET Framework. Этот набор библиотек позволяет с помощью одной команды отправить какой-либо запрос ядру Wolfram Mathematica и получить ответные данные с помощью другой. В данном случае, возможно использовать любой язык программирования, поддерживаемый.NET Framework. Разработка кода возможна и на языке Си без использования технологий.NET Framework, но уже с применением самого MathLink.

Основной недостаток применения .NET/Link состоит в том, что хотя сама библиотека занимает всего один файл (Wolfram.NETLink.dll), программа, без предустановленной среды Wolfram Mathematica, успешно функционировать не будет. Плюсом же данного подхода является возможность исполнения любых команд и, даже, групп команды языка Mathematica и возвращение результата вычислений. В том числе и графического [7].

Для работы с ядром Wolfram Mathematica проще всего использовать компонент MathKernel из пространства имён Wolfram.NETLink: По умолчанию свойство CaptureGraphics этого компонента задано как false. Если результат вычислений ожидается графический, то это свойство необходимо инвертировать.

Передача команд ядру Wolfram Mathematica осуществляется методом Compute компонента MathKernel. Результат вычислений помещается в свойство Result компонента. Графический результат — в свойство Graphics. Таким образом, код под .NET Framework сводится к минимуму. Примером служит программное обеспечение для синтез ПИ-регулятора квазимаксимальной степени устойчивости и заданной колебательности (рис. 4).

Описание: E:\Личное\Учёба\Наука\НИРС - Пушкарёв\Статьи\Газпром\3_ИК_ЧетвериковМА_статья_рисунок2.jpg

Рис. 4. Демонстрация работы приложения с библиотекой.NET/Link

Заключение

В результате данной работы были рассмотрены возможности системы компьютерной алгебры Wolfram Mathematica для создания и внедрения интерактивной компьютерной графики. Так же были рассмотрены примеры их реализации. Wolfram Mathematica может стать хорошим инструментом для студентов и молодых учёных для иллюстрации своих работ. К сожалению, основные минусы Wolfram Mathematica — высокая цена и плохая мобильность — могут препятствовать активному использованию данного программного пакета.

Литература:

1.         Mathematica [Электронный ресурс]: Википедия. — США: wikipedia.org, 2013. — Режим доступа: http://ru.wikipedia.org/wiki/Mathematica, свободный. — Дата обращения 08.07.2013.

2.         Wolfram Mathematica: знакомство [Электронный ресурс]: Хабрахабр. — Россия: habrahabr.ru, 2011. — Режим доступа: http://habrahabr.ru/post/113588/, свободный. — Дата обращения 08.07.2013.

3.         Введение в Wolfram Mathematica [Электронный ресурс]: Хабрахабр. — Россия: habrahabr.ru, 2013. — Режим доступа: http://habrahabr.ru/post/180925/, свободный. — Дата обращения 08.07.2013.

4.         WolframAlpha [Электронный ресурс]: Википедия. — США: wikipedia.org, 2013. — Режим доступа: http://ru.wikipedia.org/wiki/WolframAlpha, свободный. — Дата обращения 08.07.2013.

5.         Формат вычисляемых документов [Электронный ресурс]: Википедия. — США: wikipedia.org, 2013. — Режим доступа: http://ru.wikipedia.org/wiki/ %D0 %A4 %D0 %BE %D1 %80 %D0 %BC %D0 %B0 %D1 %82_ %D0 %B2 %D1 %8B %D1 %87 %D0 %B8 %D1 %81 %D0 %BB %D1 %8F %D0 %B5 %D0 %BC %D1 %8B %D1 %85_ %D0 %B4 %D0 %BE %D0 %BA %D1 %83 %D0 %BC %D0 %B5 %D0 %BD %D1 %82 %D0 %BE %D0 %B2, свободный. — Дата обращения 08.07.2013.

6.         Создание файла формата CDF (Computable Document Format) [Электронный ресурс]: Хабрахабр. — Россия: www.kobriniq.ru, 2013. — Режим доступа: http://www.kobriniq.ru/mathematica/rukovodstvo-sozdanie-fayla-formata-cdf-computable-document-format, свободный. — Дата обращения 08.07.2013.

7.         Используем возможности Wolfram Mathematica в.NET приложениях [Электронный ресурс]: Хабрахабр. — Россия: habrahabr.ru, 2012. — Режим доступа: http://habrahabr.ru/post/154169/, свободный. — Дата обращения 08.07.2013.

Основные термины (генерируются автоматически): CDF, NET, API, компьютерная алгебра, результат вычислений, документ, интерактивная компьютерная графика, система, интерактивная графика, программное обеспечение.


Ключевые слова

Вольфрам Математика, система компьютерной алгебры, интерактивная компьютерная графика, .NET Framework, Wolfram | Альфа, Вычислимый формат документа, Wolfram.NET/Link, MathLink., Wolfram Mathematica, Wolfram|Alpha, Computable Document Format, MathLink

Похожие статьи

Возможности программного обеспечения компании Mentor Graphics в области трехмерного моделирования электромагнитных полей электронных устройств и систем

Представлен состав и основные функциональные возможности программного обеспечения HyperLynx 3D EM (IE3D) компании Mentor Graphics для трёхмерного моделирования электромагнитных полей электронных устройств и систем.

Разработка обучающих программ с помощью инструментов для создания компьютерных игр

Статья посвящена решению проблемы создания обучающих приложений, похожих на компьютерные игры. Для создания таких приложений предлагается использовать программу TGF (The Games Factory). Описан процесс подготовки к созданию обучающего приложения-игры....

Эволюция веб-фреймворков Microsoft. ASP.NET vNext (ASP.NET 5)

Данная статья рассказывает о платформе Microsoft.NET Framework и технологии создания веб-приложений и веб-сервисов от вышеупомянутой компании — ASP.NET. Описывается история развития данной технологии и последние новшества, такие как ASP.NET vNext.

Организация многомодульной, слабосвязанной архитектуры приложения при работе с Gradle

В статье описывается подход для реализации многомодульной, слабосвязанной архитектуры в Android приложении, с использование системы сборки Gradle. Рассматриваться проблемы, которые возникают в процессе разработки, и пути их решения.

Технологии компьютерной графики и их практическая реализация

В статье рассматриваются виды компьютерной графики, такие как векторная графика, графические растровые изображения и фрактальная графика, средства 3-D моделирования, освещаются различия между ними, а также способы, методы и области применения. Так же...

Инструменты для анализа данных: сравнение Python, R и других популярных платформ

В статье автор сравнил различные языки программирование такие как «Python», «R», «Julia», «SAS» и «MATLAB» и выявил их характерные особенности, на основе которых каждый сможет для себя решить с каким языком программирования он захочет работать.

Графы в Scilab

В статье рассматриваются возможности использования математического программного обеспечения при решении задач теории графов. Рассматриваются некоторые аспекты представления графов в системе Scilab.

Разработка 3D-моделей в Blender для интеграции в Unity

Данная статья описывает процесс подготовки объектов в бесплатном программном обеспечении Blender с целью дальнейшей их интеграции в межплатформенную среду разработки Unity с целью дальнейшего использования в моделировании или разработки виртуальных л...

Методы обработки видеоизображений с помощью языка программирования Python

В статье рассматриваются современные методы обработки видеоизображений с использованием языка программирования Python. Описываются ключевые библиотеки, такие как OpenCV и scikit-image, а также их применение для выполнения задач, включая распознавание...

Разработка программного кода на основе библиотеки MFC и объектно ориентированного подхода

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

Похожие статьи

Возможности программного обеспечения компании Mentor Graphics в области трехмерного моделирования электромагнитных полей электронных устройств и систем

Представлен состав и основные функциональные возможности программного обеспечения HyperLynx 3D EM (IE3D) компании Mentor Graphics для трёхмерного моделирования электромагнитных полей электронных устройств и систем.

Разработка обучающих программ с помощью инструментов для создания компьютерных игр

Статья посвящена решению проблемы создания обучающих приложений, похожих на компьютерные игры. Для создания таких приложений предлагается использовать программу TGF (The Games Factory). Описан процесс подготовки к созданию обучающего приложения-игры....

Эволюция веб-фреймворков Microsoft. ASP.NET vNext (ASP.NET 5)

Данная статья рассказывает о платформе Microsoft.NET Framework и технологии создания веб-приложений и веб-сервисов от вышеупомянутой компании — ASP.NET. Описывается история развития данной технологии и последние новшества, такие как ASP.NET vNext.

Организация многомодульной, слабосвязанной архитектуры приложения при работе с Gradle

В статье описывается подход для реализации многомодульной, слабосвязанной архитектуры в Android приложении, с использование системы сборки Gradle. Рассматриваться проблемы, которые возникают в процессе разработки, и пути их решения.

Технологии компьютерной графики и их практическая реализация

В статье рассматриваются виды компьютерной графики, такие как векторная графика, графические растровые изображения и фрактальная графика, средства 3-D моделирования, освещаются различия между ними, а также способы, методы и области применения. Так же...

Инструменты для анализа данных: сравнение Python, R и других популярных платформ

В статье автор сравнил различные языки программирование такие как «Python», «R», «Julia», «SAS» и «MATLAB» и выявил их характерные особенности, на основе которых каждый сможет для себя решить с каким языком программирования он захочет работать.

Графы в Scilab

В статье рассматриваются возможности использования математического программного обеспечения при решении задач теории графов. Рассматриваются некоторые аспекты представления графов в системе Scilab.

Разработка 3D-моделей в Blender для интеграции в Unity

Данная статья описывает процесс подготовки объектов в бесплатном программном обеспечении Blender с целью дальнейшей их интеграции в межплатформенную среду разработки Unity с целью дальнейшего использования в моделировании или разработки виртуальных л...

Методы обработки видеоизображений с помощью языка программирования Python

В статье рассматриваются современные методы обработки видеоизображений с использованием языка программирования Python. Описываются ключевые библиотеки, такие как OpenCV и scikit-image, а также их применение для выполнения задач, включая распознавание...

Разработка программного кода на основе библиотеки MFC и объектно ориентированного подхода

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

Задать вопрос