Тема 1.1
Численные методы решения инженерных задач
Точность и устойчивость, нелинейные уравнения, СЛАУ, интерполяция и аппроксимация, интегрирование, задача Коши.
Точность вычислений и устойчивость метода
Источники погрешности численного решения:
- неустранимая — погрешность исходных данных и самой математической модели;
- погрешность метода — от замены точной задачи приближённой (например, отбрасывание остатка ряда, конечный шаг сетки h);
- вычислительная (округления) — из-за конечной разрядности представления чисел в ЭВМ.
Считаем площадь круга S = πR² — все три погрешности в одной задаче:
- радиус измерен линейкой: R = 10 ± 0,5 см — неустранимая;
- взяли π ≈ 3,14 вместо 3,14159… — погрешность метода;
- ЭВМ хранит 1/3 как 0,3333333 (7 цифр float) — округления.
Уменьшать имеет смысл ту, что доминирует: незачем считать с 15 знаками то, что измерено с точностью 5%.
Представьте микрофон рядом с колонкой: малейший шорох усиливается, снова попадает в микрофон — и через секунду свист заглушает всё. Так и неустойчивый метод: крошечная ошибка округления на каждом шаге умножается на коэффициент больше единицы и через сотню шагов «съедает» решение. У устойчивого метода ошибка на каждом шаге умножается на число ≤ 1 и затухает.
Меры погрешности. Если x — точное значение, а x̃ — приближённое, то абсолютная погрешность Δ = |x − x̃| (имеет размерность величины), относительная δ = Δ/|x| (безразмерна, обычно в процентах). Относительная погрешность честнее характеризует качество: ошибка 1 см при измерении стола заметна, при измерении стадиона — ничтожна. Верная (значащая) цифра — цифра, абсолютная погрешность которой не превышает половины единицы её разряда: запись x̃ = 2,718 с четырьмя верными цифрами означает Δ ≤ 0,0005.
Катастрофическая потеря точности происходит при вычитании близких чисел: абсолютные погрешности сохраняются, а сам результат мал — относительная погрешность взлетает. Пример: 2,7183 − 2,7180 = 0,0003; если каждое слагаемое известно с точностью 0,0001, относительная ошибка разности достигает 60%. Поэтому формулы стараются преобразовать так, чтобы избежать разности близких величин (например, корни квадратного уравнения при b² ≫ 4ac считают через теорему Виета).
Машинная точность. Числа в ЭВМ хранятся в форме с плавающей точкой (IEEE 754): float — ~7 верных десятичных цифр, double — ~16. Машинный эпсилон εм — наименьшее число, для которого 1 + εм ≠ 1 в машинной арифметике (~10⁻⁷ для float, ~2·10⁻¹⁶ для double). Отсюда практическое правило: бессмысленно требовать от итераций точность выше машинной, а суммировать длинные ряды лучше от малых членов к большим.
Методы решения нелинейного уравнения f(x) = 0
Этап 1 — отделение корня: находят отрезок [a, b], где f(a)·f(b) < 0 и корень один. Этап 2 — уточнение одним из методов:
- Половинного деления (бисекции) — делим отрезок пополам, оставляем половину со сменой знака. Сходится всегда, но медленно: за шаг интервал сужается вдвое.
- Хорд — новое приближение в точке пересечения хорды, соединяющей (a, f(a)) и (b, f(b)), с осью x.
- Ньютона (касательных): xk+1 = xk − f(xk)/f′(xk) — пересечение касательной с осью. Квадратичная сходимость вблизи корня, но нужна производная и хорошее начальное приближение.
- Простой итерации — уравнение приводят к виду x = φ(x) и итерируют xk+1 = φ(xk).
Решим уравнение (то же, что в демо ниже):
Бисекция — делим отрезок пополам и смотрим на знак:
| шаг | середина c | f(c) | новый отрезок |
|---|---|---|---|
| 1 | 1,5 | −0,125 < 0 | [1,5; 2] |
| 2 | 1,75 | +1,61 > 0 | [1,5; 1,75] |
| 3 | 1,625 | +0,67 > 0 | [1,5; 1,625] |
Для точности 0,001 нужно ≈ 10 шагов (2¹⁰ = 1024).
Ньютон со стартом x₀ = 2:
| k | xk | f(xk) | верных цифр |
|---|---|---|---|
| 0 | 2 | 4 | 0 |
| 1 | 1,6364 | 0,744 | 1 |
| 2 | 1,5305 | 0,054 | 2 |
| 3 | 1,5215 | 0,0004 | 4 |
Число верных цифр на каждом шаге примерно удваивается — это и есть квадратичная сходимость: 4 шага против 10 у бисекции.
Простая итерация — всё решает выбор формы x = φ(x):
Метод хорд на том же уравнении x³ − x − 2 = 0, [a; b] = [1; 2]. Новое приближение — пересечение хорды с осью x:
| шаг | c | f(c) | новый отрезок |
|---|---|---|---|
| 1 | 1 − (−2)·1/6 = 1,3333 | −0,963 < 0 | [1,3333; 2] |
| 2 | 1,4626 | −0,333 < 0 | [1,4626; 2] |
| 3 | 1,5040 | −0,102 < 0 | [1,504; 2] |
Хорда «подтягивается» к корню с одной стороны (второй конец b = 2 здесь неподвижен). Сходится быстрее бисекции, потому что учитывает значения f, а не только знаки.
Метод секущих — тот же шаг, но без слежения за знаками: секущая проводится через две последние точки xk−1, xk. Это «Ньютон без производной»: f′ заменена разностным отношением. Сходимость сверхлинейная (порядок ≈ 1,62) — между хордами и Ньютоном.
Критерии остановки итераций — обязательный уточняющий вопрос: останавливаются, когда |xk+1 − xk| < ε (стабилизация аргумента), либо |f(xk)| < ε (малость невязки), либо исчерпан лимит итераций. Для бисекции ошибка известна точно: (b − a)/2k.
Как отделяют корни. Три приёма: табличный — вычислить f на сетке и найти смену знака; графический — построить график f (или переписать уравнение в виде g(x) = h(x) и искать пересечения двух простых графиков: например, для x³ = x + 2 — кубической параболы и прямой); аналитический — исследовать f′: между двумя соседними корнями производной лежит не более одного корня функции. Теоретическая основа — теорема Больцано–Коши: непрерывная на [a, b] функция со значениями разных знаков на концах имеет на отрезке хотя бы один корень; если f к тому же строго монотонна — ровно один.
Когда Ньютон гарантированно сходится. Достаточные условия: на [a, b] f(a)·f(b) < 0, а f′ и f″ сохраняют знак (функция монотонна и без перегибов). Начальную точку выбирают из условия f(x₀)·f″(x₀) > 0 — с того конца отрезка, где функция «выпукла в сторону корня»: тогда касательные не выбрасывают за пределы отрезка. Типичные отказы метода: f′(xk) ≈ 0 — касательная почти горизонтальна и уводит далеко; старт вблизи экстремума — зацикливание; кратный корень (f и f′ обращаются в ноль одновременно) — сходимость падает до линейной.
Модификации Ньютона: упрощённый метод — производная вычисляется один раз в x₀ и замораживается: xk+1 = xk − f(xk)/f′(x₀); сходимость линейная, зато дешёвый шаг; разностный Ньютон — f′ заменяется разностным отношением (при аналитически недоступной производной); для кратных корней — формула xk+1 = xk − m·f/f′ с кратностью m восстанавливает квадратичную сходимость.
Сжимающее отображение и сходимость простой итерации
Классная иллюстрация: бросьте карту города на землю в этом самом городе. Ровно одна точка карты окажется точно над той точкой местности, которую изображает — потому что карта «сжимает» город. Отображение, которое всё сближает (в q < 1 раз), обязано иметь ровно одну неподвижную точку — и если раз за разом применять его к любой стартовой точке, попадёшь именно в неё. Это и есть метод простой итерации.
Теорема о сходимости: если φ — сжимающее отображение на отрезке и отображает отрезок в себя, то уравнение x = φ(x) имеет единственную неподвижную точку, и метод простой итерации сходится к ней из любого начального приближения. Практический признак: |φ′(x)| ≤ q < 1 в окрестности корня. Чем меньше q, тем быстрее сходимость; при |φ′| > 1 итерации расходятся. Оценка ошибки: |xk − x*| ≤ qk·|x₀ − x*| — геометрическая прогрессия со знаменателем q.
Практические оценки погрешности итераций. Априорная (до счёта): чтобы гарантировать точность ε, достаточно k ≥ ln(|b−a|/ε)/ln(1/q) итераций. Апостериорная (по ходу счёта): |xk − x*| ≤ q/(1−q)·|xk − xk−1| — расстояние до корня оценивается по последнему сдвигу. Отсюда важный нюанс: при q, близком к 1, условие |xk − xk−1| < ε ещё не значит, что корень найден с точностью ε — множитель q/(1−q) велик, и останавливаться надо по ужесточённому порогу (1−q)/q·ε.
Как привести уравнение к сходящемуся виду x = φ(x) — универсальный приём: φ(x) = x − c·f(x), где константа c подбирается из условия |φ′| = |1 − c·f′| < 1. Для f(x) = x³ − x − 2 на [1; 2] производная f′ ∈ [2; 11]; возьмём c = 1/11 — тогда 1 − c·f′ ∈ [0; 0,82], сжатие обеспечено. Чем точнее c ≈ 1/f′(x*), тем меньше q и тем быстрее сходимость: при c = 1/f′(xk), пересчитываемом на каждом шаге, приём превращается в метод Ньютона.
Прямые и итерационные методы решения СЛАУ
Прямые дают точное (без учёта округлений) решение за конечное число операций:
- Метод Гаусса — прямой ход (приведение к треугольному виду исключением неизвестных) и обратный ход (последовательное вычисление xn, …, x₁). Трудоёмкость O(n³). Выбор главного элемента снижает влияние округлений.
- LU-разложение — A = LU, решение двух треугольных систем; выгодно при многих правых частях.
- Метод прогонки — вариант Гаусса для трёхдиагональных систем (возникают в разностных схемах), O(n) операций.
Метод Гаусса на системе 3×3 — полный прямой и обратный ход:
- Прямой ход. Исключаем x из 2-го и 3-го уравнений: из (2) вычитаем (1)·½, из (3) — (1)·½:
2,5y + 0,5z = 6,5; 0,5y + 3,5z = 11,5
- Исключаем y из последнего: из него вычитаем предыдущее ·0,2:
3,4z = 10,2 ⇒ система стала треугольной
- Обратный ход — снизу вверх:
z = 3; y = (6,5 − 0,5·3)/2,5 = 2; x = (7 − 2 − 3)/2 = 1
Проверка подстановкой: 2+2+3 = 7 ✓. Трудоёмкость растёт как n³/3 умножений — для n = 1000 это уже ~3·10⁸ операций.
Зачем выбор главного элемента. Решим при 4-значной арифметике:
Без перестановки ведущий элемент 0,0001: множитель 1/0,0001 = 10 000, из второго уравнения получаем (1 − 10 000)y = 2 − 10 000, округление до 4 цифр даёт y ≈ 1, откуда x = (1 − y)/0,0001 = 0 — грубо неверно (точно x ≈ 1,0001).
С перестановкой строк (главный элемент — наибольший по модулю в столбце, здесь 1): x + y = 2; 0,0001x + y = 1 ⇒ y ≈ 0,9999, x ≈ 1,0001 — верно. Деление на маленький ведущий элемент раздувает ошибки округления; выбор главного элемента этого не допускает.
Метод прогонки — для трёхдиагональной системы aixi−1 + bixi + cixi+1 = di (такие дают разностные схемы). Решение ищут в виде xi = αi+1xi+1 + βi+1:
Всего ~8n операций вместо n³/3 у Гаусса: для сетки из 10⁶ узлов — мгновенно. Устойчива при диагональном преобладании |bi| ≥ |ai| + |ci|.
Итерационные строят последовательность приближений x(k) → x*:
- Метод Якоби (простой итерации) — каждая компонента нового приближения считается по всем компонентам старого.
- Метод Гаусса–Зейделя — при вычислении i-й компоненты сразу используются уже уточнённые первые i−1 компонент; обычно сходится быстрее.
Достаточное условие сходимости — диагональное преобладание: |aii| > Σj≠i |aij|. Итерационные методы выгодны для больших разреженных систем.
Почему не Крамер и не обратная матрица. Формулы Крамера xi = Δi/Δ красивы теоретически, но требуют n+1 определителей; их вычисление разложением — O(n!) операций, приведением к треугольному виду — тот же Гаусс, только n+1 раз. Решение через x = A⁻¹b втрое дороже одного Гаусса и менее точно. Практическое правило: обратную матрицу не вычисляют никогда, если нужно лишь решить систему.
Обусловленность СЛАУ. Чувствительность решения к возмущениям данных характеризует число обусловленности cond(A) = ‖A‖·‖A⁻¹‖ ≥ 1: относительная ошибка решения может превышать относительную ошибку правой части в cond(A) раз. Геометрически плохая обусловленность — почти параллельные прямые (гиперплоскости): точка пересечения резко «ездит» при малейшем повороте любой из них. Признаки: малый определитель по сравнению с элементами, огромные элементы A⁻¹, сильное изменение решения при округлении данных.
Плохо обусловленная система:
Изменим правую часть второго уравнения на 1% (2,01 → 2,03): решение прыгает в x = −1, y = 3 — ошибка 200%! Прямые пересекаются под углом меньше градуса, cond(A) ≈ 400: любой метод — хоть Гаусс, хоть итерации — бессилен, потому что «размазано» само пересечение. Лечат переобусловливанием задачи: другой выбор переменных, регуляризация, накопление дополнительных измерений.
Система с диагональным преобладанием (10 > 1, 10 > 2):
Разрешаем каждое уравнение относительно «своей» переменной и стартуем с (0; 0):
| итерация | Якоби (по старым) | Зейдель (x сразу в ход) |
|---|---|---|
| 1 | x = 1,2; y = 1,3 | x = 1,2; y = (13 − 2·1,2)/10 = 1,06 |
| 2 | x = 1,07; y = 1,06 | x = 1,094; y = 1,0812 |
| 3 | x = 1,094; y = 1,086 | ≈ ответ |
| точно | x* = 1,0737; y* = 1,0853 | |
Зейдель «подхватывает» свежие значения — сходится быстрее. А поменяйте уравнения местами — преобладание исчезнет, и те же формулы разойдутся: порядок уравнений имеет значение.
Прямой метод — решить систему «на бумаге» раз и навсегда: подставил, исключил, получил ответ.
Итерационный — «пристрелка»: грубая догадка → подставили → догадка получше → снова, пока не сойдётся.
Когда матрица гигантская (миллион неизвестных от разностной сетки), но почти вся из нулей, — «бумажный» способ утонет в операциях и заполнит нули, а итерации дожимают ответ, храня только ненулевые элементы.
Системы нелинейных уравнений
- Метод простой итерации: xk+1 = Φ(xk); сходится, если норма матрицы Якоби Φ меньше 1 (многомерное сжимающее отображение).
- Метод Ньютона: на каждом шаге решается СЛАУ J(xk)·Δx = −F(xk), где J — матрица Якоби; затем xk+1 = xk + Δx. Быстрый, но требует вычисления и обращения якобиана на каждом шаге.
Ньютон для системы 2×2 — один шаг руками:
- Невязки: F₁ = 4 + 0,25 − 4 = 0,25; F₂ = 1 − 1 = 0.
- СЛАУ на поправки: 4Δx + 1Δy = −0,25; 0,5Δx + 2Δy = 0 ⇒ Δx = −0,0645, Δy = 0,0161.
- Новая точка (1,9355; 0,5161); невязка упала с 0,25 до 0,013 — за шаг почти на два порядка.
Каждый шаг многомерного Ньютона — это «линеаризовал систему в текущей точке → решил СЛАУ (Гауссом) → сдвинулся». Так численные методы стыкуются: нелинейная задача сводится к цепочке линейных.
При дорогом якобиане применяют модифицированный Ньютон (J вычисляется раз в несколько шагов) и квазиньютоновские методы (якобиан приближается по разностям невязок — метод Бройдена). Сходимость метода Ньютона локальна: вдали от решения его комбинируют с более «живучими» приёмами — дроблением шага или простой итерацией на разгоне.
Интерполяция табличной функции
- Полином Лагранжа: P(x) = Σ yi·li(x), где базисные полиномы li(x) = Πj≠i (x−xj)/(xi−xj) равны 1 в «своём» узле и 0 в остальных. Недостаток: при добавлении узла пересчитывается целиком.
- Полином Ньютона с разделёнными разностями (произвольные узлы): P(x) = f(x₀) + f(x₀,x₁)(x−x₀) + f(x₀,x₁,x₂)(x−x₀)(x−x₁) + …, где разделённые разности строятся рекуррентно. Добавление узла — лишь новое слагаемое.
- Полином Ньютона с конечными разностями (равноотстоящие узлы, шаг h): используются конечные разности Δyi = yi+1 − yi, Δ²y и т.д.; первая формула Ньютона — интерполяция в начале таблицы, вторая — в конце.
Погрешность интерполяции. Если таблица порождена гладкой функцией f, остаточный член
Из формулы видны три рычага точности: гладкость функции (производная f(n+1)), число узлов (факториал в знаменателе) и расположение точки x относительно узлов — множитель ω(x) мал внутри таблицы и стремительно растёт вне её. Отсюда правило: экстраполяция (выход за пределы таблицы) на порядок опаснее интерполяции. Рост ω у краёв отрезка при равноотстоящих узлах — причина эффекта Рунге; лекарство — узлы Чебышёва, сгущающиеся к краям (проекции равномерно расставленных точек полуокружности): они минимизируют max|ω(x)| и убирают раскачку.
Обратная интерполяция — найти x, при котором функция принимает заданное значение y*: достаточно поменять ролями столбцы таблицы (строить полином x = P(y)), если функция монотонна. Классическое применение — уточнение корня по таблице значений f.
Обратная интерполяция числом. Таблица монотонной функции: x = 1; 2; 3, y = 2,1; 3,8; 8,5. При каком x функция равна y* = 5?
Меняем столбцы ролями — интерполируем x как функцию y по узлам (2,1 → 1), (3,8 → 2), (8,5 → 3) и вычисляем полином Лагранжа в точке y* = 5:
Ответ: x ≈ 2,5. Тот же приём уточняет корень уравнения f(x) = y* по уже посчитанной таблице — без единого нового вычисления f; работает, пока функция на участке монотонна.
Таблица из трёх точек: (0; 1), (1; 3), (2; 2). Ищем полином 2-й степени.
По Лагранжу — сумма «шапочек», каждая равна 1 в своём узле:
По Ньютону — через разделённые разности:
Полином один и тот же — он единствен. Но при добавлении четвёртой точки Лагранжа придётся пересчитывать целиком, а к форме Ньютона — дописать одно слагаемое.
Ньютон с конечными разностями (узлы равноотстоящие, h = 1): таблица x = 0, 1, 2; y = 1, 3, 2. Строим таблицу разностей:
| x | y | Δy | Δ²y |
|---|---|---|---|
| 0 | 1 | 3−1 = 2 | −1−2 = −3 |
| 1 | 3 | 2−3 = −1 | |
| 2 | 2 |
Первая интерполяционная формула Ньютона (q = (x − x₀)/h):
Первая формула точна в начале таблицы (интерполяция «вперёд»), вторая — в конце («назад»). На собеседовании достаточно объяснить: конечные разности — это «дискретные производные», а формула Ньютона — дискретный аналог ряда Тейлора.
Сплайн-интерполяция. Вместо одного полинома высокой степени промежуток разбивают на части и на каждой строят полином малой степени, сшивая куски гладко. Кубический сплайн — на каждом отрезке полином 3-й степени; в узлах непрерывны сама функция, первая и вторая производные. Это стандартный ответ на эффект Рунге: гладкая кривая без раскачки краёв. Именно так работают лекала чертёжника и кривые в CAD.
Узлы Чебышёва числом. На [−1; 1] для n узлов берут xk = cos( (2k+1)π/(2n) ), k = 0…n−1 — проекции точек, равномерно расставленных по полуокружности. Для n = 5:
Для произвольного отрезка [a; b] узлы пересчитывают линейной заменой x → (a+b)/2 + (b−a)/2·x. Сгущение у краёв прижимает множитель ω(x) остаточного члена именно там, где он «вспухает» на равномерной сетке.
Аппроксимация. Метод наименьших квадратов
МНК: параметры функции φ(x, a₀…am) выбирают из минимума суммы квадратов отклонений
Условия минимума ∂S/∂ak = 0 дают систему нормальных уравнений — линейную СЛАУ относительно коэффициентов. Для прямой φ = a + bx получается система 2×2:
Четыре измерения: (1; 2), (2; 3), (3; 5), (4; 6).
- Суммы: n = 4, Σx = 10, Σy = 16, Σx² = 30, Σxy = 47.
- Нормальная система:
4a + 10b = 1610a + 30b = 47
- Решение: b = 1,4; a = 0,5.
Прямая не проходит ни через одну точку (φ(1) = 1,9 ≠ 2), но сумма квадратов отклонений у неё меньше, чем у любой другой прямой.
Почему именно квадраты:
- квадрат убирает знак — «плюс» и «минус» отклонения не гасят друг друга;
- большие промахи штрафуются сильнее;
- производные от квадратов дают линейную систему — решается за один проход.
Нелинейные модели сводят к линейным заменой переменных. Показательную зависимость y = a·ebx логарифмируют: ln y = ln a + bx — прямая в координатах (x, ln y); степенную y = a·xb — прямая в координатах (ln x, ln y); гиперболу y = a + b/x линеаризует замена u = 1/x. Дальше работает обычный МНК для прямой. Это стандартный экзаменационный приём: «как подобрать экспоненту по данным» = «прологарифмируй и подгони прямую».
Выбор степени аппроксимирующего полинома. Степень увеличивают, пока сумма квадратов отклонений S заметно падает; как только падение прекращается — остановиться: дальнейший рост степени ловит шум, а не закономерность (переобучение). Ориентир: остаточная дисперсия S/(n − m − 1) (n точек, m+1 коэффициентов) должна сравняться с дисперсией ошибки измерений. Число точек должно заметно превышать число коэффициентов — иначе аппроксимация вырождается в интерполяцию со всеми её осцилляциями.
Численное интегрирование и дифференцирование
Интеграл заменяют квадратурной суммой по значениям функции в узлах на сетке с шагом h:
- Прямоугольников (левых/правых/средних) — точность O(h) для левых/правых, O(h²) для средних;
- Трапеций — площадь трапеций между узлами, точность O(h²);
- Симпсона (парабол) — участок из пары шагов заменяется параболой, точность O(h⁴), число шагов чётное.
Практическая оценка точности — правило Рунге: считают с шагами h и h/2 и сравнивают результаты.
Откуда берутся формулы. Общий рецепт Ньютона–Котеса: на участке из нескольких узлов подынтегральная функция заменяется интерполяционным полиномом, и интеграл от него берётся аналитически. Полином нулевой степени (константа) даёт прямоугольники, первой (хорда) — трапеции, второй (парабола через три узла) — Симпсона. Составные формулы — сумма по всем участкам сетки:
Остаточные члены составных формул (M — максимум соответствующей производной на отрезке):
| Формула | Остаточный член | Порядок | Точна для полиномов |
|---|---|---|---|
| левых/правых прямоугольников | (b−a)·M₁·h/2 | O(h) | степени 0 |
| средних прямоугольников | (b−a)·M₂·h²/24 | O(h²) | степени 1 |
| трапеций | (b−a)·M₂·h²/12 | O(h²) | степени 1 |
| Симпсона | (b−a)·M₄·h⁴/180 | O(h⁴) | степени 3 |
Любопытно: средние прямоугольники вдвое точнее трапеций (константа 24 против 12) — касательная в середине шага «обманывает» кривизну лучше хорды. По остаточному члену решают и обратную задачу — выбор шага под заданную точность: из (b−a)·M₂·h²/12 ≤ ε получаем h ≤ √(12ε/((b−a)M₂)).
Посчитаем ∫₀¹ x² dx (точное значение 1/3 ≈ 0,3333) с двумя шагами h = 0,5. Значения: f(0) = 0; f(0,5) = 0,25; f(1) = 1.
Парабола через три точки параболы совпадает с ней: Симпсон точен для всех полиномов до 3-й степени включительно.
Правило Рунге на практике. Считали трапециями: с шагом h получили Ih = 0,375, с шагом h/2 — Ih/2 = 0,3438. Оценка ошибки мелкого результата:
Так оценивают точность, когда точный ответ неизвестен, — и заодно уточняют результат (экстраполяция Ричардсона).
Другие квадратурные формулы (семейство Ньютона–Котеса и не только):
- Правило 3/8 — кубическая парабола по трём шагам: (3h/8)·(f₀ + 3f₁ + 3f₂ + f₃); тот же порядок O(h⁴), что у Симпсона, применяется, когда число шагов кратно трём.
- Квадратуры Гаусса — узлы не равноотстоящие, а выбираются оптимально (корни полиномов Лежандра): n узлов дают точность для полиномов степени 2n−1 — вдвое «умнее» Ньютона–Котеса.
Гаусс с двумя узлами на [−1; 1]: узлы x = ±1/√3 ≈ ±0,5774, веса равны 1.
Всего два вычисления функции — а результат точен для любого полинома до 3-й степени. Симпсону для этого нужно три узла. Цена: для произвольного отрезка [a; b] нужна замена переменной, а узлы — иррациональные числа из таблиц.
Метод Монте-Карло
Метод статистических испытаний (Монте-Карло) — вычисление интеграла случайными точками: бросаем N точек равномерно в прямоугольник, накрывающий график; доля точек, попавших под кривую, умноженная на площадь прямоугольника, оценивает интеграл. Точность растёт как 1/√N — медленно (для лишнего знака нужно в 100 раз больше точек), зато скорость не зависит от размерности: для 100-мерного интеграла (частая ситуация в статистике и машинном обучении) сеточные методы бессильны, а Монте-Карло работает так же.
Почему это важно для профиля «анализ данных»: интегралы в статистике — это ожидания и вероятности, а размерность равна числу признаков. Байесовские методы, бутстреп, стохастический градиент — всё это идейные родственники Монте-Карло: заменить точное суммирование случайной выборкой.
Дифференцирование — заменой производной разностными отношениями: правая/левая разность (yi+1−yi)/h — O(h), центральная (yi+1−yi−1)/2h — O(h²), вторая производная (yi+1−2yi+yi−1)/h² — O(h²). Операция некорректна к шуму: при уменьшении h ошибки данных усиливаются.
Почему дифференцирование «боится» шума, а интегрирование нет: интеграл — это сумма, случайные ошибки точек в ней усредняются и гасятся. Производная — это разность соседних значений, делённая на маленькое h: сами значения почти равны, их разность — почти целиком шум, да ещё и делим на малое число, раздувая его. Поэтому экспериментальные данные перед дифференцированием сглаживают (например, МНК).
Откуда порядки точности разностных формул — из ряда Тейлора:
Центральная разность точнее не «магией», а симметрией: чётные члены ряда сокращаются. Тот же приём Тейлора — стандартный способ вывести любую разностную формулу и её погрешность аппроксимации.
Оптимальный шаг дифференцирования. Полная ошибка складывается из погрешности аппроксимации (~h²) и вычислительной (~ε/h, где ε — ошибка значений функции): при слишком малом h вторая доминирует. Минимум суммы даёт hопт ~ ∛ε для центральной разности — шаг нельзя уменьшать бесконечно, у численного дифференцирования есть «дно» точности. В этом смысле задача некорректна, и на практике производные экспериментальных данных получают дифференцированием сглаживающего полинома МНК или сплайна.
Задача Коши. Методы Эйлера и Рунге–Кутта
- Метод Эйлера: yi+1 = yi + h·f(xi, yi) — движение по касательной. Первый порядок точности O(h), ошибка быстро накапливается.
- Модифицированный Эйлер (Эйлера–Коши) — с пересчётом по среднему наклону, O(h²).
- Рунге–Кутта 4-го порядка: наклон усредняется по четырём пробным вычислениям f внутри шага. Точность O(h⁴) — стандарт де-факто:
Задача Коши — это «предскажи траекторию»: уравнение говорит, куда наклонена кривая в каждой точке (поле направлений), а начальное условие — откуда стартуем. Эйлер идёт «на глаз»: посмотрел наклон под ногами и шагнул по прямой — на кривой траектории каждый шаг чуть промахивается. Рунге–Кутта перед шагом «разведывает» наклон ещё в трёх точках впереди и шагает по взвешенному среднему — потому и попадает почти идеально.
y′ = y, y(0) = 1, точное решение y = eˣ, e ≈ 2,71828. Шаг h = 0,5, идём до x = 1.
| x | Эйлер | РК4 | Точное |
|---|---|---|---|
| 0 | 1 | 1 | 1 |
| 0,5 | 1 + 0,5·1 = 1,5 | 1,6484 | 1,6487 |
| 1,0 | 1,5 + 0,5·1,5 = 2,25 | 2,7173 | 2,7183 |
Эйлер промахнулся на 0,47 (17%), РК4 — на 0,001 (0,04%) при том же числе шагов. Чтобы Эйлер догнал РК4 по точности, шаг пришлось бы уменьшить в сотни раз.
Модифицированный Эйлер (Эйлера–Коши) на той же задаче y′ = y, y(0) = 1, h = 0,5 — схема «прогноз–коррекция»:
- Прогноз обычным Эйлером: ỹ = y₀ + h·f(x₀, y₀) = 1 + 0,5·1 = 1,5.
- Коррекция по среднему наклону в начале и в конце шага:
y₁ = y₀ + h2·( f(x₀, y₀) + f(x₁, ỹ) ) = 1 + 0,25·(1 + 1,5) = 1,625
- Второй шаг тем же порядком: ỹ = 1,625·1,5 = 2,4375; y₂ = 1,625 + 0,25·(1,625 + 2,4375) = 2,6406.
Сравним в точке x = 1: Эйлер 2,25 (ошибка 17%), Эйлер–Коши 2,6406 (ошибка 2,9%), РК4 2,7173 (0,04%), точно e ≈ 2,7183. Один добавочный пересчёт наклона поднял порядок с O(h) до O(h²).
Классификация методов для ОДУ, которую полезно назвать:
- одношаговые (Эйлер, Рунге–Кутта) — шаг только из текущей точки; легко стартуют и меняют шаг;
- многошаговые (Адамса) — используют несколько предыдущих точек: та же точность при меньшем числе вычислений f, но нужен «разгон» одношаговым методом;
- явные / неявные — в неявных yi+1 входит в обе части и находится решением уравнения; они устойчивее и незаменимы для жёстких систем, где явные методы требуют неприемлемо малого шага.
Уравнения высших порядков и системы. Методы Эйлера и Рунге–Кутта формулируются для y′ = f(x, y), но y можно понимать как вектор — те же формулы покомпонентно решают системы ОДУ. Уравнение n-го порядка сводится к системе n уравнений первого порядка заменой z₁ = y, z₂ = y′, …: например, колебание y″ + 2y′ + 5y = 0 превращается в z₁′ = z₂, z₂′ = −5z₁ − 2z₂. Поэтому «решатель задачи Коши» один на все случаи — от остывания чашки до динамики манипулятора.
Локальная и глобальная ошибка. Локальная — промах одного шага при точном старте: у Эйлера O(h²), у РК4 — O(h⁵). Глобальная — накопленный промах на всём отрезке: на порядок ниже локальной (шагов ~1/h), отсюда O(h) и O(h⁴). Автоматический выбор шага в практических решателях: на каждом шаге ошибка оценивается правилом Рунге (шаг h против двух шагов h/2) или вложенной парой методов разных порядков (Рунге–Кутта–Фельберг); если оценка больше допуска — шаг уменьшают и повторяют, если сильно меньше — увеличивают. Так решатель сам семенит на крутых участках решения и шагает широко на пологих.
Один шаг неявного Эйлера руками. y′ = −5y, y(0) = 1, шаг h = 0,5. Неявная схема y₁ = y₀ + h·f(x₁, y₁) — неизвестное стоит и справа:
Множитель явной схемы 1 − 5h при h > 0,4 по модулю больше единицы — решение разносится. Множитель неявной 1/(1 + 5h) меньше единицы при любом h > 0 — схема абсолютно устойчива. Цена: для линейного уравнения «решить относительно y₁» — одно деление, для нелинейного — уравнение на каждом шаге (метод Ньютона).
Вопросы к собеседованию
Сначала ответьте вслух, потом раскройте эталонный ответ. Отмечайте результат — счётчик темы в меню слева покажет прогресс.
Какие виды погрешностей возникают при численном решении задачи?
Три вида: неустранимая (погрешность исходных данных и модели), погрешность метода (замена точной задачи приближённой — конечный шаг, обрыв ряда) и вычислительная (округления из-за конечной разрядности ЭВМ). Управлять можно погрешностью метода (выбор метода и шага) и отчасти вычислительной (порядок операций, разрядность).
Что такое устойчивость численного метода и чем она отличается от сходимости?
Устойчивость — малые возмущения входных данных и ошибки округления не приводят к неограниченному росту ошибки в процессе счёта. Сходимость — приближённое решение стремится к точному при h → 0 или росте числа итераций. Метод может быть сходящимся в теории, но неустойчивым практически — тогда накопление ошибок округления разрушит решение.
Как решается нелинейное уравнение f(x) = 0? Назовите этапы и методы.
Два этапа: отделение корня (поиск отрезка со сменой знака f, где корень один) и уточнение. Методы уточнения: половинного деления, хорд, касательных (Ньютона), простой итерации. Бисекция сходится гарантированно, но линейно; Ньютон — квадратично, но требует производной и хорошего начального приближения.
Запишите итерационную формулу метода Ньютона и укажите его достоинства и недостатки.
xk+1 = xk − f(xk)/f′(xk) — пересечение касательной с осью x. Достоинства: квадратичная сходимость вблизи корня. Недостатки: нужна производная, метод чувствителен к выбору начального приближения, может расходиться при f′ ≈ 0.
Что такое сжимающее отображение? Сформулируйте теорему о сходимости простой итерации.
Отображение φ сжимающее, если существует q < 1: |φ(x₁) − φ(x₂)| ≤ q|x₁ − x₂|. Теорема: если φ отображает отрезок в себя и является на нём сжимающим, то неподвижная точка x = φ(x) существует, единственна, и итерации xk+1 = φ(xk) сходятся к ней из любого начального приближения. Практическое условие: |φ′(x)| < 1 в окрестности корня.
Чем прямые методы решения СЛАУ отличаются от итерационных? Приведите примеры.
Прямые дают решение за конечное число операций: Гаусса (O(n³)), LU-разложение, прогонка для трёхдиагональных систем (O(n)). Итерационные строят последовательность приближений: Якоби, Гаусса–Зейделя. Итерационные выгодны для больших разреженных систем; для сходимости достаточно диагонального преобладания матрицы.
В чём суть метода Гаусса?
Прямой ход: последовательным исключением неизвестных матрица приводится к верхнетреугольному виду. Обратный ход: из последнего уравнения находится xn, затем подстановкой — остальные. Для уменьшения влияния округлений применяют выбор главного (максимального по модулю) элемента.
Чем метод Гаусса–Зейделя отличается от метода Якоби?
В методе Якоби новое приближение всех компонент считается по значениям предыдущей итерации. В методе Зейделя при вычислении i-й компоненты сразу используются уже уточнённые на текущей итерации компоненты 1…i−1, поэтому он обычно сходится быстрее.
Как решают системы нелинейных уравнений?
Методом простой итерации (x = Φ(x), сходимость при норме матрицы Якоби Φ меньше 1) или методом Ньютона: на каждом шаге решается линейная система J·Δx = −F(xk) с матрицей Якоби J, приближение уточняется xk+1 = xk + Δx. Ньютон сходится быстро, но требует пересчёта якобиана.
Чем интерполяция отличается от аппроксимации?
Интерполяция строит функцию, точно проходящую через все узлы таблицы. Аппроксимация подбирает функцию заданного простого вида, проходящую вблизи точек (минимум суммарного отклонения). Аппроксимацию применяют, когда данные зашумлены или точек много — интерполяционный полином высокой степени осциллирует.
Запишите полином Лагранжа. Какой у него недостаток по сравнению с формой Ньютона?
P(x) = Σi yi·li(x), где li(x) = Πj≠i(x−xj)/(xi−xj) — базисные полиномы, равные 1 в своём узле и 0 в остальных. При добавлении нового узла весь полином пересчитывается заново; в форме Ньютона добавляется лишь одно новое слагаемое с очередной разделённой разностью.
В чём различие полиномов Ньютона с разделёнными и с конечными разностями?
С разделёнными разностями — для произвольно расположенных узлов: f(xi,xj) = (f(xj)−f(xi))/(xj−xi) и т.д. С конечными разностями (Δy = yi+1−yi) — только для равноотстоящих узлов с шагом h; первая формула Ньютона удобна в начале таблицы, вторая — в конце.
В чём суть метода наименьших квадратов?
Параметры аппроксимирующей функции выбираются из условия минимума суммы квадратов отклонений S = Σ(φ(xi) − yi)². Приравнивая частные производные ∂S/∂ak нулю, получают систему нормальных уравнений — линейную относительно искомых коэффициентов, если функция линейна по параметрам.
Сравните формулы прямоугольников, трапеций и Симпсона по точности.
Левые/правые прямоугольники — O(h); средние прямоугольники и трапеции — O(h²); Симпсона (парабол) — O(h⁴) при чётном числе шагов. Практически точность контролируют правилом Рунге — сравнением результатов на шагах h и h/2.
Сформулируйте задачу Коши. Сравните методы Эйлера и Рунге–Кутта.
Задача Коши: y′ = f(x, y), y(x₀) = y₀ — найти y(x). Метод Эйлера yi+1 = yi + h·f(xi, yi) — первый порядок O(h), прост, но неточен. Рунге–Кутта 4-го порядка усредняет четыре наклона k₁…k₄ внутри шага, точность O(h⁴) — при том же шаге ошибка на порядки меньше.
Тема 1.2
Математическое моделирование
Модели и их свойства, аналогии подсистем, способы формирования моделей, краевые задачи: МКР и МКЭ.
Основные понятия
Назначение моделей: анализ и прогноз поведения объекта, проектирование и оптимизация, управление, обучение.
Этапы математического моделирования (схема «модель — алгоритм — программа» по А. А. Самарскому):
- Содержательная постановка — что известно об объекте, на какие вопросы должна ответить модель, с какой точностью.
- Построение ММ — выбор существенных свойств, запись уравнений и условий; здесь же принимаются упрощающие допущения (и фиксируются: они определят область адекватности).
- Выбор или разработка численного метода — дискретизация, оценка устойчивости и трудоёмкости (материал темы 1.1).
- Программная реализация и её верификация — проверка, что программа решает именно записанные уравнения (тесты на задачах с известным решением).
- Проверка адекватности — сравнение расчётов с экспериментом на контрольных данных, не использованных при настройке модели.
- Вычислительный эксперимент — многократные расчёты вместо натурных опытов; по результатам модель уточняется, и цикл повторяется.
Вычислительный эксперимент — «третий путь» познания между теорией и натурным опытом: как теория, он работает с уравнениями, как эксперимент — с конкретными числами и вариантами. Ключевое преимущество — цена и безопасность: аварийный режим реактора или отказ БПЛА в модели «случается» тысячи раз без последствий. Ключевой риск — незаметный выход из области адекватности: программа продолжит выдавать числа, когда допущения модели уже нарушены.
Классификация ММ
| Признак классификации | Виды моделей |
|---|---|
| По характеру отображаемых свойств | структурные — состав и связи · функциональные — процессы функционирования |
| По принадлежности к иерархическому уровню | микроуровень — распределённые параметры, УрЧП · макроуровень — сосредоточенные параметры, ОДУ · метауровень — укрупнённые описания систем |
| По учёту случайности | детерминированные · стохастические |
| По изменению во времени | статические · динамические |
| По виду зависимостей | линейные · нелинейные |
Дополнительные разрезы классификации, которые полезно назвать: по параметрам — с сосредоточенными (ОДУ: вся деталь описана одной температурой) и с распределёнными параметрами (УрЧП: температура — поле по координатам); по форме представления — аналитические (явные формулы), алгоритмические (вычислительная процедура) и имитационные (воспроизведение поведения системы во времени по шагам, включая случайные события — очереди, отказы; исследуются статистикой многих прогонов). Непрерывные и дискретные модели различаются характером переменных: течение в трубе — непрерывная модель, работа склада поштучных изделий — дискретная (дискретно-событийная имитация).
Классифицируем модель из примера про заряд конденсатора RC·dU/dt + U = E: функциональная (описывает процесс), макроуровень (сосредоточенные параметры), детерминированная (нет случайности), динамическая (есть время), линейная (U и её производная — в первой степени). Умение «прогнать» любую модель по всем признакам — типовой вопрос: назвали модель — тут же классифицировали.
Свойства моделей и способы получения
- Точность — степень совпадения расчётных значений выходных параметров с истинными.
- Адекватность — способность отражать заданные свойства объекта с погрешностью не выше заданной. Область адекватности — область в пространстве внешних параметров, где погрешность модели остаётся в допустимых пределах.
- Экономичность — затраты вычислительных ресурсов (память, время) на реализацию модели.
Точность, адекватность, экономичность — три стороны одного компромисса: точнее модель — дороже расчёт.
Область адекватности — «паспорт» модели. Закон Ома верен для резистора при обычных токах, но перегрейте резистор — и линейная модель начнёт врать: вы вышли из области адекватности.
Макромодель — взгляд «снаружи»: для схемы из 1000 транзисторов не моделируют физику каждого p-n-перехода — достаточно того, как транзистор ведёт себя на выводах. Микросхема целиком — «чёрный ящик с известными реакциями».
Один объект — модели трёх уровней. Нагрев стержня в печи:
- микроуровень — температура в каждой точке, уравнение в частных производных:
∂T∂t = a·∂²T∂x²
- макроуровень — стержень как одно «тепловое тело», одно ОДУ для средней температуры:
C·dTdt = Φподв − Φотв
- метауровень — печь целиком как звено с передаточной функцией в контуре управления цехом.
Чем выше уровень — тем экономичнее модель и уже круг вопросов, на которые она отвечает.
Способы получения моделей:
- аналитический (теоретический) — из фундаментальных законов (сохранения массы, энергии, импульса, законов Кирхгофа, Ньютона): широкая область адекватности, но требует знания физики процессов;
- экспериментальный (формальный) — обработкой опытных данных (регрессия, МНК, планирование эксперимента): модель «чёрного ящика», работает только в области эксперимента;
- экспериментально-аналитический — структура из теории, коэффициенты из эксперимента (модель «серого ящика»).
Аналогии между подсистемами. Топологические и компонентные уравнения
Однородные физические подсистемы описываются одинаковыми по форме уравнениями через пары переменных: фазовую переменную типа потока и типа потенциала.
Мостик между темами 1.1 и 1.2 — идентификация. Экспериментальный метод на практике сводится к МНК из темы 1.1: структура модели постулируется (скажем, Q = k·ΔT — теплопередача), а параметр k подбирается минимизацией суммы квадратов расхождений с опытами. Если спросят «как получить модель по эксперименту» — отвечайте цепочкой: план эксперимента → выбор структуры → МНК-оценка параметров → проверка адекватности на контрольных точках (области адекватности).
| Подсистема | Поток | Потенциал | Аналог R | Аналог C | Аналог L |
|---|---|---|---|---|---|
| Электрическая | ток I | напряжение U | сопротивление | ёмкость | индуктивность |
| Механическая (поступат.) | сила F | скорость v | трение | масса | податливость |
| Гидро/пневматическая | расход Q | давление p | гидросопротивление | гидроёмкость | инерционность столба |
| Тепловая | тепловой поток Φ | температура T | термосопротивление | теплоёмкость | — |
| Массообменная | поток массы | концентрация | диффуз. сопротивление | ёмкость по массе | — |
| Химико-технологическая | поток вещества (реакции) | химический потенциал | кинетическое сопротивление | ёмкость реактора | — |
К поступательной механике добавляется вращательная: поток — момент M, потенциал — угловая скорость ω, аналог C — момент инерции, аналог R — вращательное трение, аналог L — крутильная податливость вала. Полный набор элементов эквивалентной схемы — три пассивных типа плюс два вида источников: источник потенциала (ЭДС, насос заданного давления, печь заданной температуры) и источник потока (источник тока, насос заданного расхода, нагреватель заданной мощности).
Три типа пассивных элементов различаются тем, что они делают с энергией: R-тип рассеивает (трение, электрическое и термическое сопротивление), C-тип накапливает энергию через переменную типа потенциала (конденсатор, масса, теплоёмкость), L-тип — через переменную типа потока (индуктивность, упругость). Их компонентные уравнения имеют одинаковую форму во всех подсистемах:
У тепловой и массообменной подсистем аналога L нет — в природе не наблюдается «тепловая индуктивность» (тепловой поток не обладает инерцией). Это стоит упомянуть как границу применимости аналогий.
- Компонентные уравнения описывают отдельные элементы (связь тока и напряжения резистора, силы и скорости демпфера).
- Топологические уравнения описывают соединение элементов и следуют из структуры системы — аналоги законов Кирхгофа: сумма потоков в узле равна нулю, сумма потенциалов по контуру равна нулю.
Благодаря аналогиям любую однородную подсистему можно представить эквивалентной схемой из R-, C-, L-элементов и источников, а моделировать единым программным аппаратом.
Заряд конденсатора через резистор и нагрев детали в печи — одно и то же уравнение:
Соответствие величин:
- напряжение U ↔ температура T;
- ЭДС E ↔ температура печи;
- сопротивление R ↔ термосопротивление стенки;
- ёмкость C ↔ теплоёмкость детали.
Оба процесса — экспонента с постоянной времени τ = RC (за время τ проходит 63% пути). Теплотехник может считать печь в симуляторе электрических схем — прямое следствие одинаковой формы компонентных и топологических уравнений.
Топологические уравнения — «закон перекрёстка»: сколько потока втекает в узел, столько и вытекает (вода в тройнике труб, ток в узле схемы, тепловой поток в стыке). Компонентные — «характер элемента»: как конкретный элемент связывает поток и потенциал на себе. Модель системы = характер всех элементов + правила их соединения.
Способы формирования ММ систем: обобщённый метод — в систему включаются все компонентные и топологические уравнения (переменные — все токи и напряжения ветвей); узловой метод — неизвестные только узловые потенциалы, уравнения — балансы потоков в узлах (размерность меньше, применяется в СAПР схемотехники).
Узловой метод руками — эквивалентная схема: источник E = 12 В, последовательно R₁ = 2 Ом, затем узел φ, с которого R₂ = 4 Ом уходит на «землю».
- Обобщённый метод потребовал бы 4 уравнения: два компонентных (закон Ома для R₁, R₂) и два топологических (Кирхгоф по токам и напряжениям) — 4 неизвестных (два тока, два напряжения).
- Узловой метод — одно уравнение баланса токов в единственном узле:
E − φR₁ = φ − 0R₂ ⇒ 12 − φ2 = φ4 ⇒ φ = 8 В
- Токи восстанавливаются подстановкой: I = (12−8)/2 = 2 А. Одна неизвестная вместо четырёх.
В схеме на тысячи элементов выигрыш решает всё: узлов в разы меньше, чем ветвей, а матрица узловых уравнений разреженная. Благодаря аналогиям подсистем тот же метод собирает модели гидравлических сетей и тепловых схем: «узел» — точка соединения, «баланс токов» — баланс расходов или тепловых потоков.
Методы решения краевых задач
Краевая задача — уравнение (обычно в частных производных) плюс условия на границах области (и начальные условия для нестационарных задач).
Типы уравнений математической физики и их «физика»: эллиптические (уравнение Лапласа/Пуассона) — стационарные поля: установившаяся температура, электростатика; параболические (теплопроводности/диффузии) — необратимые процессы выравнивания во времени; гиперболические (волновое) — колебания и распространение волн с конечной скоростью. Тип диктует и постановку условий, и выбор метода: для эллиптических — только граничные условия, для параболических и гиперболических — ещё и начальные.
Типы граничных условий: I рода (Дирихле) — задано значение функции на границе (температура стенки); II рода (Неймана) — задана производная (тепловой поток; частный случай — теплоизоляция, поток нулевой); III рода — линейная связь функции и производной (теплообмен со средой по закону Ньютона: −λ∂T/∂n = α(T − Tср)). На разных участках границы могут стоять условия разных родов — смешанная задача.
Метод конечных разностей (МКР)
- Область покрывается сеткой; производные заменяются разностными отношениями; УрЧП превращается в систему алгебраических уравнений относительно значений в узлах.
- Погрешность аппроксимации — невязка от замены производных разностями, оценивается разложением в ряд Тейлора: O(h), O(h²)…
- Явная схема: значение на новом временном слое выражается непосредственно через известные значения старого слоя. Проста, но условно устойчива — шаг по времени ограничен (например, для уравнения теплопроводности Δt ≤ h²/2a).
- Неявная схема: в уравнение входят несколько неизвестных нового слоя — на каждом шаге решается СЛАУ (для одномерной задачи — прогонкой). Безусловно устойчива, шаг ограничен только точностью.
- Устойчивость разностной схемы — ошибки, внесённые на одном слое, не нарастают при переходе к следующим. Сходимость = аппроксимация + устойчивость.
Сходимость = аппроксимация + устойчивость — это теорема эквивалентности Лакса, главный теоретический факт о разностных схемах: если схема аппроксимирует корректную задачу и устойчива, то при измельчении сетки её решение сходится к точному, причём порядок сходимости равен порядку аппроксимации. Аппроксимация без устойчивости бесполезна: ошибки округления взорвут счёт раньше, чем скажется точность формул.
Промежуточный вариант — схема Кранка–Николсона: пространственная производная берётся полусуммой значений старого и нового слоёв. Схема неявная (нужна прогонка), безусловно устойчивая и при этом второго порядка по времени O(Δt²) — против первого у чисто явной и чисто неявной; стандарт для уравнения теплопроводности.
Устойчивость для уравнений переноса и волн. Для гиперболических уравнений явные схемы устойчивы при условии Куранта (CFL): a·Δt/h ≤ 1 — за один шаг по времени возмущение не должно «перепрыгивать» ячейку сетки; число s = a·Δt/h называют числом Куранта. Смысл тот же, что у Δt ≤ h²/2a для теплопроводности: шаг по времени подчинён шагу по пространству, только для волн ограничение линейное (Δt ~ h), а для диффузии — квадратичное (Δt ~ h²), поэтому явные схемы для диффузии особенно невыгодны на мелких сетках.
МКР для краевой задачи — стационарный прогиб/нагрев: y″ = −2, y(0) = 0, y(1) = 0. Сетка из 5 узлов, h = 0,25, неизвестны y₁, y₂, y₃.
- Заменяем y″ центральной разностью в каждом внутреннем узле:
yi−1 − 2yi + yi+1h² = −2 ⇒ yi−1 − 2yi + yi+1 = −0,125
- Три уравнения (y₀ = y₄ = 0 известны из краевых условий):
−2y₁ + y₂ = −0,125; y₁ − 2y₂ + y₃ = −0,125; y₂ − 2y₃ = −0,125
- Система трёхдиагональная — решаем прогонкой: y₁ = y₃ = 0,1875; y₂ = 0,25.
Точное решение y = x(1 − x) в узлах даёт 0,1875 и 0,25 — схема со вторым порядком здесь попала точно. Так дифференциальная задача превратилась в СЛАУ — это и есть суть МКР; в нестационарном случае такая СЛАУ решается на каждом шаге по времени.
Остывание стержня: уравнение теплопроводности, a = 1, сетка по длине с шагом h = 0,1.
Явная схема — новая температура узла из трёх старых:
- это простой цикл по узлам — никакой алгебры;
- но условие устойчивости: Δt ≤ h²/2a = 0,005 — на 1 секунду процесса нужно 200 слоёв;
- возьмёте Δt = 0,006 — решение «запилит» с растущей амплитудой и развалится (проверьте в демо ниже).
Неявная схема — те же соседи, но с нового слоя:
- на каждом слое решается трёхдиагональная СЛАУ прогонкой;
- зато Δt хоть 0,1 — устойчивость безусловная, шаг диктуется только точностью.
Явная схема — «каждый узел решает сам за себя по вчерашним данным соседей»: быстро, но если шагнуть по времени слишком широко, информация не успевает физически «дойти» от соседей — и схема идёт вразнос. Неявная — «все узлы нового слоя договариваются одновременно» (решается общая система): дороже за шаг, но никакой шаг её не разваливает.
Метод конечных элементов (МКЭ)
- Область разбивается на конечные элементы произвольной формы (треугольники, тетраэдры); решение внутри элемента приближается простыми базисными функциями (обычно полиномами).
- Коэффициенты находятся из минимизации функционала (вариационная постановка) или метода взвешенных невязок (Галёркина); собирается глобальная СЛАУ с разреженной матрицей.
- Преимущества перед МКР: естественно описывает сложную геометрию и граничные условия, легко сгущает сетку локально.
Алгоритм МКЭ по шагам (как его рассказывают на «отлично»):
- Дискретизация — область разбивается на элементы (2D: треугольники, четырёхугольники; 3D: тетраэдры, гексаэдры), выделяются узлы.
- Выбор базисных функций — на каждом элементе решение приближается полиномом через узловые значения; базисная функция узла равна 1 в «своём» узле, нулю в остальных и отлична от нуля лишь на соседних элементах (локальный носитель — причина разреженности матрицы).
- Локальные матрицы — для каждого элемента из вариационной постановки или метода Галёркина вычисляется матрица «жёсткости» и вектор нагрузки.
- Ансамблирование — локальные матрицы складываются в глобальную СЛАУ K·u = F по соответствию местных и глобальных номеров узлов.
- Учёт граничных условий — условия Дирихле фиксируют узловые значения, Неймана входят в вектор нагрузки.
- Решение СЛАУ (разреженные прямые или итерационные методы) и постобработка — восстановление полей, градиентов, напряжений.
Идея Галёркина, на которой держится шаг 3: потребовать, чтобы невязка приближённого решения была ортогональна всем базисным функциям — «ошибка не должна быть видна ни одному из кирпичиков, из которых строим решение». Для задач механики эквивалентная формулировка — минимум потенциальной энергии, поэтому матрицу K и называют матрицей жёсткости.
| МКР | МКЭ | |
|---|---|---|
| Сетка | регулярная, прямоугольная | нерегулярная, любая геометрия |
| Неизвестные | значения в узлах сетки | узловые коэффициенты базисных функций |
| Вывод уравнений | замена производных разностями | вариационная постановка / Галёркин |
| Локальное сгущение | затруднено | естественно (мельче элементы) |
| Типичное применение | теплопроводность, течения на простых областях | прочность, поля в деталях сложной формы (ANSYS) |
МКР накладывает на деталь «клетчатую тетрадь»: у круглого отверстия или косой кромки клетки лягут криво.
МКЭ режет деталь на треугольники, как мозаику: они облегают любую форму, а где поле меняется быстро — у отверстия, у кромки — мозаику делают мельче.
Внутри каждого кусочка решение простое (линейный или квадратичный полином); «сшивание» кусочков даёт большую разреженную СЛАУ. Так работают ANSYS, SolidWorks Simulation и весь инженерный анализ прочности.
Метод прямых (сведение к ОДУ) и метод характеристик
Метод прямых: производные лишь по части переменных заменяются разностями — УрЧП сводится к системе ОДУ, которую решают методами типа Рунге–Кутта.
Метод характеристик — специальный метод для гиперболических УрЧП (волновое уравнение, перенос вещества потоком, нестационарные течения газа). У таких уравнений есть характеристики — выделенные кривые в плоскости (x, t), вдоль которых возмущения распространяются с конечной скоростью, а само УрЧП вырождается в обыкновенное дифференциальное уравнение (соотношение совместности). Алгоритм: из точек с известными данными выпускаются характеристики; в точке их пересечения интегрированием ОДУ вдоль каждой кривой находится решение — сетка строится «сама», следуя физике переноса.
Простейший перенос: ut + a·ux = 0. Характеристики — прямые x = x₀ + a·t, и вдоль каждой du/dt = 0, то есть u постоянна: начальный профиль просто едет вправо со скоростью a без искажений. Метод характеристик даёт это точно, тогда как разностная схема размазывает фронт (схемная вязкость).
Сравнение: МКР универсален для всех типов уравнений (параболических, эллиптических, гиперболических), метод характеристик точнее отслеживает фронты и разрывы, но применим только к гиперболическим задачам и сложен в многомерье.
Вопросы к собеседованию
Дайте определение математической модели и математического моделирования.
ММ — совокупность математических объектов (уравнений, неравенств, логических условий) и связей между ними, отражающая существенные для задачи свойства объекта. Моделирование — построение и исследование модели вместо экспериментов над реальным объектом: дешевле, безопаснее, возможно для ещё не существующих (проектируемых) объектов.
Как классифицируют математические модели?
По отображаемым свойствам — структурные и функциональные; по уровню — микро- (распределённые параметры, УрЧП), макро- (сосредоточенные параметры, ОДУ), метауровень; по учёту случайности — детерминированные и стохастические; по времени — статические и динамические; по виду зависимостей — линейные и нелинейные.
Что такое точность, адекватность и экономичность модели? Что такое область адекватности?
Точность — степень совпадения расчётных и истинных значений выходных параметров. Адекватность — способность отражать заданные свойства с погрешностью не выше заданной. Экономичность — затраты машинного времени и памяти. Область адекватности — область в пространстве внешних параметров, внутри которой погрешность модели не превышает допустимой.
Что такое макромодель и зачем она нужна?
Упрощённая модель с сосредоточенными параметрами, описывающая поведение объекта «на выводах» без детализации внутренних распределённых процессов. Нужна для экономичного моделирования больших систем: полные модели каждого компонента сделали бы расчёт системы неподъёмным.
Сравните аналитический, экспериментальный и экспериментально-аналитический способы построения моделей.
Аналитический — из фундаментальных законов (сохранения, Кирхгофа): широкая область адекватности, но нужна теория процесса. Экспериментальный — обработка опытных данных (МНК, регрессия): модель «чёрного ящика», справедлива только в области эксперимента. Экспериментально-аналитический — структура уравнений из теории, коэффициенты — из эксперимента; сочетает достоинства обоих.
В чём смысл аналогий между физическими подсистемами?
Электрические, механические, гидравлические, тепловые и другие однородные подсистемы описываются одинаковыми по форме уравнениями относительно пары переменных «поток–потенциал» (ток–напряжение, сила–скорость, расход–давление, тепловой поток–температура). Поэтому любую подсистему можно представить эквивалентной схемой из аналогов R, C, L и источников и рассчитывать единым математическим аппаратом.
Что такое компонентные и топологические уравнения?
Компонентные описывают физику отдельных элементов (например, U = IR для резистора, F = m·dv/dt для массы). Топологические следуют из способа соединения элементов — аналоги законов Кирхгофа: сумма потоков в узле равна нулю, сумма падений потенциала по контуру равна нулю. Полная модель системы = компонентные + топологические уравнения.
Чем узловой метод формирования модели отличается от обобщённого?
Обобщённый метод включает в систему все компонентные и топологические уравнения — неизвестные все потоки и потенциалы ветвей, размерность велика. Узловой метод берёт в качестве неизвестных только узловые потенциалы, а уравнения — балансы потоков в узлах; размерность системы существенно меньше, поэтому он основной в программах анализа схем.
В чём суть метода конечных разностей?
Область решения покрывается сеткой, производные в уравнении заменяются разностными отношениями (из разложения в ряд Тейлора), в результате УрЧП сводится к системе алгебраических уравнений относительно значений функции в узлах сетки. Погрешность аппроксимации определяется порядком отброшенных членов ряда: O(h), O(h²)…
Сравните явную и неявную разностные схемы.
Явная: неизвестное значение нового временного слоя выражается явно через известные значения предыдущего; проста, но условно устойчива — шаг по времени жёстко ограничен (Δt ~ h²). Неявная: в уравнении несколько неизвестных нового слоя, на каждом шаге решается СЛАУ (прогонкой); безусловно устойчива — шаг выбирается из соображений точности. Сходимость схемы = аппроксимация + устойчивость.
В чём суть метода конечных элементов и его преимущества перед МКР?
Область разбивается на элементы произвольной формы (треугольники, тетраэдры), внутри каждого решение аппроксимируется простыми базисными функциями; коэффициенты определяются из вариационной постановки (минимум функционала) или метода Галёркина, что даёт разреженную глобальную СЛАУ. Преимущества: естественная работа со сложной геометрией и граничными условиями, локальное сгущение сетки.
Что такое метод характеристик? Для каких уравнений он применяется?
Для гиперболических УрЧП (волновые процессы, течения). Находят характеристики — кривые в плоскости независимых переменных, вдоль которых УрЧП превращается в обыкновенные дифференциальные уравнения, и интегрируют эти ОДУ вдоль характеристик. Родственный приём — метод прямых: разности только по части переменных сводят УрЧП к системе ОДУ.
Тема 1.3
Оптимизация
Постановка задач, одномерные и многомерные методы, нелинейное программирование, вариационное исчисление.
Постановка задачи и классификация
Общая задача математического программирования: f₀(X) → min при ограничениях-неравенствах fi(X) ≥ 0, i = 1…p, и ограничениях-равенствах fi(X) = 0, i = p+1…m. Если Xd совпадает со всем пространством — задача безусловной оптимизации, иначе — условной.
Критерий оптимального проектирования и его связь с математической моделью (формулировка билета): критерий — количественная оценка качества проектного решения (себестоимость, энергозатраты, точность), а вычисляется он через выходные координаты объекта, которые связаны с варьируемыми переменными (конструктивными и режимными параметрами) уравнениями математической модели. Уравнения ММ выступают уравнениями связи задачи оптимизации: оптимизатор предлагает значения варьируемых переменных → модель рассчитывает по ним выходные координаты → по ним вычисляется критерий; ограничения (физическая реализуемость, технологические пределы) замыкают допустимую область.
Критерии оптимальности при нескольких показателях качества:
- частный — один главный показатель, остальные переводятся в ограничения;
- аддитивный — взвешенная сумма частных критериев F = Σ wifi;
- мультипликативный — произведение F = Π fiwi;
- максиминный — максимизация худшего из частных критериев: max mini fi (гарантированный результат).
Выбираем сервер по трём показателям: производительность P, надёжность N, цена C (P̂, N̂, Ĉ — нормированные к [0; 1], иначе складывали бы рубли с гигагерцами).
- Частный: max P при ограничениях N ≥ 0,99 и C ≤ 500 тыс.;
- Аддитивный: F = 0,5·P̂ + 0,3·N̂ − 0,2·Ĉ — веса задают важность;
- Мультипликативный: F = P̂·N̂/Ĉ — провал любого показателя к нулю обнуляет всё;
- Максиминный: F = min(P̂, N̂, 1−Ĉ) — сервер хорош настолько, насколько хорош его слабейший показатель.
Ключевое отличие: аддитивная свёртка позволяет компенсировать плохую надёжность отличной ценой, максиминная — не позволяет.
Ограничения: равенства g(x) = 0, неравенства h(x) ≤ 0, прямые (a ≤ xi ≤ b). Классификация задач: безусловная / условная; одномерная / многомерная; линейное программирование (критерий и ограничения линейны), нелинейное (хотя бы одна функция нелинейна), дискретное (допустимое множество конечно или счётно) и его частный случай целочисленное (все допустимые точки целочисленны); задачи оптимального управления (искомая величина — функция времени).
Характеристика численных методов: методы спуска строят последовательность точек с убыванием критерия; конечношаговые методы достигают решения за конечное число шагов (симплекс-метод ЛП), бесконечношаговые — лишь в пределе. Порядок метода — старший порядок используемых производных (нулевой, первый, второй). Критерии окончания: |xk+1 − xk| < ε, |Fk+1 − Fk| < ε, ‖∇F‖ < ε.
Линейное и целочисленное программирование
Задача линейного программирования (ЛП): критерий и все ограничения — линейные функции переменных:
Классика применения: планирование производства (максимум прибыли при ограниченных ресурсах), транспортная задача (минимум стоимости перевозок), смеси (дешёвейшая рецептура заданных свойств). Геометрия ЛП: допустимая область — выпуклый многогранник (пересечение полуплоскостей), линии уровня критерия — параллельные гиперплоскости, поэтому оптимум всегда достигается в вершине многогранника (или на целой грани — тогда решений бесконечно много).
Симплекс-метод — направленный перебор вершин: старт в любой допустимой вершине; переход к соседней вершине, где критерий лучше; остановка, когда все соседи хуже — для выпуклой задачи это глобальный оптимум. Число вершин конечно, значит метод конечношаговый. Алгебраически вершина — базисное допустимое решение (часть переменных нулевые), переход — замена одной базисной переменной по правилам симплекс-таблицы.
Цех делает изделия А (прибыль 3) и Б (прибыль 5). Ресурсы: станок — 4 ч (А берёт 1 ч, Б — 2 ч), сборка — 6 ч (А — 2 ч, Б — 1 ч).
Вершины допустимого четырёхугольника: (0;0) F=0; (3;0) F=9; (0;2) F=10; пересечение ограничений (8/3; 2/3) F=8+10/3 ≈ 11,3 — оптимум в вершине (8/3; 2/3). Симплекс-метод пришёл бы в неё за два перехода от (0;0), улучшая F на каждом шаге: 0 → 10 → 11,3.
Целочисленное программирование — те же задачи, но переменные обязаны быть целыми (станки, люди, рейсы — «полстанка» не бывает). Округление непрерывного оптимума в общем случае неверно: округлённая точка может нарушить ограничения или оказаться далеко от целочисленного оптимума. Точные методы:
- метод ветвей и границ — решается ЛП без требования целочисленности (релаксация); по дробной переменной x = 2,6 задача ветвится на две подзадачи (x ≤ 2 и x ≥ 3); оценки-границы из релаксаций позволяют отсекать бесперспективные ветви целиком;
- метод отсечений Гомори — к релаксации добавляются дополнительные линейные ограничения (отсечения), отрезающие дробный оптимум, но не задевающие ни одной целой точки; повторяется до целочисленного решения.
Ветви и границы числом. F = 5x + 4y → max; 6x + 4y ≤ 24; x + 2y ≤ 6; x, y ≥ 0 целые.
- Релаксация (без требования целочисленности): оптимум в пересечении ограничений — x = 3; y = 1,5; F = 21. Дробный y — ветвимся: y ≤ 1 или y ≥ 2.
- Ветвь y ≤ 1: ЛП даёт x = 10/3; y = 1; F ≈ 20,7 — теперь дробный x, ветвимся дальше: при x ≤ 3 получаем (3; 1), F = 19; при x ≥ 4 — (4; 0), F = 20 — текущий рекорд.
- Ветвь y ≥ 2: ЛП даёт (2; 2), F = 18 < 20 — оценка хуже рекорда, ветвь отсекается целиком, не разрабатываем.
Целочисленный оптимум — (4; 0), F = 20. Заметьте: округление релаксации (3; 1,5) → (3; 1) дало бы лишь F = 19, а (3; 2) вовсе нарушает первое ограничение (6·3 + 4·2 = 26 > 24) — округлять непрерывный оптимум нельзя.
Ветви и границы — «умный перебор»: дерево вариантов строится полностью только там, где оценка обещает улучшение рекорда; ветка, чья оценка хуже уже найденного решения, отрубается не глядя. Тот же каркас работает для задачи коммивояжёра, раскроя, составления расписаний — всюду, где переменные дискретны и полный перебор невозможен.
Одномерная оптимизация
Условия оптимальности: необходимое — F′(x*) = 0; достаточное — F″(x*) > 0 (минимум). Численные методы сужают интервал неопределённости, где лежит минимум унимодальной функции:
- половинного деления — пробные точки на четвертях отрезка: x₁ = a + 0,25(b − a) и x₂ = b − 0,25(b − a) (делят пополам левую и правую половины); если F(x₁) < F(x₂) — исключается [x₂, b], если F(x₁) > F(x₂) — исключается [a, x₁]: интервал сокращается на 25% за итерацию ценой двух вычислений (по методичке Литовки);
- «золотого» сечения — пробные точки делят интервал в отношении золотого сечения (τ ≈ 0,618), одна из точек переиспользуется на следующем шаге: одно вычисление функции за итерацию, сжатие в 0,618 раза;
- Фибоначчи — точки по числам Фибоначчи; при заданном числе вычислений даёт минимальный интервал (оптимальный пассивно-последовательный план).
Сколько шагов нужно золотому сечению? Каждый шаг умножает интервал на 0,618. Старт [0; 1], нужна точность 0,01:
- золотое сечение: 10 шагов = 11 вычислений функции (первый шаг — два, дальше по одному: вторая точка «наследуется»);
- половинное деление: сжатие 0,75 за шаг ⇒ 0,75k < 0,01 даёт k ≈ 16 шагов по два вычисления = 32 вычисления.
Когда одно вычисление функции — запуск тяжёлой модели на минуты, экономия каждого вызова важнее числа шагов.
Все три метода играют в «горячо–холодно» на интервале, где минимум один (унимодальность). Ставим внутри две пробные точки: где функция меньше — там «горячо», противоположный конец интервала отрезаем. Хитрость золотого сечения в том, что после отрезания одна из старых точек оказывается ровно на «правильном» месте нового интервала — её не нужно пересчитывать.
Метод половинного деления на F(x) = (x − 0,6)², [0; 1]. Пробные точки на четвертях: x₁ = a + 0,25L, x₂ = b − 0,25L.
| шаг | x₁; x₂ | сравнение | исключается | новый интервал |
|---|---|---|---|---|
| 1 | 0,25; 0,75 | F(0,25) = 0,1225 > F(0,75) = 0,0225 | [0; 0,25] | [0,25; 1] |
| 2 | 0,4375; 0,8125 | F(0,4375) = 0,026 < F(0,8125) = 0,045 | [0,8125; 1] | [0,25; 0,8125] |
| 3 | 0,3906; 0,6719 | F(0,3906) = 0,044 > F(0,6719) = 0,005 | [0,25; 0,3906] | [0,3906; 0,8125] |
Худшая по F четверть отбрасывается; интервал каждый раз сокращается на 25% (умножается на 0,75) ценой двух вычислений F. Минимум x* = 0,6 всё время остаётся внутри.
Фибоначчи: пробные точки ставятся по отношениям чисел Фибоначчи 1, 1, 2, 3, 5, 8, 13… Если разрешено N вычислений функции, конечный интервал равен исходному, делённому на FN — доказуемо лучший результат среди всех планов поиска. Например, за 10 вычислений интервал сжимается в F₁₀ = 89 раз (у золотого сечения — в 1/0,618⁹ ≈ 76 раз). Отличие от золотого сечения: нужно заранее знать число вычислений.
Метод Ньютона для оптимизации — это метод касательных, применённый к уравнению F′(x) = 0:
Сходится за считанные шаги вблизи минимума, но требует двух производных и хорошего старта: при F″ < 0 шагнёт к максимуму. Методы интервалов (половинное деление, золотое сечение, Фибоначчи) медленнее, зато не требуют производных и гарантированно работают на любой унимодальной функции.
Многомерная оптимизация
Условия: необходимое — ∇F(x*) = 0; достаточное — матрица Гессе положительно определена (минимум).
- Методы нулевого порядка (только значения F): покоординатный спуск (Гаусса–Зейделя) — поочерёдная одномерная минимизация по каждой координате; метод Пауэлла — покоординатный спуск с построением сопряжённых направлений; симплексный метод (Нелдера–Мида) — деформируемый многогранник: отражение, растяжение, сжатие худшей вершины.
- Методы первого порядка: градиентный — шаг против градиента xk+1 = xk − λ∇F; наискорейшего спуска — λ на каждом шаге из одномерной минимизации вдоль антиградиента (траектория из взаимно перпендикулярных шагов); сопряжённых градиентов — направления корректируются с учётом предыдущих, квадратичную функцию n переменных минимизирует за n шагов.
- Метод «оврагов» — для функций с вытянутыми «оврагами», где градиентные методы «пилят» поперёк оврага: из двух близких точек спускаются на дно, затем делают большой шаг вдоль дна оврага.
Покоординатный спуск подробнее: фиксируем все переменные, кроме x₁, и решаем одномерную задачу (золотым сечением); затем по x₂, и так по кругу, пока смещение за полный цикл не станет меньше ε. Работает хорошо, когда переменные слабо связаны (линии уровня вытянуты вдоль осей), и вязнет, когда овраг повёрнут к осям под 45° — каждая координата «мешает» другой.
Метод Пауэлла лечит именно это: после цикла покоординатных спусков направление «суммарного сдвига» за цикл (от начальной точки цикла к конечной) добавляется в набор направлений вместо одного из старых — постепенно набор превращается в систему сопряжённых направлений, вдоль которых квадратичная функция минимизируется без взаимных помех (за n циклов). Это лучший метод нулевого порядка для гладких функций.
Симплекс Нелдера–Мида по шагам: n+1 вершина (треугольник при n = 2), упорядочиваются по значению F; худшая вершина отражается через центр тяжести остальных (коэффициент α = 1); если новая точка лучшая — растяжение (γ = 2); если хуже всех остальных — сжатие (β = 0,5); если и это не помогло — редукция: все вершины стягиваются к лучшей вдвое. Критерий останова — «сплющивание» симплекса: разброс значений F по вершинам меньше ε.
Метод «оврагов» по шагам: из двух близких стартов независимо делают несколько градиентных шагов — обе точки скатываются на дно оврага; прямая через них приближает направление дна; вдоль неё делается большой «овражный» шаг; из новой точки процедура повторяется. Метод не даёт точного минимума, но быстро проводит вдоль оврага туда, где обычный градиентный спуск дожмёт.
Методы случайного поиска (нулевой порядок; в билетах встречаются прямо по названиям вариантов):
- с постоянным радиусом поиска и случайным направлением: из текущей точки Xk делается пробный шаг X = Xk + h·ξ, где ξ — случайный вектор единичной длины (случайное направление), h — радиус поиска. Если F(X) < F(Xk) — шаг удачный, переходим в X; иначе бросаем новое случайное направление. Если много проб подряд неудачны — минимум близко, радиус h уменьшают;
- с обратным шагом: при неудачной пробе (функция выросла) следующий шаг делается в противоположном направлении −ξ — раз «в гору», значит обратно, скорее всего, «под гору»: неудачная проба тоже приносит информацию;
- достоинства: предельная простота (нужны только значения F), нечувствительность к разрывам и «шуму» функции, способность выскакивать из локальных минимумов; недостаток — медленная сходимость, поэтому случайный поиск часто используют для грубого поиска с последующим уточнением детерминированным методом.
Алгоритм случайного поиска для F(x₁, x₂) — как его просят «составить» в билете:
- задать начальную точку X⁰, радиус h, счётчик неудач m = 0;
- сгенерировать случайный угол φ ∈ [0; 2π) и направление ξ = (cos φ; sin φ);
- пробная точка X = Xk + h·ξ; вычислить F(X);
- если F(X) < F(Xk) — принять Xk+1 = X, m = 0, к шагу 2; иначе m = m + 1 (в варианте «с обратным шагом» сначала попробовать X = Xk − h·ξ);
- если m превысило порог (например, 10 неудач подряд) — уменьшить h вдвое; при h < ε — стоп, Xk — ответ.
Методы нулевого порядка — поиск с завязанными глазами, только «щупаем» высоту в точках; первого порядка — у нас есть компас, показывающий, куда круче всего вниз (антиградиент). Овраг — длинная узкая долина: компас почти всегда показывает на ближайший склон, а не вдоль долины, поэтому спуск «пилит» поперёк. Сопряжённые градиенты запоминают, куда уже ходили, и правят направление — как лыжник, срезающий серпантин.
Градиентный спуск руками: F(x, y) = x² + 4y², старт (2; 1), постоянный шаг λ = 0,1. Градиент ∇F = (2x; 8y).
| k | точка | ∇F | новая точка x − λ∇F | F |
|---|---|---|---|---|
| 0 | (2; 1) | (4; 8) | (1,6; 0,2) | 8 → 2,72 |
| 1 | (1,6; 0,2) | (3,2; 1,6) | (1,28; 0,04) | 2,72 → 1,645 |
| 2 | (1,28; 0,04) | (2,56; 0,32) | (1,024; 0,008) | 1,645 → 1,049 |
По y (крутое направление, коэффициент 4) спуск сходится быстро, по x — вяло: с постоянным шагом скорость диктует самое пологое направление. Слишком большой шаг (λ > 0,25 здесь) — и по крутому направлению начнутся перескоки с расходимостью: выбор шага — главный компромисс метода.
Методы второго порядка. Метод Ньютона: шаг xk+1 = xk − H⁻¹∇F использует матрицу Гессе H (вторые производные) — учитывает кривизну и на квадратичной функции попадает в минимум за один шаг из любой точки. Дорог: n² вторых производных и обращение матрицы на каждом шаге. Квазиньютоновские методы (ДФП — Дэвидона–Флетчера–Пауэлла, БФГШ) — компромисс: приближение H⁻¹ накапливается по разностям градиентов соседних шагов, вторые производные не вычисляются вовсе.
Нелинейное программирование
Ограничения-равенства — метод множителей Лагранжа: строится функция L(x, λ) = F(x) + Σ λjgj(x); необходимые условия — равенство нулю всех частных производных L по x и по λ. Множитель λj показывает чувствительность оптимума к ослаблению j-го ограничения.
Найти минимум F = x² + y² при условии x + y = 1 — ближайшую к началу координат точку прямой.
- Функция Лагранжа:
L = x² + y² + λ(x + y − 1)
- Необходимые условия — все частные производные в нуль:
∂L∂x = 2x + λ = 0, ∂L∂y = 2y + λ = 0, ∂L∂λ = x + y − 1 = 0
- Из первых двух: x = y = −λ/2; подставляем в третье:
λ = −1, x = y = 0,5, F* = 0,5
Геометрический смысл: в оптимуме линия уровня F касается линии ограничения — их градиенты коллинеарны, а λ — коэффициент этой коллинеарности.
Идея Лагранжа: вместо «ищи минимум, но не сходи с тропы» делаем «нарушать можно, но за это — плата λ за единицу нарушения». Если плату подобрать правильно, наказание уравновесит выгоду от нарушения, и безусловный минимум новой функции сам окажется на тропе. λ и есть эта «правильная цена» ограничения: она показывает, сколько выиграем, если тропу сдвинуть на единицу.
Ограничения-неравенства — условия Куна–Таккера; решение соответствует седловой точке функции Лагранжа: по x — минимум, по λ ≥ 0 — максимум.
Куна–Таккер на пальцах: min F = (x−2)² при x ≥ 3, т.е. g(x) = 3 − x ≤ 0. Условия: ∂L/∂x = 0, λ ≥ 0 и дополняющая нежёсткость λ·g = 0 (либо ограничение активно, либо его множитель нулевой).
- L = (x−2)² + λ(3 − x); условие стационарности: 2(x−2) − λ = 0.
- Случай λ = 0 (ограничение неактивно): x = 2, но 2 < 3 — недопустимо. Отбрасываем.
- Случай g = 0 (решение на границе): x = 3, тогда λ = 2(3−2) = 2 ≥ 0 ✓ — все условия выполнены.
Ответ: x* = 3, λ* = 2. Смысл λ = 2: сдвинь границу с 3 до 2,9 — оптимум улучшится примерно на 2·0,1 = 0,2. Множитель — «цена» ограничения, как и у Лагранжа для равенств.
Полный набор условий Куна–Таккера для задачи min F при gi(x) ≤ 0, hj(x) = 0 (стоит уметь перечислить все четыре группы):
- стационарность: ∇F + Σλi∇gi + Σμj∇hj = 0 — антиградиент критерия «уравновешен» градиентами активных ограничений;
- допустимость: gi(x*) ≤ 0, hj(x*) = 0;
- неотрицательность множителей неравенств: λi ≥ 0 (знаки μj произвольны);
- дополняющая нежёсткость: λi·gi(x*) = 0 — каждое ограничение либо активно, либо имеет нулевую цену.
Для выпуклых задач (выпуклый критерий, выпуклая допустимая область) эти условия не только необходимы, но и достаточны, а любой локальный минимум — глобальный. Практический смысл: решение задачи НЛП сводится к перебору гипотез о составе активных ограничений — как в примере выше, где проверялись случаи λ = 0 и g = 0.
Численные методы НЛП:
- прямые — работают в допустимой области: прямой поиск с возвратом (нарушили ограничение — вернулись и уменьшили шаг), метод проекции градиента (шаг проецируется на границу допустимой области);
- Прямой поиск с возвратом подробнее: движение любым безусловным методом (например, градиентным); как только очередная точка нарушила ограничение — возврат в последнюю допустимую точку и повтор шага с уменьшенным (обычно вдвое) размером; вблизи границы траектория «ощупью» скользит вдоль неё. Проекция градиента подробнее: если точка на границе, антиградиент раскладывается на нормальную (к границе) и касательную составляющие; шаг делается вдоль касательной — проекции антиградиента на границу; для линейного ограничения aᵀx = b проекция вычисляется явно: p = −(I − aaᵀ/aᵀa)∇F. Останов — когда проекция антиградиента нулевая, то есть выполнены условия Куна–Таккера;
- методы штрафных функций — сводят условную задачу к последовательности безусловных. По методичке Литовки: для задачи f₀(X) → min при fi(X) ≥ 0 строится функция R(X, K) = f₀(X) + S(K, fi(X)), где K — коэффициент штрафа, S — функция штрафа за нарушение ограничений; решается последовательность безусловных задач min R(X, Ki), и при Ki → ∞ их минимумы стремятся к решению исходной задачи. Метод внешней точки: штраф включается при выходе из допустимой области, например S = K·Σ(min(0, fi(X)))² — приближение к решению снаружи. Метод внутренней точки (барьерный): штраф резко растёт при подходе к границе изнутри, например S = −(1/K)·Σ ln fi(X) или S = (1/K)·Σ 1/fi(X) — все точки остаются допустимыми, но стартовать нужно строго внутри области. Комбинированный метод — внутренний штраф для неравенств и внешний для равенств одновременно.
Задача: min (x−2)² при x ≥ 3. Безусловный минимум x = 2 лежит вне допустимой области — значит, решение на границе: x* = 3.
Внешний штраф — платим за нарушение:
- M = 1 → x = 2,5; M = 10 → x = 2,91; M = 100 → x = 2,99;
- минимумы подходят к границе снаружи — промежуточные точки недопустимы.
Барьер (внутренний штраф) — стена перед границей:
- определён только внутри допустимой области;
- с ростом M минимум прижимается к 3 изнутри — все приближения допустимы;
- это важно, когда нарушать нельзя физически (отрицательное давление, отрицательная концентрация).
Вариационное исчисление
Обычная функция ест число и выдаёт число. Функционал ест целую кривую и выдаёт число: длину этой кривой, время спуска по ней, энергию. Вариационная задача — «из всех кривых между двумя точками найди ту, у которой число минимально». Вариация δy — это «пошевелить кривую чуть-чуть»: если кривая действительно наилучшая, любое малое шевеление не должно улучшать функционал (δJ = 0) — точный аналог «производная равна нулю» для функций.
Примеры задач: о брахистохроне (кривая скорейшего спуска), о минимальной поверхности вращения, о геодезической. Постановка включает критерий-функционал, класс допустимых функций, краевые условия, возможные связи и ограничения.
Простейшая задача: минимизировать J[y] при закреплённых концах y(a), y(b). Необходимое условие экстремума — уравнение Эйлера:
Идея вывода уравнения Эйлера — сведение к обычному анализу:
- Пусть y*(x) — экстремаль. Рассмотрим семейство сравнения y = y* + ε·η(x), где η — произвольное «шевеление» с η(a) = η(b) = 0 (концы закреплены).
- На этом семействе функционал — обычная функция числа ε: Φ(ε) = J[y* + εη]. Раз y* — экстремум, Φ′(0) = 0 при любой η.
- Дифференцируем под интегралом: Φ′(0) = ∫(Fy·η + Fy′·η′)dx; второй член интегрируем по частям (внеинтегральные члены исчезают из-за η(a) = η(b) = 0): Φ′(0) = ∫(Fy − d/dx Fy′)·η dx.
- Интеграл равен нулю для любой η только если скобка тождественно нулевая (основная лемма вариационного исчисления) — это и есть уравнение Эйлера.
Схема «добавь малое шевеление → продифференцируй по его амплитуде → проинтегрируй по частям» — универсальный приём вывода необходимых условий во всех вариационных задачах.
Какая кривая между двумя точками — кратчайшая? Длина кривой — функционал:
- F = √(1+y′²) не зависит от y ⇒ Fy = 0 — частный случай интегрируемости;
- уравнение Эйлера сводится к
ddx Fy′ = 0 ⇒ y′√(1+y′²) = C
- отсюда y′ = const — прямая, как и ожидалось.
Тот же аппарат для функционала времени спуска даёт циклоиду (брахистохрону), для минимальной поверхности вращения — цепную линию.
Для функционалов со старшими производными F(x, y, y′, y″, …) — уравнение Эйлера–Пуассона: Fy − d/dx Fy′ + d²/dx² Fy″ − … = 0. Частные случаи интегрируемости: если F не зависит от y, то Fy′ = C; если F не зависит от x — первый интеграл F − y′Fy′ = C.
Эйлера–Пуассона в работе: минимизируем энергию изгиба балки J[y] = ∫(y″)² dx. Здесь F = (y″)² зависит только от y″: Fy = 0, Fy′ = 0, Fy″ = 2y″, и уравнение даёт d²/dx²(2y″) = 0 ⇒ y⁽⁴⁾ = 0 — кубический полином, форма упругой балки между опорами. Порядок уравнения — 2m (m — старшая производная в F), и краевых условий нужно 2m: для балки — по два на каждом конце (прогиб и наклон).
Изопериметрическая задача с числами (классика Дидоны в миниатюре): среди кривых заданной длины L между точками (−1; 0) и (1; 0) найти охватывающую наибольшую площадь. Функционал — площадь ∫y dx, связь — длина ∫√(1+y′²) dx = L. Вспомогательный функционал F* = y + λ√(1+y′²); он не зависит от x — первый интеграл F* − y′F*y′ = C после упрощения даёт (x−C₁)² + (y−C₂)² = λ² — дугу окружности: константы C₁, C₂ и множитель λ (он же радиус!) находятся из двух краевых условий и заданной длины. Множитель Лагранжа снова получил физический смысл — здесь это радиус оптимальной дуги.
Связь с оптимальным управлением. Задача оптимального управления — развитие вариационного исчисления: ищется управление u(t), минимизирующее функционал при связях-уравнениях движения объекта ẋ = f(x, u) и ограничениях на управление (u ∈ U — например, |u| ≤ umax, чего классическое вариационное исчисление не умеет). Необходимые условия даёт принцип максимума Понтрягина — обобщение уравнений Эйлера; типичный результат — релейное управление («банг-банг»): оптимальное u скачет между крайними значениями, как в задаче о быстрейшем разгоне-торможении.
Численные методы: уравнение Эйлера — краевая задача для ОДУ, решается методом пристрелки (подбор недостающего начального условия так, чтобы попасть в правое краевое) или прогонкой (для линейных задач). Прямые методы минимизируют сам функционал: метод Ритца — решение ищется как комбинация базисных функций y ≈ Σ aiφi(x), задача сводится к минимизации функции коэффициентов; метод Канторовича — обобщение для функционалов от функций многих переменных (коэффициенты — функции); конечно-разностный метод Эйлера — интеграл заменяется суммой по сетке, функционал становится функцией узловых значений.
Метод Ритца с числами: минимизировать J[y] = ∫₀¹(y′² − 2y) dx при y(0) = y(1) = 0 (точное решение уравнения Эйлера y″ = −1: y = x(1−x)/2).
- Базис, удовлетворяющий краевым условиям: одна функция φ₁ = x(1−x); ищем y ≈ a·φ₁.
- Подставляем в функционал: y′ = a(1−2x), J(a) = ∫₀¹ [a²(1−2x)² − 2a·x(1−x)] dx = a²/3 − a/3.
- Минимум обычной параболы: dJ/da = 2a/3 − 1/3 = 0 ⇒ a = 0,5 — получили y = 0,5·x(1−x), здесь это точное решение, потому что оно попало в выбранный базис.
В общем случае базис расширяют (φ₂ = x²(1−x), …) — каждая новая функция добавляет строку в СЛАУ на коэффициенты, и приближение уточняется. МКЭ — это метод Ритца с кусочными базисными функциями, отличными от нуля лишь на паре соседних элементов.
Пристрелка на пальцах: краевая задача y″ = −1, y(0) = 0, y(1) = 0. Недостающее начальное условие — наклон s = y′(0); решаем задачу Коши и смотрим, куда попали на правом конце: промах Φ(s) = y(1; s). Для s = 0: y(1) = −0,5 (недолёт); для s = 1: y(1) = +0,5 (перелёт); секущая по двум пробам даёт s = 0,5 — попадание y(1) = 0 (для линейной задачи — точно, для нелинейной итерации продолжаются). Название честное: это артиллерийская «вилка» — недолёт, перелёт, поправка прицела.
Условный экстремум: связи бывают голономные (φ(x, y₁, y₂, …) = 0 — без производных), неголономные (дифференциальные, с y′), изопериметрические (∫G dx = const — заданная «длина»). Необходимые условия строятся методом множителей Лагранжа: вспомогательный функционал с λ(x) (для изопериметрических λ — константа), для него записывается уравнение Эйлера.
Вопросы к собеседованию
Назовите виды критериев оптимальности при многокритериальной постановке.
Частный (один главный критерий, остальные — в ограничения), аддитивный (взвешенная сумма), мультипликативный (произведение со степенями-весами), максиминный (максимизируется наихудший из частных критериев — гарантированный результат). Свёртки требуют нормировки и назначения весов, максиминный критерий свободен от компенсации одних показателей другими.
Как классифицируются задачи оптимизации? Что такое математическое программирование?
Конечномерные задачи f₀(X) → min при X ∈ Xᵈ и методы их решения называют математическим программированием. Классификация: по наличию ограничений — безусловные и условные (общая задача: fᵢ(X) ≥ 0 и fᵢ(X) = 0); по размерности — одномерные и многомерные; по виду функций — линейное программирование (всё линейно), нелинейное, дискретное и целочисленное; отдельно — задачи оптимального управления, где ищется функция времени, а критерий — функционал.
Как критерий оптимального проектирования связан с математической моделью?
Критерий — количественная оценка качества решения — вычисляется через выходные координаты объекта, а они связаны с варьируемыми переменными (конструктивными и режимными параметрами) уравнениями математической модели, которые играют роль уравнений связи. Схема: оптимизатор задаёт варьируемые переменные → модель рассчитывает выходные координаты → вычисляется критерий; технологические и физические ограничения задают допустимую область.
Опишите метод случайного поиска.
Метод нулевого порядка: из текущей точки делается пробный шаг X = Xᵏ + h·ξ по случайному направлению ξ единичной длины с радиусом поиска h; если функция уменьшилась — шаг принимается, иначе бросается новое направление (в варианте «с обратным шагом» после неудачи пробуют противоположное направление −ξ). После серии неудач радиус h уменьшают; останов при h < ε. Прост, не требует производных, устойчив к разрывам и способен покидать локальные минимумы, но сходится медленно.
Что такое порядок метода оптимизации? Приведите примеры методов разных порядков.
Порядок — старший порядок производных критерия, используемых методом. Нулевой порядок: покоординатный спуск, Пауэлла, симплексный Нелдера–Мида (только значения F). Первый: градиентный, наискорейшего спуска, сопряжённых градиентов. Второй: метод Ньютона (гессиан).
Сформулируйте необходимое и достаточное условия минимума функции одной и многих переменных.
Одномерно: необходимое F′(x*) = 0; достаточное F″(x*) > 0. Многомерно: необходимое ∇F(x*) = 0; достаточное — положительная определённость матрицы Гессе (вторых производных) в стационарной точке. При отрицательной определённости — максимум, при знакопеременности — седловая точка.
Сравните методы половинного деления, золотого сечения и Фибоначчи.
Все сужают интервал неопределённости унимодальной функции. Половинное деление ставит пробы на четвертях отрезка (x₁ = a + 0,25(b−a), x₂ = b − 0,25(b−a)): по сравнению F(x₁) и F(x₂) исключается [a, x₁] или [x₂, b] — сокращение на 25% за итерацию, два вычисления F за шаг. Золотое сечение делит интервал в отношении 0,618, одна пробная точка переиспользуется — одно вычисление за шаг. Метод Фибоначчи при заранее заданном числе вычислений даёт наименьший возможный конечный интервал; золотое сечение — его предельный случай.
В чём отличие наискорейшего спуска от простого градиентного метода?
Оба идут в направлении антиградиента. В градиентном методе шаг λ постоянен или дробится; в наискорейшем спуске λ на каждой итерации находится одномерной минимизацией вдоль направления — соседние направления получаются взаимно перпендикулярными, траектория — характерный «зигзаг». На вытянутых оврагах оба сходятся медленно.
Чем хорош метод сопряжённых градиентов? Когда нужен метод «оврагов»?
Сопряжённые градиенты корректируют направление с учётом предыдущих шагов так, что квадратичная функция n переменных минимизируется не более чем за n итераций; на овражных функциях значительно быстрее градиентного. Метод «оврагов» — эвристика для сильно вытянутых оврагов: из двух близких стартов спускаются на дно оврага и делают большой «овражный» шаг вдоль дна.
Опишите метод множителей Лагранжа.
Для задачи min F(x) при gj(x) = 0 строится функция Лагранжа L = F + Σλjgj. Необходимые условия экстремума: ∂L/∂xi = 0 и ∂L/∂λj = 0 (последние возвращают ограничения). Решая систему, получают стационарные точки; λj имеет смысл чувствительности оптимального значения критерия к ослаблению ограничения.
Что такое седловая точка функции Лагранжа?
Точка (x*, λ*), в которой L(x*, λ) ≤ L(x*, λ*) ≤ L(x, λ*): по переменным x — минимум, по множителям λ ≥ 0 — максимум. Для выпуклых задач существование седловой точки эквивалентно оптимальности x* (условия Куна–Таккера) — основа теории двойственности.
Сравните внешние и внутренние штрафные функции.
Строится R(X, K) = f₀(X) + S(K, fᵢ(X)) с коэффициентом штрафа K; решается последовательность безусловных задач, минимумы которых при K → ∞ стремятся к решению исходной. Внешний штраф (метод внешней точки), например K·Σ(min(0, fᵢ))², — нулевой внутри допустимой области и большой при нарушении; приближение к решению снаружи. Внутренний (барьерный, метод внутренней точки), например −(1/K)·Σ ln fᵢ или (1/K)·Σ 1/fᵢ, — неограниченно растёт при подходе к границе изнутри; все приближения допустимы, но нужен допустимый старт. Комбинированный метод: внутренний штраф для неравенств + внешний для равенств.
Что такое функционал и вариация функционала?
Функционал — правило, ставящее каждой функции из заданного класса число (например, J[y] = ∫F(x, y, y′)dx). Вариация δy — малое изменение функции-аргумента; вариация функционала δJ — главная, линейная по δy часть приращения J (аналог дифференциала). Необходимое условие экстремума: δJ = 0.
Запишите уравнение Эйлера. Каковы частные случаи его интегрируемости?
Для J[y] = ∫F(x, y, y′)dx: Fy − d/dx(Fy′) = 0 — краевая задача для ОДУ 2-го порядка. Частные случаи: F не содержит y → Fy′ = C; F не содержит x → F − y′Fy′ = C; F не содержит y′ → Fy = 0 (конечное уравнение). Для F со старшими производными — уравнение Эйлера–Пуассона со знакочередующимися членами.
В чём суть методов пристрелки и прогонки?
Оба решают краевую задачу для ОДУ (в т.ч. уравнение Эйлера). Пристрелка: задаются недостающим начальным условием (наклоном), интегрируют задачу Коши и подбирают наклон (например, методом секущих) до попадания в правое краевое условие. Прогонка — вариант исключения Гаусса для линейных краевых задач/трёхдиагональных систем: прямой ход вычисляет прогоночные коэффициенты, обратный — решение.
Опишите прямые методы решения вариационных задач (Ритца, Канторовича, конечно-разностный).
Прямые методы минимизируют функционал, не выписывая уравнение Эйлера. Ритц: y ≈ Σaiφi(x) по базисным функциям, удовлетворяющим краевым условиям, — функционал становится функцией коэффициентов ai. Канторович — для кратных интегралов: коэффициенты при базисных функциях сами являются функциями одной из переменных. Конечно-разностный метод Эйлера: интеграл заменяется суммой по сетке, аргументы — узловые значения yi, минимизируется функция многих переменных.
Какие бывают связи в вариационных задачах на условный экстремум?
Голономные — конечные уравнения φ(x, y₁, …, yn) = 0 без производных; неголономные — дифференциальные связи, содержащие y′; изопериметрические — интегральные условия ∫G dx = const. Решаются методом множителей Лагранжа: составляется вспомогательный функционал с λ(x) (для изопериметрических связей λ — константа) и для него записывается уравнение Эйлера.
Тема 1.4
Искусственный интеллект
Экспертные системы, представление знаний, нечёткие знания, модели поиска решений — по методичкам Коробовой и Обухова.
Подходы к искусственному интеллекту
Причина появления ИИ — потребность решать неформализованные задачи: без строгого алгоритма, с неполными и нечёткими данными, где решение строится на знаниях экспертов. Два исторических подхода:
- нисходящий (символьный) — моделирование рассуждений: представление знаний, логический вывод, экспертные системы;
- восходящий (нейросетевой) — моделирование биологических структур: нейронные сети, обучение на примерах.
Признаки неформализованных задач (по Э. Фейгенбауму): алгоритмическое решение неизвестно или невыполнимо по ресурсам; данные ошибочны, неоднозначны, неполны; цели нельзя выразить точной целевой функцией; задача решается на символьном уровне (понятия, а не числа). Классические области: медицинская и техническая диагностика, интерпретация данных, планирование, проектирование, обучение.
Немного истории для ответа «своими словами»: 1950 — критерий Тьюринга (машина «интеллектуальна», если в диалоге неотличима от человека); 1956 — Дартмутский семинар, рождение термина «artificial intelligence»; 1960–70-е — расцвет символьного подхода и первые ЭС (DENDRAL — определение структуры молекул, MYCIN — диагностика инфекций); 1980-е — промышленный бум ЭС и языков Prolog/Lisp; с 2010-х доминирует восходящий подход — глубокие нейронные сети. Современная тенденция — гибрид: нейросети извлекают закономерности из данных, символьные методы дают объяснимость и логику.
Экспертные системы
- База знаний — формализованные знания предметной области: факты и правила.
- Механизм логического вывода — применяет правила к фактам, строит цепочку рассуждений.
- Модуль извлечения (приобретения) знаний — пополнение БЗ инженером знаний в диалоге с экспертом.
- Система объяснений — отвечает «почему получен такой вывод» перечнем сработавших правил (доверие пользователя, отладка БЗ).
Методология разработки ЭС (этапы): идентификация задачи → концептуализация (выделение понятий и связей) → формализация (выбор модели представления знаний) → выполнение (наполнение БЗ) → тестирование → опытная эксплуатация. Разработка ведётся быстрым прототипом с постепенным расширением: демонстрационный → исследовательский → действующий → промышленный → коммерческий уровень. Трудности: извлечение знаний у эксперта («узкое горло» инженерии знаний), верификация полноты и непротиворечивости БЗ, сопровождение. Перспективы: гибридные системы (правила + нейросети + нечёткая логика), самообучающиеся системы, интеграция с большими данными.
Участники разработки: эксперт — носитель знаний предметной области, источник правил; инженер по знаниям (когнитолог) — посредник, извлекающий знания у эксперта и формализующий их в выбранной модели; программист — реализует или настраивает инструментальные средства; пользователь — специалист, для которого система становится «советчиком». Именно связка «эксперт — инженер знаний» определяет качество ЭС, а не программный код.
Классификация ЭС: по типу решаемой задачи — интерпретация данных, диагностика, мониторинг, прогнозирование, планирование, проектирование, обучение, управление; по связи с реальным временем — статические (данные не меняются за сеанс: диагностика по анализам) и динамические (данные поступают в темпе процесса: мониторинг реактора, требуется пересмотр выводов на лету); по степени интеграции — автономные и гибридные (модуль в составе САПР или АСУ).
| Традиционная программа | Экспертная система |
|---|---|
| алгоритм жёстко зашит в код | знания отделены от механизма вывода — БЗ можно пополнять без перепрограммирования |
| обрабатывает числа и данные | оперирует символьными знаниями (понятия, правила) |
| гарантированный результат по формуле | правдоподобный вывод, возможна работа с неполными данными |
| не объясняет ответ | объясняет цепочку рассуждений («почему» и «как») |
| ошибка в данных → отказ или неверный счёт | деградация постепенная: качество вывода снижается плавно |
Инструментальные средства построения ЭС (способы построения): программирование «с нуля» на языках ИИ (Prolog — логический вывод «из коробки», Lisp — обработка символьных структур); оболочки ЭС — готовый механизм вывода и интерфейс, наполняется только база знаний (классика — EMYCIN, современные — CLIPS, Drools); гибридные инструментальные среды с несколькими моделями представления знаний. Выбор — компромисс: оболочка ускоряет разработку на порядок, но привязывает к своей модели знаний.
Способы представления знаний
- Продукционные правила — «ЕСЛИ условие ТО действие». Наглядны, модульны, легко пополняются; основной способ в ЭС.
- Фреймы — структура-«анкета» для стереотипной ситуации: имя, слоты со значениями, значениями по умолчанию, присоединёнными процедурами; фреймы образуют иерархии с наследованием.
- Семантические сети — ориентированный граф: вершины — понятия, дуги — отношения (is-a «является», part-of «часть», свойства). Вывод — поиск по сети.
- Логические модели — исчисление предикатов, вывод по правилам формальной логики (резолюция).
- Нейронные сети — знания в виде весов связей искусственных нейронов; нейрон вычисляет взвешенную сумму входов и пропускает через функцию активации; сети обучаются на примерах (обратное распространение ошибки), но не объясняют вывод.
Одно и то же знание в трёх представлениях.
Правило: ЕСЛИ (двигатель не заводится) И (стартер крутит) ТО (проверить подачу топлива).
Фрейм «Станок»: слоты — [тип: токарный], [мощность: 5 кВт], [состояние: по умолчанию «исправен»], [при_поломке: процедура вызова диагностики]. Фрейм «Станок-16К20» наследует слоты от «Станка», переопределяя мощность. Значение по умолчанию экономит память: его хранят один раз у предка.
Семантическая сеть (на схеме выше): вывод «умеет ли канарейка летать?» — поиск пути: канарейка —is-a→ птица —умеет→ летать. Наследование свойств по дугам is-a — главный механизм вывода в сетях и фреймах.
Как выбирают представление знаний:
- правила — эксперт формулирует опыт в виде «если–то» (диагностика, советчики);
- фреймы — мир состоит из типовых объектов со свойствами (оборудование, документы);
- семантические сети — главное — связи между понятиями (словари, онтологии);
- нейросети — правил никто сформулировать не может, но есть много примеров «вход → правильный ответ».
Декларативные и процедурные знания. Декларативные — «что истинно» (факты, описания, отношения: семантические сети, фреймы); процедурные — «как действовать» (правила, процедуры). Продукционная модель объединяет оба вида: посылка декларативна, действие процедурно. Ещё один разрез — поверхностные знания (эмпирические ассоциации «симптом → диагноз») и глубинные (понимание механизма: анатомия, физика отказа); промышленные ЭС первого поколения строились на поверхностных, современные стремятся к глубинным — они устойчивее на нетиповых случаях.
Как работает продукционный цикл вывода: 1) сопоставление — находятся все правила, посылки которых удовлетворены содержимым рабочей памяти (они образуют конфликтное множество); 2) разрешение конфликта — выбор одного правила: по приоритету, по специфичности (правило с более подробной посылкой предпочтительнее), по свежести данных, по порядку в БЗ; 3) выполнение — действие правила меняет рабочую память; цикл повторяется до цели или пустого конфликтного множества.
Неопределённость в правилах. Знания экспертов редко категоричны, поэтому правилам приписывают коэффициенты уверенности (CF ∈ [−1; 1], подход MYCIN): уверенность заключения = уверенность посылки × CF правила; при нескольких условиях в посылке берётся min их уверенностей; независимые свидетельства в пользу одного вывода комбинируются по формуле CF = CF₁ + CF₂·(1 − CF₁), усиливая друг друга, но не превышая 1. Альтернативные аппараты — байесовские сети (строгая вероятность) и нечёткая логика (следующий подраздел).
Логическая модель в действии — исчисление предикатов и резолюция. Знания: ∀x (Человек(x) → Смертен(x)); факт: Человек(Сократ). Метод резолюции доказывает «от противного»: добавляем отрицание цели ¬Смертен(Сократ), приводим всё к дизъюнктам {¬Человек(x) ∨ Смертен(x)}, {Человек(Сократ)}, {¬Смертен(Сократ)} и последовательно «склеиваем» противоположные литералы: из первого и второго (подстановка x = Сократ) выводится Смертен(Сократ), что с третьим даёт пустой дизъюнкт — противоречие, значит, цель доказана. Именно этот механизм встроен в язык Prolog: программа — набор фактов и правил-предикатов, выполнение — попытка доказательства запроса.
Нечёткие знания
Операции (по Заде): дополнение μ¬A = 1 − μA; пересечение μA∩B = min(μA, μB); объединение μA∪B = max(μA, μB).
Лингвистическая переменная — переменная, значениями которой являются слова («температура» = {низкая, средняя, высокая}); каждый терм — нечёткое множество с функцией принадлежности. Функции принадлежности строят по экспертным оценкам (прямое оценивание, парные сравнения) — обычно треугольные или трапециевидные.
Нечёткий вывод по обобщённому modus ponens: правила «ЕСЛИ x есть A ТО y есть B» с нечёткими посылками; этапы — фаззификация входов → вычисление степени истинности посылок (min/произведение) → агрегация заключений (max) → дефаззификация (например, центр тяжести). Так в ЭВМ представляют и обрабатывают нечёткие знания экспертов.
Нечёткий регулятор вентилятора. Правила:
- R1: ЕСЛИ температура высокая ТО обороты большие;
- R2: ЕСЛИ температура средняя ТО обороты средние.
Вход: t = 68°. Вывод по шагам:
- Фаззификация: μвысокая(68) = 0,3; μсредняя(68) = 0,6 — одно значение принадлежит двум термам сразу.
- Активация правил: R1 срабатывает со степенью 0,3, R2 — со степенью 0,6; функции принадлежности выводов «срезаются» на этих уровнях.
- Агрегация: срезанные множества «большие» и «средние» объединяются по max в одну фигуру.
- Дефаззификация: центр тяжести фигуры → например, 62% мощности — конкретная команда из «размытых» правил.
Так работают нечёткие регуляторы стиральных машин, кондиционеров и АКПП: эксперт пишет 5–10 словесных правил вместо дифференциальных уравнений объекта.
Фаззификация — перевод числа на язык слов («68° — это в основном „тепло“ и немного „жарко“»); дефаззификация — обратный перевод итогового «размытого» ответа в одно число, которое можно подать на исполнительный механизм. Между ними система рассуждает словами, как человек.
Модификаторы термов — арифметика над функциями принадлежности, имитирующая слова-усилители: «очень A» — концентрирование μ² (принадлежность падает у всех, кроме ядра), «более-менее A» — растяжение √μ. Так из базовых термов строятся производные значения лингвистической переменной без новых экспертных опросов.
Методы дефаззификации (перевода итогового нечёткого множества в число): центр тяжести (центроид) — самый употребительный, учитывает всю фигуру; среднее максимумов — среднее точек с максимальной принадлежностью; первый максимум — быстрый, но грубый. Выбор влияет на плавность управления: центроид даёт гладкую характеристику регулятора.
Мамдани против Сугено. В алгоритме Мамдани заключения правил — нечёткие множества («обороты большие»), итог агрегируется и дефаззифицируется — наглядно, «по-человечески». В алгоритме Сугено заключение каждого правила — число или линейная функция входов (y = a·t + b), а итог — взвешенное среднее заключений по степеням активации правил: дефаззификация не нужна, вычисления дешевле, удобно для автоматической настройки коэффициентов по данным (нейро-нечёткие системы ANFIS). Мамдани выбирают за интерпретируемость, Сугено — за скорость и обучаемость.
Мамдани с числами до конца — упрощённый расчёт, который можно повторить на бумаге. Обороты вентилятора: терм «средние» — треугольник с вершиной в 50%, терм «большие» — треугольник с вершиной в 90% (шкала 0–100%).
- Из фаззификации: правило «средние» активно на 0,6, правило «большие» — на 0,3.
- Срезаем треугольники: «средние» ограничен высотой 0,6, «большие» — высотой 0,3, объединяем по max.
- Дефаззификация центром тяжести — приближённо по двум «кускам» (площадь × центр):
y* = S₁·c₁ + S₂·c₂S₁ + S₂ ≈ 0,6·50 + 0,3·900,6 + 0,3 ≈ 63%
Ответ смещён к «средним» (их правило активнее), но подтянут «большими» — нечёткий вывод плавно смешивает рекомендации правил пропорционально их уверенности. Ни одного дифференциального уравнения объекта не потребовалось.
Модели поиска решений
- Прямая цепочка рассуждений (от данных к цели): просматриваются правила, посылки которых подтверждены фактами; их заключения добавляются в рабочую память — пока не будет получена цель. Хороша, когда данных мало, а гипотез много.
- Обратная цепочка (от цели к данным): выдвигается гипотеза-цель; ищутся правила, её выводящие; их посылки становятся подцелями — пока подцели не сведутся к известным фактам или вопросам пользователю. Хороша при небольшом числе возможных целей (диагностика).
- Поиск в пространстве состояний — граф «состояние → действия»: перебор в глубину/в ширину, эвристический поиск (A*); при больших пространствах — редукция задачи на подзадачи.
База знаний из трёх правил (по образцу методички Коробовой):
R1: ЕСЛИ (температура > 100°) ТО (давление растёт)
R2: ЕСЛИ (давление растёт) И (клапан закрыт) ТО (авария)
R3: ЕСЛИ (авария) ТО (открыть клапан сброса)
Факты: {температура 110°, клапан закрыт}.
Прямая цепочка (от данных): просматриваем правила → R1 срабатывает, в рабочую память добавляется «давление растёт» → теперь срабатывает R2, добавляется «авария» → срабатывает R3 → вывод: «открыть клапан сброса». Данные толкают вывод вперёд.
Обратная цепочка (от цели): гипотеза — «нужно ли открыть клапан сброса?» → её выводит R3, подцель «авария» → её выводит R2, подцели «давление растёт» (её выводит R1 — подцель «температура > 100°» — есть в фактах ✓) и «клапан закрыт» ✓ → гипотеза подтверждена. Цель тянет рассуждение назад, к фактам; проверяются только правила, относящиеся к делу.
Слепые стратегии поиска в пространстве состояний. Поиск в ширину раскрывает вершины слоями от старта: гарантированно находит кратчайший (по числу шагов) путь, но хранит весь фронт — память растёт как bd (b — ветвление, d — глубина). Поиск в глубину идёт по одной ветке до упора с возвратами (бэктрекинг): памяти нужно всего O(b·d), но кратчайшесть не гарантируется, а на бесконечных ветках он «проваливается» — лечится ограничением глубины и итеративным углублением (глубина 1, 2, 3, … — сочетает экономность глубины с полнотой ширины).
Эвристический поиск. Эвристика h(x) — оценка стоимости пути от состояния x до цели. Алгоритм A* раскрывает вершины в порядке f(x) = g(x) + h(x), где g — фактическая стоимость пути от старта. Если эвристика допустима (не завышает истинное расстояние), A* находит оптимальный путь, просматривая лишь малую часть пространства. Пример: для игры в «восьмерку» (сдвиг костяшек 3×3) допустимые эвристики — число костяшек не на месте или сумма манхэттенских расстояний костяшек до целевых позиций; вторая «умнее» (ближе к истине) — и перебор меньше. Компромисс скорости и качества — жадный поиск только по h(x): быстрый, но без гарантий.
Редукция задач и И/ИЛИ-графы. Вторая модель поиска: цель разбивается на подзадачи. ИЛИ-вершина — альтернативные способы решить задачу (достаточно решить одну ветвь), И-вершина — совокупность подзадач, решить которые нужно все. Решение — поддерево, «закрывающее» корень: у ИЛИ-вершин выбрана одна ветвь, у И-вершин взяты все. Обратная цепочка рассуждений в ЭС — в точности поиск на И/ИЛИ-графе: правило с несколькими условиями в посылке порождает И-вершину, несколько правил с одним заключением — ИЛИ-вершину.
Ширина против глубины — «расползаться лужей» против «бурить скважины с возвратом»: лужа гарантированно накроет ближайший клад, но зальёт всё вокруг (память!), бур экономен, но может уйти мимо. Эвристика — «металлоискатель»: копаем там, где звенит громче; если прибор никогда не преуменьшает близость клада (допустимость), первый выкопанный клад — ближайший.
Вопросы к собеседованию
Для каких задач создаются системы искусственного интеллекта? Назовите основные подходы.
Для неформализованных задач: нет готового алгоритма, данные неполны или нечётки, знания носят экспертный характер (диагностика, проектирование, прогноз). Подходы: нисходящий (символьный) — моделирование рассуждений через представление знаний и логический вывод (экспертные системы); восходящий (нейросетевой) — обучение на примерах, моделирование нейронных структур.
Что такое экспертная система? Перечислите её компоненты.
Программа, аккумулирующая знания экспертов предметной области и решающая задачи на их уровне с объяснением рассуждений. Компоненты: база знаний (факты и правила), механизм логического вывода, рабочая память (база данных текущей задачи), модуль извлечения знаний, система объяснений, интерфейс пользователя.
Зачем экспертной системе система объяснений?
Она показывает цепочку сработавших правил, приведшую к выводу («почему» и «как»). Это повышает доверие пользователя к рекомендациям, позволяет эксперту проверять корректность базы знаний и служит инструментом отладки при её наполнении.
Назовите этапы разработки экспертной системы.
Идентификация (постановка задачи, ресурсы, участники) → концептуализация (ключевые понятия и связи) → формализация (выбор модели представления знаний и инструментария) → выполнение (наполнение базы знаний) → тестирование → опытная эксплуатация. Разработка идёт через быстрый прототип; уровни готовности: демонстрационный, исследовательский, действующий, промышленный, коммерческий.
В чём главные трудности создания экспертных систем?
«Узкое горло» — извлечение знаний: эксперт мыслит не правилами, знания приходится добывать в длительных диалогах инженера знаний с экспертом. Далее — обеспечение полноты и непротиворечивости базы знаний, её сопровождение при изменении предметной области, а также границы применимости: ЭС ненадёжна на краю своей компетенции.
Сравните продукционные правила, фреймы и семантические сети.
Продукции «ЕСЛИ–ТО» — модульны, наглядны, легко пополняются, но при тысячах правил трудно контролировать взаимодействие. Фреймы — структуры для стереотипных объектов/ситуаций со слотами, значениями по умолчанию и наследованием — удобны для описания объектов. Семантические сети — граф понятий и отношений (is-a, part-of), естественно моделируют связи и наследование свойств; вывод — поиск по сети.
Как устроен искусственный нейрон и как нейросеть хранит знания?
Нейрон вычисляет взвешенную сумму входов, прибавляет смещение и пропускает результат через нелинейную функцию активации (сигмоида, ReLU). Знания сети — веса связей, настраиваемые обучением на примерах (алгоритм обратного распространения ошибки). Многослойные сети аппроксимируют сложные зависимости, но, в отличие от ЭС, не объясняют свой вывод.
Что такое нечёткое множество и функция принадлежности?
Нечёткое множество A — пары (x, μA(x)), где μA(x) ∈ [0, 1] — степень принадлежности элемента множеству. Классическое множество — частный случай с μ ∈ {0, 1}. Операции по Заде: дополнение 1 − μ, пересечение min, объединение max. Функции принадлежности (треугольные, трапециевидные) строятся по экспертным оценкам.
Что такое лингвистическая переменная?
Переменная, значения которой — слова естественного языка (термы), а не числа: «температура» = {низкая, средняя, высокая}. Каждый терм формализуется нечётким множеством на числовой шкале со своей функцией принадлежности. Лингвистические переменные — способ представить в ЭВМ качественные экспертные знания.
Опишите схему нечёткого логического вывода.
1) Фаззификация — числовые входы переводятся в степени принадлежности термам; 2) для каждого правила «ЕСЛИ x есть A ТО y есть B» вычисляется степень истинности посылки (min или произведение при нескольких условиях); 3) агрегация — заключения правил объединяются (max); 4) дефаззификация — итоговое нечёткое множество сворачивается в число (метод центра тяжести). Основа — обобщённое нечёткое правило modus ponens.
Сравните прямую и обратную цепочки рассуждений.
Прямая — от данных к цели: правила с подтверждёнными посылками срабатывают, их заключения пополняют рабочую память до получения цели; выгодна, когда исходных данных мало, а возможных выводов много. Обратная — от цели к данным: цель разбивается на подцели через правила, которые её выводят, пока подцели не сведутся к фактам или вопросам пользователю; выгодна при ограниченном наборе гипотез — типична для диагностики.
Какие модели поиска решений применяются в пространстве состояний?
Задача — граф: вершины — состояния, дуги — действия. Слепой перебор — поиск в ширину (гарантирует кратчайший путь, но требует памяти) и в глубину (экономен, может «провалиться»). Эвристический поиск (A*) использует оценку расстояния до цели. При больших пространствах задачу редуцируют — разбивают на подзадачи (И/ИЛИ-графы).