Раздел 1 / 5 · 09.04.01.02

Теоретические основы разработки вычислительных систем

Тема 1.1

Численные методы решения инженерных задач

Точность и устойчивость, нелинейные уравнения, СЛАУ, интерполяция и аппроксимация, интегрирование, задача Коши.

Точность вычислений и устойчивость метода

Источники погрешности численного решения:

  • неустранимая — погрешность исходных данных и самой математической модели;
  • погрешность метода — от замены точной задачи приближённой (например, отбрасывание остатка ряда, конечный шаг сетки h);
  • вычислительная (округления) — из-за конечной разрядности представления чисел в ЭВМ.

Считаем площадь круга S = πR² — все три погрешности в одной задаче:

  • радиус измерен линейкой: R = 10 ± 0,5 см — неустранимая;
  • взяли π ≈ 3,14 вместо 3,14159… — погрешность метода;
  • ЭВМ хранит 1/3 как 0,3333333 (7 цифр float) — округления.

Уменьшать имеет смысл ту, что доминирует: незачем считать с 15 знаками то, что измерено с точностью 5%.

Устойчивость метода — свойство, при котором малые возмущения входных данных (и ошибки округления) не приводят к неограниченному росту ошибки решения в ходе вычислений. Неустойчивый метод накапливает ошибку и разрушает решение даже при точной модели.

Представьте микрофон рядом с колонкой: малейший шорох усиливается, снова попадает в микрофон — и через секунду свист заглушает всё. Так и неустойчивый метод: крошечная ошибка округления на каждом шаге умножается на коэффициент больше единицы и через сотню шагов «съедает» решение. У устойчивого метода ошибка на каждом шаге умножается на число ≤ 1 и затухает.

Сходимость — стремление приближённого решения к точному при уменьшении шага (h → 0) или росте числа итераций. Порядок точности p: погрешность ~ O(hp).

Методы решения нелинейного уравнения 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).

Решим уравнение (то же, что в демо ниже):

f(x) = x³ − x − 2 = 0 f(1) = −2 < 0,  f(2) = 4 > 0  ⇒  корень на [1; 2]

Бисекция — делим отрезок пополам и смотрим на знак:

шагсередина cf(c)новый отрезок
11,5−0,125 < 0[1,5; 2]
21,75+1,61 > 0[1,5; 1,75]
31,625+0,67 > 0[1,5; 1,625]

Для точности 0,001 нужно ≈ 10 шагов (2¹⁰ = 1024).

Ньютон со стартом x₀ = 2:

xk+1 = xkf(xk)f′(xk),   f′(x) = 3x² − 1
kxkf(xk)верных цифр
0240
11,63640,7441
21,53050,0542
31,52150,00044

Число верных цифр на каждом шаге примерно удваивается — это и есть квадратичная сходимость: 4 шага против 10 у бисекции.

Простая итерация — всё решает выбор формы x = φ(x):

φ(x) = ∛(x+2):  |φ′| ≈ 0,15 < 1 сходится: 1 → 1,442 → 1,510 → 1,520 → … φ(x) = x³ − 2:  |φ′| ≈ 7 > 1 расходится

Метод хорд на том же уравнении x³ − x − 2 = 0, [a; b] = [1; 2]. Новое приближение — пересечение хорды с осью x:

c = a − f(a)·b − af(b) − f(a)
шагcf(c)новый отрезок
11 − (−2)·1/6 = 1,3333−0,963 < 0[1,3333; 2]
21,4626−0,333 < 0[1,4626; 2]
31,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(x) = x³ − x − 2 — все четыре метода на одной функции. Бисекция за шаг лишь делит отрезок пополам; хорды тянут секущую из неподвижного конца; метод секущих проводит её через две последние точки; Ньютон «прыгает» по касательной. Прогоните каждый и сравните счётчик шагов до одинаковой точности.
демоМетод простой итерации: «паутинная» диаграмма
Ступеньки: от x к кривой φ (получили новое приближение), от кривой к прямой y = x (сделали его аргументом), и снова. Если |φ′| < 1 в точке пересечения — «паутина» сматывается к корню; если |φ′| > 1 — та же процедура разматывается и убегает. Одно и то же уравнение — два поведения.

Сжимающее отображение и сходимость простой итерации

Сжимающее отображение — отображение φ, для которого существует q < 1 такое, что |φ(x₁) − φ(x₂)| ≤ q·|x₁ − x₂| для любых x₁, x₂ из области. Расстояние между образами всегда меньше расстояния между прообразами.

Классная иллюстрация: бросьте карту города на землю в этом самом городе. Ровно одна точка карты окажется точно над той точкой местности, которую изображает — потому что карта «сжимает» город. Отображение, которое всё сближает (в q < 1 раз), обязано иметь ровно одну неподвижную точку — и если раз за разом применять его к любой стартовой точке, попадёшь именно в неё. Это и есть метод простой итерации.

Теорема о сходимости: если φ — сжимающее отображение на отрезке и отображает отрезок в себя, то уравнение x = φ(x) имеет единственную неподвижную точку, и метод простой итерации сходится к ней из любого начального приближения. Практический признак: |φ′(x)| ≤ q < 1 в окрестности корня. Чем меньше q, тем быстрее сходимость; при |φ′| > 1 итерации расходятся. Оценка ошибки: |xk − x*| ≤ qk·|x₀ − x*| — геометрическая прогрессия со знаменателем q.

Прямые и итерационные методы решения СЛАУ

Прямые дают точное (без учёта округлений) решение за конечное число операций:

  • Метод Гаусса — прямой ход (приведение к треугольному виду исключением неизвестных) и обратный ход (последовательное вычисление xn, …, x₁). Трудоёмкость O(n³). Выбор главного элемента снижает влияние округлений.
  • LU-разложение — A = LU, решение двух треугольных систем; выгодно при многих правых частях.
  • Метод прогонки — вариант Гаусса для трёхдиагональных систем (возникают в разностных схемах), O(n) операций.

Метод Гаусса на системе 3×3 — полный прямой и обратный ход:

2x + y + z = 7;   x + 3y + z = 10;   x + y + 4z = 15
  1. Прямой ход. Исключаем x из 2-го и 3-го уравнений: из (2) вычитаем (1)·½, из (3) — (1)·½:
    2,5y + 0,5z = 6,5;   0,5y + 3,5z = 11,5
  2. Исключаем y из последнего: из него вычитаем предыдущее ·0,2:
    3,4z = 10,2  ⇒  система стала треугольной
  3. Обратный ход — снизу вверх:
    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,0001x + y = 1;   x + y = 2

Без перестановки ведущий элемент 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:

αi+1 = −cibi + aiαi,   βi+1 = di − aiβibi + aiαi прямая прогонка: вычисляем коэффициенты xn → xn−1 → … → x₁ обратная прогонка: восстанавливаем неизвестные

Всего ~8n операций вместо n³/3 у Гаусса: для сетки из 10⁶ узлов — мгновенно. Устойчива при диагональном преобладании |bi| ≥ |ai| + |ci|.

Итерационные строят последовательность приближений x(k) → x*:

  • Метод Якоби (простой итерации) — каждая компонента нового приближения считается по всем компонентам старого.
  • Метод Гаусса–Зейделя — при вычислении i-й компоненты сразу используются уже уточнённые первые i−1 компонент; обычно сходится быстрее.

Достаточное условие сходимости — диагональное преобладание: |aii| > Σj≠i |aij|. Итерационные методы выгодны для больших разреженных систем.

Система с диагональным преобладанием (10 > 1, 10 > 2):

10x + y = 122x + 10y = 13

