Рубрика «mathematica» - 2

Отображение молекулярных орбиталей с помощью языка Wolfram Language (Mathematica) - 1

Перевод поста Jason B. "Plotting electronic orbitals using Mathematica".
Выражаю благодарность за помощь в переводе участнику сообщества ВКонтакте Русскоязычной поддержки Wolfram Mathematica Курбану Магомедову.
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, а также дополнительные материалы, можно здесь.

Химикам часто бывает полезно изображение молекулярных орбиталей (МО). Они используются для описания волновой функции электронов в атомах или молекулах. Как правило, это результаты различных квантово-химических или квантово-физических расчетов, производимых в специализированном программном обеспечении для расчета МО, которые представлены в виде cube-файла, разработанного Gaussian. Эти файлы содержат объемные данные для построения орбиталей на трехмерной сетке.

Существует множество приложений для просмотра cube-файлов, такие как VMD или GaussView, но я хотел бы воспользоваться возможностями Mathematica, которые она дает для совмещения и создания различных типов графических объектов, а также автоматизации всего процесса, что в итоге позволило эффективно создавать кадры для видео, в котором можно наблюдать изменение МО.


Читать полностью »

Построение кроссвордов с помощью языка Wolfram Language (Mathematica) - 1

Перевод поста Майкла Тротта (Michael Trott), «Constructing Crossword Arrays Faster».
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.

В главе 6 моей книги Mathematica GuideBook for Programming, в качестве примера работы со списками я обсудил то, как построить массив, представляющий собой кроссворд. Хотя этот пример был хорош для демонстрации продвинутой работы со списками, тем не менее, использование списков не является оптимальным путем построения массива кроссворда. Сложность добавления нового слова в массив с уже размещенными n-1 словами составляла для этого алгоритма ConstructingCrosswordArrays_1.png, таким образом общая сложность составления массива кроссворда из n слов становилась равной ConstructingCrosswordArrays_2.png.

На протяжении последних нескольких лет, некоторые пользователи Mathematica спрашивали меня о том, можно ли построить более быстрый алгоритм. Ответ — да, можно. Если мы будем применять методы хеширования, то мы сможем быстро и за одно и тоже время проверять, можно ли использовать некоторый элемент массива и, следовательно, мы сможем снизить общую сложность алгоритма с ConstructingCrosswordArrays_3.png до ConstructingCrosswordArrays_4.png, что для кроссвордов из тысяч слов даст большую разницу во времени, затрачиваемом на вычисления. Этот алгоритм реализован в данной статье. Когда мы размещаем отдельные буквы слова в некоторой прямоугольной таблице необходимо рассматривать множество различных ситуаций. В результате в статье содержится большее, чем обычно, количество процедурного кода. Хотя некоторые определения функций несколько длинные, благодаря комментариям между шагами вычислений и ветками решений код должен быть довольно простым для чтения и понимания.
Читать полностью »

Создание фотомозаик с помощью языка Wolfram Language (Mathematica) - 1

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~3 МБ).

Введение

До Нового 2015-го года осталось уже менее суток:

In[1]:=

ImageMosaic_2.png

Out[1]=

ImageMosaic_3.png

Мне хотелось бы поздравить всех с Наступающим Новым 2015-м годом и рассказать о том, как вы можете сделать своим близким необычный подарок в виде фотомозаики, созданной с помощью системы Mathematica 10 и языка Wolfram Language.

Идея фотомозаики в целом довольно проста: создать изображение на основе коллекции других изображений небольшого размера.

Для того, чтобы создать фотомозаику можно действовать двумя основными способами:

  • Простой способ: разбить изображение на фрагменты фиксированного размера, после чего подобрать каждому фрагменту наиболее “похожее” на него изображение из заданной коллекции и заменить этот фрагмент на него. В результате, чем меньше размер фрагмента и больше коллекция, тем качественнее будет фотомозаика.

  • Сложный способ: по сути повторяет первый способ за исключением того, что разбиение исходного изображения производится некоторым “адаптивным” алгоритмом на фрагменты различного размера.

Для упрощения рассматриваемой задачи будем создавать мозаику из квадратных миниатюр.
Читать полностью »

«Математика – один из видов искусства»: пост к столетию со дня рождения Мартина Гарднера - 1

Перевод поста Эда Пегга Младшего (Ed Pegg Jr) "Martin Gardner’s 100th Birthday"

Я думаю, содержание этого поста будет интересно всем, кто любит математику и ее красоту, всем, кто знаком с замечательными книгами и задачами Мартина Гарднера, а также будет полезно учителям, школьникам и студентам. Все ссылки в данном посте ведут на сайты Wolfram Demonstrations Project (коллекция бесплатных интерактивных демонстраций, созданных пользователями системы Mathematica на языке Wolfram Language с помощью технологии Computable Document Format (CDF), при этом для вас доступны исходные коды всех демонстраций, а значит, вы можете каждую из них скачать, изучить и изменить под себя) и Wolfram MathWorld (крупнейшая и самая авторитетная онлайн-энциклопедия по математике).

