Численные методы решения краевых задач для обыкновенных дифферен. Краевых задач для обыкновенных
Скачать 438.32 Kb.
|
' (a) и v' (a). Эти значения можно задать любы- 20 ми, но обычно выбирают простейшими. Так, уравнение для u (x) – однородное, первое граничное условие (2.20) – однородное, и поэтому, чтобы получить нетривиальное решение u (x), берут условие 1. u a (2.21) Наоборот, уравнение для v (x) – неоднородное, и нетривиальное ре- шение v (x) получится даже при условии 0. v a (2.22) Решая задачу Коши (2.19) – (2.22) , найдем в конечной точке x = b значения u (b) и v (b). Теперь осталось удовлетворить правому гранич- ному условию (2.17) , cu b v b откуда определяется постоянная v b c u b (2.23) Окончательно, имея таблицу значений функций u (x) и v (x) и, зная постоянную c из (2.23), по формуле (2.18) можем пересчитать таблицу значений искомого решения y (x). Замечание 1. Заметим, что пересчет решения y (x) по формуле (2.18) не всегда является удобным, т.к. требует накопления больших массивов u (x) и v (x), поэтому иногда, жертвуя машинным временем, заново рас- считывают задачу Коши для исходного уравнения (2.15), т.к. недостаю- щее начальное условие для этого уравнения оказалось уже найденным 1 0 y a cu a v a c c Замечание 2. Рассмотренный алгоритм остается в силе с небольшими изменениями и при других линейных граничных условиях. Например, если заданы граничные условия третьего и второго рода: ; , y a hy a y b (2.24) подстановка (2.18) в левое граничное (2.24) дает c u a hu a v a hv a и можно выбрать 21 1; ; 0; , u a u a h v a v a при этом , v b c u b и , y a c y a ch Замечание 3. Расчет краевой задачи несколько упрощается, если ис- ходное дифференциальное уравнение (2.15) является однородным (f (x) 0) и одно из граничных условий также однородное. Например 0, ; 0. y p x y q x y y a y b В этом случае следует проводить расчет справа налево (от точки x = b к точке x = a) и можно обойтись расчетом одного уравнения. В самом деле, ищем решение в виде y = cu. Тогда задача (2.15) – (2.17) принимает вид: 0; 0. u pu qu u b Выбирая, например, условие u (b) = 1, проводим расчет (с отрица- тельным шагом) до точки x = a и из левого граничного условия находим , cu a откуда c y b u a 2.2.4. Метод дифференциальной прогонки Суть метода прогонки заключается в следующем. Основываясь на форме граничного условия в начальной точке, выводится обыкновенное дифференциальное уравнение, порядок которого на единицу меньше по- рядка заданного дифференциального уравнения и коэффициенты которо- го включают неизвестные функции. Количество таких неизвестных 22 функций равно порядку исходного уравнения. Если выведенное уравне- ние продифференцировать, то новое уравнение будет иметь тот же поря- док, что и заданное. Приравнивая коэффициенты этих двух уравнений, получаем систему дифференциальных уравнений первого порядка, ин- тегрированием которой можно получить неизвестные коэффициенты. В частности, решения в конечной точке совместно с граничными условия- ми в этой точке составляют полый набор уравнений для нахождения всех граничных значений. Этот этап называется прямой прогонкой. Зная пол- ный набор граничных условий в конечной точке, исходное уравнение можно проинтегрировать как задачу Коши от начальной до конечной точки. Таким образом удается избежать итераций. Рассмотрим граничную задачу, определяемую дифференциальным уравнением 2 2 , d y p x y q x dx (2.25) и граничными условиями 00 10 , dy a y a dx (2.26) 00 10 , dy b y b dx (2.27) где p (x) и q (x) – непрерывные функции; 00 , β 00 , 10 , β 10 – константы, определяющие вид граничных условий. Рассмотрим линейное дифференциальное уравнение первого порядка 0 1 , dy x y x x dx (2.28) и выберем 0 (x) и 1 (x) так, чтобы y (x) удовлетворяло уравнению (2.25). Продифференцировав (2.28) по x, получим 2 0 1 0 2 d y d dx y d dx dy dx dx (2.29) Заменив здесь dy/dx выражением, стоящим в правой части уравнения (2.28) получим 2 2 0 0 1 0 1 2 d y d dx y d dx dx (2.30) Из сравнения с (2.25) получаем следующие уравнения: 23 2 0 0 , d x dx p x (2.31) 1 0 1 d x dx x x q x (2.32) В качестве первого шага проинтегрируем на отрезке a < x < b урав- нения (2.31) и (2.32) как задачу Коши, приняв в качестве начальных зна- чений 0 00 1 10 , , a a получим значения 0 (b) и 1 (b). Подставив найденные значения в (2.28), получим 0 1 dy b dx b y b b (2.33) С другой стороны, граничное условие (2.27) при x = b дает 00 10 dy b dx y b (2.34) Так как теперь 0 (b) и 1 (b) – известные величины, уравнения (2.33) и (2.34) можно разрешить относительно y (b) и dy (b)/dx и получить 10 1 0 00 / , y b b b (2.35) 00 1 10 0 00 0 / dy b dx b b b (2.36) Теперь задачу Коши, определяемую уравнением (2.25) и начальными условиями (2.35) и (2.36), можно проинтегрировать назад от x = b. Дру- гая возможность заключается в том, чтобы проинтегрировать (2.28), ис- пользуя (2.35) в качестве начального условия. Пример: Рассмотрим решение следующей граничной задачи 2 2 cos , d y dx y x x (2.37) 3 2 2 5 2 2 0 0 , dy dx y dy dx y Известно точное решение этой задачи 0.73 0.441 1 4 2 cos sin sin cos , y x x x x x x откуда 0.175 2 y и 1.122 2 dy dx Теперь найдем эти граничные значения, решая задачу методом про- гонки. 24 Сравнивая уравнения (2.37) и (2.25) получаем 1, cos , p x q x x x (2.38) так, что уравнения (2.31) и (2.32) записываются в виде 2 0 0 1 0 1 1 , cos d x dx x d x dx x x x x (2.39) Граничные условия таковы: 0 1 0 3, 0 2. Уравнения (2.39) можно проинтегрировать от x =0 до x =.π/2 Так как 0 1 , dy x dx x y x x мы имеем 0 1 2 2 2 2 . dy dx y Учитывая, кроме того, граничное значение во второй точке 2 5 2 2. dy dx y (2.40) Можно разрешить систему уравнений (2.39), (2.40) относительно y (π/2) и dy (π/2)/dx: 0.176 1 0 2 2 2 / 5 2 , y (2.41) 1.122 2 5 2 2 , dy dx y (2.42) что согласуется с точным решением. 2.3. Методы решения краевых задач для нелинейных обыкно- венных дифференциальных уравнений второго порядка Дифференциальные уравнения, содержащие неизвестные функции и их производные в степени выше первой или определенные каким-либо более сложным образом, называются нелинейными. Многие дифферен- циальные уравнения, описывающие физические явления, обычно линей- ны лишь в первом приближении. Детальное и более точное исследование физических явлений, как правило, приводит к нелинейным уравнениям. Решения нелинейных уравнений зачастую очень сложны, и их трудно представить простыми формулами. Значительная часть современной тео- рии решения нелинейных дифференциальных уравнений посвящена ка- 25 чественному анализу их поведения. Теория направлена на разработку методов, позволяющих, не решая уравнения, сказать нечто существенное о характере решений в целом: например, что все они ограничены, или имеют периодический характер, или определенным образом зависят от коэффициентов. Приближенные решения нелинейных дифференциальных уравнений могут быть найдены численными методами. Именно при решении таких уравнений применяются итерационные методы. 2.3.1. Метод Ньютона Рассмотрим краевую задачу, определяемую дифференциальным уравнением второго порядка 2 2 , , d y dx f x y dy dx (2.43) и граничными условиями 0 0 y (2.44) y l A (2.45) Запишем уравнение (2.43) в виде системы двух дифференциальных уравнений первого порядка , , , dy dx u du dx f x y u (2.46) Обозначим недостающее начальное значение производной через s: 0 0 dy dx u s (2.47) Задача заключается в том, чтобы найти такое значение s, при котором решение задачи Коши (2.46) с граничными условиями (2.44), (2.47) удов- летворяет граничному условию (2.45). Иначе говоря, если решение зада- чи Коши обозначить через y (x, s) и u (x, s), то требуется найти такое значение s, что , 0. y l s A s (2.48) В методе Ньютона итерационная формула для s задается в виде 26 1 , n n n n s s s d s ds или 1 , , n n n n y l s A s s y l s s (2.49) Чтобы найти производную y по s, продифференцируем систему (2.46) с граничными условиями (2.44) и (2.47) по s и получим , dY dx U dU dx f y Y f u U (2.50) и 0 0, 0 1, Y U (2.51) где , Y y s U u s (2.52) Решение системы уравнений (2.46), удовлетворяющее граничным ус- ловиям (2.44), (2.45) может быть получено следующими действиями. 1. Выбирается значение s для недостающего начального значения производной (2.47). Это приближенное значение s обозначается через s (1) 2. Интегрируется задача Коши (2.46) с граничными условиями за- данными в виде (2.44), (2.47) от x = 0 до x = l. 3. Интегрируются уравнения (2.50) с начальными условиями (2.51) от x = 0 до x = l. 4. Значения y (l, s (1) ) и Y (l, s (1) ), подставляются в формулу (2.49), что дает (2) (1) (1) (1) , , , s s y l s A Y l s следующее приближение s (2) для недостающего начального значения производной. 5. Шаги 2 – 4 повторяются до тех пор, пока величина s не будет найдена с заданной точностью. 27 2.3.2. Метод квазилинеаризации Рассмотрим нелинейное дифференциальное уравнение второго по- рядка , , y f x y y (2.53) С граничными условиями 0 0, , y y L A (2.54) где символами y' и y'' обозначены соответственно dy/dx и d 2 y/d 2 x. Перепишем уравнение (2.53) в виде , , , , , 0. x y y y y f x y y (2.55) Чтобы получить рекуррентное соотношение, обозначим n - ю и (n+1) - ю итерации через y n и y n+1 и потребуем, чтобы для итераций вы- полнялось условие φ = 0. Это позволяет написать для n - й итерации , , 0. n y f x y y (2.56) Для (n+1) - й итерации получаем 1 1 1 1 1 1 1 , , , , , , 0, n n n n n n n n n n n n n n n n n x y y y x y y y y y y y y y y y y (2.57) или 1 1 1 0. n n n n n n n n f y y y f y y y y y (2.58) Подставляя в (2.58) выражение n y из (2.56) получаем 1 1 1 , , n n n n n n n n n n n y f y y f y y f x y y f y y f y y (2.59) Граничные условия имеют вид 1 1 0 0, n n y y L A (2.60) Уравнение (2.59) с граничными условиями (2.60) – это ли- нейная граничная задача, решение которой может быть по- 28 лучено одним из методов, применимых для решения линей- ных краевых задач (раздел 2.2). 3 РЕШЕНИЕ КРАЕВЫХ ЗАДАЧ МЕТОДОМ КОНЕЧНЫХ РАЗНОСТЕЙ Наиболее распространенным и универсальным численным методом решения дифференциальных уравнений является метод конечных разно- стей. Основное содержание метода заключается в следующем. Область непрерывного изменения аргумента (например, отрезок) заменяется дис- кретным множеством точек, называемых узлами. Эти узлы составляют разностную сетку. Искомая функция непрерывного аргумента прибли- женно заменяется функцией дискретного аргумента на заданной сетке. Эта функция называется сеточной. Исходное дифференциальное уравне- ние заменяется разностным уравнением относительно сеточной функции. При этом для входящих в уравнение производных используются соответ- ствующие конечно-разностные соотношения. Такая замена дифференци- ального уравнения разностным называется его аппроксимацией на сетке (или разностной аппроксимацией). Решение дифференциального уравнения сводится к отысканию зна- чений сеточной функции в узлах сетки. Обоснованность замены диффе- ренциального уравнения разностным, точность получаемых решений, устойчивость метода – важнейшие вопросы, которые требуют тщатель- ного изучения. Рассмотрим содержание метода на примере решения дифференци- ального уравнения второго порядка , , y f x y y (3.1) при заданных граничных условиях 0 1 0 , 1 y y y y (3.2) Разобьем отрезок [0, 1] на n равных частей точками x i = ih, (i = 0, 1, …, n). Решение краевой задачи (3.1), (3.2) сведем к вычислению значений сеточной функции y i в узловых точках x i . Для этого воспользу- емся уравнением (3.2) для внутренних узлов: 1, 2 - 1 , , , ,..., i i i i y x f x y x y x i n (3.3) 29 Заменим производные, входящие в эти соотношения, их конечно- разностными аппроксимациями: 2 1 1 2 1 1 2 , 2 2 i i i i i i i y y y x O h h y y y y x O h h (3.4) Подставляя эти выражения в (3.2), получаем систему разностных уравнений 1 1 , , , 0, 1, 2,...., 1, i i i i F x y y y i n (3.5) являющуюся системой (n-1) алгебраических уравнений относительно значений сеточной функции y 1 , y 2 , …, y n-1 . Входящие в данную систему y 0 (при i = 1) и y n (при i = n-1) выбираются из граничных условий (3.2): 0 0 , 1 . n y y y y На практике часто граничные условия задаются в более общем виде: 1 1 2 2 0 0 , 1 1 y y A y y B (3.6) В этом случае граничные условия также должны представляться в разностном виде путем аппроксимации производных y'(0) и y'(1) с по- мощью конечно-разностных соотношений. Если использовать односто- ронние разности (соответствующий шаблон показан на рис. 3.1 а), при которых производные аппроксимируются с первым порядком точности, то разностные граничные условия примут вид 1 0 1 0 1 1 2 2 , n n n y y y A h y y y B h (3.7) Из этих соотношений легко находятся значения y 0 и y n 30 -1 0 1 2 -h 0 h 2h n-2 n-1 n n+1 1-2h 1-h 1 1+h i x a б в Рис. 3.1. Аппроксимация граничных условий Однако, как правило, предпочтительнее аппроксимировать произ- водные, входящие в (3.6), со вторым порядком точности с помощью цен- тральных разностей 2 2 1 1 1 1 0 , 1 2 2 n n y y y y y O h y O h h h В данные выражения входят значения сеточной функции y -1 и y n+1 в так называемых фиктивных узлах x = -h и x = 1+h, лежащих вне рассмат- риваемого отрезка (рис. 3.1 б). В этих узлах значения искомой функции также должны быть найдены. Следовательно, количество неизвестных значений сеточной функции увеличивается на два. Для замыкания систе- мы привлекают еще два разностных уравнения (3.5) при i = 0 и i = n. Аппроксимировать граничные условия со вторым порядком можно и иначе (рис. 3.1 в). В этом случае используются следующие аппроксима- ции: 2 0 1 2 2 2 1 3 4 0 , 2 4 3 1 2 n n n y y y y O h h y y y y O h h Таким образом, решение краевой задачи для дифференциального уравнения сведено к решению системы алгебраических уравнений вида (3.5). Эта система является линейной или нелинейной в зависимости от того, линейно или нелинейно, искомое дифференциальное уравнение. Для нелинейной системы необходимо использовать специальные ме- тоды, в том числе итерационные. Для решения линейной системы уравнений (3.5) используется метод прогонки. 31 Линейная система равнений (3.5) приводится к виду 0 0 0 1 0 1 1 1 , , 1,2,..., 1, i i i i i i i n n n n n B y C y F Ay B y C y F i n A B F (3.8) Система уравнений (3.8) имеет ненулевые элементы матрицы коэф- фициентов только на трех диагоналях, так называемая трехдиагональная матрица. 0 0 1 1 1 2 2 2 1 1 1 0 0 n n n n n B C A B C A B C A B C A B Такую систему уравнений удобнее всего решать методом прогонки. Будем искать решение системы уравнений в виде: 1 i i i i y y . (3.9) Здесь k и β k – неизвестные коэффициенты, обычно называемые в ли- тературе «прогоночные коэффициенты» или «коэффициенты прогонки». Равенство (3.9) имеет место при всех i, поэтому можно записать 1 1 1 i i i i y y . (3.10) Подставим (3.10) в (3.8), получим: 1 1 1 i i i i i i i i i A y B y C y F И перепишем его в форме (3.9): 1 1 1 1 i i i i i i i i i i i i C F A y y A B A B . (3.11) Сравнение (3.11) и (3.9) дает рекуррентные соотношения для опреде- ления прогоночных коэффициентов i и β i : 1 i i i i i C A B , 1 1 i i i i i i i F A A B , 1.. 1 i n (3.12) 32 Недостающие коэффициенты 0 и β 0 определяются из первого гранично- го условия (3.8): 0 0 0 1 0 1 0 0 0 C F y y y B B Откуда 0 0 0 C B , 0 0 0 F B . (3.13) Для точки i = n-1 справедливо уравнение 1 1 1 n n n n y y (3.14) Привлекая второе граничное условие из (3.8) 1 n n n n n A y B y F , (3.15) решаем систему уравнений (3.14) (3.15) относительно y n и находим 1 1 n n n n n n n F A y A B . (3.16) Таким образом, схема решения системы уравнений (3.8) состоит в следующей последовательности действий: 1. По формулам (3.13) вычисляем 0 и β 0 2. По реккурентным формулам (3.12) вычисляем последовательно 1 , β 1 , 2 , β 2 , …, n-1 , β n-1 3. По формуле (3.16) определяем y n 4. По формуле (3.9) вычисляем y n-1 , y n-2 , …, y 0 После выполнения действий 1 – 4 все значения y i будут определены. Пример программы для расчета краевой задачи методом конечных разностей приведен в Приложении. |