Разрешаем каждое уравнение относительно «своей» переменной и стартуем с (0; 0):

x = 12 − y10,   y = 13 − 2x10
итерацияЯкоби (по старым)Зейдель (x сразу в ход)
1x = 1,2; y = 1,3x = 1,2; y = (13 − 2·1,2)/10 = 1,06
2x = 1,07; y = 1,06x = 1,094; y = 1,0812
3x = 1,094; y = 1,086≈ ответ
точноx* = 1,0737; y* = 1,0853

Зейдель «подхватывает» свежие значения — сходится быстрее. А поменяйте уравнения местами — преобладание исчезнет, и те же формулы разойдутся: порядок уравнений имеет значение.

Прямой метод — решить систему «на бумаге» раз и навсегда: подставил, исключил, получил ответ.

Итерационный — «пристрелка»: грубая догадка → подставили → догадка получше → снова, пока не сойдётся.

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

демоИтерации Зейделя: путь к пересечению прямых
Решение системы — точка пересечения двух прямых. Итерация Зейделя — «лесенка»: горизонтальный шаг на первую прямую (уточнили x), вертикальный на вторую (уточнили y). С диагональным преобладанием лесенка сходится к пересечению; поставьте галочку — уравнения поменяются ролями, преобладание пропадёт, и та же лесенка начнёт раскручиваться прочь.

Системы нелинейных уравнений

  • Метод простой итерации: xk+1 = Φ(xk); сходится, если норма матрицы Якоби Φ меньше 1 (многомерное сжимающее отображение).
  • Метод Ньютона: на каждом шаге решается СЛАУ J(xk)·Δx = −F(xk), где J — матрица Якоби; затем xk+1 = xk + Δx. Быстрый, но требует вычисления и обращения якобиана на каждом шаге.

Интерполяция табличной функции

Задача интерполяции: по таблице (xi, yi), i = 0…n, построить функцию (обычно полином степени n), которая точно проходит через все узлы: P(xi) = yi. Такой полином существует и единствен.
  • Полином Лагранжа: 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 и т.д.; первая формула Ньютона — интерполяция в начале таблицы, вторая — в конце.

Таблица из трёх точек: (0; 1), (1; 3), (2; 2). Ищем полином 2-й степени.

По Лагранжу — сумма «шапочек», каждая равна 1 в своём узле:

P(x) = 1·(x−1)(x−2)(0−1)(0−2) + 3·x(x−2)1·(1−2) + 2·x(x−1)2·1 P(x) = −1,5x² + 3,5x + 1 Проверка: P(1) = 3 ✓,  P(2) = 2 ✓

По Ньютону — через разделённые разности:

f(x₀,x₁) = 3−11−0 = 2,   f(x₁,x₂) = 2−32−1 = −1,   f(x₀,x₁,x₂) = −1−22−0 = −1,5 P(x) = 1 + 2(x−0) − 1,5(x−0)(x−1) = −1,5x² + 3,5x + 1

Полином один и тот же — он единствен. Но при добавлении четвёртой точки Лагранжа придётся пересчитывать целиком, а к форме Ньютона — дописать одно слагаемое.

Ньютон с конечными разностями (узлы равноотстоящие, h = 1): таблица x = 0, 1, 2; y = 1, 3, 2. Строим таблицу разностей:

xyΔyΔ²y
013−1 = 2−1−2 = −3
132−3 = −1
22

Первая интерполяционная формула Ньютона (q = (x − x₀)/h):

P(x) = y₀ + q·Δy₀ + q(q−1)2!·Δ²y₀ = 1 + 2q − 1,5·q(q−1) при h = 1 здесь q = x  ⇒  P(x) = −1,5x² + 3,5x + 1 — тот же полином

Первая формула точна в начале таблицы (интерполяция «вперёд»), вторая — в конце («назад»). На собеседовании достаточно объяснить: конечные разности — это «дискретные производные», а формула Ньютона — дискретный аналог ряда Тейлора.

Сплайн-интерполяция. Вместо одного полинома высокой степени промежуток разбивают на части и на каждой строят полином малой степени, сшивая куски гладко. Кубический сплайн — на каждом отрезке полином 3-й степени; в узлах непрерывны сама функция, первая и вторая производные. Это стандартный ответ на эффект Рунге: гладкая кривая без раскачки краёв. Именно так работают лекала чертёжника и кривые в CAD.

демоИнтерполяция Лагранжа
Полином (синий) точно проходит через все узлы таблицы (точки) — потяните любой узел и посмотрите, как изгибается вся кривая: интерполяция глобальна, одна точка меняет всё. При большом числе равноотстоящих узлов края «раскачиваются» — эффект Рунге, поэтому глобальную интерполяцию высокой степени избегают.

Аппроксимация. Метод наименьших квадратов

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

МНК: параметры функции φ(x, a₀…am) выбирают из минимума суммы квадратов отклонений

S = Σi ( φ(xi) − yi )² → min

Условия минимума ∂S/∂ak = 0 дают систему нормальных уравнений — линейную СЛАУ относительно коэффициентов. Для прямой φ = a + bx получается система 2×2:

a·n + b·Σxi = Σyi; a·Σxi + b·Σxi² = Σxiyi

Четыре измерения: (1; 2), (2; 3), (3; 5), (4; 6).

  1. Суммы: n = 4, Σx = 10, Σy = 16, Σx² = 30, Σxy = 47.
  2. Нормальная система:
    4a + 10b = 1610a + 30b = 47
  3. Решение: b = 1,4; a = 0,5.
y = 0,5 + 1,4x

Прямая не проходит ни через одну точку (φ(1) = 1,9 ≠ 2), но сумма квадратов отклонений у неё меньше, чем у любой другой прямой.

Почему именно квадраты:

  • квадрат убирает знак — «плюс» и «минус» отклонения не гасят друг друга;
  • большие промахи штрафуются сильнее;
  • производные от квадратов дают линейную систему — решается за один проход.
демоМНК: подгонка прямой к зашумлённым точкам
Прямая минимизирует сумму квадратов вертикальных отклонений (показаны пунктиром). В отличие от интерполяции, она не обязана проходить через точки. Утащите одну точку далеко вверх — прямая заметно накренится: квадрат отклонения делает МНК чувствительным к выбросам (поэтому в анализе данных выбросы отсеивают до подгонки).
демоИнтерполяция против аппроксимации на зашумлённых данных
Серые точки — измерения с шумом, пунктир — истинная зависимость. Интерполяционный полином (красный) послушно проходит через каждую точку — и вместе с ними «выучивает» весь шум, дико осциллируя. Полином МНК малой степени (синий) ловит суть. Двигайте степень: при её росте синяя кривая тоже начинает гнаться за шумом — это то самое переобучение из машинного обучения. Точки можно тянуть по вертикали — устройте выброс и сравните, как на него реагируют интерполяция и МНК разных степеней.

Численное интегрирование и дифференцирование

Интеграл заменяют квадратурной суммой по значениям функции в узлах на сетке с шагом h:

  • Прямоугольников (левых/правых/средних) — точность O(h) для левых/правых, O(h²) для средних;
  • Трапеций — площадь трапеций между узлами, точность O(h²);
  • Симпсона (парабол) — участок из пары шагов заменяется параболой, точность O(h⁴), число шагов чётное.

Практическая оценка точности — правило Рунге: считают с шагами h и h/2 и сравнивают результаты.

демоКвадратурные формулы в действии
Интеграл ∫₀³ (sin x + 1,2) dx. Смотрите на ошибку в подписи: при удвоении n у прямоугольников она падает вдвое, у трапеций — вчетверо, у Симпсона — в 16 раз (порядки O(h), O(h²), O(h⁴)).

