
- •Лекция №8 Обыкновенные дифференциальные уравнения Постановка задачи Коши
- •Метод Пикара
- •Метод малого параметра
- •Метод ломаных
- •Метод Рунге-Кутта
- •Метод Адамса
- •Решатели дифференциальных уравнений в matlab
- •Постановка краевой задачи
- •Метод стрельбы
- •Краевая задача. Разностный метод
- •Краевая задача в среде matlab
Постановка краевой задачи
Краевая задача состоит в поиске частных решений системы уравнений (3), (3), т.е. системы
, (51)
на отрезке [a,b], при задании дополнительных условий в более чем одной точке отрезка [a,b]. В рамках данного определения постановка краевой задачи возможна только для систем, порядок которых два и более.
Свое название краевые задачи получили вследствие задания условий на краях отрезка [a,b], т.е. в точках x = a и x = b. В качестве примера можно привести задачу определения статического прогиба u(x) струны с закрепленными концами под действием распределенной нагрузки f(x), которая поделена на длину и упругость струны:
. (52)
В общем случае краевая задача для системы (51) предполагает определенными p точек 1, 2, …, p на отрезке [a,b], в которых заданы условия вида:
. (53)
Точное решение краевой задачи (51), (53) в элементарных функциях удается редко, т.к. для этого надо найти общее решение системы (51), а затем определить конкретные значения констант, обеспечивающих выполнение краевых условий (53). По этой причине широко используются приближенные методы решения краевых задач. К ним относятся: метод стрельбы, разностный метод, метод разложения в ряды Фурье, методы Ритца и Галеркина.
В общем случае метод стрельбы состоит в сведении краевой задачи к задаче Коши и последующих итерациях, цель которых состоит в удовлетворении части граничных условий с заданной точностью. Разностный метод состоит в сведении исходной задачи к алгебраической системе уравнений большого порядка, в которой неизвестными выступают значения искомого решения в узлах сетки.
Метод стрельбы
Данный метод еще называют баллистическим. В основе этого метода лежит способ сведения краевой задачи к решению задачи Коши той же системы дифференциальных уравнений. Рассмотрим более подробно метод стрельбы на примере пары дифференциальных уравнений следующего вида:
(54)
где x[a,b] и выбираются краевые условия общего вида:
. (55)
Выберем произвольное ua такое, что u(a) = ua. Подставим это условие в левое граничное условие, рассматривая его в качестве алгебраического уравнения, т.е. (ua,v(a)) = 0. Формально разрешим последнее уравнение относительно v(a), тогда v(a) = q(ua). Решим теперь систему (54) как задачу Коши с начальными данными u(a) = ua и v(a) = q(ua). Решение можем провести одним из численных методов, изложенных выше. В итоге получим решение u(x,ua), v(x,ua), зависящие от ua, как от параметра.
Функция q такова, что левое граничное условие выполнено. Однако выполнение правого граничного условия не обеспечено. Действительно, подставляя решение в правое граничное условие, получим
(56)
функцию параметра
ua,
которая отлична от нуля. Для обеспечения
правого граничного условия надо
осуществить варьирование параметра ua
так, чтобы с заданной точностью обеспечить
равенство
.
Другими словами, решение краевой задачи
сводится к нахождению корней уравнения
. (57)
Методы поиска
корней уравнения изучались в лекции
№5. Например, можно численно решить
систему уравнений (54) для различных
значений ua
и найти среди них такую пару
,
на которой функция p
меняет знак. Далее к отрезку
применяем метод деления отрезка пополам,
осуществляем каждый раз новую “пристрелку”
параметра и добиваясь нужной точности
значения корня. Вследствие такой
процедуры метод получил название метода
стрельбы.
Ранее мы уже видели, что метод дихотомии надежен и прост, однако он довольно медленный. Каждая итерация в данном случае особенно дорогая, т.к. предполагает решение системы уравнений (54). Построим аналог процесса Ньютона, предполагая нужную степень гладкости правых частей системы (54) и краевых условий (55).
Найдем производную функции (56)
. (58)
В уравнение (58) входят производные по параметру от решений системы уравнений (54). Введем обозначения
и продифференцируем систему уравнений (54) по параметру ua, тогда
(59)
Одно из начальных
значений для системы (59) легко найти,
учитывая что u(a)
= ua,
тогда
.
Второе граничное условие получается
после дифференцирования левого граничного
условия (55) по параметру ua,
тогда
. (60)
В результате решение краевой задачи свелось к решению системы четырех уравнений (54), (59) с начальными данными (55), (60). Решая данную систему уравнений, находим u(b), v(b), (b), (b). Подставляя эти величины в (58), находим производную, которая позволяет организовать процесс Ньютона для нахождения корня уравнения (57), т.е.
. (61)
Добавление лишней пары дифференциальных уравнений (59) можно избежать, если воспользоваться в место процесса Ньютона (61) методом секущих
. (62)
Изучим метод стрельбы на примере решения краевой задачи (54) — (61) в следующем уравнении:
, (63)
где > 0 — некоторый неотрицательный параметр. При = 0 решение задачи (63) известно u = sin(x). Переходя к представлению уравнения (63) в виде системы, а также повторяя логику вывода уравнений (59), находим
(64)
где
;
. (65)
Итерационный процесс Ньютона для краевой задачи (64), (65) осуществляет пристрелку значения параметра v0 таким образом, чтобы обеспечить выполнение правого краевого условия. Соответствующий итерационный процесс Ньютона имеет следующий вид:
. (66)
Краевая задача (63) — (66) решалась численно при различных значениях . На листинге_№11 приведен код решения краевой задачи.
Листинг_№11
%Программа решения краевой задачи (63) - (66)
%очищаем рабочее пространство
clear all
%задаем возможные значения параметра eps
eps=0:2:10;
%определяем число точек на отрезке
%интегрирования [0,pi/2]
N=100;
%определяем правую часть системы дифференциальных
%уравнений (64)
f=@(z,e)[z(2);(-1+e*z(1)^2)*z(1);
z(4);(-1+3*e*z(1)^2)*z(3)];
%определяем шаг сетки h
h=(0.5*pi)/(N-1);
%организуем цикл решения краевой задачи для
%различных значений параметра eps
for k=1:length(eps)
iter=0;
v0=1.4; v1=0.7;
while (abs(v1-v0)>1e-4)&(iter<20)
v0=v1;
y(1,1)=0; y(2,1)=v0; y(3,1)=0; y(4,1)=1;
for n=1:(N-1)
%для интегрирования системы уравнений
%(64) применяем схему Рунге-Кутта 4-го
%порядка
k1=f(y(:,n),eps(k));
k2=f(y(:,n)+0.5*h*k1,eps(k));
k3=f(y(:,n)+0.5*h*k2,eps(k));
k4=f(y(:,n)+h*k3,eps(k));
y(:,n+1)=y(:,n)+(h/6)*(k1+2*k2+2*k3+k4);
end
%организуем итерации по Ньютону
v1=v0-(y(1,N)-1)/y(3,N);
iter=iter+1;
end
hold on
%строим графики решений при
%различных значениях eps
plot(0:h:0.5*pi,y(1,:));
end
На рис.9 приведены искомые решения краевой задачи, которые генерирует код программы листинга_№11, для 6 значений = 0, 2, 4, 6, 8, 10.