LINUXTALKS.CO

Комплекс Математических Программ

 

L


0

1

Математика, на которую можно смотреть: ответвление моего физического симулятора

В августе я выпустил в Steam Makarov Physics Suite - 140 интерактивных 3D-модулей по физике, от маятников до токамака. Проект тянется с 2004 года: начинался на Delphi и OpenGL 1.1, потом был переписан с нуля на C# со своим рендером.

Пока я его делал, накопилась пачка тем, которые физикой уже не назовёшь: узлы, замощения, четырёхмерные тела, случайные блуждания. Им стало тесно, и я ответвил их в отдельный проект - Makarov Math Suite. Движок тот же, принцип тот же: не картинка «по мотивам», а живая сцена, где каждое число на панели измерено по происходящему, а не написано в подписи.

Вот семь первых модулей - короткие записи прямо из программы.

Случайные блуждания (- walks)

Тысячи ходоков выходят из одной точки и шагают по решётке - каждое направление равновероятно. Облако растёт как корень из числа шагов, и стеклянная сфера ровно такого радиуса растёт вместе с ним. А кто хоть раз прошёл через дом, становится золотым. В одном и двух измерениях рано или поздно возвращаются почти все; в трёх - только каждый третий, около 34 %. Это теорема Пойи, и здесь она не рассказана, а измерена по рою: доля золотых стоит на экране и сходится к точному значению.

Узлы (Knots)

Торический узел T(p, q): кривая намотана p раз вокруг дыры тора и q раз вокруг его трубки. Трилистник, пятилистник, зацепление Соломона. Картинка сама считает свои пересечения при любом повороте камеры - и число никогда не опускается ниже известного минимума, как ни крути. Это и значит «инвариант». Поменяй p и q местами: картинка другая, узел - тот же самый, и числа это подтверждают.

Гиперболическая геометрия (Hyperbolic geometry)

Диск Пуанкаре: вся бесконечная гиперболическая плоскость уложена внутрь окружности, и до края - бесконечно далеко. Семиугольники по три в каждой вершине замощают её без зазоров и нахлёстов - в обычной плоскости такое невозможно. Замощение не расставлено руками: оно выращено отражениями одной центральной плитки. И оно течёт - мёбиусов сдвиг скользит узором, плитки всплывают от края и уходят обратно, и ни одно ребро при этом не меняет своей гиперболической длины. Рядом тот же узор поднят на гиперболоид - вторая модель той же геометрии.

Минимальные поверхности (Minimal surfaces)

Формы, в которые ложится мыльная плёнка: катеноид, геликоид, поверхности Эннепера и Шерка. У всех средняя кривизна в каждой точке равна нулю - изогнуто в одну сторону ровно настолько же, насколько в другую, - и панель меряет её вживую прямо на поверхности. Самое красивое: поворот одного угла перетекает катеноид в геликоид без единого растяжения - все расстояния на плёнке остаются прежними. Цвет показывает кривизну Гаусса: голубое - почти плоско, пурпурное - самое крутое седло.

Выпуклых тел, у которых все грани - одинаковые правильные многоугольники и все вершины устроены одинаково, ровно пять. Шестого нет и не будет. А дальше - срезание углов: каждое ребро отдаёт понемногу с обоих концов, угловые грани растут, старые сжимаются. При t = 1/3 из икосаэдра получается футбольный мяч - двенадцать пятиугольников и двадцать шестиугольников; при t = 1/2 старые грани встречаются серединами рёбер. Срезание в модуле идёт само и останавливается ровно там, где новые грани выходят правильными.

4D-политопы (4D polytopes)

Тень тессеракта - куб внутри куба. Поверни тело в плоскости xw, сквозь четвёртое измерение, - и внутренний куб разбухает, проходит сквозь внешний и встаёт на его место. Это «дыхание» и есть четвёртое измерение, увиденное своими глазами. Правильных выпуклых 4-политопов ровно шесть, и все они построены из координат, а не нарисованы: 120-ячейник, например, не вбит руками - его 600 вершин суть центры 600 тетраэдров другого тела, вывернутого наизнанку. Рёбра окрашены по четвёртой координате: тёплые ближе к «4D-глазу», холодные дальше.