Посчитаем ∫₀¹ x² dx (точное значение 1/3 ≈ 0,3333) с двумя шагами h = 0,5. Значения: f(0) = 0; f(0,5) = 0,25; f(1) = 1.

Трапеции:  h·(f₀2 + f₁ + f₂2) = 0,5·(0 + 0,25 + 0,5) = 0,375 ошибка 0,042 Симпсон:  h3·(f₀ + 4f₁ + f₂) = 0,53·(0 + 1 + 1) = 0,3333 точно!

Парабола через три точки параболы совпадает с ней: Симпсон точен для всех полиномов до 3-й степени включительно.

Правило Рунге на практике. Считали трапециями: с шагом h получили Ih = 0,375, с шагом h/2 — Ih/2 = 0,3438. Оценка ошибки мелкого результата:

R ≈ Ih/2 − Ih2p − 1 = 0,3438 − 0,3752² − 1 = −0,0104 p — порядок метода, у трапеций p = 2 уточнённое значение: 0,3438 − 0,0104 = 0,3334 ≈ 1/3 ✓

Так оценивают точность, когда точный ответ неизвестен, — и заодно уточняют результат (экстраполяция Ричардсона).

Другие квадратурные формулы (семейство Ньютона–Котеса и не только):

  • Правило 3/8 — кубическая парабола по трём шагам: (3h/8)·(f₀ + 3f₁ + 3f₂ + f₃); тот же порядок O(h⁴), что у Симпсона, применяется, когда число шагов кратно трём.
  • Квадратуры Гаусса — узлы не равноотстоящие, а выбираются оптимально (корни полиномов Лежандра): n узлов дают точность для полиномов степени 2n−1 — вдвое «умнее» Ньютона–Котеса.

Гаусс с двумя узлами на [−1; 1]: узлы x = ±1/√3 ≈ ±0,5774, веса равны 1.

−11 x² dx = f(−0,5774) + f(0,5774) = 0,3333 + 0,3333 = 0,6667 = 23 точно!

Всего два вычисления функции — а результат точен для любого полинома до 3-й степени. Симпсону для этого нужно три узла. Цена: для произвольного отрезка [a; b] нужна замена переменной, а узлы — иррациональные числа из таблиц.

Метод Монте-Карло

Метод статистических испытаний (Монте-Карло) — вычисление интеграла случайными точками: бросаем N точек равномерно в прямоугольник, накрывающий график; доля точек, попавших под кривую, умноженная на площадь прямоугольника, оценивает интеграл. Точность растёт как 1/√N — медленно (для лишнего знака нужно в 100 раз больше точек), зато скорость не зависит от размерности: для 100-мерного интеграла (частая ситуация в статистике и машинном обучении) сеточные методы бессильны, а Монте-Карло работает так же.

демоМонте-Карло: интеграл случайными бросками
Тот же интеграл ∫₀³ (sin x + 1,2) dx ≈ 5,59, что и в демо квадратур. Точки под кривой — синие, над — серые. Следите за оценкой: первые сотни точек дают грубый ответ, дальше уточнение всё медленнее — это и есть сходимость 1/√N. Сравните с Симпсоном, которому хватило десятка узлов.

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

Дифференцирование — заменой производной разностными отношениями: правая/левая разность (yi+1−yi)/h — O(h), центральная (yi+1−yi−1)/2h — O(h²), вторая производная (yi+1−2yi+yi−1)/h² — O(h²). Операция некорректна к шуму: при уменьшении h ошибки данных усиливаются.

Почему дифференцирование «боится» шума, а интегрирование нет: интеграл — это сумма, случайные ошибки точек в ней усредняются и гасятся. Производная — это разность соседних значений, делённая на маленькое h: сами значения почти равны, их разность — почти целиком шум, да ещё и делим на малое число, раздувая его. Поэтому экспериментальные данные перед дифференцированием сглаживают (например, МНК).

Задача Коши. Методы Эйлера и Рунге–Кутта

Задача Коши: найти y(x), удовлетворяющую ОДУ y′ = f(x, y) и начальному условию y(x₀) = y₀. Численно строится таблица значений yi на сетке xi = x₀ + ih.
  • Метод Эйлера: yi+1 = yi + h·f(xi, yi) — движение по касательной. Первый порядок точности O(h), ошибка быстро накапливается.
  • Модифицированный Эйлер (Эйлера–Коши) — с пересчётом по среднему наклону, O(h²).
  • Рунге–Кутта 4-го порядка: наклон усредняется по четырём пробным вычислениям f внутри шага. Точность O(h⁴) — стандарт де-факто:
k₁ = f(xi, yi),  k₂ = f(xi+h2, yi+h·k₁2),  k₃ = f(xi+h2, yi+h·k₂2),  k₄ = f(xi+h, yi+h·k₃) yi+1 = yi + h6·(k₁ + 2k₂ + 2k₃ + k₄)

Задача Коши — это «предскажи траекторию»: уравнение говорит, куда наклонена кривая в каждой точке (поле направлений), а начальное условие — откуда стартуем. Эйлер идёт «на глаз»: посмотрел наклон под ногами и шагнул по прямой — на кривой траектории каждый шаг чуть промахивается. Рунге–Кутта перед шагом «разведывает» наклон ещё в трёх точках впереди и шагает по взвешенному среднему — потому и попадает почти идеально.

y′ = y, y(0) = 1, точное решение y = eˣ, e ≈ 2,71828. Шаг h = 0,5, идём до x = 1.

xЭйлерРК4Точное
0111
0,51 + 0,5·1 = 1,51,64841,6487
1,01,5 + 0,5·1,5 = 2,252,71732,7183

Эйлер промахнулся на 0,47 (17%), РК4 — на 0,001 (0,04%) при том же числе шагов. Чтобы Эйлер догнал РК4 по точности, шаг пришлось бы уменьшить в сотни раз.

Модифицированный Эйлер (Эйлера–Коши) на той же задаче y′ = y, y(0) = 1, h = 0,5 — схема «прогноз–коррекция»:

  1. Прогноз обычным Эйлером: ỹ = y₀ + h·f(x₀, y₀) = 1 + 0,5·1 = 1,5.
  2. Коррекция по среднему наклону в начале и в конце шага:
    y₁ = y₀ + h2·( f(x₀, y₀) + f(x₁, ỹ) ) = 1 + 0,25·(1 + 1,5) = 1,625
  3. Второй шаг тем же порядком: ỹ = 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′ = −5y, y(0)=1 — быстрое затухание (точное решение e⁻⁵ˣ — пунктиром). На малом шаге все три метода идут по точной кривой. Увеличивайте h: сначала Эйлер начинает «пилить» — множитель шага 1−5h становится отрицательным и решение прыгает через ноль, — а при h > 0,4 и вовсе разносится, хотя настоящая функция мирно убывает. Эйлер–Коши держится дольше, РК4 остаётся на точной кривой почти до конца шкалы. Это и есть устойчивость метода: шаг ограничен не точностью, а самой схемой.

Вопросы к собеседованию

Сначала ответьте вслух, потом раскройте эталонный ответ. Отмечайте результат — счётчик темы в меню слева покажет прогресс.

Какие виды погрешностей возникают при численном решении задачи?

Три вида: неустранимая (погрешность исходных данных и модели), погрешность метода (замена точной задачи приближённой — конечный шаг, обрыв ряда) и вычислительная (округления из-за конечной разрядности ЭВМ). Управлять можно погрешностью метода (выбор метода и шага) и отчасти вычислительной (порядок операций, разрядность).

Что такое устойчивость численного метода и чем она отличается от сходимости?

