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)

Кривые Безье и сплайны - как управлять плавной линией

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

В модуле можно увидеть, как такая линия строится. Алгоритм де Кастельжо последовательно выбирает точки на отрезках, соединяет их новыми отрезками и повторяет этот процесс, пока не остаётся одна точка на кривой. Меняется единственный параметр - и эта точка прочерчивает весь изгиб. На трёхмерной чертёжной доске абстрактный расчёт становится наглядной геометрической конструкцией.

Переместите управляющую точку и проследите, как изменится форма. Затем переключитесь на кубический B-сплайн: его линия составлена из согласованных участков. Сдвиньте управляющую точку возле края и заметьте, что часть кривой изменится, а другая сохранит форму. Так становится понятно, почему одни инструменты удобнее для отдельного изгиба, а другие - для длинного контура, который нужно аккуратно редактировать по частям.

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

Выпуклая оболочка - резинка вокруг облака точек

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

Для человека внешний контур часто очевиден. Компьютеру нужен алгоритм. Метод Джарвиса обходит границу, последовательно выбирая следующую вершину. Алгоритм Грэхема упорядочивает точки и отбрасывает повороты, нарушающие выпуклость. QuickHull разбивает задачу на части, выделяя наиболее удалённые точки. Разные пути приводят к одной и той же геометрической оболочке, но требуют разного количества проверок.

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

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

Генетический алгоритм - поиск с помощью отбора и случайности

Как найти самый высокий пик, если перед вами сложный рельеф с множеством вершин? Двигаться только вверх недостаточно: можно остановиться на ближайшей горке, так и не узнав о более высокой. Генетический алгоритм ищет решение целой популяцией кандидатов и использует идеи отбора, наследования и мутаций.

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

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

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

Синхронизация Курамото - от разных ритмов к общему движению

Светлячки могут вспыхивать согласованно, а связанные колебательные системы - постепенно подстраивать свои ритмы друг под друга. Как возникает такой порядок без единого дирижёра? Модель Курамото выделяет одну сторону этой задачи: у каждого участника есть собственная частота и фаза, но взаимодействие с остальными влияет на скорость изменения фазы.

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

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

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

Муравей Лэнгтона - сложный мир из двух правил

У этого муравья нет карты, цели и памяти о пройденном пути. В классическом варианте он действует по двум правилам: на белой клетке поворачивает направо, на чёрной - налево. Затем меняет цвет клетки и шагает вперёд. Казалось бы, такая программа должна быстро наскучить. Но её след превращается в удивительно сложный рисунок.

На первоначально пустом поле сначала возникают небольшие узоры, затем движение долго выглядит беспорядочным. Позже муравей выходит на «магистраль»: последовательность из 104 шагов повторяется, каждый раз сдвигая рисунок дальше. Периодическим становится способ движения и строительства пути, а не возвращение всего поля в прежнее состояние. Это известное поведение классического старта; из него не следует, что любая раскраска и любой набор правил дадут тот же результат.

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

kevlarbeaver
★★★
Последнее исправление: kevlarbeaver (всего исправлений: 1)

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

Логические элементы - как из «да» и «нет» получаются вычисления

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

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

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

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

Лабиринты - как построить загадку и найти выход

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

В модуле генераторы на основе поиска в глубину, алгоритма Прима и алгоритма Уилсона создают связные лабиринты без циклов. Между любыми двумя клетками в таком лабиринте есть единственный простой путь. Но характер коридоров и тупиков зависит от способа построения. На трёхмерном макете видно, как открываются проходы, какие клетки исследует поиск и где проходит найденный маршрут.

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

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

Кубик Рубика как группа - математика последовательностей действий

Кубик Рубика можно изучать не только как головоломку на сборку цветов. Каждый поворот переставляет элементы, а последовательность поворотов задаёт новую перестановку. Такие преобразования образуют математическую группу: их можно последовательно выполнять, существует действие «ничего не менять», а у каждого преобразования есть обратное.

Особенно интересно, что порядок действий имеет значение. Повернуть правую грань, а затем верхнюю - обычно не то же самое, что выполнить эти повороты в обратном порядке. Последовательность R U R⁻¹ U⁻¹, называемая коммутатором, наглядно показывает это различие. Хотя в ней есть повороты и их обратные, они не обязаны взаимно уничтожиться: между ними уже произошло другое преобразование.

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

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

Оператор ∇ - четыре способа прочитать поле

Пусть каждой точке карты соответствует высота, температура или направление потока. Как описать происходящее рядом с выбранной точкой? Градиент показывает направление самого быстрого роста скалярной величины. Дивергенция измеряет местный баланс выхода и входа векторного поля. Ротор характеризует его локальную циркуляцию, а лапласиан - дивергенцию градиента, связанную с тем, насколько значение отличается от среднего по ближайшим окрестностям.

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

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

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

Ханойская башня - маленькая головоломка с экспоненциальным характером

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

Чтобы переместить самый большой диск, сначала нужно убрать с него все меньшие на вспомогательный стержень. После одного хода большим диском меньшую башню приходится переносить ещё раз. Так задача сама раскладывается на две задачи того же типа, но меньшего размера. Получается рекурсия: T(n) = 2T(n − 1) + 1. Из неё следует точный минимум - 2ⁿ − 1 ходов. Для трёх дисков достаточно семи, а для восьми уже нужно 255.

В модуле можно переставлять диски вручную или наблюдать автоматическую последовательность, сравнивая свой счётчик с оптимальным. Попробуйте сначала решить небольшую башню и заметить повторяющиеся подзадачи. Затем добавьте диски: правила не станут сложнее, но работа резко вырастет. Это наглядный способ почувствовать разницу между краткостью алгоритма и количеством действий, которые ему предстоит выполнить.

kevlarbeaver
★★★
Windows / Chrome (DE)