L-системы (L-systems)

Линденмайер записал растения строками: аксиома, несколько правил замены и черепаха, которая читает результат - «нарисуй шаг», «повернись», «запомни, где началась ветка». Переписали строку один раз - веточка; пять раз - куст. Здесь растение растёт на глазах от ствола к листьям, кривая Гильберта штрих за штрихом пронизывает куб, дракон разворачивается - а когда рисунок дорисован, строка переписывается ещё глубже, и всё растёт заново. Числа порождает сама грамматика: у кривой Коха на n-м шаге 4^n отрезков и длина (4/3)^n - это видно и это сосчитано.

Это только начало. В работе уже есть ряды Фурье - эпициклы, которые рисуют кота суммой вращающихся окружностей, - векторные поля с теоремами Гаусса и Стокса, измеренными на живом рое частиц, и множества Жюлиа, где остров рассыпается в пыль ровно в тот миг, когда убегает одна-единственная орбита. Дальше по плану - перколяция, диаграммы Вороного, спираль простых чисел, гипотеза Коллатца, задача коммивояжёра.

Если есть математика, которую вы всегда хотели увидеть глазами, а не в формулах, - напишите в комментариях, какая. Список тем открыт.

Makarov Physics Suite: https://store.steampowered.com/app/4861360/Makarov_Physics_Suite/

Математика, на которую можно смотреть: ответвление моего физического симулятора

Остальная математика уже не математика? Так всё живём в ожидании всемирного признания?

tdutybz-13
★
Android / Firefox (ES)

Chaos game (Игра в хаос) - Выберите случайную вершину треугольника, прыгните на полпути к ней, повторите тысячи раз. Казалось бы, чистая случайность должна дать бесформенное пятно - но вместо этого проступает треугольник Серпинского, бесконечно вложенный фрактал. Порядок, спрятанный внутри случая.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Conic sections (Конические сечения) - Окружность, эллипс, парабола, гипербола: четыре кривые, которые выглядят совершенно разными, но на самом деле - одно и то же: сечения конуса под разными углами. Смотрите, как одна секущая плоскость наклоняется, и кривые перетекают друг в друга. Эти линии управляют всем - от орбит планет до спутниковых тарелок.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Nets of the solids (Развёртки тел) - Любой многогранник можно развернуть в плоский лист, и способов сделать это обычно несколько. Кубы и другие тела раскрываются и складываются обратно - и видно, как объёмная фигура тайно живёт в двух измерениях.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Pythagoras by area (Пифагор через площади) - Забудьте про алгебру. Квадраты, построенные на двух коротких сторонах прямоугольного треугольника, разрезанные и переложенные, в точности заполняют квадрат на длинной стороне. Одна из древнейших теорем математики - как головоломка, а не как доказательство.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Sunflower (Подсолнух) - Семена укладываются по одному, каждое повёрнуто на золотой угол - примерно 137,5 градуса. Получается спиральный узор, который мы видим у подсолнухов, шишек и ананасов. Измените угол совсем чуть-чуть - и красота рассыпается. Природа выбрала единственный угол, при котором семена упакованы плотнее всего.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Times table on a circle (Таблица умножения на окружности) - Расставьте числа по кругу и соедините каждое линией с его кратным. Умножение на 2 рисует сердцевидную кардиоиду, на 3 - двухлепестковую нефроиду, дальше - всё более причудливые кривые. Школьная арифметика прячет в себе целую галерею геометрии.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Vector fields (Векторные поля) - Векторное поле задаёт направление и силу в каждой точке пространства: ветер, течения, гравитация, магнетизм. Частицы дрейфуют сквозь поле и обнажают его скрытую структуру - источники, стоки, вихри, невидимую архитектуру потока.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Why maps lie (Почему карты врут) - Земля - шар, а карта плоская. Чем-то придётся пожертвовать. Смотрите, как глобус проецируется на плоскость: Гренландия раздувается, Африка сжимается, очертания искажаются. Любая карта - компромисс, вопрос лишь в том, что именно она приносит в жертву.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Портирую по чуть-чуть на MacOS на Swift+Metal