Устойчивость — малые возмущения входных данных и ошибки округления не приводят к неограниченному росту ошибки в процессе счёта. Сходимость — приближённое решение стремится к точному при 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

Математическое моделирование

Модели и их свойства, аналогии подсистем, способы формирования моделей, краевые задачи: МКР и МКЭ.

Основные понятия

Математическая модель (ММ) — совокупность математических объектов (уравнений, неравенств, функций, логических условий) и связей между ними, отражающая существенные для решаемой задачи свойства объекта.
Математическое моделирование — процесс построения модели и её исследования вместо экспериментов над реальным объектом (объект дорог, опасен, недоступен или ещё не существует — проектирование).

Назначение моделей: анализ и прогноз поведения объекта, проектирование и оптимизация, управление, обучение.

Классификация ММ

Признак классификацииВиды моделей
По характеру отображаемых свойствструктурные — состав и связи · функциональные — процессы функционирования
По принадлежности к иерархическому уровнюмикроуровень — распределённые параметры, УрЧП · макроуровень — сосредоточенные параметры, ОДУ · метауровень — укрупнённые описания систем
По учёту случайностидетерминированные · стохастические
По изменению во временистатические · динамические
По виду зависимостейлинейные · нелинейные

Свойства моделей и способы получения

  • Точность — степень совпадения расчётных значений выходных параметров с истинными.
  • Адекватность — способность отражать заданные свойства объекта с погрешностью не выше заданной. Область адекватности — область в пространстве внешних параметров, где погрешность модели остаётся в допустимых пределах.
  • Экономичность — затраты вычислительных ресурсов (память, время) на реализацию модели.
Макромодель — упрощённая модель объекта с сосредоточенными параметрами, отражающая его поведение «снаружи» (на выводах) без детализации внутренних распределённых процессов; используется для экономичного моделирования систем из многих компонентов.

Точность, адекватность, экономичность — три стороны одного компромисса: точнее модель — дороже расчёт.

Область адекватности — «паспорт» модели. Закон Ома верен для резистора при обычных токах, но перегрейте резистор — и линейная модель начнёт врать: вы вышли из области адекватности.

Макромодель — взгляд «снаружи»: для схемы из 1000 транзисторов не моделируют физику каждого p-n-перехода — достаточно того, как транзистор ведёт себя на выводах. Микросхема целиком — «чёрный ящик с известными реакциями».

Один объект — модели трёх уровней. Нагрев стержня в печи:

  • микроуровень — температура в каждой точке, уравнение в частных производных:
    ∂T∂t = a·∂²T∂x²
  • макроуровень — стержень как одно «тепловое тело», одно ОДУ для средней температуры:
    dTdt = Φподв − Φотв
  • метауровень — печь целиком как звено с передаточной функцией в контуре управления цехом.

Чем выше уровень — тем экономичнее модель и уже круг вопросов, на которые она отвечает.

Способы получения моделей:

  • аналитический (теоретический) — из фундаментальных законов (сохранения массы, энергии, импульса, законов Кирхгофа, Ньютона): широкая область адекватности, но требует знания физики процессов;
  • экспериментальный (формальный) — обработкой опытных данных (регрессия, МНК, планирование эксперимента): модель «чёрного ящика», работает только в области эксперимента;
  • экспериментально-аналитический — структура из теории, коэффициенты из эксперимента (модель «серого ящика»).

Аналогии между подсистемами. Топологические и компонентные уравнения

Однородные физические подсистемы описываются одинаковыми по форме уравнениями через пары переменных: фазовую переменную типа потока и типа потенциала.

Мостик между темами 1.1 и 1.2 — идентификация. Экспериментальный метод на практике сводится к МНК из темы 1.1: структура модели постулируется (скажем, Q = k·ΔT — теплопередача), а параметр k подбирается минимизацией суммы квадратов расхождений с опытами. Если спросят «как получить модель по эксперименту» — отвечайте цепочкой: план эксперимента → выбор структуры → МНК-оценка параметров → проверка адекватности на контрольных точках (области адекватности).

ПодсистемаПотокПотенциалАналог RАналог CАналог L
Электрическаяток Iнапряжение Uсопротивлениеёмкостьиндуктивность
Механическая (поступат.)сила Fскорость vтрениемассаподатливость
Гидро/пневматическаярасход Qдавление pгидросопротивлениегидроёмкостьинерционность столба
Тепловаятепловой поток Φтемпература Tтермосопротивлениетеплоёмкость
Массообменнаяпоток массыконцентрациядиффуз. сопротивлениеёмкость по массе
Химико-технологическаяпоток вещества (реакции)химический потенциалкинетическое сопротивлениеёмкость реактора
  • Компонентные уравнения описывают отдельные элементы (связь тока и напряжения резистора, силы и скорости демпфера).
  • Топологические уравнения описывают соединение элементов и следуют из структуры системы — аналоги законов Кирхгофа: сумма потоков в узле равна нулю, сумма потенциалов по контуру равна нулю.

Благодаря аналогиям любую однородную подсистему можно представить эквивалентной схемой из R-, C-, L-элементов и источников, а моделировать единым программным аппаратом.

Заряд конденсатора через резистор и нагрев детали в печи — одно и то же уравнение:

RC·dUdt + U = E RтCт·dTdt + T = Tпечи

Соответствие величин:

  • напряжение U ↔ температура T;
  • ЭДС E ↔ температура печи;
  • сопротивление R ↔ термосопротивление стенки;
  • ёмкость C ↔ теплоёмкость детали.

Оба процесса — экспонента с постоянной времени τ = RC (за время τ проходит 63% пути). Теплотехник может считать печь в симуляторе электрических схем — прямое следствие одинаковой формы компонентных и топологических уравнений.

Топологические уравнения — «закон перекрёстка»: сколько потока втекает в узел, столько и вытекает (вода в тройнике труб, ток в узле схемы, тепловой поток в стыке). Компонентные — «характер элемента»: как конкретный элемент связывает поток и потенциал на себе. Модель системы = характер всех элементов + правила их соединения.

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

Узловой метод руками — эквивалентная схема: источник E = 12 В, последовательно R₁ = 2 Ом, затем узел φ, с которого R₂ = 4 Ом уходит на «землю».

E + R₁ = 2 узел φ R₂ = 4 земля (φ = 0)
  1. Обобщённый метод потребовал бы 4 уравнения: два компонентных (закон Ома для R₁, R₂) и два топологических (Кирхгоф по токам и напряжениям) — 4 неизвестных (два тока, два напряжения).
  2. Узловой метод — одно уравнение баланса токов в единственном узле:
    E − φR₁ = φ − 0R₂  ⇒  12 − φ2 = φ4  ⇒  φ = 8 В
  3. Токи восстанавливаются подстановкой: I = (12−8)/2 = 2 А. Одна неизвестная вместо четырёх.

В схеме на тысячи элементов выигрыш решает всё: узлов в разы меньше, чем ветвей, а матрица узловых уравнений разреженная. Благодаря аналогиям подсистем тот же метод собирает модели гидравлических сетей и тепловых схем: «узел» — точка соединения, «баланс токов» — баланс расходов или тепловых потоков.

Методы решения краевых задач

Краевая задача — уравнение (обычно в частных производных) плюс условия на границах области (и начальные условия для нестационарных задач).

