science

Учебник Физика для программистов для начинающих

26 уроков · 8 разделов · бесплатно, без регистрации

Этот курс соединяет физику и код: рядом с каждой формулой — её живая численная симуляция на чистом Python (только стандартная библиотека math), которую можно запустить прямо в браузере и увидеть числа. Вы научитесь превращать дифференциальные законы движения в пошаговый код, поймёте, почему явный метод Эйлера «взрывает» энергию, а полу-неявный и Верле — нет, и соберёте кирпичики настоящего игрового движка: баллистику с сопротивлением воздуха, векторную математику и отскоки, пружины и маятники, упругие и неупругие удары, орбиты и задачу N тел. Сквозной мотив — сохранение энергии как объективный тест корректности. Курс для тех, кто умеет программировать и хочет понять физику изнутри, через симуляцию.

Курс «Физика для программистов: симуляции и игровая физика» состоит из 8 разделов и 26 уроков: Кинематика: движение во времени, Численное интегрирование движения, Гравитация и снаряды, Векторы в 2D, Силы и пружины, Столкновения и удары, Орбиты и задача N тел и Энергия и сохранение. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Кинематика: движение во времени

    1. Что такое симуляция: время как маленькие шаги

      Главная идея игровой физики: непрерывное движение мы заменяем дискретными шагами по времени dt. Базовый цикл симуляции на Python.

    2. Равноускоренное движение и дискретизация по dt

      Формула x=x0+v0t+at^2/2 рядом с её пошаговой симуляцией. Сравниваем аналитику и численный результат, видим первую ошибку дискретизации.

    3. Скорость, ускорение и трасса движения в числах

      Печатаем таблицу состояния тела: время, координата, скорость. Учимся читать траекторию по числам и считать среднюю скорость как наклон.

    4. Движение в 2D: две независимые оси

      Ключевая идея баллистики: горизонталь и вертикаль независимы. Симулируем полёт мяча по двум осям и печатаем траекторию точками.

  2. 2 Численное интегрирование движения

    1. Явный метод Эйлера: простейший интегратор

      Самый простой способ продвинуть систему во времени. Разбираем формулу метода Эйлера, его порядок точности и где он ломается.

    2. Полу-неявный Эйлер: одно изменение, огромный эффект

      Меняем порядок двух строк — и интегратор начинает сохранять энергию. Почему симплектический метод так важен для игр.

    3. Метод Верле: точность через память о прошлом

      Интегратор Верле хранит две прошлые позиции вместо скорости. Второй порядок точности и отличное сохранение энергии — почему его любят в симуляциях ткани и молекул.

    4. Выбор шага и устойчивость: энергия как тест

      Сохранение энергии — лучший детектор кривого интегратора. Как выбрать dt, что такое устойчивость и почему фиксированный шаг важнее красивого.

  3. 3 Гравитация и снаряды

    1. Баллистика без сопротивления: дальность и угол

      Формула дальности R=v0^2·sin(2α)/g и проверка симуляцией. Почему 45° даёт максимум и при каких углах дальность одинакова.

    2. Сопротивление воздуха: когда аналитика бессильна

      Добавляем квадратичное сопротивление и симулируем полёт. Видим, что с трением оптимальный угол смещается ниже 45°.

    3. Тело как объект состояния и попадание в цель

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

  4. 4 Векторы в 2D

    1. Векторы на кортежах: сложение, длина, нормировка

      Вектор — это просто пара чисел. Реализуем базовые операции на кортежах Python без numpy и проверяем их.

    2. Скалярное и псевдоскалярное произведение

      Скалярное произведение измеряет угол и проекцию, а псевдоскаляр (2D-крест) — площадь и сторону поворота. Два инструмента, без которых не обойтись.

    3. Отражение от стены: формула зеркала

      Универсальная формула отражения вектора скорости от поверхности через нормаль и скалярное произведение. Симулируем мяч в коробке.

  5. 5 Силы и пружины

    1. Закон Гука и гармонический осциллятор

      Сила пружины F=-kx и рождение колебаний. Симулируем осциллятор и сравниваем период с теоретическим T=2π√(m/k).

    2. Затухание: куда уходит энергия колебаний

      Добавляем силу трения, пропорциональную скорости. Колебания затухают; разбираем недо-, сверх- и критическое затухание.

    3. Маятник: когда формула перестаёт работать

      Период малых колебаний T=2π√(L/g) и проверка симуляцией. Видим, что при больших амплитудах период растёт — формула приближённая.

  6. 6 Столкновения и удары

    1. Импульс и закон сохранения

      Импульс p=mv и почему он сохраняется при столкновениях. Главный закон, на котором держится вся механика ударов.

    2. Упругий удар: сохранение импульса и энергии

      Два тела сталкиваются упруго: выводим скорости после удара и проверяем сохранение и импульса, и энергии в коде.

    3. Коэффициент восстановления и неупругий удар

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

  7. 7 Орбиты и задача N тел

    1. Всемирное тяготение и круговая орбита

      Закон F=G·m1·m2/r² и условие круговой орбиты. Симулируем движение планеты вокруг звезды в удобных единицах.

    2. Эллиптические орбиты и законы Кеплера

      Дай планете не круговую скорость — и орбита станет эллипсом. Симулируем, наблюдаем перигелий и афелий, проверяем второй закон Кеплера.

    3. Задача N тел: гравитация каждого с каждым

      От двух тел к системе из многих. Суммируем притяжение всех пар и проверяем сохранение суммарного импульса как тест корректности.

  8. 8 Энергия и сохранение

    1. Кинетическая и потенциальная энергия

      Энергия движения mv²/2 и энергия положения mgh. Как они перетекают друг в друга и почему их сумма постоянна.

    2. Сохранение энергии как тест интегратора

      Сравниваем три интегратора по дрейфу энергии на длинной дистанции. Энергия — объективный судья качества численного метода.

    3. Капстоун: прыгающий мяч и баланс энергии

      Собираем гравитацию, отскок с восстановлением и энергетический учёт в одной симуляции — финальный синтез курса.