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)
Ответ на: комментарий от kevlarbeaver

A strip of tape and a handful of rules can produce surprisingly complex behaviour. This is the interactive Turing machine module in my project, Makarov Math Suite. A mechanical head reads a symbol, writes a new one, moves along the tape, and changes state. Every action follows the transition table visible beside it. The four-state, two-symbol Busy Beaver shown here halts after 107 steps, leaving 13 ones on the tape. You can slow the machine down, step backwards through its history, and edit individual rules. The previous run remains visible for comparison, making it easier to explore how a small change affects the computation. Behind the moving mechanism lies a fundamental limit of computing: no algorithm can correctly decide, for every possible program and input, whether the program will eventually halt. My aim is to make that abstract idea something you can watch, manipulate, and investigate.

https://apps.microsoft.com/detail/9P5K9QRHHKKP

https://store.steampowered.com/app/5204230/Makarov_Math_Suite/

kevlarbeaver
★★★
Windows / Chrome (DE)