Метод конечных разностей (МКР)

  • Область покрывается сеткой; производные заменяются разностными отношениями; УрЧП превращается в систему алгебраических уравнений относительно значений в узлах.
  • Погрешность аппроксимации — невязка от замены производных разностями, оценивается разложением в ряд Тейлора: O(h), O(h²)…
  • Явная схема: значение на новом временном слое выражается непосредственно через известные значения старого слоя. Проста, но условно устойчива — шаг по времени ограничен (например, для уравнения теплопроводности Δt ≤ h²/2a).
  • Неявная схема: в уравнение входят несколько неизвестных нового слоя — на каждом шаге решается СЛАУ (для одномерной задачи — прогонкой). Безусловно устойчива, шаг ограничен только точностью.
  • Устойчивость разностной схемы — ошибки, внесённые на одном слое, не нарастают при переходе к следующим. Сходимость = аппроксимация + устойчивость.

МКР для краевой задачи — стационарный прогиб/нагрев: y″ = −2, y(0) = 0, y(1) = 0. Сетка из 5 узлов, h = 0,25, неизвестны y₁, y₂, y₃.

  1. Заменяем y″ центральной разностью в каждом внутреннем узле:
    yi−1 − 2yi + yi+1 = −2  ⇒  yi−1 − 2yi + yi+1 = −0,125
  2. Три уравнения (y₀ = y₄ = 0 известны из краевых условий):
    −2y₁ + y₂ = −0,125;  y₁ − 2y₂ + y₃ = −0,125;  y₂ − 2y₃ = −0,125
  3. Система трёхдиагональная — решаем прогонкой: y₁ = y₃ = 0,1875; y₂ = 0,25.

Точное решение y = x(1 − x) в узлах даёт 0,1875 и 0,25 — схема со вторым порядком здесь попала точно. Так дифференциальная задача превратилась в СЛАУ — это и есть суть МКР; в нестационарном случае такая СЛАУ решается на каждом шаге по времени.

Остывание стержня: уравнение теплопроводности, a = 1, сетка по длине с шагом h = 0,1.

Явная схема — новая температура узла из трёх старых:

Tik+1 = Tik + Δt·(Ti+1k − 2Tik + Ti−1k)
  • это простой цикл по узлам — никакой алгебры;
  • но условие устойчивости: Δt ≤ h²/2a = 0,005 — на 1 секунду процесса нужно 200 слоёв;
  • возьмёте Δt = 0,006 — решение «запилит» с растущей амплитудой и развалится (проверьте в демо ниже).

Неявная схема — те же соседи, но с нового слоя:

  • на каждом слое решается трёхдиагональная СЛАУ прогонкой;
  • зато Δt хоть 0,1 — устойчивость безусловная, шаг диктуется только точностью.
демоТеплопроводность: явная и неявная схемы
Стержень с горячим пятном остывает. У явной схемы при r = Δt/h² > 0,5 появляется нарастающая «пила» — потеря устойчивости. Переключите на неявную: тот же r > 0,5, но профиль гладко расплывается — прогонка на каждом слое, устойчивость безусловная. Это ровно то сравнение, что в тексте выше.

Явная схема — «каждый узел решает сам за себя по вчерашним данным соседей»: быстро, но если шагнуть по времени слишком широко, информация не успевает физически «дойти» от соседей — и схема идёт вразнос. Неявная — «все узлы нового слоя договариваются одновременно» (решается общая система): дороже за шаг, но никакой шаг её не разваливает.

Явная схема Неявная схема t+Δtt t+Δtt известный слой → одна неизвестная точка на новом слое несколько неизвестных → СЛАУ (прогонка)
Шаблоны схем для уравнения теплопроводности: закрашенные узлы известны, контурные — неизвестные нового слоя.

Метод конечных элементов (МКЭ)

  • Область разбивается на конечные элементы произвольной формы (треугольники, тетраэдры); решение внутри элемента приближается простыми базисными функциями (обычно полиномами).
  • Коэффициенты находятся из минимизации функционала (вариационная постановка) или метода взвешенных невязок (Галёркина); собирается глобальная СЛАУ с разреженной матрицей.
  • Преимущества перед МКР: естественно описывает сложную геометрию и граничные условия, легко сгущает сетку локально.

МКР накладывает на деталь «клетчатую тетрадь»: у круглого отверстия или косой кромки клетки лягут криво.

МКЭ режет деталь на треугольники, как мозаику: они облегают любую форму, а где поле меняется быстро — у отверстия, у кромки — мозаику делают мельче.

Внутри каждого кусочка решение простое (линейный или квадратичный полином); «сшивание» кусочков даёт большую разреженную СЛАУ. Так работают 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

Оптимизация

Постановка задач, одномерные и многомерные методы, нелинейное программирование, вариационное исчисление.

Постановка задачи и классификация

Задача оптимизации: найти вектор параметров x ∈ D, доставляющий экстремум критерию оптимальности F(x) при ограничениях, задающих допустимую область D.

Критерии оптимальности:

  • частный — один главный показатель, остальные переводятся в ограничения;
  • аддитивный — взвешенная сумма частных критериев 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‖ < ε.

Одномерная оптимизация

Условия оптимальности: необходимое — F′(x*) = 0; достаточное — F″(x*) > 0 (минимум). Численные методы сужают интервал неопределённости, где лежит минимум унимодальной функции:

  • половинного деления — две пробные точки около середины, отбрасывание части интервала;
  • «золотого» сечения — пробные точки делят интервал в отношении золотого сечения (τ ≈ 0,618), одна из точек переиспользуется на следующем шаге: одно вычисление функции за итерацию, сжатие в 0,618 раза;
  • Фибоначчи — точки по числам Фибоначчи; при заданном числе вычислений даёт минимальный интервал (оптимальный пассивно-последовательный план).

Сколько шагов нужно золотому сечению? Каждый шаг умножает интервал на 0,618. Старт [0; 1], нужна точность 0,01:

0,618k < 0,01  ⇒  k = ln 0,01ln 0,618 ≈ 9,6  ⇒  10 шагов
  • золотое сечение: 10 шагов = 11 вычислений функции (первый шаг — два, дальше по одному: вторая точка «наследуется»);
  • дихотомия: ~7 шагов, но по два вычисления = 14 вычислений.

Когда одно вычисление функции — запуск тяжёлой модели на минуты, экономия каждого вызова важнее числа шагов.

Все три метода играют в «горячо–холодно» на интервале, где минимум один (унимодальность). Ставим внутри две пробные точки: где функция меньше — там «горячо», противоположный конец интервала отрезаем. Хитрость золотого сечения в том, что после отрезания одна из старых точек оказывается ровно на «правильном» месте нового интервала — её не нужно пересчитывать.

Дихотомия (половинное деление) на F(x) = (x − 0,6)², [0; 1], отступ δ = 0,02. Две пробные точки симметрично у середины: x₁ = 0,48, x₂ = 0,52.

шагx₁, x₂сравнениеновый интервал
10,48; 0,52F(0,48) = 0,0144 > F(0,52) = 0,0064[0,48; 1]
20,73; 0,77F(0,73) < F(0,77)[0,48; 0,77]
30,615; 0,655F(0,615) < F(0,655)[0,48; 0,655]

Минимум там, где F меньше, — противоположный конец отбрасываем. За шаг интервал сужается почти вдвое, но ценой двух вычислений F.

Фибоначчи: пробные точки ставятся по отношениям чисел Фибоначчи 1, 1, 2, 3, 5, 8, 13… Если разрешено N вычислений функции, конечный интервал равен исходному, делённому на FN — доказуемо лучший результат среди всех планов поиска. Например, за 10 вычислений интервал сжимается в F₁₀ = 89 раз (у золотого сечения — в 1/0,618⁹ ≈ 76 раз). Отличие от золотого сечения: нужно заранее знать число вычислений.

Метод Ньютона для оптимизации — это метод касательных, применённый к уравнению F′(x) = 0:

xk+1 = xkF′(xk)F″(xk) квадратичная сходимость, нужны две производные

Сходится за считанные шаги вблизи минимума, но требует унимодальности не спасает: при F″ < 0 шагнёт к максимуму. Методы интервалов (дихотомия, золотое сечение, Фибоначчи) медленнее, зато не требуют производных и гарантированно работают на любой унимодальной функции.

демоОдномерный поиск: три метода сужения интервала
Худшая по значению функции граница отбрасывается на каждом шаге. Следите за счётчиком вычислений f: дихотомия тратит по два вычисления на шаг, золотое сечение и Фибоначчи после первого шага переиспользуют одну из прошлых точек — по одному вычислению. У Фибоначчи план конечен (12 вычислений) — итоговый интервал при этом минимально возможный.

Многомерная оптимизация

Условия: необходимое — ∇F(x*) = 0; достаточное — матрица Гессе положительно определена (минимум).

  • Методы нулевого порядка (только значения F): покоординатный спуск (Гаусса–Зейделя) — поочерёдная одномерная минимизация по каждой координате; метод Пауэлла — покоординатный спуск с построением сопряжённых направлений; симплексный метод (Нелдера–Мида) — деформируемый многогранник: отражение, растяжение, сжатие худшей вершины.
  • Методы первого порядка: градиентный — шаг против градиента xk+1 = xk − λ∇F; наискорейшего спуска — λ на каждом шаге из одномерной минимизации вдоль антиградиента (траектория из взаимно перпендикулярных шагов); сопряжённых градиентов — направления корректируются с учётом предыдущих, квадратичную функцию n переменных минимизирует за n шагов.
  • Метод «оврагов» — для функций с вытянутыми «оврагами», где градиентные методы «пилят» поперёк оврага: из двух близких точек спускаются на дно, затем делают большой шаг вдоль дна оврага.

Методы нулевого порядка — поиск с завязанными глазами, только «щупаем» высоту в точках; первого порядка — у нас есть компас, показывающий, куда круче всего вниз (антиградиент). Овраг — длинная узкая долина: компас почти всегда показывает на ближайший склон, а не вдоль долины, поэтому спуск «пилит» поперёк. Сопряжённые градиенты запоминают, куда уже ходили, и правят направление — как лыжник, срезающий серпантин.

Градиентный спуск руками: F(x, y) = x² + 4y², старт (2; 1), постоянный шаг λ = 0,1. Градиент ∇F = (2x; 8y).

kточка∇Fновая точка x − λ∇FF
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⁻¹ накапливается по разностям градиентов соседних шагов, вторые производные не вычисляются вовсе.

демоСимплекс Нелдера–Мида: деформируемый треугольник
Метод нулевого порядка: треугольник из трёх пробных точек «переворачивается» через худшую вершину (отражение), при удаче вытягивается (растяжение), при неудаче поджимается (сжатие) — и стекает в минимум, не зная никаких производных.
демоГрадиентный спуск на линиях уровня
кликните по полю — старт спуска
Линии уровня «оврага» — функция вытянута в 16 раз. Постоянный шаг зигзагит поперёк оврага десятки шагов; наискорейший спуск идёт зигзагом из взаимно перпендикулярных отрезков — на вытянутых оврагах градиентные методы сходятся медленно, это мотивация сопряжённых градиентов и метода «оврагов». Покоординатный спуск на овраге вдоль оси попадает в минимум за два шага, но сдвиньте поворот на 45° — и он семенит сотнями шажков: оси больше не совпадают с осями оврага. Переключитесь на долину Розенброка (1−x)² + 100(y−x²)² — классический «банан» для испытания методов: овраг здесь изогнут, и даже наискорейший спуск вынужден красться вдоль дна долины к минимуму (1; 1).

Нелинейное программирование

Ограничения-равенства — метод множителей Лагранжа: строится функция L(x, λ) = F(x) + Σ λjgj(x); необходимые условия — равенство нулю всех частных производных L по x и по λ. Множитель λj показывает чувствительность оптимума к ослаблению j-го ограничения.

Найти минимум F = x² + y² при условии x + y = 1 — ближайшую к началу координат точку прямой.

  1. Функция Лагранжа:
    L = x² + y² + λ(x + y − 1)
  2. Необходимые условия — все частные производные в нуль:
    ∂L∂x = 2x + λ = 0,  ∂L∂y = 2y + λ = 0,  ∂L∂λ = x + y − 1 = 0
  3. Из первых двух: 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 (либо ограничение активно, либо его множитель нулевой).

  1. L = (x−2)² + λ(3 − x); условие стационарности: 2(x−2) − λ = 0.
  2. Случай λ = 0 (ограничение неактивно): x = 2, но 2 < 3 — недопустимо. Отбрасываем.
  3. Случай g = 0 (решение на границе): x = 3, тогда λ = 2(3−2) = 2 ≥ 0 ✓ — все условия выполнены.

Ответ: x* = 3, λ* = 2. Смысл λ = 2: сдвинь границу с 3 до 2,9 — оптимум улучшится примерно на 2·0,1 = 0,2. Множитель — «цена» ограничения, как и у Лагранжа для равенств.

Численные методы НЛП:

  • прямые — работают в допустимой области: прямой поиск с возвратом (нарушили ограничение — вернулись и уменьшили шаг), метод проекции градиента (шаг проецируется на границу допустимой области);
  • методы штрафных функций — сводят условную задачу к последовательности безусловных: внешний штраф прибавляет к F большую «плату» за нарушение ограничений (приближение к решению снаружи), внутренний (барьерный) — барьер, растущий при подходе к границе изнутри (точки всегда допустимы); комбинированный метод — внутренний штраф для неравенств и внешний для равенств одновременно.
демоШтрафные функции: как ограничение «встраивается» в критерий
Задача: min F(x) = (x−2)² при ограничении x ≥ 3 (допустимая область справа от пунктира). Серая линия — F, синяя — вспомогательная функция со штрафом, точка — её минимум. Увеличивайте M: у внешнего штрафа минимум подползает к границе снаружи, у барьерного — прижимается к ней изнутри.

Задача: min (x−2)² при x ≥ 3. Безусловный минимум x = 2 лежит вне допустимой области — значит, решение на границе: x* = 3.

Внешний штраф — платим за нарушение:

Φ(x) = (x−2)² + M·[max(0, 3−x)]² минимум:  xM = 2 + 3M1 + M
  • M = 1 → x = 2,5; M = 10 → x = 2,91; M = 100 → x = 2,99;
  • минимумы подходят к границе снаружи — промежуточные точки недопустимы.

Барьер (внутренний штраф) — стена перед границей:

Φ(x) = (x−2)² + 1M·1x−3,   x > 3
  • определён только внутри допустимой области;
  • с ростом M минимум прижимается к 3 изнутри — все приближения допустимы;
  • это важно, когда нарушать нельзя физически (отрицательное давление, отрицательная концентрация).

Вариационное исчисление

Функционал — отображение, ставящее каждой функции из некоторого класса число, например J[y] = ∫ab F(x, y, y′) dx. Вариация δy — «приращение» аргумента-функции; вариация функционала δJ — главная линейная часть его приращения (аналог дифференциала).

Обычная функция ест число и выдаёт число. Функционал ест целую кривую и выдаёт число: длину этой кривой, время спуска по ней, энергию. Вариационная задача — «из всех кривых между двумя точками найди ту, у которой число минимально». Вариация δy — это «пошевелить кривую чуть-чуть»: если кривая действительно наилучшая, любое малое шевеление не должно улучшать функционал (δJ = 0) — точный аналог «производная равна нулю» для функций.

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