Gardner100_1.gif

Читать полностью »

Переход от приближенного решения к точному: задача о разбиении квадрата на 50 подобных остроугольных треугольников

Перевод поста Эда Пегга младшего (Ed Pegg Jr) "From Close to Perfect—A Triangle Problem"
Выражаю благодарность за помощь в переводе Андрею Дудину.
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.

В языке Wolfram Language (доступном, скажем, в системе Mathematica) функция RootApproximant позволяет найти замкнутую форму в виде алгебраического числа для некоторого приближённого числа, и эта функция позволила нам превратить приближенное решение задачи о разбиении квадрата на 50 подобных остроугольных треугольников с углами (45°, 60°, 75°) в точное.

Ясно, что квадрат можно разбить на треугольники (триангулировать), например, просто соединив его противоположные вершины. Известно, так же, что квадрат можно разбить на семь подобных треугольников разной площади или на десять остроугольных равнобедренных треугольников (см. рис. ниже). Известны также классические задачи, связанные с разбиением квадрата на восемь остроугольных треугольников (см. рис. ниже), или на двадцать треугольников со сторонами, относящимися друг к другу как Perehod-ot-priblizhjonnogo-reshenija-k-tochnomu-zadacha-o-razbienii-kvadrata-na-50-podobnyh-ostrougolnyh-treugolnikov_1.png. На третьем чертеже (считая сверху) показано разбиение квадрата на подобные треугольники с углами (45°, 60°, 75°), но вы можете с легкостью заметить, что это решение не корректно, так как один из треугольников немного накладывается на другой.
Читать полностью »

Стивен Вольфрам выпустил онлайновую версию Mathematica

После многих лет Стивен Вольфрам всё-таки запустил проект Mathematica Online: облачную версию системы компьютерной алгебры Mathematica, которая работает в любом современном браузере. Правда, в бесплатной версии отключена часть функций.

Онлайновая версия в некотором отношении имеет преимущества перед десктопной. Например, здесь несколько авторов могут совместно работать над документом. К тому же веб-интерфейс доступен на планшетах и смартфонах, пишет Вольфрам.
Читать полностью »

Профессор Джим Белк (Jim Belk) показал, что программа Mathematica полезна не только в науке, но и в повседневной жизни. По просьбе одного любителя бильярда профессор рассчитал траекторию шаров при разбиении ударом битка идеально по центру пирамиды.

Идеальное разбитие пирамиды шаров в бильярде

Траектории установлены с помощью численных дифференциальных уравнений.
модели численных дифференциальных уравнений.
Читать полностью »

Прошло всего три дня с анонса масштабного проекта от Стивена Вольфрама, о котором уже писали на хабре, как стало известно о том, что новый язык Wolfram (Wolfram Language) можно опробовать на практике: он доступен для платформы Raspberry Pi вместе с математическим пакетом Mathematica уже сегодня — причем совершенно бесплатно. Подписавшиеся на получение новостей о языке Wolfram получили рассылку с новостью об этом. Ниже приведен её перевод (статья написана от имени разработчиков Raspberry Pi).

Читать полностью »

Logo

Начнём мы конечно же с теории и дадим определение кольцевому маршруту и его возможным частным случаям. Кольцевой маршрут — маршрут движения автомобиля по замкнутому контуру, соединяющему несколько потребителей (поставщиков). Разновидностями кольцевых маршрутов являются развозочные, сборные и сборно-развозочные маршруты. Развозочным называется такой маршрут, при котором продукция загружается у одного поставщика и развозится нескольким потребителям. Сборочный маршрут — это маршрут движения, когда продукция получается у нескольких поставщиков и доставляется одному потребителю. Сборно-развозочный маршрут — это сочетание развозочного и сборочного маршрутов.
Читать полностью »

LogoКак и обещал в своём прошлом посте (тут), что в случае если он будет «принят», я продолжаю цикл статей об использовании Wolfram Mathematica для решения небольших прикладных задач в логистике. Жаль только читатели поскупились на комментарии.
Сегодня мы рассмотрим маятниковые маршруты. Мы будем преследовать две цели: с одной стороны рассмотрим три вида маятниковых маршрутов, а именно маятниковый маршрут с холостым обратным пробегом, с не полностью груженым обратным пробегом, с полностью груженым обратным пробегом, и их технико-эксплуатационные показатели, с другой рассмотрим как можно автоматизировать расчёт этих показателей, дабы избавить себя от излишнего вбивания чисел в калькулятор. Трудно сказать насколько такая автоматизация эффективна и полезна, но работать над этим было по крайней мере интересно.
Под катом много картинок, но не бойтесь, их общий вес около 640 КБ. Как говорил один советский летчик-космонавт «Поехали!».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js