Численные методы решения краевых задач для обыкновенных дифферен. Краевых задач для обыкновенных
Скачать 438.32 Kb.
|
Результаты расчета x i y ан (x i ) y i (метод Эйлера) y i (метод Рунге- Кутта) y i (метод Рунге-Кутта- Мерсона) 0 1 1 1 1 0.2 1.49183 1.4 1.49186 1.49184 0.4 2.22554 2.0151 2.22563 2.22557 0.6 3.32012 2.9474 3.32028 3.32017 0.8 4.95303 4.34999 4.95329 4.95313 1 7.38906 6.45181 7.38946 7.38921 Из таблицы видно, что методы Рунге-Кутта 4-го порядка и Рунге- Кутта-Мерсона 5-го порядка дают результаты, близкие аналитическому решению, даже на сетке, состоящей из 5 точек. Стоит заметить, что результаты, полученные методом 5-го порядка точнее результатов, полученных с помощью метода 4-го порядка. 2. МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ВТОРОГО ПОРЯДКА 2.1. Постановка краевой задачи для обыкновенных дифферен- циальных уравнений второго порядка На практике приходится часто решать задачи, когда условия задают- ся при двух значения независимой переменной (на концах рассматривае- мого отрезка). Такие задачи называются краевыми, получаются при ре- шении уравнений высших порядков или систем уравнений. 12 Рассмотрим линейное дифференциальное уравнение второго порядка 2 2 0, 0 d y dy x q x y f x x l dx dx (2.1) Краевые условия в общей форме запишем в виде: 1 1 1 0 0 , dy y dx (2.2) 2 2 2 dy l y l dx (2.3) Здесь x – независимая переменная, изменяющаяся от x = 0 до x = l; y = y (x) – искомая функция; ρ (x), q (x) и f (x) – заданные функции, ко- торые чаще всего на промежутке 0, x l являются непрерывными; 1 , β 1 , γ 1 , 2 , β 2 , γ 2 – заданные числа, определяющие вид граничных условий (2.2) – (2.3). Требуется найти такое решение y (x) уравнения (2.1), кото- рое при стремлении x к точке x = 0 справа удовлетворяло бы граничному условию (2.2), а при стремлении x к правой границе x = l слева (изнутри области) – удовлетворяло бы правому граничному условию (2.3). Существуют различные частные случаи граничных условий (2.2) – (2.3). Так, например, если 1 = 0, β 1 = 1, то говорят, что задано граничное условие первого рода: y (0) = γ 1 ; если, например, 2 = 1, β 2 = 0, то гово- рят, что на границе x = l задано граничное условие второго рода y ' (l) = γ 2 . Если, например, 1 > 0, β 1 > 0, то говорят, что на границе x = 0 задано граничное условие третьего рода. В этом случае при корректной постановке задачи коэффициенты при y и y ' в левом граничном условии должны быть различных знаков, а в правом – одного и того же знака, что и отражено в записи граничных условий (2.2) – (2.3). Численные методы решения краевых задач (2.1) – (2.3) делятся на две группы. Отнесем условно к первой группе такие методы, когда решение краевой задачи сводится к решению нескольких (двух) задач Коши. Из- вестно, что решение задач Коши можно реализовать с любой заданной точностью различными методами. Ко второй группе методов решения краевых задач относится метод конечных разностей. При этом дифференциальные операторы заменяют- 13 ся разностными (чаще всего, на равномерной сетке), и задача сводится к решению системы линейных алгебраических уравнений. При этом точ- ность результатов оценивается путем двойного расчета при различных шагах сетки (часто при h и h/2). 2.2. Методы решения краевых задач для линейных обыкно- венных дифференциальных уравнений второго порядка 2.2.1. Метод стрельбы Дана краевая задача для дифференциального уравнения второго по- рядка 0, 0 y p x y q x y f x x l (2.4) С граничными условиями в виде 0 , y a (2.5) y l b . (2.6) Приведем задачу (2.4) – (2.6) к системе дифференциальных уравне- ний первого порядка. Для этого введем обозначение y ' = z, тогда уравне- ние 2.4 перепишется в виде системы уравнений: , y z z p x z q x y f x (2.7) Исходное дифференциальное уравнение второго порядка (2.4) пре- вратилось в систему двух дифференциальных уравнений первого порядка (2.7). Для решения (2.7) необходимо два начальных условия. В случае, если будут определены начальные условия, задача (2.7) с двумя началь- ными условиями будет являться задачей Коши. Одно начальное условие для системы уравнений (2.7) задано в исходной постановке уравнением (2.5). Для разрешимости (2.7) необходимо второе условие, соответст- вующее функции z (x) в координате x = 0. 0 y a (2.8) 0 ? z (2.9) Задача (2.7) – (2.9) есть задача Коши для системы двух дифференци- альных уравнений первого порядка. 14 По смыслу значение функции z (0) определяет тангенс угла наклона функции y (x) при x = 0. Если в качестве начального значения функции z (x) задать произвольное значение z (0) = , и решить задачу (2.7) – (2.9) численно, одним из методов, описанных в главе 1, то в координате x = l будет вычислено некоторое значение y (l) = y n . Очевидно, что при слу- чайном выборе z (0) = величина y (l) = y n ≠ b, что противоречит на- чальному условию (2.6) исходной задачи. При изменении параметра для граничного условия z (0) = 1 решение задачи (2.7) дает отличное от предыдущего значение исходной функции на правой границе, y (l) = y n,1 Исходя из этого, используется следующий алгоритм расчета. Вычисля- ются значения y (l) при z (0) = и z (0) = 1 . Проводится анализ, как при изменении величины , изменилась величина y n : стала ли она «ближе» к величине b, или «дальше». По результатам анализа определяется новая величина параметра и повторяется расчет. Многократным заданием величины добиваемся совпадения вычисленной величины y n с величи- ной b с заданной точностью расчета. Такой метод расчета называется методом «стрельбы». Название по- шло из баллистики артиллерийский снарядов, когда путем выстрелов с «недолетом» и «перелетом» третьим выстрелом цель (в нашем случае это величина функции y (l) = y n ) поражается. В случае, когда на левой границе (x = 0) задано условие второго рода (y' (0) = a), в качестве начальных условий (2.8) – (2.9) выступают урав- нения: y (0) = , z (0) = a,. Варьируемой величиной является значение исходной функции на границе x = 0. Алгоритм расчета при этом не меня- ется. В случае, когда на правой границе (x = l) задано значение производ- ной (y' (l) = b), в расчетах с величиной b необходимо сравнивать полу- ченное для разных величин значение z n Пример программы для граничных условий третьего рода: 15 1 1 1 0 0 , dy y dx 2 2 2 dy l y l dx приведен в приложении 1. 2.2.2. Метод линейной интерполяции (метод хорд) Рассмотрим смешанную краевую задачу для уравнения 0, 0 y p x y q x y f x x l (2.10) Граничные условия возьмем в виде 0 , y a (2.11) y l y l b (2.12) Здесь a, b, – заданные числа, определяющие вид граничных усло- вий Решать численно краевые задачи можно как слева направо (от x = 0 к x = l), так и, наоборот, x = l до x = 0. Рассмотрим сначала порядок расчета слева направо. При переходе от задачи (2.10) к системе двух дифференциальных уравнений (2.7) требует- ся дополнить систему двумя граничными условиями. Так как мы выбрали расчет слева направо, то для решения задачи требуются граничные усло- вия слева, уравнение (2.11). Согласно (2.11) на левой границе задано зна- чение функции y (0) = a, но не задано значение производной. Введем для производной условие y' (0) = (– неизвестная величина). Значение «недостающего» начального условия нужно найти так, чтобы выполни- лось правое граничное условие (2.12). Оказывается, что это можно сде- лать за две попытки. Выберем любые два значения = 1 , = 2 и решим две задачи Коши для уравнения (2.7) с начальными условиями: 1 1 1 2 2 2 0 , 0 ; 0 , 0 y a y y a y (2.13) Полученные решения обозначим как y = y 1 (x) и y = y 2 (x). Найдем соответствующие значения левых частей в граничном условии (2.12). Пусть 16 1 1 1 2 2 2 , y l y l b y l y l b Здесь значения b 1 и b 2 получены в результате численного решения двух задач Коши (2.7) с граничными условиями (2.13). Теперь искомое значение недостающего начального условия y' (0) = можно найти с помощью линейной интерполяции: 1 1 2 1 2 1 , b b b b т.е. 1 1 2 1 2 1 b b b b (2.14) Полученное значение и будет являться недостающим начальным условием. Объясняется это линейностью задачи. Как известно, диффе- ренциальное уравнение (2.10) имеет общее решение 1 1 2 2 , y x c u x c u x y x н где u 1 (x) и u 2 (x)– линейно-независимые решения однородного уравне- ния (при f (x) 0), а y n (x)– какое-либо решение неоднородного уравне- ния (частное решение неоднородного уравнения). Удовлетворяя левому граничному условию (2.11), в общем решении останется одна неизвест- ная постоянная, которая входит в выражение для y (x)линейным обра- зом. Проведя в плоскости ( , b) прямую, проходящую через две точки ( 1 , b 1 ) и ( 2 , b 2 ) при заданном значении b мы однозначно найдем точное значение . Теперь таблицу значений функции y x (и ее производной) можно найти интерполяцией 1 1 1 1 2 1 y x y x y x y x Однако на практике, жертвуя машинным временем, обычно проводят третий расчет задачи Коши с условиями 0 , 0 y a y В случае расчета справа налево от точки x = l до x = 0 алгоритм рас- чета меняется. Рассмотрим задачу (2.10) с начальными условиями: , y l y l b 17 Решая две задачи Коши для = 1 , = 2 при x = 0 получим некото- рые значения y 1 (0) = a 1 и y 2 (0) = a 2 . Недостающее начальное условие получится с помощью линейной интерполяции 1 1 2 1 2 1 a a a a Замечание. На практике обычно выбирают простейшие значения , например 1 = 1 и 2 = 0. При этом, если само уравнение (2.10) является однородным, т.е. f (x) 0, и граничное условие так же однородное, y (0) = 0, то решение имеет вид y 2 (x) 0, b 2 = 0. Тогда второй расчет (при 2 = 0) нет необходимости производить и формула (2.14) даст ответ в виде 1 1 b b Поэтому, если предложено решить однородное уравнение, то следует посмотреть, есть ли однородное граничное условие и если оно есть, то начинать расчет следует от этой границы! Эта рекомендация остается в силе и для других методов решения краевых задач. Пример. Решить краевую задачу: 1 4 8 5, 0 1; 0 0 0; 1 0. y x y y x y y y Будем проводить расчет слева направо (от x = 0 до x = 1). Выберем начальные условия, удовлетворяющие левому граничному условию: 1 1 1 1 2 2 2 2 0 ; 0 ; 0 ; 0 y y y y Чтобы показать универсальность метода, в расчете были выбраны, наверное, совсем неподходящие значения 1 = 20 и 2 = 10. Таблица 2.1 x 1 y 1 y 2 y 2 y y y 0.00 20.000 20.000 10.000 10.000 1.000 1.000 0.10 21.140 2.961 10.582 1.718 1.080 0.600 0.20 20.622 -13.198 10.358 -6.146 1.120 0.200 0.30 18.529 -28.511 9.366 -13.611 1.120 -0.200 18 0.40 14.947 -42.979 7.649 -20.674 1.080 -0.600 0.50 9.963 -56.567 5.245 -27.321 1.000 -1.000 0.60 3.666 -69.201 2.200 -33.516 0.880 -1.400 0.70 -3.842 -80.758 -1.441 -39.201 0.720 -1.800 0.80 -12.444 -91.051 -5.621 -44.287 0.520 -2.200 0.90 -22.000 -99.797 -10.274 -48.641 0.280 -2.600 1.00 -32.338 -106.573 -15.318 -52.061 0.000 -3.000 В таблице 2.1 приведены результаты расчета. В первом столбце вы- даны значения x с шагом h = 0.1. Затем в двух столбцах выданы значе- ния y 1 (x) и y 1 ' (x), в следующих двух – y 2 (x) и y 2 ' (x), в двух последних столбцах – решение краевой задачи. В результате интерполяции по фор- муле (2.14) получено значение = 1. Обсудим результаты. Заслуживает внимание последний столбец (для y ' (x)). Нетрудно заметить, что значение y ' (x) от одной точки к соседней изменяются на постоянную величину – 0.4. Это означает, что функция y ' (x) – линейная (многочлен первой степени). Значит, точное решение y (x) – многочлен второй степени и, следовательно, можно найти в ана- литической форме точное решение задачи. Оно имеет вид 2 y ax bx c . Коэффициенты a, b и c можно найти подстановкой най- денного выражения y (x) в дифференциальное уравнение и в граничные условия. Рекомендуем проделать эти выкладки и получить точное реше- ние. Можно поступить и проще. Найдем по таблице y '' 1 0 0.6 1 4. 0.1 y y y h Откуда 4 1 y x x ; 2 2 1. y x x x При интегрировании использовались начальные условия y ' (0) = 1, y (0) = 1. Рекомендуем про- верить, что найденное решение действительно удовлетворяет заданному уравнению, и граничным условиям. Вот так численный счет помог найти аналитическое решение задачи! 19 2.2.3. Метод суперпозиции Рассмотрим простейшую первую краевую задачу для уравнения 0, y p x y q x y f x a x b (2.15) На концах промежутка заданы граничные условия , y a (2.16) y b . (2.17) Здесь p (x), q (x), f (x) – заданные функции на промежутке a < x < b; a, b, , β – заданные числа, определяющие граничные усло- вия. Сущность метода суперпозиции состоит в представлении общего решения уравнения (2.15) в виде суммы общего решения однородного уравнения и частного решения неоднородного уравнения. Удовлетворяя одному из граничных условий, например, левому (2.16), найдем связь между произвольными постоянными, входящими в общее решение одно- родного уравнения. Проведем реализацию метода следующим образом: Будем искать решение краевой задачи (2.15) – (2.17) в виде y x cu x v x (2.18) И потребуем, чтобы это выражение удовлетворяло уравнению (2.15) и граничному условию (2.16) при любом значении постоянной с. Под- ставляя (2.18) в (2.15), получим c u pu qu v pv qv f Чтобы это равенство имело место при любом значении постоянной с, необходимо выражение в квадратных скобках приравнять нулю. В ре- зультате получаем два дифференциальных уравнения: 0, u p x u q x u v p x v q x v f x (2.19) Подстановка (2.18) в граничное условие (2.16) дает , cu a v a откуда имеем 0, u a v a (2.20) Чтобы получить задачу Коши для системы (2.19), необходимо задать значения производных u |