демоБрахистохрона: по какой горке шарик скатится быстрее?
Четыре желоба между одними точками: прямая (кратчайший путь), циклоида (решение вариационной задачи), крутая дуга — и ваша горка (зелёная): тащите её три контрольные точки и попробуйте обогнать циклоиду. Не выйдет — она доказуемо оптимальна; но чем ближе ваша кривая к циклоиде, тем меньше отставание. Поднимете точку выше старта — шарику не хватит энергии, и он застрянет. Кратчайший путь ≠ быстрейший — в этом суть вариационных задач.

Простейшая задача: минимизировать J[y] при закреплённых концах y(a), y(b). Необходимое условие экстремума — уравнение Эйлера:

Fyd/dx Fy′ = 0

Какая кривая между двумя точками — кратчайшая? Длина кривой — функционал:

J[y] = ∫ √(1 + y′²) dx
  1. F = √(1+y′²) не зависит от y ⇒ Fy = 0 — частный случай интегрируемости;
  2. уравнение Эйлера сводится к
    ddx Fy′ = 0  ⇒  y′√(1+y′²) = C
  3. отсюда 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.

Численные методы: уравнение Эйлера — краевая задача для ОДУ, решается методом пристрелки (подбор недостающего начального условия так, чтобы попасть в правое краевое) или прогонкой (для линейных задач). Прямые методы минимизируют сам функционал: метод Ритца — решение ищется как комбинация базисных функций y ≈ Σ aiφi(x), задача сводится к минимизации функции коэффициентов; метод Канторовича — обобщение для функционалов от функций многих переменных (коэффициенты — функции); конечно-разностный метод Эйлера — интеграл заменяется суммой по сетке, функционал становится функцией узловых значений.

Условный экстремум: связи бывают голономные (φ(x, y₁, y₂, …) = 0 — без производных), неголономные (дифференциальные, с y′), изопериметрические (∫G dx = const — заданная «длина»). Необходимые условия строятся методом множителей Лагранжа: вспомогательный функционал с λ(x) (для изопериметрических λ — константа), для него записывается уравнение Эйлера.

Вопросы к собеседованию

Назовите виды критериев оптимальности при многокритериальной постановке.

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

Как классифицируются задачи оптимизации?

По наличию ограничений — безусловные и условные; по размерности — одномерные и многомерные; по виду функций — линейное программирование (всё линейно), нелинейное, целочисленное (переменные дискретны); отдельно — задачи оптимального управления, где ищется функция времени, а критерий — функционал.

Что такое порядок метода оптимизации? Приведите примеры методов разных порядков.

Порядок — старший порядок производных критерия, используемых методом. Нулевой порядок: покоординатный спуск, Пауэлла, симплексный Нелдера–Мида (только значения F). Первый: градиентный, наискорейшего спуска, сопряжённых градиентов. Второй: метод Ньютона (гессиан).

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

Одномерно: необходимое F′(x*) = 0; достаточное F″(x*) > 0. Многомерно: необходимое ∇F(x*) = 0; достаточное — положительная определённость матрицы Гессе (вторых производных) в стационарной точке. При отрицательной определённости — максимум, при знакопеременности — седловая точка.

Сравните методы половинного деления, золотого сечения и Фибоначчи.

Все сужают интервал неопределённости унимодальной функции. Дихотомия ставит две точки у середины — два вычисления 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* (условия Куна–Таккера) — основа теории двойственности.

Сравните внешние и внутренние штрафные функции.

Внешний штраф прибавляет к критерию слагаемое, большое при нарушении ограничений и нулевое внутри допустимой области; минимумы вспомогательных задач приближаются к решению снаружи. Внутренний (барьерный) — слагаемое, неограниченно растущее при приближении к границе изнутри; все приближения допустимы, но нужен допустимый старт. Комбинированный метод: внутренний штраф для неравенств + внешний для равенств.

Что такое функционал и вариация функционала?

Функционал — правило, ставящее каждой функции из заданного класса число (например, 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

Искусственный интеллект

Экспертные системы, представление знаний, нечёткие знания, модели поиска решений — по методичкам Коробовой и Обухова.

Подходы к искусственному интеллекту

Причина появления ИИ — потребность решать неформализованные задачи: без строгого алгоритма, с неполными и нечёткими данными, где решение строится на знаниях экспертов. Два исторических подхода:

  • нисходящий (символьный) — моделирование рассуждений: представление знаний, логический вывод, экспертные системы;
  • восходящий (нейросетевой) — моделирование биологических структур: нейронные сети, обучение на примерах.

Экспертные системы

Экспертная система (ЭС) — программа, аккумулирующая знания специалистов в конкретной предметной области и способная решать задачи на уровне эксперта, объясняя ход своих рассуждений.
Пользователь(интерфейс) Системаобъяснений Механизмлогич. вывода Модуль извлечениязнаний База знанийфакты + правила Рабочая память(база данных) Эксперт,инженер знаний пополнение БЗ
Состав ЭС: база знаний, механизм логического вывода, модуль извлечения знаний, система объяснений, интерфейс пользователя.
  • База знаний — формализованные знания предметной области: факты и правила.
  • Механизм логического вывода — применяет правила к фактам, строит цепочку рассуждений.
  • Модуль извлечения (приобретения) знаний — пополнение БЗ инженером знаний в диалоге с экспертом.
  • Система объяснений — отвечает «почему получен такой вывод» перечнем сработавших правил (доверие пользователя, отладка БЗ).

Методология разработки ЭС (этапы): идентификация задачи → концептуализация (выделение понятий и связей) → формализация (выбор модели представления знаний) → выполнение (наполнение БЗ) → тестирование → опытная эксплуатация. Разработка ведётся быстрым прототипом с постепенным расширением: демонстрационный → исследовательский → действующий → промышленный → коммерческий уровень. Трудности: извлечение знаний у эксперта («узкое горло» инженерии знаний), верификация полноты и непротиворечивости БЗ, сопровождение. Перспективы: гибридные системы (правила + нейросети + нечёткая логика), самообучающиеся системы, интеграция с большими данными.

Инструментальные средства построения ЭС (способы построения): программирование «с нуля» на языках ИИ (Prolog — логический вывод «из коробки», Lisp — обработка символьных структур); оболочки ЭС — готовый механизм вывода и интерфейс, наполняется только база знаний (классика — EMYCIN, современные — CLIPS, Drools); гибридные инструментальные среды с несколькими моделями представления знаний. Выбор — компромисс: оболочка ускоряет разработку на порядок, но привязывает к своей модели знаний.

Способы представления знаний

  • Продукционные правила — «ЕСЛИ условие ТО действие». Наглядны, модульны, легко пополняются; основной способ в ЭС.
  • Фреймы — структура-«анкета» для стереотипной ситуации: имя, слоты со значениями, значениями по умолчанию, присоединёнными процедурами; фреймы образуют иерархии с наследованием.
  • Семантические сети — ориентированный граф: вершины — понятия, дуги — отношения (is-a «является», part-of «часть», свойства). Вывод — поиск по сети.
  • Логические модели — исчисление предикатов, вывод по правилам формальной логики (резолюция).
  • Нейронные сети — знания в виде весов связей искусственных нейронов; нейрон вычисляет взвешенную сумму входов и пропускает через функцию активации; сети обучаются на примерах (обратное распространение ошибки), но не объясняют вывод.
Канарейка Птица Животное крылья летать жёлтая is-a is-a имеет умеет цвет
Семантическая сеть: вывод «канарейка умеет летать» — путь по дугам is-a с наследованием свойств.

Одно и то же знание в трёх представлениях.

Правило: ЕСЛИ (двигатель не заводится) И (стартер крутит) ТО (проверить подачу топлива).

Фрейм «Станок»: слоты — [тип: токарный], [мощность: 5 кВт], [состояние: по умолчанию «исправен»], [при_поломке: процедура вызова диагностики]. Фрейм «Станок-16К20» наследует слоты от «Станка», переопределяя мощность. Значение по умолчанию экономит память: его хранят один раз у предка.

Семантическая сеть (на схеме выше): вывод «умеет ли канарейка летать?» — поиск пути: канарейка —is-a→ птица —умеет→ летать. Наследование свойств по дугам is-a — главный механизм вывода в сетях и фреймах.

Как выбирают представление знаний:

  • правила — эксперт формулирует опыт в виде «если–то» (диагностика, советчики);
  • фреймы — мир состоит из типовых объектов со свойствами (оборудование, документы);
  • семантические сети — главное — связи между понятиями (словари, онтологии);
  • нейросети — правил никто сформулировать не может, но есть много примеров «вход → правильный ответ».

Нечёткие знания

Нечёткое множество A на универсуме X — совокупность пар (x, μA(x)), где функция принадлежности μA: X → [0, 1] показывает степень принадлежности элемента множеству. Классическое множество — частный случай (μ ∈ {0, 1}).

Операции (по Заде): дополнение μ¬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°. Вывод по шагам:

  1. Фаззификация: μвысокая(68) = 0,3; μсредняя(68) = 0,6 — одно значение принадлежит двум термам сразу.
  2. Активация правил: R1 срабатывает со степенью 0,3, R2 — со степенью 0,6; функции принадлежности выводов «срезаются» на этих уровнях.
  3. Агрегация: срезанные множества «большие» и «средние» объединяются по max в одну фигуру.
  4. Дефаззификация: центр тяжести фигуры → например, 62% мощности — конкретная команда из «размытых» правил.

Так работают нечёткие регуляторы стиральных машин, кондиционеров и АКПП: эксперт пишет 5–10 словесных правил вместо дифференциальных уравнений объекта.

Фаззификация — перевод числа на язык слов («68° — это в основном „тепло“ и немного „жарко“»); дефаззификация — обратный перевод итогового «размытого» ответа в одно число, которое можно подать на исполнительный механизм. Между ними система рассуждает словами, как человек.

Мамдани с числами до конца — упрощённый расчёт, который можно повторить на бумаге. Обороты вентилятора: терм «средние» — треугольник с вершиной в 50%, терм «большие» — треугольник с вершиной в 90% (шкала 0–100%).

  1. Из фаззификации: правило «средние» активно на 0,6, правило «большие» — на 0,3.
  2. Срезаем треугольники: «средние» ограничен высотой 0,6, «большие» — высотой 0,3, объединяем по max.
  3. Дефаззификация центром тяжести — приближённо по двум «кускам» (площадь × центр):
    y* = S₁·c₁ + S₂·c₂S₁ + S₂0,6·50 + 0,3·900,6 + 0,3 ≈ 63%

Ответ смещён к «средним» (их правило активнее), но подтянут «большими» — нечёткий вывод плавно смешивает рекомендации правил пропорционально их уверенности. Ни одного дифференциального уравнения объекта не потребовалось.

демоФункции принадлежности лингвистической переменной «температура»
Одно и то же значение принадлежит сразу нескольким термам с разными степенями — в этом отличие от чёткого разбиения на интервалы.
демоВывод Мамдани целиком: от температуры до процента мощности
Выходная переменная «обороты вентилятора» с термами малые/средние/большие. Правила: низкая→малые, средняя→средние, высокая→большие. Термы выхода срезаются на уровне активации своих правил (пунктирные линии), объединяются по max в закрашенную фигуру, и её центр тяжести y* — итоговая команда. Двигайте температуру и смотрите, как «размытые» правила дают плавное число — это разобранный в тексте пример, оживший.

Модели поиска решений

  • Прямая цепочка рассуждений (от данных к цели): просматриваются правила, посылки которых подтверждены фактами; их заключения добавляются в рабочую память — пока не будет получена цель. Хороша, когда данных мало, а гипотез много.
  • Обратная цепочка (от цели к данным): выдвигается гипотеза-цель; ищутся правила, её выводящие; их посылки становятся подцелями — пока подцели не сведутся к известным фактам или вопросам пользователю. Хороша при небольшом числе возможных целей (диагностика).
  • Поиск в пространстве состояний — граф «состояние → действия»: перебор в глубину/в ширину, эвристический поиск (A*); при больших пространствах — редукция задачи на подзадачи.

База знаний из трёх правил (по образцу методички Коробовой):
R1: ЕСЛИ (температура > 100°) ТО (давление растёт)
R2: ЕСЛИ (давление растёт) И (клапан закрыт) ТО (авария)
R3: ЕСЛИ (авария) ТО (открыть клапан сброса)
Факты: {температура 110°, клапан закрыт}.

Прямая цепочка (от данных): просматриваем правила → R1 срабатывает, в рабочую память добавляется «давление растёт» → теперь срабатывает R2, добавляется «авария» → срабатывает R3 → вывод: «открыть клапан сброса». Данные толкают вывод вперёд.

Обратная цепочка (от цели): гипотеза — «нужно ли открыть клапан сброса?» → её выводит R3, подцель «авария» → её выводит R2, подцели «давление растёт» (её выводит R1 — подцель «температура > 100°» — есть в фактах ✓) и «клапан закрыт» ✓ → гипотеза подтверждена. Цель тянет рассуждение назад, к фактам; проверяются только правила, относящиеся к делу.

Вопросы к собеседованию

Для каких задач создаются системы искусственного интеллекта? Назовите основные подходы.

Для неформализованных задач: нет готового алгоритма, данные неполны или нечётки, знания носят экспертный характер (диагностика, проектирование, прогноз). Подходы: нисходящий (символьный) — моделирование рассуждений через представление знаний и логический вывод (экспертные системы); восходящий (нейросетевой) — обучение на примерах, моделирование нейронных структур.

Что такое экспертная система? Перечислите её компоненты.

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

Зачем экспертной системе система объяснений?

Она показывает цепочку сработавших правил, приведшую к выводу («почему» и «как»). Это повышает доверие пользователя к рекомендациям, позволяет эксперту проверять корректность базы знаний и служит инструментом отладки при её наполнении.

Назовите этапы разработки экспертной системы.

Идентификация (постановка задачи, ресурсы, участники) → концептуализация (ключевые понятия и связи) → формализация (выбор модели представления знаний и инструментария) → выполнение (наполнение базы знаний) → тестирование → опытная эксплуатация. Разработка идёт через быстрый прототип; уровни готовности: демонстрационный, исследовательский, действующий, промышленный, коммерческий.

В чём главные трудности создания экспертных систем?

«Узкое горло» — извлечение знаний: эксперт мыслит не правилами, знания приходится добывать в длительных диалогах инженера знаний с экспертом. Далее — обеспечение полноты и непротиворечивости базы знаний, её сопровождение при изменении предметной области, а также границы применимости: ЭС ненадёжна на краю своей компетенции.

Сравните продукционные правила, фреймы и семантические сети.

Продукции «ЕСЛИ–ТО» — модульны, наглядны, легко пополняются, но при тысячах правил трудно контролировать взаимодействие. Фреймы — структуры для стереотипных объектов/ситуаций со слотами, значениями по умолчанию и наследованием — удобны для описания объектов. Семантические сети — граф понятий и отношений (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*) использует оценку расстояния до цели. При больших пространствах задачу редуцируют — разбивают на подзадачи (И/ИЛИ-графы).