Краевые задачи: условия на обоих концах

До сих пор все наши задачи начинались в одной точке: дано состояние в момент t=a, и мы шагали вперёд. Но огромный класс физических задач устроен иначе — условия заданы на двух концах отрезка сразу. И это меняет всё.

Краевая задача (boundary value problem, BVP) — дифференциальное уравнение, для которого дополнительные условия заданы не в одной точке, а на обоих концах отрезка интегрирования: например y(a)=A и y(b)=B.

От задачи Коши — к задаче с двумя концами

Вспомним задачу Коши (начальную задачу). Для уравнения второго порядка y''=f(t,y,y') нам давали два условия в одной точке: значение функции y(a)=A и её производную y'(a)=A'. Этого ровно достаточно, чтобы запустить любой шаговый метод — Эйлера, Рунге—Кутты, — и аккуратно проинтегрировать вперёд до конца отрезка. Мы знали полное состояние системы в старте, и оставалось только катиться по времени.

Краевая задача формулируется хитрее. Возьмём то же уравнение второго порядка, но условия зададим по-другому:

y'' = f(t, y, y'),   t из [a, b]
y(a) = A      (значение на левом конце)
y(b) = B      (значение на правом конце)

Заметьте: про производную y'(a) не сказано ни слова. Зато сказано про значение функции на другом конце отрезка. Условий по-прежнему два (для уравнения второго порядка их и должно быть два), но они «растащены» по разным точкам. И вот тут возникает фундаментальная проблема.

Почему нельзя просто шагать вперёд

Чтобы запустить шаговый метод от точки a, нам нужно полное состояние: и y(a), и y'(a). Значение y(a)=A у нас есть. А вот стартовый наклон y'(a) — неизвестен. Краевое условие y(b)=B относится к концу b, до которого мы ещё не дошли; использовать его в старте мы физически не можем.

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

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

Откуда берутся краевые задачи: физика

Краевые задачи — это язык, на котором природа описывает равновесие и стационарные состояния. Несколько классических примеров.

Прогиб балки

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

   нагрузка   нагрузка   нагрузка
     |          |          |
     v          v          v
  ___________________________
  \                         /     <- балка прогибается
   \______       _________/
          \_____/
  ^                         ^
 y(0)=0                   y(L)=0
 опора                    опора

Стационарное распределение температуры

Возьмём металлический стержень. Левый конец держим в кипятке (100 градусов), правый — во льду (0 градусов). Через какое-то время температура вдоль стержня перестанет меняться и установится стационарный профиль T(x). Этот профиль описывается дифференциальным уравнением, а условия — снова на концах: T(0)=100, T(L)=0. Нам неизвестно, с каким «наклоном» температура падает у левого края; известны лишь значения на двух торцах. Опять краевая задача.

Два подхода: стрельба и конечные разности

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

Метод стрельбы (shooting method)

Идея почти наглая в своей простоте: раз нам не хватает стартового наклона y'(a) — давайте его угадаем. Возьмём пробное значение наклона s, превратим краевую задачу в задачу Коши (теперь у нас есть и y(a)=A, и y'(a)=s) и прострелим вперёд до конца b любым проверенным методом, например RK4. Посмотрим, куда попали: получили какое-то y(b). Если оно совпало с требуемым B — угадали. Если промахнулись — подкрутим наклон s и стрельнём заново. Это в точности как наводить пушку: меняем угол ствола, пока снаряд не ляжет в цель.

Конечно-разностный метод (finite differences)

Подход совершенно другой по духу. Вместо того чтобы решать уравнение «во времени», мы покрываем отрезок [a,b] сеткой узлов и в каждом узле заменяем производные на конечные разности — приближённые формулы через соседние узлы. В результате дифференциальное уравнение превращается в систему алгебраических уравнений относительно значений функции в узлах. Для линейных задач это система линейных уравнений (СЛАУ) с особой трёхдиагональной матрицей, которую очень быстро решает метод прогонки. Мы находим все узлы разом, а не «прокатываемся» через них.

Как работает под капотом

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

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

Частые ошибки

  • Путать с задачей Коши. Увидев два условия, легко решить, что можно сразу шагать вперёд. Проверяйте, где заданы условия: если в одной точке — это Коши, если на разных концах — краевая, и наивный марш не сработает.
  • Думать, что решение всегда единственно. У краевых задач (в отличие от линейной задачи Коши) решение может быть единственным, может не существовать, а может быть бесконечно много. Классический пример — y''=-y на [0, pi] с нулями на концах: решений бесконечно много.
  • Считать число условий «на глаз». Для уравнения порядка n нужно ровно n краевых условий, иначе задача поставлена некорректно. Лишнее условие — переопределённость, недостающее — недоопределённость.
  • Забывать о физическом смысле условий. Условие может задавать не значение y, а значение производной (например, теплоизолированный конец: y'(b)=0). Это меняет дискретизацию и формулы у границы.

Итоги

  • Краевая задача задаёт условия на обоих концах отрезка, а не в одной точке, как задача Коши.
  • Простой марш вперёд невозможен: стартовый наклон неизвестен, а условие на дальнем конце нельзя использовать в начале.
  • Краевые задачи описывают равновесие и стационар: прогиб балки, распределение температуры в стержне.
  • Решение глобально — зависит сразу от обоих концов; решений может быть одно, ни одного или бесконечно много.
  • Два главных метода: стрельба (угадываем наклон и пристреливаемся задачей Коши) и конечные разности (сводим к СЛАУ и решаем целиком).
Проверьте себя
1. Чем краевая задача принципиально отличается от задачи Коши?
AВ краевой задаче уравнение всегда линейное, а в задаче Коши — нелинейное
BУсловия заданы на обоих концах отрезка, а не в одной точке
CКраевая задача решается только аналитически, численно её решить нельзя
DВ краевой задаче нет производных выше первого порядка
2. Почему краевую задачу нельзя решить простым шагом вперёд от точки a?
AПотому что шаговые методы не работают на отрезках длиннее единицы
BПотому что неизвестен стартовый наклон y'(a), а условие на дальнем конце в старте использовать нельзя
CПотому что краевые задачи всегда расходятся при численном счёте
DПотому что в краевой задаче слишком много условий и метод переопределён
3. Какое из явлений естественно описывается краевой задачей?
AСкорость падающего тела как функция времени
BРадиоактивный распад с известным начальным количеством атомов
CСтационарное распределение температуры в стержне с заданными температурами на торцах
DПоложение брошенного мяча через 2 секунды после броска