Вообще местами доведется C++ заюзать судя по тестам вместо Swift, потому что есть нюансы с производительностью, но не в этих модулях

kevlarbeaver
★★★
Mac OS / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

Так выглядит вход в Makarov Math Suite: вращающаяся карусель со 120 математическими экспериментами. Здесь соседствуют фракталы, геометрические конструкции, нейросети, алгоритмы и задачи на вероятность. Можно выбрать знакомую тему или открыть карточку просто потому, что заинтересовала картинка. Дальше у каждого модуля свои параметры, объяснения и способы поэкспериментировать.

Доступен на Steam: https://store.steampowered.com/app/5204230/Makarov_Math_Suite/

И на Microsoft Store: https://apps.microsoft.com/store/detail/9P5K9QRHHKKP?cid=linuxtalks

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

У каждой клетки есть несколько простых правил: когда появиться, когда остаться и когда исчезнуть. Из этого возникают движущиеся фигуры, повторяющиеся узоры и целые маленькие экосистемы. В ролике — и построение рисунка строка за строкой, и двумерная «Жизнь». Особенно затягивает следить за отдельной фигурой и пытаться угадать, что переживёт следующее поколение.

На этой карте у каждого шага есть цена. Алгоритм Дейкстры ищет маршрут с наименьшей суммарной стоимостью, поэтому выгодная дорога может обходить дорогие участки стороной. Высота и цвет клеток помогают читать местность, а светящаяся линия показывает найденный путь. Так задача из теории графов превращается в маленький рельефный мир со своими правилами передвижения.

Три двери, один приз и знаменитая задача Монти Холла. Если ведущий знает, где приз, и всегда открывает пустую дверь, смена выбора даёт шанс выиграть 2/3. В ролике меняется важная деталь: ведущий начинает открывать дверь наугад. Среди игр, где он случайно не открыл приз, преимущество смены исчезает — остаётся 1/2. Одна деталь в правилах полностью меняет ответ.

Три вложенных кольца позволяют управлять ориентацией платформы. Но при определённом наклоне две оси совпадают, и механизм теряет одну независимую возможность поворота. Уже при приближении к этому положению кольцам приходится резко ускоряться, хотя сама платформа движется плавно. Здесь можно увидеть, откуда берётся карданов замок и почему для описания вращений в 3D так полезны кватернионы.

В одной точке поверхности можно двигаться вверх, вниз или почти без изменения высоты — всё зависит от направления. Вращающаяся секущая плоскость превращает поверхность в обычную кривую, у которой легко рассмотреть наклон. А стрелка градиента показывает направление самого быстрого роста. Частные производные постепенно становятся вполне осязаемой геометрией.

kevlarbeaver
★★★
Windows / Chrome (DE)
Ответ на: комментарий от kevlarbeaver

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

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

У обычного сгиба бумаги есть точный математический смысл. Если сложить лист так, чтобы одна точка совпала с другой, линия сгиба пройдёт посередине между ними и под прямым углом к соединяющему их отрезку. В модуле объёмный лист связан с плоским чертежом: меняешь положение точек и сразу видишь, как перестраивается сгиб. Бумага становится инструментом геометрического построения.

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

Несколько окружностей вращаются с разными скоростями и складывают свои движения в рисунок. В ролике этот механизм берётся за квадрат, сердце и кота. Размеры окружностей и их вращения задаются коэффициентами Фурье выбранного контура. Число гармоник определяет, сколько деталей удаётся передать: сложную линию можно буквально разобрать на простые круговые движения.

kevlarbeaver
★★★
Windows / Chrome (DE)