Численные методы решения краевых задач для обыкновенных дифферен. Краевых задач для обыкновенных
Скачать 438.32 Kb.
|
Министерство образования и науки Российской Федерации Национальный исследовательский Томский государственный университет А.Ю. Крайнов, К.М. Моисеева ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ Учебное пособие Томск – 2016 2 УДК 519.62 ББК 22.194 К78 К78 Крайнов А.Ю., Моисеева К.М. Численные методы решения краевых задач для обыкновенных дифференциальных уравнений : учеб. пособие. – Томск : STT, 2016. – 44 с. ISBN 978-5-93629-560-7 Представлены численные методы решения краевых задач для линейных и нелинейных обыкновенных дифференциальных урав- нений. Приведены алгоритмы реализации численных методов, примеры численного решения задач, а также примеры программ- ных реализаций. Учебное пособие составлено для студентов чет- вертого курса, изучающих «Численные методы в технической фи- зике» по программе подготовки бакалавров по направлениям 16.03.01 - Техническая физика, 24.03.03 – Баллистика и гидроаэро- динамика на физико-техническом факультете ТГУ. УДК 519.62 ББК 22.194 Учебное пособие разработано при финансовой поддержке Гранта Президента МК 5959.2016.8 и частично при финансовой поддержке Минобрнауки РФ в рамках государственного задания № 10.1329.2014/К. Рецензенты: Васенин И.М. – докт. физ.-мат. наук, профессор кафедры приклад- ной аэромеханики Томского государственного уни- верситета; Носков М.Д. – докт. физ.-мат. наук, профессор, заместитель руко- водителя по НР и МД СТИ НИЯУ МИФИ. ISBN 978-5-93629-560-7 © А.Ю. Крайнов, К.М. Моисеева, 2016 © Томский государственный уни- верситет, 2016 3 ОГЛАВЛЕНИЕ Введение…………………………………………………………... 4 1. Численные методы решения обыкновенных дифференциаль- ных уравнений……………………..……………………………… 4 1.1 Метод Эйлера………………………………….…………... 6 1.2 Методы Рунге-Кутта………………………………………. 9 2. Методы решения краевых задач для обыкновенных дифферен- циальных уравнений второго порядка…………………………... 11 2.1 Постановка краевой задачи для обыкновенных диффе- ренциальных уравнений второго порядка……………….. 11 2.2 Методы решения краевых задач для линейных обыкно- венных дифференциальных уравнений второго поряд- ка……………………………………………………………. 13 2.2.1 Метод стрельбы………………………………….. 13 2.2.2 Метод линейной интерполяции (метод хорд)…. 15 2.2.3 Метод суперпозиции…………………………….. 19 2.2.4 Метод дифференциальной прогонки…………… 22 2.3 Методы решения краевых задач для нелинейных обык- новенных дифференциальных уравнений второго поряд- ряд- ка…………………………………………………………… 25 2.3.1 Метод Ньютона…………………………………... 25 2.3.2 Метод квазилинеаризации………………………. 27 3 Решение краевых задач методом конечных разностей………… 28 Приложение……………………………………………………….. 34 Контрольные вопросы……………………………………………. 38 Индивидуальные задания………………………………………… 38 Основная литература …………………………………………….. 43 Дополнительная литература …………………………………….. 43 4 ВВЕДЕНИЕ Пособие посвящено изложению численных методов решения двухто- чечных задач, которые встречаются во всех областях науки и техники. Для таких задач граничные условия задаются в двух точках, а дифферен- циальные уравнения часто нелинейны, так что получить аналитическое решение не возможно и поэтому для получения решения необходимо использовать численные методы. Численные методы решения таких задач делятся на два типа – итера- ционные и неитерационные. Для линейных задач решение можно полу- чить без использования итераций, при решении нелинейных задач без итерационных методов не обойтись. Однако следует отметить, что суще- ствует несколько способов, позволяющих исключить итерации, в резуль- тате чего существенно сокращается время счета. В пособии изложены как итерационные методы – метод Эйлера, метод линейной интерполяции, метод конечных разностей, так и безитерационные методы – метод про- гонки, метод суперпозиции. 1. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ Математическое моделирование задач механики, физики и других отраслей науки и техники сводятся к дифференциальным уравнениям. В связи с этим решение дифференциальных уравнений является одной из важнейших математических задач. В вычислительной математике изуча- ются численные методы решения дифференциальных уравнений, кото- рые особенно эффективны в сочетании с использованием вычислитель- ной техники. Прежде чем обсуждать методы решения дифференциаль- ных уравнений, напомним некоторые сведения из курса дифференциаль- ных уравнений [1], и в особенности те, которые понадобятся при даль- нейшем изложении. Дифференциальные уравнения делятся на две категории в зависимо- сти от числа переменных: обыкновенные дифференциальные уравнения, содержащие одну независимую переменную, и уравнения с частными производными, содержащие несколько независимых переменных. Дан- ный раздел посвящен методам решения обыкновенных дифференциаль- ных уравнений. Обыкновенными дифференциальными уравнениями на- 5 зываются такие уравнения, которые содержат одну или несколько произ- водных от искомой функции y = y(x). Их можно записать в виде ( ) , , ,..., 0, n F x y y y (1.1) где x – независимая переменная. Наивысший порядок п входящей в уравнение (1.1) производной на- зывается порядком дифференциального уравнения. В частности, запишем уравнения первого и второго порядков: , , 0, , , , 0. F x y y F x y y y Линейным дифференциальным уравнением называется уравнение, линейное относительно искомой функции y(x) и ее производных. На- пример, 2 sin y x y x – линейное дифференциальное уравнение перво- го порядка. Решением дифференциального уравнения (1.1) называется всякая п раз дифференцируемая функция y = (x), которая после ее подстановки в исходное дифференциальное уравнение превращает его в тождество. Общее решение обыкновенного дифференциального уравнения n-го порядка (1.1) содержит п произвольных постоянных С 1 , С 2 ,… С n : 1 2 , , ,..., n y x C C C (1.2) где (1.2) является решением уравнения (1.1) при любых значениях С 1 , С 2 ,… С n , а любое решение уравнения (1.1) можно представить в виде (1.2) при некоторых С 1 , С 2 ,… С n Частное решение дифференциального уравнения получается из об- щего, если произвольным постоянным придать определенные значения. Для уравнения первого порядка общее решение зависит от одной произ- вольной постоянной: , y x C (1.3) Для заданного значения постоянной, С = С 0 , частное решение урав- нения (1.3) имеет вид: y = (x, С 0 ). Для выделения частного решения из общего нужно задавать столько дополнительных условий, сколько произвольных постоянных в общем решении, т. е. каков порядок уравнения. В качестве дополнительных ус- ловий могут задаваться значения искомой функции и ее производных при некоторых значениях независимой переменной, т. е. в некоторых точках. 6 Если дополнительные условия задаются в одной точке, t = t 0 , то та- кая задача называется задачей Коши. Дополнительные условия называ- ются начальными условиями, а точка, в которой они задаются, – началь- ной точкой. Для уравнения первого порядка дополнительное условие одно, поэтому в этом случае может быть сформулирована только задача Коши. Если же для уравнения порядка n > 1 дополнительные условия зада- ются в более чем одной точке, т. е. при разных значениях независимой переменной, то такая задача называется краевой. Сами дополнительные условия называются при этом граничными (или краевыми) условиями. На практике обычно граничные условия задаются в двух точках x = a и x = b, являющихся границами отрезка, на котором рассматривается диф- ференциальное уравнение. Методы решения обыкновенных дифференциальных уравнений можно разбить на следующие группы: графические, аналитические, при- ближенные и численные. Мы будем рассматривать численные методы решения дифференци- альных уравнений, которые в настоящее время являются основным инст- рументом при исследовании научно-технических задач, описываемых дифференциальными уравнениями. 1.1. Метод Эйлера Простейшим численным методом решения задачи Коши для обыкно- венного дифференциального уравнения является метод Эйлера. Рассмот- рим уравнение , y f x y (1.4) в окрестностях узлов , 0,1,.... i x x i и заменим в левой части произ- водную y' правой разностью. При этом значения функции y в узлах x i заменим значениями сеточной функции y (x i ) = y i : 1 , i i i i i y y f x y h (1.5) 7 Говорят, что уравнение (1.5) аппроксимирует исходное уравнение (1.4) с первым порядком, так как погрешность аппроксимации определя- ется, как О (h i ). Рассмотрим равномерную сетку, с узлами, равноотстоящими друг от друга, h i = x i+1 -x i = h = const, (i = 0, 1, …). Тогда из равенства (1.5) полу- чаем 1 , , 0,1,.... i i i i y y hf x y i (1.6) Заметим, что из уравнения (1.5) при 0 h следует , , i i i i i y x f x y x f x y Уравнение (1.6) позволяет приближенно определить значение функ- ции y в точке x i+1 при помощи разложения в ряд Тейлора с отбрасывани- ем членов второго и более высоких порядков. Другими словами, прира- щение функции полагается равным ее дифференциалу. Полагая i = 0, с помощью соотношения (1.6) можно определить зна- чение сеточной функции y при x = x 1 , y 1 : 1 0 0 0 , y y hf x y Требуемое здесь значение y 0 задано начальным условием y (x 0 ) = y 0 .Аналогично могут быть определены значения сеточной функ- ции в других узлах: 2 1 1 1 1 1 1 , , , , n n n n y y hf x y y y hf x y (1.7) Построенный алгоритм называется методом Эйлера. Разностная схе- ма этого метода представлена соотношениями (1.6), (1.7). Они имеют вид реккурентных формул, с помощью которых значение сеточной функции y i+1 в любом узле x i+1 вычисляется по ее значению y i в предыдущем узле x i . В связи с этим метод Эйлера относится к одношаговым методам. Рассмотрим вопрос о погрешности метода Эйлера. Погрешность δ i в точке x i равна разности между точным значением искомой функции y (x i ) 8 и значением сеточной функции y i : i i i y x y Подставим i i i y x y и 1 1 1 i i i y x y в (1.6). Имеем 1 1 , i i i i i i i y y x hf x y x (1.8) Разложим функцию f в ряд в окрестности точки , i i x y x : 2 , , , i i i i i i i i i i f f x y x f x y x O y f x y x O Используя полученное разложение, выразим 1 i из (1.8): 1 1 , i i i i i i i y x y x hf x y x hO Учитывая, что 2 1 , i i i i y x y x hf x y x O h , получаем 2 1 i i i O h hO (1.9) Таким образом, погрешность δ i+1 отличается от погрешности δ i на два слагаемых: O (h 2 ) есть следствие погрешности аппроксимации (1.5), a hO (δ i ) есть следствие неточности значения y i При нахождении y 1 начальное значение y 0 задается, как правило, точ- но: δ 0 = 0. Отсюда 2 2 2 2 2 1 2 1 , 2 O h O h hO h O h h O h Отсюда видно, что последнее слагаемое в (1.9) можно отбросить. Уравнение примет вид: 2 1 , i i O h т. е. погрешность на каждом шаге увеличивается на величину O (h 2 ). При нахождении решения в точке x n , отстоящей на конечном рас- стоянии L от точки x 0 , погрешность состоит из n слагаемых O (h 2 ). Если учесть, что h = L/n, то для погрешности δ n получаем окончательное вы- ражение: 9 2 2 n L nO h O h O h h (1.10) Отсюда следует, что метод Эйлера имеет первый порядок точности. 1.2. Методы Рунге-Кутта Рассмотренный метод Эйлера (1.5) является частным случаем мето- дов первого и второго порядков, относящихся к классу методов Рунге- Кутта. Эти методы применяют для вычисления значения y i+1 , (i = 0, 1, …) через y i и f (x, y), определенных при некоторых специальным обра- зом выбираемых значениях 1 , i i x x x и y (x). На их основе могут быть построены разностные схемы разного порядка точности. Одним из наиболее часто используемых методов является метод Рунге-Кутта чет- вертого порядка. Алгоритм метода записывается в виде 1 0 1 2 3 1 2 2 , 0,1,.., 6 i i y y k k k k i 0 , , i i k hf x y 0 1 , , 2 2 i i k h k hf x y (1.11) 1 2 3 2 , , 2 2 , i i i i k h k hf x y k hf x h y k Данный метод требует на каждом шаге четырехкратного вычисления правой части f (x, y) уравнения (1.4). Суммарная погрешность этого ме- тода есть величина O (h 4 ). Метод Рунге-Кутта (1.11) требует большего объема вычислений по сравнению с методом Эйлера, однако это окупается повышенной точно- стью, что дает возможность проводить счет с большим шагом. Другими словами, для получения результатов с одинаковой точностью в методе Эйлера потребуется значительно меньший шаг, чем в методе Рунге-Кутта (1.11). 10 Дополнительного повышения точности расчетов можно добиться, повысив порядок метода за счет увеличения количества операций на один шаг разностной сетки. Алгоритм расчета уравнения (1.4) для метода Рунге-Кутта-Мерсона 5-го порядка представлен уравнениями (1.12). 1 0 3 4 0 0 1 0 1 2 0 2 3 0 2 4 3 1 4 , 0,1,.., 6 , , , , 3 3 , , 3 6 6 3 , , 2 8 8 3 , 2 2 2 i i i i i i i i i i i i y y k k k i k hf x y k h k hf x y k k h k hf x y k k h k hf x y k k k hf x h y k (1.12) Суммарная погрешность метода равна O (h 5 ). В случае длительных расчетов, требующих большого количества вы- числений, можно сократить время расчета за счет использования пере- менного шага разностной сетки h. При использовании переменного шага в расчетах контролируется разность между соседними значениями сеточ- ной функции Δ = (y i - y i+1 ). В случае превышения Δ заданной погрешно- сти шаг сетки уменьшается в два раза, при малых значениях Δ шаг уве- личивается в два раза. Условия автоматического выбора шага сетки пред- ставлены уравнениями (1.13). 1 5 2 , ; 32 0.5 , 5 ; 5 , 5. 32 i i i i h h h h (1.12) Условия (1.12) позволяют существенно сократить время расчета за- дачи, сохранив точность решения. 11 В таблице 1.1 приведены результаты расчета дифференциального уравнения 3 exp 2 y y x , 0, 1 . x точное решение которого имеет вид: exp 2 y x x В таблице представлены результаты расчета на сетке, состоящей из 5 равноотстоящих узлов. Для сравнения решение выполнено методами Эй- лера, Рунге-Кутта 4-го порядка и Рунге-Кутта-Мерсона 5-го порядка. Таблица 1.1 |