Mathematica программа для компьютера
Доступно для
рабочего стола, облака и
мобильных устройств
На протяжении трёх десятилетий система Mathematica определяет передовой край технических вычислений и обеспечивает основную среду для проведения расчётов для миллионов новаторов, педагогов, студентов и других пользователей по всему миру.
Широко признанная за технические возможности и элегантную простоту использования, система Mathematica обеспечивает цельную интегрированную и постоянно расширяющуюся систему, охватывающую весь спектр технических вычислений, а также доступна бесперебойно в облаке через любой веб-браузер наряду со всеми родными современными системами для рабочего стола.
Нет лучшего выбора для современных технических вычислений
Благодаря энергичному развитию и стабильному видению на протяжении трёх десятилетий, система Mathematica не имеет себе равных в большом диапазоне измерений и уникальна в своей поддержке современной среды и организации рабочего процесса для технических расчётов.
Огромная система, тесная интеграция
Mathematica имеет в наличии более 6000 встроенных функций, покрывающих все области технических расчётов—все они тщательно интегрированны для идеальной совместной работы, и все они включены в полностью интегрированную систему Mathematica.
Не только числа и математика, но всё остальное
Основываясь на трех десятилетиях развития, система Mathematica превосходит во всех областях технических расчётов, включая нейронные сети, машинное обучение, обработку изображений, геометрию, науку о данных, визуализацию и многое другое.
Удивительная алгоритмическая производительность
Система Mathematica строится на беспрецендентно мощных алгоритмах всех предметных областей; многие из них были созданы компанией Wolfram, используя уникальные методы развития и уникальные возможности языка Wolfram Language.
Более высокий уровень, чем когда-либо прежде
Суперфункции, мета-алгоритмы. Mathematica предоставляет прогрессивную высокоуровневую среду с максимальным уровнем автоматизации, что позволяет Вам быть наиболее продуктивными.
Вся функциональность промышленного класса
Mathematica построена с целью предоставления возможностей промышленной мощности, с крепкими эффективными алгоритмами во всех областях, способными решать крупномасштабные задачи с параллелизмом, вычислениями на графических процессорах и многим другим.
Убедительная простота в использовании
Система Mathematica использует свои алгоритмические возможности и тщательное проектирование языка Wolfram Language для создания уникальной в использовании системы, имеющей предиктивные рекомендации, поддержку ввода на естественном языке и многое другое.
Не только пишите код, но и документируйте
Система Mathematica использует Wolfram Notebook Interface, который позволяет организовать всё, что Вы делаете, в богатый содержанием документ, который включает текст, выполнимый код, динамичную графику, пользовательский интерфейс и многое другое.
Понятный код
Благодаря когерентному дизайну и использованию интуитивных названий функций, состоящих из полных английских слов, язык Wolfram Language исключительно просто читать, использовать и изучать.
Представляйте свои результаты наилучшим способом
Благодаря утончённой вычислительной эстетике и отмеченному наградами дизайну, система Mathematica представляет Ваши результаты в прекрасном виде, мгновенно создавая передовые интерактивные визуализации и готовые к публикации документы.
Реальные данные напрямую
Mathematica имеет доступ к обширной базе знаний Wolfram Knowledgebase, которая включает актуальные реальные данные из тысяч предметных областей.
Эффективная облачная интеграция
Система Mathematica теперь плавно интегрированна с облаком, позволяя совместное использование, облачные расчёты и многое другое в уникальной и мощной гибридной среде облака/рабочего стола.
Совместимо с чем угодно
Система Mathematica построена так, чтобы быть подключенной ко всему: файловым форматам (более 180), другим языкам, Wolfram Data Drop, API, базам данных, программам, интернету вещей, устройствам и даже распределённым копиям самой себя.
Более 150 000 примеров
Начните с практически любого проекта с помощью более 150000 примеров из Documentation Center, и более 10000 демонстраций с открытым кодом в Wolfram Demonstrations Project и множества других ресурсов.
Ищете вычислительные преимущества в своем образовании? Mathematica Student Edition обладает всеми функциональными возможностями и универсальностью Mathematica, и все за небольшую цену. Знаете ли вы, что за меньшую цену, чем учебник, вы можете использовать на своём персональном компьютере те же технологии, что и профессионалы и преподаватели во всем мире.
Ищете вычислительные преимущества в своем образовании? Mathematica Student Edition обладает всеми функциональными возможностями и универсальностью Mathematica, и все за небольшую цену. Знаете ли вы, что за меньшую цену, чем учебник, вы можете использовать на своём персональном компьютере те же технологии, что и профессионалы и преподаватели во всем мире.
Вы изучаете эти предметы? Тогда вам понадобится Mathematica!
Наука о данных
Благодаря широкому спектру встроенных аналитических инструментов, визуализаций и тщательно отобранных данных, а также мгновенному масштабированию данных от малого до большого объема, Mathematica идеально подходит для изучения и исследований в области науки о данных.
Физика
Создавайте и исследуйте интерактивные модели сложных систем, используя высокоавтоматизированные решатели дифференциальных уравнений Mathematica. Исследуйте с помощью встроенных формул, специальных функций и физических констант или изучайте современную физику с помощью новейших моделей нейронных сетей.
Математика
В течение трех десятилетий система Mathematica была основным выбором для изучения математики—с постоянно растущей коллекцией алгоритмов, прогрессивными улучшениями и оптимизациями, а также прямой интеграцией с реальными данными.
Биология, биоинженерия и естественные науки
Mathematica сочетает в себе вычислительные методы со встроенными геномными и другими данными, обеспечивая мощный статистический анализ, анализ изображений и сетей, а также биоинформатику, моделирование и подключение устройств.
Экономика
Выполняйте современные экономические вычисления с использованием исчисления, статистики, моделирования и многого другого, обрабатывайте данные и эконометрику с помощью встроенных социально-экономических баз данных и привлекательных визуальных результатов.
Химия и химическая технология
От быстрых вычислений дома или в лаборатории до границ вычислительной химии и химической технологии на рабочем месте, Mathematica позволяет применять новейшие вычислительные методы, а также подключаться к экспериментальному оборудованию.
Электротехника и компьютерная инженерия
Выполняйте сложную обработку сигналов, проектируйте и анализируйте схемы и системы управления, а также создавайте интерактивные модели и симуляции, подкрепленные надежностью мощных символьных и числовых вычислений.
Искусство и дизайн
Исследуйте изобразительное искусство и креативный графический дизайн, благодаря возможностям системы Mathematica в области солидных вычислений, презентаций и взаимодействия.
Гуманитарные науки
Mathematica расширяет возможности новых областей вычислительных гуманитарных наук с помощью новейших технологий визуализации и анализа текста, изображений, сетей и многого другого, а также широкого спектра встроенных культурных, исторических и других данных.
Наука о данных
Благодаря широкому спектру встроенных аналитических инструментов, визуализаций и тщательно отобранных данных, а также мгновенному масштабированию данных от малого до большого объема, Mathematica идеально подходит для изучения и исследований в области науки о данных.
Физика
Создавайте и исследуйте интерактивные модели сложных систем, используя высокоавтоматизированные решатели дифференциальных уравнений Mathematica. Исследуйте с помощью встроенных формул, специальных функций и физических констант или изучайте современную физику с помощью новейших моделей нейронных сетей.
Математика
В течение трех десятилетий система Mathematica была основным выбором для изучения математики—с постоянно растущей коллекцией алгоритмов, прогрессивными улучшениями и оптимизациями, а также прямой интеграцией с реальными данными.
Биология, биоинженерия и естественные науки
Mathematica сочетает в себе вычислительные методы со встроенными геномными и другими данными, обеспечивая мощный статистический анализ, анализ изображений и сетей, а также биоинформатику, моделирование и подключение устройств.
Экономика
Выполняйте современные экономические вычисления с использованием исчисления, статистики, моделирования и многого другого, обрабатывайте данные и эконометрику с помощью встроенных социально-экономических баз данных и привлекательных визуальных результатов.
Химия и химическая технология
От быстрых вычислений дома или в лаборатории до границ вычислительной химии и химической технологии на рабочем месте, Mathematica позволяет применять новейшие вычислительные методы, а также подключаться к экспериментальному оборудованию.
Электротехника и компьютерная инженерия
Выполняйте сложную обработку сигналов, проектируйте и анализируйте схемы и системы управления, а также создавайте интерактивные модели и симуляции, подкрепленные надежностью мощных символьных и числовых вычислений.
Искусство и дизайн
Исследуйте изобразительное искусство и креативный графический дизайн, благодаря возможностям системы Mathematica в области солидных вычислений, презентаций и взаимодействия.
Гуманитарные науки
Mathematica расширяет возможности новых областей вычислительных гуманитарных наук с помощью новейших технологий визуализации и анализа текста, изображений, сетей и многого другого, а также широкого спектра встроенных культурных, исторических и других данных.
Астрономия
Воспользуйтесь преимуществами универсальной среды для ваших астрономических исследований, такими как, сложная аналитика Mathematica, первоклассная обработка изображений и оптимизированное решение дифференциальных уравнений с полной поддержкой форматов файлов для научных данных и инструментов, а также постоянно обновляемые данные о небесных телах.
Бизнес, финансы и бухгалтерский учет
Используйте Mathematica для современного моделирования, финансового и бизнес-прогнозирования, а также анализа, основанного на детализирующих реальных данных.
Информатика
Mathematica предоставляет уникальную среду для внедрения, исследования и развертывания вычислений, а также для поддержки передовых компьютерных наук.
Общая инженерия
Благодаря встроенным знаниям и уникальной интеграции, Mathematica обеспечивает вычисления и анализ, а также поддерживает крупномасштабное моделирование и прямое развертывание устройств во всех областях инженерии.
География и ГИС
Mathematica включает широкий спектр встроенных географических данных и визуализаций, обеспечивает моделирование и симуляцию нового поколения, обеспечивает подключение к сенсорным устройствам и с легкостью обрабатывает крупномасштабные данные и анализ изображений.
Машиностроение
Проектируйте и моделируйте механические системы как интерактивные приложения, используя интегрированные системы управления и методы оптимизации Mathematica. Получайте доступ к встроенным инженерным данным и моделям, а также анализируйте механические системы с помощью самого точного в мире символьного и числового движка.
Музыка
Используйте Mathematica для создания исполняемых алгоритмических композиций или сонификации, применяйте символические методы к музыкальным формам и используйте новейшие методы науки о данных и машинного обучения для анализа и визуализации музыки и звуков.
Социальные науки
Система Mathematica интегрирует многие типы данных и обширные встроенные базы данных, позволяя проводить самые современные методы анализа данных, моделирования и симуляции.
Статистика
Используйте Mathematica для доступа к графам и сетям, естественному языку, изображениям, машинному обучению, встроенным тщательно отобранным данным и периферийным устройствам, предоставляя уникальную и удобную среду для изучения статистики.
- Актуарные науки
- Прикладные науки
- Гражданская и экологическая инженерия
- Управление и промышленная инженерия
- Язык и лингвистика
- Материаловедение и инженерия
- Медицина и здравоохранение
- Ядерная инженерия
- Психология
Показать все (еще 9)
Показать меньше
Почему Wolfram
Быстрое начало работы Благодаря возможности понимания естественного языка (англ. NLU) все, что вам нужно сделать с Mathematica Student Edition - это ввести то, что вы хотите, чтобы программа выполняла—никакого опыта программирования не требуется. А благодаря тысячам интерактивных визуализаций в Центре документации и Wolfram Demonstrations Project, вы можете сразу же начать изучать готовые примеры.
Любая тема, любой уровень С помощью Mathematica Student Edition вы можете более подробно изучить любую тему, независимо от учебника, уровня знаний или стиля преподавания. Вы сэкономите время, изучая единый унифицированный язык с тысячами алгоритмов, оптимизированных для занятий, исследований и хобби-проектов.
Вычисления—где угодно Сделайте свои проекты доступными в любое время и в любом месте с помощью Mathematica Online. Выполняйте вычисления на настольных компьютерах, в облаке и на мобильных устройствах.
Взаимодействие с документами Организуйте все с помощью Wolfram блокнотов—данные, код, графики, презентации и многое другое. Без проблем взаимодействуйте с существующими документами, включая файлы PDF, электронные таблицы Microsoft Excel, документы Microsoft Word или файлы HTML.
Подключения ко всем устройствам Получайте тщательно отобранные данные непосредственно из Wolfram|Alpha и репозитория Wolfram Data Repository. Находите, импортируйте и форматируйте данные из встроенных сервисов и баз данных, а также подключайтесь к 3D-принтерам, датчикам и тысячам других устройств для мгновенных вычислений.
Поддержка сообщества С Mathematica Student Edition у вас есть обширная одноранговая сеть, доступная через Wolfram сообщество, где вы можете задавать вопросы, просматривать примеры других пользователей и т.д.
Востребованные навыки Технологии Wolfram широко используются в промышленности, правительстве и исследовательских университетах и дают важные знания и навыки, которые будут полезны в вашей дальнейшей карьере.
Возможно все с Wolfram Language Язык Wolfram Language не имеет себе равных по способности унифицировать алгоритмы, данные, блокноты и лингвистику благодаря своему уникальному символическому представлению, которое определяет все элементы единообразным образом.
Приступая к работе
Воспользуйтесь преимуществами этих материалов, специально разработанных, чтобы помочь вам максимально эффективно использовать возможности Mathematica в кратчайшие сроки.
Все знают о приложении Wolfram|Alpha, и, наверное, слышали про Wolfram Mathematica. Но, увы, поиск показал нам отсутствие постов об этой отличной среде на хабре, в данной статье нам хотелось бы осветить основы программирования на Mathematica. Для начала скажем пару слов об особенностях и возможностях этой системы, их довольно таки много, поэтому вам стоит запастись терпением. Вас заинтересует данный математический пакет? Тогда вы обязательно найдете и другие статьи по теме, освещающие более конкретные вопросы.
В основу Mathematica заложен гибкий символьный язык, который поддерживает много парадигм программирования, автоматическое проектирование интерфейса, продвинутые инструменты отладки и другое. Он упрощает процесс разработки, начиная от дизайна и заканчивая внедрением. Mathematica всё — программы, данные, формулы, документы, графики — представлены в виде символов.
Математические возможности программы заключены в относительно небольшом наборе функций, предоставляющих возможность решить алгебраические, дифференциальные, рекуррентные и функциональные равенства и неравенства и линейных систем; программа дает возможность проводить интегральный и дифференциальный анализы, анализ Фурье и анализ рядов, интегральные преобразования, кластерный анализ и другое. А также: матрицы с числами, символьные матрицы, разреженные, плотные и матрицы с несколькими миллионами элементов, численные методы для нахождения систем алгебраических уравнений и корней. Mathematica имеет в себе систему дискретных вычислений, которая включает в себя аспекты полиномиальной алгебры (разложение на множители, декомпозицию, деление многочленов, структурные операции и другое) Среда позволяет отображать, управлять и создавать кривыми Безье, NURBS кривыми, B-сплайнами и поверхностями. Интерполирование данных позволяет применять сплайновый метод, в какой угодно области.
Взятие многомерных и простых интегралов и сумм произведений их последовательностей; есть поддержка большого количества методов численного интегрирования. Mathematica, по слухам, берет 99% из всех интегралов, что является самым высоким показателем в данной области. Увы, в настоящее время найти такую информацию не удалось, однако еще ни одного разу нас в этой области приложение не подводило.
Программа Mathematica поддерживает большой набор основных алгоритмов и операций, к примеру: нахождение циклов, путей, клик и другое. Можно генерировать случайные, задавать произвольные графы, интерактивно конструировать их, импортировать и экспортировать в матричный вид и стандартный формат графов. Про такие вещи, как например разложение на простые числа, множители, модульную и сравнительную арифметику можно и не упоминать вовсе. Доступны математические константы.
Те, кто занимается статистикой тоже найдет Mathematica полезной, так как она включает большее количество статистических распределений, программа предлагает широкий набор статистических операций и мер (от математического дисперсии и ожидания до энтропии и полувариантов информации), проверку гипотез, автоматическую оценку параметров, анализ статистики и другое.
Кроме того, что приложение Mathematica является самой мощной вычислительной средой, программа имеет дополнительный функционал, который затрагивает многие технические сферы, от финансового инжиниринга и вычислительной биологии до геоинформационных систем и волнового анализа.
Приложение Mathematica поддерживает несколько сотен форматов для экспорта и импорта, включая электронные таблицы, 2D и 3D графические форматы, xml, мультимедиа-файлы, pdf, html, архивы и другие специфические форматы. Первоначально поддерживаются все растровые, векторные, аудио и видео-форматы, такие, как jpeg, gif, png, eps, svg, avi, quicktime, flv, swf и другие. Можно импортировать видео-файлы целиком, выделять отдельные кадры и после этого их обработать. Для работы с изображением в программу встроено много функций служащих для того, чтобы их получить, используя различные фильтры, анализ форм, сегментации, выделения контуров…, все это работает в реальном времени.
Многоядерная система позволяет автоматически запускать несколько частей расчета (но тут нужно немного повозиться с настройками). Подсистема параллельных вычислений позволяет изменяться для сетевых вычислений, облачных вычислений, grid-систем, символьный язык способен предоставить поддержку множества моделей деления данных. Система позволяет программировать и GPU: поддержка OpenCL и CUDA присутствует. Все операции с GPU интегрированы в среду.
Приложение Mathematica содержит в себе полный набор функций для отображения неструктурированных и структурированных данных в 3d и 2d. Встроены функции позволяют выводить графики на плотности и контурных, графики из точек, поверхностей и линий, векторных графиков, графиков линий тока, двумерных/трехмерных диаграмм, гистограмм, графиков для спец. областей (финансы, статистика, теория графов, управленческие системы и др,: график типа «японские свечи», пузырьковые диаграммы, Q-нормальный вероятностный график, «ящик с усами», ЛАФЧХ и другие).
Мощная графическая подсистема способна обеспечить высококачественное динамическое или статическое представление функций, диаграмм, данных, аннотаций или изображений определяя баланс между визуальным соответствием и скоростью вычислений. Графические функции могут самостоятельно выбирать область печати, а также разбиение на регионы. Приложение Mathematica предоставляет несколько сотен опций, которые позволяют контролировать все аспекты отображения, в том числе метки осей, размер рисунка, отображение сетки, заливку, разбиение, 3d-освещение, наклон камеры и другое, позволяя создать профессионально выглядящий график. Кроме этого, создаваемый 3d-график получится интерактивным, можно налету изменять параметры камеры и этом будет отображаться в реальном времени.
Стоит отдельно сказать про разработку, это намного облегчит автоматическое конструирование интерфейсов, символьное задание элементов управления, единый интерфейс ввода, профилирование и отладку с возможностью поставить разные типы точек остановки, отслеживать выражение во время выполнения программного кода, визуальное контролировать по шагам выполнение программ и другое.Mathematica – это мощный редактор кода с отчетами об ошибках, подсветкой синтаксиса, довводом команд, отступами, автоматическим форматированием и т.д. Есть интеграция с поддержкой многоязыковой IDE Wolfram (база - Eclipse), что дает доступ к разным инструментам, например: управлением проекта, работой с исходным кодом, анализу и отладке синтаксиса.
Приложение Mathematica включает полный набор элементов управления и интерфейса: кнопки, вкладки, панели инструментов, ползунки, чекбоксы, диалоговые окна, всплывающие меню, предоставляет возможность создать собственные элементы. Система может рендерить элементы управления для каждой платформы в естественном виде, позволяя свободно делиться приложениями без необходимости думать над тем, в какой ОС программы будут работать. Все элементы интерфейса могут отображать и содержать любое выражение Mathematica.
При помощи этой системы вы сможете создавать пакеты – платформо-независимые библиотеки кода, которые позволяют многократно его использовать, легко распространять со всеми документами и вспомогательными панелями. К Mathematica можно без проблем подключить устройства ввода или внешние контроллеры: она автоматически распознает, позволяет конфигурировать джойстики, геймпады, тактильные устройства, мыши и другие HID-устройства на какой угодно платформе.
Главным образом, работа со средой происходит в называемых «ноутбуках» (notebook), которые могут содержать графику, форматированный текст, интерактивные приложения, данные и код, могут быть использованы и для распространения как отчет и для презентации. Вводить формулы очень просто и в это же время инструмент довольно мощен. Система имеет все типовые возможности качественной системы обработки текстовой информации, которая лежит в основе документа, символьная дает гибкие возможности использования стилей и создания разметки (cascading stylesheets): программа включает более 1000 опций оформления и форматирования, они доступны из меню и программно.
Из всего вышеописанного видно, что система – кроссплатформенна и поддерживает работу на windows,linux, mac os и sun solaris 10, причем как 32 битных, так и 64 битных версий. (точный список ОС и системные требования). В такой системе, конечно же, не обошлось и без документации. Здесь Mathematica не подкачала: справка состоит из ноутбуков, содержащих в себе более чем 100 тыс. примеров. Примеры могут быть изменены или запущены в документации (изменения не сохранятся), позволяя быстро и легко изучить новый функционал.
В заключении
При подготовке данного материала мы использовали статьи из раздела features, которые находятся на официальном сайте, личный многолетний опыт и документацию.
На хабре уже не раз упоминалась Mathematica и если вам хочется начать работать с ней, то эта статья для вас. Я расскажу об основных аспектах работы с нею и покажу несколько интересных нововведений из последних версий Wolfram Mathematica.
Изучение
Блокноты и Ячейки
- Ячейки ввода – в них задаются команды, которые будут вычислены
- Ячейки результата – в них выводится результат вычислений
- Другие ячейки – ячейки с текстом, заголовки и все остальное
Нумерация ячеек идёт в том порядке в котором вы их запустили. Для того что-бы вычислить значение ячейки нажмите SHIFT+ENTER или правый ENTER, либо Evaluation -> Evaluate Cells.
Для того что-бы обратиться к значению последней вычисленной ячейке используйте знак %.
Бесконечная точность
Одной из замечательных особенностью Mathematica является концепция бесконечной точности. Если результатом вычислений является корень из двух, то она так и напишет.
Вы можете попросить округлить ответ так:
Или же добавить дробную часть (или просто точку) к числам в выражении:
Ввод формул
В Mathematica реализован удобный ввод формул. Но для начала вам могут пригодится палитры (На картинке справа находится Palettes -> Basic Math Assistant).
У каждой кнопочки на палитре, есть свой горячие клавиши. Например, что бы написать знак интеграла нужно нажать Esc int Esc.
Вот список наиболее часто используемых горячих клавиш:
Выражения, Списки, Функции
Все что записано внутри ячеек является выражениями. Каждое выражение состоит из головы и списка. Например в выражение Power[2, 2]. В нём головой является Power, а списком 2, 2.
Даже 2+2 является выражением. Чтобы посмотреть как Mathematica интерпретирует ввод, есть функция FullForm:
Функция Hold просит математику не вычислять выражение. Обратной функция является Evaluate.
Списки в Mathematica создаются при помощи фигурных скобок: <. >, что является сокращением от List[. ].
Для манипуляции со списками в Mathematica есть огромная куча функций. Всё что вам может когда-нибудь понадобиться уже есть там. Вам остаётся только найти нужную функцию.
Для того чтобы получить элемент списка есть функция Part, c сокращённым вариантом в виде двойных квадратных скобок [[. ]] либо с толстыми скобками (Esc [[ Esc).
Поскольку всё является выражениями (и списки тоже), мы может получить голову выражения таким вот способом:
Таким образом индекс первого элемента в списке это 1.
Так же есть возможность заменить голову любого выражения. Это делает функция Apply[head, expression]. Либо её сокращённый вариант @@.
В Mathematica есть несколько способов применить функции(головы) к выражениям. Это обычные квадратные скобки: f[x], префикс: f@x, постфикс: x // f
А так же инфикс: из x ~ f ~ y получим f[x, y].
Однострочное программирование
В Mathematica есть множество функций для обычного программирования, такие как For, If, Switch. Однако, их лучше не использовать без крайней необходимости. Так как практически всё тоже самое можно сделать в одну строчку при помощи специальных функций и их комбинированием (поначалу бывает сложно перестроиться на такой стиль программирования).
Вот хорошее видео демонстрирующее как работают некоторые из функций:
Динамические интерактивные вычисления
Одной из замечательнейших возможностью Mathematica, являются динамические вычисления. Они позволяют манипулировать данными и смотреть на то как динамически меняется результат.
Для динамических вычислений используются функции Dynamic, Manipulate и др.
Заключение
В статье я рассказал о основных аспектах работы в Mathematica. Есть также несколько других важных моментов, таких как паттерны, модули, ядра. О них я расскажу в следующий раз, если эта тема будет интересна вам.
PS Обо всех найденных ошибках сообщайте мне в личку.
Все знают Wolfram|Alpha, и наверняка слышали о Wolfram Mathematica. К сожалению, поиск показал отсутствие постов об этой замечательной среде на хабре, и данной статьей хотелось бы открыть серию публикаций посвященных программированию на Mathematica. Для начала стоит сказать о возможностях и особенностях этой системы, которых ой как много, так что запаситесь терпением. Если хабражителей заинтересует этот математический пакет, то обязательно последуют другие статьи, более конкретные, обучающие работе со средой и внутренним языком.
Основа Mathematica — гибкий символьный язык, поддерживающий множество парадигм программирования, продвинутые инструменты отладки, автоматическое проектирование интерфейса и многое другое. Он упрощает весь процесс разработки от дизайна до внеднения. Mathematica всё — данные, программы, формулы, графики, документы — представляет в виде символьных выражений.
Все математические возможности заключены в небольшом наборе мощных функций, предоставляющих возможность решения алгебраических, дифференциальных, реккурентных и функциональных равенств и неравенств, а также линейных систем; возможность проводить дифференциальный и интегральный анализы, анализ рядов и анализ Фурье, кластерный анализ, интегральные преобразования и многое другое. А также: символьные матрицы, матрицы с числами любой точности, плотные, разреженные, матрицы с миллионами элементов, различные численные методы для нахождения корней и систем алгебраических уравнений. Mathematica предоставляет всеобъемлющую систему для дискретных вычислений, включает в себя все аспекты полиномиальной алгебры, такие, как разложение на множители и декомпозицию, структурные операции, деление многочленов и т.д. Среда позволяет создавать, отображать и управлять кривыми Безье, B-сплайнами, NURBS кривыми и поверхностями в любом числе измерений. Интерполирование данных сплайнами позволяет применять сплайновые методы в любой области.
Взятие простых и многомерных интегралов, а также сумм и произведений их последовательностей; поддерживается большое число методов численного интегрирования. По слухам, Mathematica берет 99% всех известных интегралов и является лидером в данной области. К сожалению, сейчас найти такую информацию на сайте не удалось, но еще ни разу она меня в этой области не подводила.
Mathematica поддерживает широкий набор основных операций и алгоритмов на графах, например: нахождение путей, циклов, клик и прочие. Можно задавать произвольные графы, генерировать случайные, интерактивно конструировать их, а также экспортировать и импортировать в стандартный формат графов и матричный вид. Про такие простые вещи как разложение на множители, простые числа, сравнительную и модульную арифметику можно даже и не упоминать. Доступны математические константы любой точности, а миллионы знаков таких констант как π или e вычисляются в одно мгновение.
Статистики тоже найдут Mathematica полезной, т.к. она включает в себя большее число статистических распределений, чем в любой другой системе, и предлагает полный набор статистических мер и операций (от математического ожидания и дисперсии до полувариантов и энтропии информации), автоматическую оценку параметров и проверку гипотез, анализ статистических моделей и многое другое.
Мало того, что Mathematica является мощной вычислительной средой, в нее встроен дополнительный функционал, затрагивающий многие технические сферы деятельности, от вычислительной биологии и финансового инжинеринга до волнового анализа и геоинформационных систем.
Mathematica поддерживает сотни форматов для импорта и экспорта, включая электронные таблицы, xml, двумерные и трехмерные графические форматы, мультимедиа-файлы, документы, включая pdf и html, а также архивы и многие другие специфические форматы данных. Изначально поддерживаются все стандартные растровые, векторные и видео форматы, включая gif, jpeg, png, svg, eps, avi, flv, quicktime, swf и прочие. Можно импортировать как видеофайлы целиком, так и выделять отдельные кадры для дальнейшей обработки. А для работы с изображениями в Mathematica встроено множество функций служащих для их получения, применения различных фильтров, сегментации, анализа форм, выделения контуров и т.д., работающих в реальном времени.
На многоядерной системе среда автоматически запускает несколько частей расчета одновременно (несколько кривят душой, все же надо немного повозиться). Подсистема параллельных вычислений может масштабироваться для сетевых вычислений, grid-систем, облачных вычислений, а символьный язык предоставляет поддержку множества моделей разделения данных. Система также позволяет программировать GPU: встроена поддержка CUDA и OpenCL. Все GPU-операции полностью интегрированы в среду, включая обмен данными между процессами, автоматическую компиляцию и линковку GPU-кода.
Mathematica содержит полный набор функций для отображения структурированных и неструктурированных данных в 2d и 3d. Встроены функции для вывода графиков контурных и плотности, графиков из точек, линий и поверхностей, векторных графиков и графиков линий тока, гистограмм, двумерных и трехмерных секторных и столбчатых диаграмм, пузырьковых диаграмм, графиков для специализированных областей (таких как финансы и статистика, теория графов, управляющие системы и т.д.: график «японские свечи», Q-Q-нормальный вероятностный график (quantile plot), «ящик с усами» (box-and-whiskers plot), ЛАФЧХ (Bode plot) и многие другие).
Графическая подсистема обеспечивает высококачественное статическое или динамическое представление функций, данных, диаграмм, изображений или аннотаций автоматически определяя баланс между скоростью вычислений и визуальным соответствием. Графические функции способны самостоятельно выбирать области печати и разбиение на регионы. Mathematica предоставляет сотни опций позволяющих контролировать каждый аспект отображения, включая размер рисунка, метки осей, отображение сетки, разбиение, заливку, 3d-освещение, угол наклона камеры и многое другое, позволяя создавать профессионально выглядящие графики. Более того, 3d-графики являются интерактивными, позволяющими изменять параметры камеры в реальном времени.
Отдельно стоит сказать и про разработку, которая много облегчается с автоматическим конструированием интерфейсов, символьным заданием элементов управления, единым интерфейсом ввода, отладкой и профилированием с возможностью ставить различные типы точек останова, следить за выражениями во время выполнения кода, визуальным пошаговым контролем выполнения программ и многим другим. Mathematica предоставляет мощный редактор исходного кода с подсветкой синтаксиса, отчетами об ошибках, довводом команд, автоматическим форматированием, отступами и т.д. Интеграция с многоязыковой IDE Wolfram Workbench (на базе Eclipse) дает доступ к различным инструментам, повышающим эффективность разработки, например: управлению файлами проекта, развитым инструментам для работы с исходным кодом, отладке и анализу синтаксиса.
Mathematica включает в себя полный набор элементов интерфейса и управления: кнопки, ползунки, вкладки, чекбоксы, всплывающие меню, диалоговые окна, панели инструментов, а также предоставляет возможность создавать свои собственные элементы. Система рендерит элементы управления в естественном виде для каждой платформы, позволяя сводобно делиться графическими приложениями без необходимости задумываться, в какой ОС они будут работать. Элементы пользовательского интерфейса могут содержать и отображать любое выражение Mathematica.
Система позволяет создавать пакеты – платформонезависимые библиотеки кода, позволяющие многократно его использовать и легко распространять с полным набором документации и вспомогательными панелями инструментов. К Mathematica легко подключить внешние контроллеры или устройства ввода: она автоматически распознает и позволяет конфигурировать геймпады, джойстики, тактильные устройства, 3d-мыши и прочие HID-устройства на любой платформе.
Работа со средой, главным образом, происходит в так называемых «ноутбуках» (notebook, *.nb), которые могут содержать форматированный текст, графику, интерактивные приложения, код и данные, а также могут быть использованы для распространения в виде отчета или презентации. Ввод формул очень прост и в то же время чрезвычайно мощен. В системе присутствуют все типовые возможности высококачественной системы обработки текста, а лежащая в основе документа символьная структура предоставляет гибкие возможности задания разметки и использования стилей (cascading stylesheets): более 1000 опций форматирования и оформления доступны как из меню, так и программно.
Благодаря мощной функции Manipulate можно создавать интерактивные мини-приложения, которые можно будет просмотреть и запустить на любой системе с помощью бесплатного Mathematica Player. Среди особенностей 8 версии пакета, можно выделить прямой доступ к данным Wolfram|Alpha и свободную форму лингвистического ввода. Можно ввести формулу простым человеческим языком, что может быть полезно для новичков.
Как видно из вышеописанного, система является кроссплатформенной и выпущена для windows, mac os, linux и даже sun solaris 10, как 32-битных версий, так и 64-битных. (системные требования и точный список поддерживаемых ОС). И, конечно, в такой мощной системе не обойтись без документации. Mathematica не подкачала и здесь: справка состоит из интерактивных ноутбуков, содержащих более чем 100 000 примеров. Все примеры могут быть запущены или изменены прямо в документации (не бойтесь, изменения не сохраняться), позволяя легко изучать новый функционал.
Заключение
При подготовке, были использованы материалы из раздела features официального сайта, документации и личный многолетний опыт работы со средой. Дополнительную информацию можно найти в обозначенном выше разделе, информацию о способах применения системы в разделе решений, а также можно посмотреть рассказы пользователей. Pro-версия стоит немало, однако есть значительные скидки для студентов, учебных заведений и домашнего использования. Доступна и триальная версия на 15 дней использования. [А еще можно скачать вы сами знаете где].
Надеюсь, мне удалось Вас заинтересовать, и хабр увидит еще множество статей о Wolfram Mathematica.
UPD: vayun упомянул об одной из самых интересных штук для ознакомления — о Wolfram Demonstrations Project, на котором можно посмотреть множество мини-программ, сделанных с использованием Manipulate. У всех программ есть онлайн предпросмотр, и возможность скачать демо-проект (запустить можно бесплатным Mathematica Player'ом) и исходники.
Читайте также: