Н.И. Ионкин - Численные методы (1163659), страница 20
Текст из файла (страница 20)
В дальнейшем точное решение задачи (1) будем обозначать буквой , а приближенное решение — буквой .154Глава V . Методы решения обыкновенных дифференциальных уравнений и систем ОДУПожалуй, наиболее простым методом решения задачи (3) является разностная схема (метод) Эйлера. Несмотря на всю простоту схемы,метод Эйлера часто используется на практике.Метод Эйлера представляет собой разностное уравнение:⎧⎨ +1 − = ( , ), ∈ (4)⎩ = , ∈ Z .Пример 1.00+Эта схема является явной, так как значение численного решения в каждойследующей точке +1 , ∈ Z+ находится по явной формуле:+1 = + , ∈ Z+ .Введем погрешность разностной схемы (4): = − , ∈ Z+ .Если мы получим оценку ‖ ‖ 6 , где константа не зависит от , тобудем говорить, что решение разностной схемы Эйлера сходится к решениюисходного уравнения (3) с первым порядком точности по .По определению, погрешностью аппроксимации разностной схемы (4) нарешении исходной задачи (3) (или невязкой) называется сеточная функция:+1 − + ( , ).в ряд Тейлора в узле :(︀ )︀+1 = + ′ + O 2 .
= −Разложим +1(5)Тогда(︀ )︀+1 − = ′ + O .Подставляя последнее выражение в равенство (5) получим:(︀ )︀ = −′ + ( , ) + O .Воспользовавшись тем, что −′ + ( , ) = 0, так как выполнено исходноеуравнение (3), окончательно получаем:(︀ )︀ = O .Эта оценка означает, что разностная схема (4) аппроксимирует исходную задачу с первым порядком по .
В дальнейшем покажем, что рассмотреннаяразностная схема будет сходиться к решению задачи (3) с первым порядкомпо .§1. Постановка задачи Коши и численные методы ее решения155Рассмотрим теперь двухэтапную разностную схему Рунге–Кутта(схему «предиктор–корректор»). В данной разностной схеме вводятся дополнительные точки, так называемые полуцелые слои:Пример 2.+ 1 = + 0.5, ∈ Z+ .2Нахождение численного решения данной разностной схемы в каждой следующей точке +1 производится в два этапа: −→ + 1 −→ +1 .2Выполним первый этап («предиктор») по схеме Эйлера:+ 1 − 20.5= ( , ).(6)Рассмотрим второй этап («корректор»):+1 − = (+ 1 , + 1 ),22(7)где 0 = 0 , ∈ Z+ .
Из уравнения (7) с учетом (6) следует+1 = + (+ 1 , + 0.5 ( , )).2(8)Далее будет показано, что эта двухэтапная разностная схема имеет второйпорядок точности по .Двухшаговая разностная схема.В приведенных выше примерах были рассмотрены одношаговые методы,в которых для вычисления нового значения +1 было использовано однопредыдущее значение . При этом в методе Рунге–Кутта значения функции (, ) вычислялись не только в точках сетки , но и во внутреннихточках отрезка [ , +1 ]. Многошаговые разностные методы позволяют вычислить +1 , используя значения решения , −1 , . .
. , − и правой части , −1 , . . . , − в нескольких предыдущих точках , −1 , . . . , − сетки . Значения правой части в промежуточных точках не используются.Приведем пример многошагового метода. Для аппроксимацииуравнения (1) в точке = +1 будем использовать три точки сетки, −1 =( − 1) , = , +1 = ( + 1) , а правую часть уравнения будем вычислятьтолько в точках −1 , .Итак, рассмотрим разностное уравнениеПример 3.+1 − = 1 −1 + 2 (9)156Глава V . Методы решения обыкновенных дифференциальных уравнений и систем ОДУи подберем коэффициенты 1 и 2 так, чтобы погрешность аппроксимациина решении (1)+1 − +1 = −+ 1 −1 + 2 (10)была величиной O( 2 ). Разложим функции, входящие в выражение для +1по формуле Тейлора в окрестности точки +1 :+1 − = ′+1 − ′′+1 + O( 2 ),2(︂)︂+1 ( , ) = (+1 − , (+1 − )) = +1 − , +1 − + O( 2 ) == +1 −+1+1 +1+1+1−+O( 2 ) = +1 −− +1+O( 2 ) =+1+1= +1 − ′′+1 + O( 2 ), где ′′+1 =+ +1.
(−1 , −1 ) = +1 − 2 ′′+1 + O( 2 ).Подставляя эти разложения в выражение для погрешности аппроксимации (9),получим+1 = −′+1 + (1 + 2 )+1 + ′′+1 (0.5 − 2 − 21 ) + O( 2 ).Для того, чтобы +1 была величиной O( 2 ), достаточно потребовать1 + 2 = 1,0.5 − 2 − 21 = 0.Второе равенство будет выполнено если, например, положить 1 = −0.5, 2 =1.5.
Таким образом, приходим к следующей двухшаговой разностной схеме,имеющей второй порядок погрешности аппроксимации31+1 − = − −1 ,22 = 1, 2, . . .(11)Чтобы начать счет по схеме (11), надо знать два начальных значения, 0 и1 . Ясно, что 0 = (0).Величину 1 можно вычислить с помощью какого-либо одношагового метода. Можно также использовать разложение( ) = (0) + и положить 1 = 0 + 0 .(0)+ . . . = (0) + (0, (0)) + .
. .§1. Постановка задачи Коши и численные методы ее решения157Оценка погрешности общего двухэтапного метода Рунге–Кутта.Рассмотрим общий вид двухэтапного метода Рунге–Кутта для уравнения (3):⎧+1 − ⎪= 1 1 + 2 2 , ∈ Z+⎪⎨(12)0 = 0 ,⎪⎪⎩1 = ( , ), 2 = ( + 2 , + 21 ( , )),где 1 , 2 , 2 , 21 ∈ R — некоторые числа, от выбора которых зависит как погрешность аппроксимации, так и точность численного решения.Подставим значения 1 и 2 в первое уравнение системы (12):+1 − = 1 ( , ) + 2 ( + 2 , + 21 ( , )).Рассмотрим погрешность аппроксимации разностной схемы (12) на решениизадачи (3): = −+1 − + 1 ( , ) + 2 ( + 2 , + 21 ( , )) .(13)Разложим +1 в ряд Тейлора в окрестности точки :(︀ )︀+1 − = ′ + ′′ + O 2 .2Далее разложим ( + 2 , + 21 ) в окрестности точки ( , ): ( + 2 , + 21 ( , )) = ( , ) + 2 (︀ )︀+ 21 + O 2 .Заметим, что в силу уравнения (3)(︂ )︂ ′′ ==+=+.
Тогда погрешность аппроксимации принимает вид:(︂)︂(︀ )︀′ = − − 0.5+ + O 2 + 1 ( , )+(︂)︂(︀ )︀+2 ( , ) + 2+ 21 + O 2 .Сгруппируем слагаемые следующим образом: = −′ + (1 + 2 ) ( , )+158Глава V . Методы решения обыкновенных дифференциальных уравнений и систем ОДУ(︂)︂(︀ )︀+ (2 2 − 0.5)+ O 2 .+ (21 2 − 0.5)Чтобы получить оценку погрешности аппроксимации со вторым порядкомпо , необходимо избавиться от слагаемых, содержащих в первой степени.Для этого потребуем выполнение следующих условий:1.
1 + 2 = 1 (это условие называется условием аппроксимации).2. 2 2 = 2 21 = 0.5.Тогда погрешность аппроксимации этого метода имеет второй порядок малости по :(︀ )︀ = O 2 .В случае выполнения только первого условия погрешность аппроксимации имеет первый порядок по .Замечание.В записи общего метода Рунге–Кутта используется несколько параметров, что обеспечивает широту класса описываемых этим методом разностных схем.
Однако в двухэтапном методе Рунге–Кутта не имеет смысла пользоваться двумя параметрами 1 и 2 , так наилучшая оценка погрешностиметода достигается при 1 + 2 = 1, поэтому, как правило, в двухэтапномметоде Рунге–Кутта выбирают один параметр = 2 , тогда 1 = 1 − . Еслиположить = 2 = 12 , то двухэтапный метод Рунге–Кутта запишется, какоднопараметрическое по семейство разностных схем вида:+1 − = (1 − )1 + 2 ,где 1 = ( , ), 2 = ( + , + ( , )).Рассмотрим примеры разностных схем, являющихся частными случаями общего двухэтапного метода Рунге–Кутта.Пример.1.
При = 1, = 2 = 0.5, = 21 = 0.5 мы получим схему Рунге–Кутта«предиктор–корректор» (8),мы уже рассматривали. Погреш(︀ 2которую)︀ность этой схемы равна O .2. Если положить = 0.5, = 1, = 1, то мы получим симметричнуюразностную схему:⎧⎨ +1 − = 0.5 ( ( , ) + ( + , + )) , ∈ Z +(14)⎩ = .00Эта разностная схема является очень эффективной, имеет второй порядок точности по и часто используется на практике.§1.
Постановка задачи Коши и численные методы ее решения159Оценка точности на примере двухэтапного метода Рунге–Кутта.Выпишем еще раз разностную схему, описывающую общий двухэтапный метод Рунге–Кутта:⎧⎨ +1 − = (1 − ) ( , ) + ( + , + ( , )), ∈ Z +⎩ = .00Введем погрешность разностной схемы (15):(15) = − , ∈ Z.Подставим выражение для погрешности в разностную схему (15) и получимзадачу для нахождения функции :⎧⎨ +1 − = (1 − ) + ( + , + ) − +1 − , ∈ Z+⎩ = 0,0(16)где = ( , ), = + .Для доказательства сходимости решения разностной схемы (15) к решению исходной задачи Коши (3) достаточно показать, чтоlim | | = 0.→∞Покажем, что | | 6 | |, ∈ Z+ , где константа не зависит от шага , — погрешность аппроксимации на решении исходной задачи (3):+1 − + (1 − ) ( , ) + ( + , + ( , )).Перепишем задачу (16) в эквивалентном виде, сформировав погрешность аппроксимации путем добавления недостающих слагаемых: = −+1 − +1 − =−+ (1 − ) ( , )+ ( + , + ( , ))++(1 − )( ( , )− ( , ))+(︀)︀+ ( + , + ( , ))− ( + , + ( , )) =(2)= + (1) + ,где(1) = (1 − )( ( , )− ( , )),(︀)︀(2) = ( + , + ( , ))− ( + , + ( , )) .(17)160Глава V .
Методы решения обыкновенных дифференциальных уравнений и систем ОДУПусть функция (, ) удовлетворяет условию Липшица по второму аргументу с константой > 0:| (, ) − (, )| 6 | − |,(, ), (, ) ∈ .Требование липшицевости функции (, ) естественно, таккак является условием того, что решение исходной задачи (3) существуети единственно.Замечание.Как правило, на практике выбирают 0 6 6 1, > 0. Воспользуемся(1)(2)этими условиями и оценим выражения и :|(1) | = (1 − )| ( , ) − ( , )| 6 (1 − )| − | = (1 − )| |,|(2) | 6 | + ( , ) − − ( , )| 6(︀)︀6 | − | + | ( , ) − ( , )| 66 (| | + | |) = (1 + )| |.(1)(2)Пусть 6 0.5.