Курс охватывает наиболее употребительные численные методы для решения задач, возникающих в экспериментальной и теоретической физике.
Первая часть курса (лекции 1-10) содержит решение тех задач, которые традиционно относят к математическому анализу. Он включает решение линейных и нелинейных уравнений и их систем, вычисление интегралов, интерполяцию, численное дифференцирование, аппроксимацию (включая обработку экспериментальных данных методом наименьших квадратов), нахождение собственных значений матриц и минимизацию функций и функционалов. Этот круг методов охватывает большую часть простейших проблем, возникающих при планировании и обработке экспериментов, а также при решении сравнительно простых задач теоретической физики.
Вторая часть курса охватывает задачи, традиционно относящиеся к математической физики. Он начинается с решения обыкновенных дифференциальных уравнений (лекции 11-17): задача Коши для мягких, жестких и дифференциально-алгебраических систем, краевые задачи. Далее следуют различные типы уравнения в частных производных (лекции 18-27): уравнение переноса, параболическое и гиперболическое уравнения (как одномерные, так и многомерные), а также интегральные уравнения. Эти методы позволяют решать сложные проблемы квантовой механики, газодинамики, физики реакторов и др.
Большое внимание в курсе обращено на получение оценок погрешности математических методов. Этого удается добиться благодаря систематическому применению сеточных методов с многократными сгущениями сеток. В курс включены те методы, которые отличаются наиболее высокой надежностью и позволяют проводить компьютерные вычисления при минимальном контроле со стороны пользователя.
Разбор всех численных схем сопровождается примерами с их программной реализацией на языке программирования Python.
Список всех тем лекций
Лекция 1. Нелинейные уравнения.
Метод дихотомии
Метод простой итерации
Метод Ньютона
Исключение найденных корней
Диагностика кратности корня в методе Ньютона
Обобщённый метод Ньютона
Лекция 2. Решение систем линейных алгебраических уравнений.
Метод Гаусса
Пример плохообусловленной системы
Метод Гаусса для системы с трехдиагональной матрицей
Лекция 3. Численное интегрирование.
Формулы левых/правых прямоугольников, средних, трапеций
Вывод порядка точности и априорной асимптотически точной оценки погрешности для формулы трапеций
Лекция 4. Вычисления с контролем точности.
Формула Рунге-Ромберга
Рекуррентное сгущение сеток и многократное повышение точности по Ричардсону
Повышение точности по Эйткену
Лекция 5. Квазиравномерные сетки.
Квазиравномерные сетки, их свойства и сгущение
Вычисление интегралов на квазиравномерных сетках
Вычисление несобственных интегралов
Лекция 6. Интерполяция функций.
Задача интерполяции; единственность интерполяционного многочлена
Интерполяционный многочлен Ньютона
Априорная погрешность интерполяционного многочлена Ньютона
Апостериорная погрешность интерполяционного многочлена Ньютона
Параметрическая интерполяция кривых
Решение нелинейных уравнений с помощью интерполяции
Лекция 7. Среднеквадратичная аппроксимация функций.
Среднеквадратичная аппроксимация обобщённым многочленом
Неортогональные базисы и обусловленность алгоритма (система степеней)
Ортогональные базисы
Выбор весов и оптимального числа коэффициентов
Лекция 8. Численное дифференцирование.
Постановка задачи
Интерполяционный многочлен Лагранжа
Формула для второй производной (пример)
Несимметричная формула для вычисления первой производной
Вычисления с контролем точности
Примеры
Лекция 9. Методы минимизации.
Нахождение одномерного минимума методом золотого сечения
Нахождение одномерного минимума методом Ньютона
Нахождение многомерного минимума градиентным методом
Нахождение минимума квадратичной формы методом сопряжённых градиентов
Лекция 10. Алгебраическая проблема поиска собственных значений.
Проблема собственных значений матрицы
Частичное решение проблемы поиска собственных значений: метод прямых итераций
Метод обратных итераций с переменным сдвигом
Лекция 11. Обыкновенные дифференциальные уравнения.
Обыкновенные дифференциальные уравнения и задача Коши
Схема Эйлера
Применения схемы Эйлера на примере моделирования движения Земли вокруг Солнца
Лекция 12. Обыкновенные дифференциальные уравнения (продолжение).
Семейство схем Рунге-Кутты
Процедура автономизации
Лекция 13. Обыкновенные дифференциальные уравнения: вычисления с контролем точности.
Вычисления с контролем точности
Вывод формулы Рунге-Ромберга для ОДУ
Особенности вычисления эффективных порядков точности при численном решении ОДУ
Лекция 14. Обыкновенные дифференциальные уравнения: автоматический выбор шага.
Переход к длине дуги кривой
Автоматический выбор шага по вложенной схеме
Автоматический выбор шага по локальному сгущению сетки
Лекция 15. Обыкновенные дифференциальные уравнения: жёсткие задачи.
Понятие жёсткости
Тест Далквиста
Семейство схем Розенброка и Ваннера
Семейство одностадийных схем Розенброка
Схема Розенброка с комплексным коэффициентом
Лекция 16. Дифференциально-алгебраические системы.
Дифференциально-алгебраические системы
Схема Розенброка для решения дифференциально-алгебраических систем
Пример моделирования движения маятника
Лекция 17. Краевые задачи.
Метод стрельбы
Сеточный метод
Лекция 18. Уравнения в частных производных.
Основы теории разностных схем
Пример решения простейшего уравнения переноса с помощью схемы бегущего счёта
Пример решения нелинейного уравнения переноса с помощью схемы бегущего счёта
Пример решения нелинейного уравнения переноса с помощью метода прямых
Лекция 19. Уравнения в частных производных: продолжение.
Уравнения параболического типа
Пример решения нелинейного уравнения типа Бюргерса с помощью разностной схемы
Пример решения нелинейного уравнения типа Бюргерса с помощью метода прямых
Лекция 20. Уравнения в частных производных: продолжение.
Пример решения нелинейного уравнения псевдопараболического типа с помощью метода прямых.
Лекция 21. Уравнения в частных производных: вычисления с контролем точности.
Вывод формулы Рунге-Ромберга для УЧП
Особенности вычислений с контролем точности при численном решении УЧП
Численная диагностика разрушения решения
Лекция 22. Уравнения в частных производных: продолжение.
Уравнения гиперболического типа
Пример решения задачи о колебаниях струны с помощью разностной схемы
Пример решения задачи о колебаниях струны с помощью метода прямых
Лекция 23. Уравнения в частных производных: вычисления на квазиравномерных сетках.
Постановка задачи
Формулы численного дифференцирования на неравномерных сетках
Пример решения уравнения в частных производных на неограниченной области
Лекция 24. Уравнения в частных производных: продолжение.
Постановка задачи для модельного интегро-дифференциального уравнения, содержащего производные высших порядков по пространственной переменной
Формулы для приближённого вычисления производных высших порядков
Обсуждение особенностей построения численной схемы
Лекция 25. Бикомпактные схемы и слоистые среды.
Проблема решения дифференциальных уравнений в случае слоистых сред
Построение бикомпактных схем для решения краевых задач
Построение бикомпактных схем для решения уравнений в частных производных (на примере решения уравнения параболического типа)
Лекция 26. Интегральные уравнения.
Постановка задачи
Сведение интегрального уравнения к СЛАУ
Метод решения СЛАУ, основанный на минимизации функционала невязки
Обсуждение проблемы неустойчивости полученного решения
Регуляризирующие подходы
Итерационный метод решения СЛАУ, основанный на минимизации функционала невязки методом сопряжённых градиентов
Лекция 27. Уравнения в частных производных: многомерные уравнения.
Постановка задачи для двумерного по пространству уравнения в частных производных параболического типа
Пример решения двумерного нелинейного уравнения типа Бюргерса с помощью простейшей явной разностной схемы
Пример решения двумерного нелинейного уравнения типа Бюргерса с помощью неявной схемы, полученной методом прямых