ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Н.Н. Гудович
ИЗБРАННЫЕ ВОПРОСЫ КУРСА ЧИСЛЕННЫХ МЕТОДОВ
Выпуск VII Одношаговые мет...
11 downloads
482 Views
372KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Н.Н. Гудович
ИЗБРАННЫЕ ВОПРОСЫ КУРСА ЧИСЛЕННЫХ МЕТОДОВ
Выпуск VII Одношаговые методы решения задачи Коши
Учебное пособие для вузов
ВОРОНЕЖ 2007
2
Утверждено научно-методическим советом факультета прикладной математики, информатики и механики, протокол № 4 от 26.12.2006 г.
Учебное пособие разработано на кафедре вычислительной математики факультета прикладной математики, информатики и механики Воронежского государственного университета. Рекомендовано для студентов 3-го, 4-го курсов факультета прикладной математики, информатики и механики. Для специальности: 010200 (510200) – Прикладная математика и информатика
3
§1. Явный метод Эйлера В настоящем параграфе излагается универсальный метод приближенного решения задачи Коши
y ′( x ) = f ( x , y( x )), x0 ≤ x ≤ x0 + X ,
(1)
y( x0 ) = ϕ .
(2)
Напомним, что под решением такой задачи понимается функция y(x), заданная на отрезке [x0, x0 + X] (X > 0, X – длина отрезка интегрирования), обладающая в каждой точке этого отрезка производной, удовлетворяющая в каждой точке отрезка уравнению (1), а при x = x0 – дополнительному («начальному») условию (2). Существование и единственность такого решения мы, естественно, предполагаем. Кроме того, чтобы гарантировать существование и приближенного решения, условимся считать, что правая часть f(x,y) уравнения (1) определена в любой точке ( x∗ , y∗ ) полосы, заданной на плоскости переменных x, y неравенствами x0 ≤ x ≤ x0+X (рис. 1).
Зададимся натуральным N и разделим (рис. 2) отрезок интегрирования [x0, x0 + X] на N равных частей длины h= X /N (3) точками xi = x0 + ih , i = 0 , 1, K , N . (4) Дискретное множество точек (4) назовем сеткой на отрезке [x0, x0 + X], а сами точки xi – узлами этой сетки. Расстояние между узлами сетки с соседними номерами равно длине (3) частичного отрезка разбиения [xi, xi+1]; эта величина называется шагом сетки (рис. 3). При неограниченном увеличении N шаг сетки стремится к нулю: h→0 при N → ∞, (5) и сетка становится все более и более густой.
4
Наша цель – вывести систему уравнений для приближенного отыскания значений y(xi) искомого решения y в узлах сетки. Идея такого вывода – замена в дифференциальном уравнении (1), записанном в узле сетки xi : y ′( xi ) = f ( xi , y( xi )) (6 ) производной y ′( xi ) ее простейшим сеточным приближением y( xi + h ) − y( xi ) y( xi + 1 ) − y( xi ) = . (7 ) h h Формальная схема рассуждений такова. Пусть ωi – погрешность сеточного приближения (7): y( xi + 1 ) − y( xi ) = y ′( xi ) + ω i . h Выражая отсюда производную y′(xi): y( xi + 1 ) − y( xi ) y ′( xi ) = −ω i h и подставляя результат в левую часть равенства (6), получим соотношение y( xi + 1 ) − y( xi ) = f ( xi , y( xi )) + ω i , (8) h которому удовлетворяют искомые величины y(xi), y(xi+1). Заметим, что уравнения (8) могут быть записаны для всех i = 0, 1,…, N −1, так что равенства (8) образуют систему из N уравнений (при i = N равенство (8) написать нельзя, поскольку при таком i узел xi + 1 выйдет за пределы сетки). К сожалению, входящие в правую часть уравнений (8) погрешности ωi нам неизвестны, поэтому непосредственно воспользоваться системой (8) для отыскания величин y(xi), i = 1, 2, … , N (y(x0) известно из начального условия) нельзя. Однако, так как при малых h (а именно этот случай и будет рассматриваться в дальнейшем) указанные погрешности малы, их в уравнениях (8) естественно отбросить. Тогда, меняя обозначения для неизвестных с y(xi) на yi (поскольку изменение правых частей уравнений (8) меняет, естественно, их решение), приходим к системе уравнений: yi + 1 − y i = f ( xi , yi ), i = 0 , 1, K , N − 1. (9) h Добавляя к этой системе равенство (10) y0 = φ, получим замкнутую систему скалярных уравнений для отыскания величин yi . Последовательность y0, y1, … , yN
5
значений неизвестных yi, найденных из системы скалярных уравнений (9) – (10), называют сеточным решением, а общий член yi этой последовательности – значением сеточного решения в узле xi. В начальном узле x0 сеточное решение совпадает с решением дифференциальной задачи: y0 = φ = y(x0), а в остальных узлах сетки, вообще говоря, является лишь приближением к нему: yi ≈ y(xi), i = 1, 2, … , N. Лемма 1. Система (9)–(10) имеет (и притом единственное) решение. Доказательство. Перепишем уравнение (9) в виде:
yi + 1 = yi + hf ( xi , yi ),
i = 0 , 1, K , N − 1.
( 11 )
В силу сделанного предположения об области определения функции f правая часть равенства (11) определена при любом вещественном yi , а потому это равенство представляет собой формулу, позволяющую вычислить сеточное решение в узле xi+1 по сеточному решению в предыдущем узле xi . А так как в силу (10) сеточное решение в узле x0 известно, последовательное применение формулы (11) позволяет вычислить друг за другом (и притом однозначно) все неизвестные y1, y2, …, yN . Замечание 2. Описанный только что алгоритм нахождения сеточного решения
⎧ y0 − задано , ⎨ ⎩ yi + 1 = yi + hf ( xi , yi ),
i = 0 , 1, K , N − 1
( 12 )
называется явным методом Эйлера по имени швейцарского математика Леонарда Эйлера (1707–1783), предложившего этот алгоритм в 1768 г. Наличие эпитета «явный» в этом наименовании связано с тем, что уравнение (9) может быть разрешено относительно yi+1 , в результате чего получается явная формула (11) для вычисления сеточного решения yi+1 по ранее вычисленному сеточному решению yi в предыдущем узле xi . Для дальнейшего полезно дать алгоритму (11) геометрическую интерпретацию. Это потребует от нас дополнительного предположения о множестве решений дифференциального уравнения (1). А именно, мы предположим, что через любую внутреннюю точку (x*, y*) полосы x0 ≤ x ≤ x0 + +X (рис. 1) проходит интегральная кривая этого уравнения или, другими словами, что при любом x* из открытого интервала (x0, x0 + X) и любом вещественном y* локально разрешима задача Коши:
⎧ y ′( x ) = f ( x , y( x )), ⎨ ⎩ y( x∗ ) = y∗
6
(как известно из теории обыкновенных дифференциальных уравнений [1] для этого достаточно предположить непрерывность функции f по совокупности переменных x, y в любой точке полосы). Замечание 3. С геометрической точки зрения суть явного метода Эйлера состоит в замене на интервале [xi, xi+1] графика искомого решения y отрезком касательной к некоторому близкому решению того же дифференциального уравнения. Если бы точное значение y(xi) решения y в узле xi было бы известно, то в качестве такого отрезка следовало бы взять отрезок касательной, проведенной к самому решению y в точке xi (рис. 4).
Однако вместо величины y(xi) мы знаем лишь ее приближенное значение yi и потому вынуждены проводить касательную не через точку (xi, y(xi)) к графику искомого решения y, а через точку (xi, yi) к вспомогательному решению y(i) того же дифференциального уравнения, график которого проходит через упомянутую точку (рис. 5). Покажем, что ордината точки пересечения этой касательной с прямой, проходящей через узел xi+1 параллельно оси ординат, в точности равна величине yi+1, вычисленной по формуле (11). В самом деле, пусть x – абсцисса произвольной точки указанной касательной, ~y ( x) − ордината этой точки, а αi – угол, который образует эта касательная с осью x (рис. 5). Имеем: ~y ( x ) = ( tgα )( x − x ) + y ( 13 ) i i i (мы выписали уравнение прямой с угловым коэффициентом k = tgαi, проходящей через точку (xi, yi)). Поскольку прямая (13) касается графика функции y(i) в точке с абсциссой x=xi , в силу геометрического смысла производной имеем: а так как y(i)
tgα i = ( y ( i ) )' ( xi ), есть решение задачи Коши ⎧⎪( y ( i ) )′( x ) = f ( x , y ( i ) ( x )), ⎨ (i ) ⎪⎩ y ( xi ) = yi ,
для величины (14) получаем
( 14 )
( 15 ) ( 16 )
7
tgα i = f ( xi , y ( i ) ( xi )) = f ( xi , yi ). Поэтому уравнение касательной (13) фактически имеет вид: ~y ( x ) = f ( x , y )( x − x ) + y . ( 17 ) i i i i Чтобы найти ординату точки пересечения этой касательной с прямой, проходящей через узел xi+1 параллельно оси ординат, в выражении (17) следует положить x=xi+1 . В результате этой подстановки получится величина ~y ( x ) = f ( x , y )( x − x ) + y , i +1 i i i +1 i i равная ввиду соотношения xi+1 – xi =h величине yi+1 из формулы (11). Вывод 4. Для нахождения сеточного решения в узле xi+1 следует через точку плоскости (xi, yi) провести касательную к графику решения y(i) вспомогательной задачи Коши (15)–(16) и взять в качестве сеточного решения yi+1 ординату точки пересечения этой касательной с прямой, проходящей через узел xi+1 параллельно оси ординат. Замечание 5. На первом шаге алгоритма, то есть при отыскании сеточного решения y1 в узле x1 по заданному сеточному решению y0 в узле x0, касательная фактически проводится к графику искомого решения y (рис. 6). На всех же остальных шагах алгоритма касательные, вообще говоря, проводятся к другим решениям уравнения (1), а именно – к решениям вспомогательных задач Коши (15)–(16) для того же дифференциального уравнения. Замечание 6. Если отложить последовательно на чертеже отрезки упомянутых касательных, то получится ломаная, которую естественно рассматривать как приближение к графику искомого решения y (рис. 6). По этой причине явный метод Эйлера называют также явным методом ломаных Эйлера.
Замечание 7. Если вместо сеточного приближения (7) для замены производной y′(xi) в равенстве (6) воспользоваться другим сеточным приближением:
y( xi − h ) − y( xi ) y( xi ) − y( xi − 1 ) = , −h h то получим другую систему уравнений:
8
yi − yi − 1 = f ( xi , yi ) , i = 1,2 ,K , N ( 18 ) h y0 = ϕ ( 19 ) для отыскания сеточного решения. Чтобы выявить принципиальное различие между системами (9)–(10) и (18)–(19), перепишем с помощью сдвига индекса систему (18) в следующем эквивалентном виде: yi + 1 − yi = f ( xi + 1 , yi + 1 ) , i = 0 , 1, K , N − 1 ( 20 ) h и сравним ее с системой (9). Видим, что неизвестное yi+1 входит (и притом линейно) лишь в левую часть уравнения (9), что дает возможность явно выразить его через сеточное решение yi в предыдущем узле. В уравнение же (20) неизвестное yi+1 входит дважды: линейно в левую часть и под знаком нелинейной функции f в правую часть. Поэтому выразить здесь явно сеточное решение yi+1 через сеточное решение в предыдущем узле, вообще говоря, не удаётся. Для нахождения сеточного решения в следующем узле по ранее найденному сеточному решению в предыдущем узле в последнем случае приходится на каждом шаге алгоритма решать нелинейное скалярное уравнение. Указанный способ приближенного решения задачи Коши (1)–(2), записанный в виде алгоритма ⎧ y0 − задано , ⎨ ⎩ yi = yi −1 + hf ( xi , yi ), i = 1, 2 , K , N ,
( 21 )
называется неявным методом Эйлера. Выясним геометрический смысл неявного метода Эйлера. Пусть yi-1, yi – сеточные решения в узлах xi-1, xi , найденные неявным методом Эйлера. Рассмотрим (рис. 7) график решения дифференциального уравнения, проходящий через точку xi, yi, то есть график решения задачи Коши:
( y ( i ) )' ( x ) = f ( x , y ( i ) ( x )), y ( i ) ( xi ) = yi . Касательной к графику этого решения при x = xi является прямая, проходящая через точку (xi , yi), с угловым коэффициентом k=(y(i))′(xi )=f(xi ,y(i)(xi ))=f(xi ,yi ).
9
Но именно такой является прямая, соединяющая точки (xi-1, yi-1 ), (xi , yi ): через точку (xi, yi ) она проходит по построению, а её угловой коэффициент, как видно из рис. 7 и формулы (21), равен той же величине: y − yi −1 ( yi −1 + hf ( xi , yi )) − yi −1 k= i = = f ( xi , yi ). h h Этот факт приводит к следующей геометрической интерпретации i-го шага неявного метода Эйлера. Вывод 8. Для нахождения сеточного решения yi по ранее вычисленному решению yi-1 следует провести геометрические построения: а) проводим через узел xi прямую l(i), параллельную оси ординат; б) задаем на этой прямой поле направлений, откладывая в каждой точке отрезок касательной к проходящему через эту точку графику решения дифференциального уравнения; в) проводим через точку (xi-1, yi-1 ) прямую l с таким расчетом, чтобы она пересекала прямую l(i), совпадая с отрезком касательной в точке пересечения. Ордината полученной точки пересечения дает сеточное решение yi , а отрезок прямой l между точкой (xi-1, yi-1 ) и точкой пересечения есть звено ломаной, приближающее на отрезке [xi-1 , xi ] график искомого решения задачи Коши (1)–(2) (рис. 8).
Замечание 9. Описанные методы Эйлера применимы не только в случае задачи Коши для одного обыкновенного дифференциального уравнения первого порядка, но и в случае задачи Коши для системы из n таких уравнений: ( y k )′( x ) = f k ( x , y1 ( x ), y 2 ( x ),K , y n ( x )), y k ( x0 ) = ϕ k , k = 1, 2 , K , n.
x0 ≤ x ≤ x0 + X , k = 1, 2 , K , n ,
10
Явный метод Эйлера задается в этом случае соотношениями:
⎧ y1,0 , y 2 ,0 , K , yn ,0 − заданы, ⎨ ⎩ y k ,i + 1 = y k ,i + hf k ( xi , y1,i , y 2 ,i ,K , y n ,i ), k = 1, 2 , K , n , i = 0 , 1, K , N − 1, а неявный метод Эйлера – соотношениями:
⎧ y1,0 , y 2 ,0 ,K , y n ,0 − заданы, ⎨ ⎩ y k ,i = y k ,i −1 + hf ( xi , y1,i , y 2 ,i ,K y n ,i ), k = 1, 2 , K , n , i = 1, 2 , K , N , где через yk,i обозначено сеточное приближение для значения k-й неизвестной функции yk в узле xi . Впрочем, эти расчетные формулы можно было бы и не выписывать, а использовать формулы (12), (21), понимая фигурирующие в них обозначения в векторном смысле. Упражнение 10. Выписать расчетные формулы явного и неявного методов Эйлера в случае задачи Коши для системы y1 ' ( x ) = ( y1 ( x ))2 + ( y 2 ( x ))2 ,
y 2 ' ( x ) = ( y1 ( x ))( y 2 ( x )), 0 ≤ x ≤ 1, y1 ( 0 ) = y 2 ( 0 ) = 1. Решение. Расчетные формулы явного метода Эйлера имеют вид: = y 2 ,0 = 1,
⎧ y1,0 ⎪ 2 2 ( 22 ) ⎨ y1,i + 1 = y1,i + h(( y1,i ) + ( y 2 ,i ) ), i = 0 , 1, K , N − 1, ⎪y i = 0 ,1, K , N − 1. ( 23 ) ⎩ 2 ,i + 1 = y 2 ,i + h( y1,i )( y 2 ,i ), Вычисления по этим расчетным формулам проводятся в цикле по i: после того как сеточные решения y1,i, y2,i в узле xi найдены, с помощью пары расчетных формул (22), (23), отвечающей этому значению i, находятся сеточные решения y1,i+1, y2,i+1 в следующем узле. В случае неявного метода Эйлера имеем расчетные формулы: ⎧ y1,0 = y 2 ,0 = 1, ⎪ 2 2 ⎨ y1,i = y1,i − 1 + h(( y1,i ) + ( y 2 ,i ) ), i = 1, 2 , K , N , ⎪y = y i = 1,2 , K , N . 2 ,i − 1 + h( y1,i )( y 2 ,i ), ⎩ 2 ,i
( 24 ) ( 25 )
Они также используются в цикле по i: после того как найдены сеточные решения y1,i-1, y2,i-1 , пара формул (24), (25), отвечающая этому значению i, рассматривается как система двух скалярных уравнений относительно неизвестных y1,i , y2,i и относительно этих неизвестных решается. Замечание 11. На основании анализа проделанного упражнения читатель мог заметить, что каждый шаг неявного метода Эйлера требует, вообще говоря, большего объема вычислительной работы, чем шаг явного метода, поскольку в
11
неявном случае вместо вычислений по явным формулам приходится применять сложную процедуру решения скалярной системы уравнений, и сделать вывод о нецелесообразности использования неявного метода. Однако такой вывод был бы поспешным. Дело в том, что при приближенном нахождении решения задачи Коши с требуемой точностью общий объем вычислительной работы определяется не только трудоемкостью проведения шага алгоритма, но и количеством этих шагов. Имеется важный класс систем («жесткие» системы дифференциальных уравнений), у которых ввиду их специфики требуемая точность сеточного решения при использовании явного метода достигается лишь при очень малом шаге сетки, тогда как при использовании неявного метода требуемая близость приближенного и точного решений имеет место при гораздо более крупных шагах. В этой ситуации неявный метод может потребовать меньшего суммарного количества арифметических операций за счет меньшего количества шагов.
§ 2. Сходимость явного метода Эйлера Пусть y(xi ) – решение задачи Коши (1)–(2) в узле xi , а yi – сеточное решение в этом узле, найденное явным методом Эйлера. Величина
ε i = y( xi ) − yi , i = 0 , 1, K , N
( 26 )
есть погрешность сеточного решения в узле xi , а величина
ε i = y( xi ) − yi , i = 0 , 1, K , N
( 27 )
есть абсолютная погрешность сеточного решения в этом узле. Возникает вопрос, стремятся ли величины (27) к нулю при стремлении шага сетки к нулю:
max
i = 0 , 1, K , N
εi → 0
при
h → 0,
( 28 )
то есть стремятся ли они к нулю при неограниченном измельчении сетки? При изучении этого вопроса мы наложим дополнительные условия на правую часть f уравнения (1), которые обеспечат существование, единственность и гладкость на отрезке [x0 , x0 +X] нужных нам решений этого уравнения. А именно, будем считать, что функция f не только непрерывна по совокупности переменных в полосе, заданной на плоскости переменных x, y неравенствами x0 ≤ x ≤ x0 + X , но и ограничена в этой полосе:
f ( x, y ) ≤ M 1
для любого
x ∈ [x0 , x0 + X ] и любого
y ∈ R.
( 29 )
12
Кроме того, те же требования непрерывности по совокупности переменных мы наложим и на частные производные правой части f, предположив также и ограниченность этих производных в полосе:
f x ' ( x, y ) ≤ M 2
для любого
x ∈ [x0 , x0 + X ] и любого
y ∈ R,
(30 )
f y ' ( x, y ) ≤ M 3
для любого
x ∈ [x0 , x0 + X ] и любого
y ∈ R.
(31)
Константы M1 , M2 , M3 в формулах (29)–(31) – конечные вещественные числа, одни и те же для всех точек полосы. Пусть yi, yi+1 – сеточные решения в узлах xi, xi+1, найденные явным методом Эйлера, а y(i) – вспомогательное решение дифференциального уравнения (1), график которого проходит (рис. 9) через точку (xi , yi ) (т.е. решение задачи Коши (15)–(16)).
Вводя в рассмотрение значение y(i)(xi+1) вспомогательного решения y(i) в узле xi+1, выражение для погрешности сеточного решения в этом узле ε i + 1 = y ( xi + 1 ) − yi + 1 можно представить в виде: ε i + 1 = ( y ( xi + 1 ) − y (i ) ( xi + 1 ) + ( y (i ) ( xi + 1 ) − yi + 1 ), т.е. в виде суммы двух слагаемых:
ε i + 1 = ε i(+11) + ε i(+21) ,
( 32 )
где первое слагаемое имеет вид:
ε i(+11) = y( xi + 1 ) − y ( i ) ( xi + 1 ) ,
( 33 )
ε i(+21) = y ( i ) ( xi + 1 ) − yi + 1 .
( 34 )
а второе – вид: Поясним смысл слагаемых (33), (34). С геометрической точки зрения рассматриваемый шаг алгоритма явного на метода Эйлера состоит (рис. 9) в замене графика искомого решения y отрезке [xi, xi+1] отрезком касательной к графику вспомогательного решения y(i). Этот процесс можно считать осуществляемым в два этапа. На первом этапе
13
график искомого решения y заменяется графиком (i) вспомогательного решения y , в результате чего искомое значение y(xi+1) заменяется его вспомогательным приближением y(i)(xi+1) с погрешностью (33). На втором этапе график вспомогательного решения y(i) в свою очередь заменяем более простой линией – касательной к этому графику, в результате чего приближение y(i)(xi+!) заменяется приближением yi+1 с добавочной погрешностью (34). (34), характеризующее погрешность замены графика Слагаемое вспомогательного решения касательной к нему, представляет собой ту дополнительную погрешность, которая вносится именно на этом (i+1)-м шаге алгоритма; поэтому она называется локальной погрешностью, допущенной нами на (i + 1)-м шаге, или, короче, локальной погрешностью (i+1)-го шага. Слагаемое же (33) имеет другое происхождение. Оно возникает из-за того, что сеточное решение yi в предыдущем узле xi отличается от точного решения y(xi) (если бы эти значения совпадали, то вспомогательное решение y(i) по теореме единственности решения совпало бы с искомым решением y, и слагаемое (33) было бы равно нулю). А так как отличие величин yi, y(xi) порождено в конечном итоге локальными погрешностями, допущенными на предшествующих шагах алгоритма, погрешность (33) естественно назвать накопленной погрешностью (i + 1)-го шага. Замечание 12. На первом шаге алгоритма, т.е. при нахождении сеточного решения y1 по заданному y0, касательная фактически проводится к искомому решению (рис. 6), так что накопленная погрешность отсутствует, и полная погрешность сеточного решения ε1 в узле x1 совпадает с локальной погрешностью ε1(2) первого шага. Начиная же со следующего шага, отличными, вообще говоря, от нуля оказываются обе эти погрешности. А именно, на втором шаге имеются и локальная погрешность ε2(2), и ε2(1), возникшая по той причине, что из-за накопленная погрешность допущенной на первом шаге локальной погрешности сеточное решение y1 оказывается отличным от точного решения y(x1), а потому отличными друг от друга оказываются вспомогательное решение y(1) и искомое решение y. Аналогично, на третьем шаге алгоритма, кроме ненулевой, вообще говоря, локальной погрешности ε3(2), имеется тоже, вообще говоря, ненулевая накопленная погрешность ε3(1), возникновение которой вызвано отличием сеточного решения y2 в узле x2 от точного решения y(x2), т.е. наличием у сеточного решения y2 погрешности
ε 2 = ε 2(1) + ε 2( 2) . Второе из этих слагаемых есть локальная погрешность, допущенная на втором шаге, а первое – накопленная погрешность второго шага, являющаяся, как мы только что выяснили, следствием допущенной на первом шаге локальной погрешности ε1(2). Поэтому накопленную погрешность третьего шага можно считать следствием локальных погрешностей, допущенных на предшествующих первом и втором шагах алгоритма, и так далее. Вывод 13. Погрешность сеточного решения yi+1 в узле xi+1, найденного на (i +1)-м шаге алгоритма, есть сумма (32) двух составляющих (33), (34),
14
первая из которых характеризует влияние локальных погрешностей, допущенных на предшествующих шагах алгоритма, а вторая является локальной погрешностью (i +1)-го шага. Приступим к оценке локальной погрешности. Лемма 14. Для локальной погрешности явного метода Эйлера на (i +1)-м шаге справедливо представление: ε i(+21) = 21 ( y ( i ) )′′( xi + θ i h ) h 2 , 0 ≤ θ i ≤ 1. ( 35 ) Доказательство. Разложим в формуле (34) величину y(i)(xi+1) по формуле Тейлора, а величину yi+1 заменим согласно расчетной формуле явного метода Эйлера (12). Получим: ε i(+21) = y (i ) ( xi ) + ( y (i ) )′( xi )h + 1 ( y (i ) )′′( xi + θ i h) h 2 − {yi + h f ( xi , yi )}, (36 )
{
}
2
где θi – вещественное число между нулем и единицей. В силу (15),(16) имеем y ( i ) ( xi ) = yi , ( y ( i ) )′( xi ) = f ( xi , y ( i ) ( xi )) = f ( xi , yi ). ( 37 ) Подстановка в равенство (36) этих значений и приведение подобных членов как раз и дадут представление (35). Следствие 15. При любом i = 0, 1, … , N −1 справедлива оценка:
1 2
ε i(+21) ≤ ( M 2 + M 3 M 1 ) h 2 ,
( 38 )
где M1 , M2 , M3 – константы из условий (29)–(31). Доказательство. Из представления (35) имеем:
ε i(+21) = 21 ( y ( i ) )′′( xi + θ i h ) h 2 .
( 39 )
Оценим входящий сюда модуль второй производной вспомогательного решения y(i). Дифференцируя равенство (15) по x, а затем опять используя это равенство, получим: ( y (i ) )′′( x) = f x′ ( x, y (i ) ( x)) + f y′ ( x, y (i ) ( x)) ⋅ ( y (i ) )′( x) = f x′ ( x, y (i ) ( x)) +
+ f y′ ( x, y (i ) ( x)) ⋅ f ( x, y (i ) ( x)). Отсюда в силу условий (29)–(31) следует, что для любого x из отрезка [x0 , x0+X] справедливо неравенство ( y ( i ) )′′( x ) ≤ M 2 + M 3 M 1 . Полагая в этом неравенстве x = xi + θi h и сопоставляя результат с равенством (39), придем к неравенству (38). Вывод 16. При любом i = 0, 1, …, N −1 локальная погрешность ε i(2+ 1) удовлетворяет неравенству
ε i(+21) ≤ M h 2 ,
( 40 )
где M – константа, которая выражается через M1, M2, M3 согласно формуле:
15
M = (1 2 )( M 2 + M 3 M 1 ).
( 41 )
Другими словами, модули всех локальных погрешностей оцениваются сверху бесконечно малой второго порядка малости по h. Переходим теперь к исследованию накопленной погрешности. Поскольку, как было сказано выше, своим возникновением погрешность
ε i(1+)1 обязана наличию ненулевой погрешности εi сеточного решения в узле xi, постараемся выразить ε i(1+)1 через εi. Заметим (рис. 9), что величина εi есть разность двух решений y, y(i) дифференциального уравнения (1) в точке xi, а величина ε i(1+)1 есть разность тех же решений в точке xi+1. Поэтому естественно опереться на следующий факт из теории дифференциальных уравнений. Лемма 17. Пусть yI, yII – два решения дифференциального уравнения (1), а α, β (α < β) – две точки отрезка [x0, x0 +X] (рис. 10). Тогда разности этих решений в точках α, β связаны соотношением: β
y ( β ) − y ( β ) = ( y ( α ) − y ( α )) ⋅ e ∫α I
II
I
II
( f y′ ( x , y( x ))dx
,
( 42 )
( где y ( x) − значение, промежуточное между yI(x), yII(x). Доказательство. Пусть величина z( x ) = y I ( x ) − y II ( x ) ( 43 ) есть разность этих решений. Выясним, какому дифференциальному уравнению она удовлетворяет. Имеем: z ′( x ) = f ( x , y I ( x )) − f ( x , y II ( x )). ( 44 ) Применим к разности в правой части этого равенства формулу конечных приращений Лагранжа (по переменной y). Получим: ( f ( x , y I ( x )) − f ( x , y II ( x )) = f y′ ( x , y( x )) ⋅ ( y I ( x ) − y II ( x )). ( 45 ) Из формулы (44) с учетом (45), (43) выводим равенство z ′( x ) = c( x )z( x ), ( 46 ) где через с обозначена функция переменной x: ( c( x ) = f y′ ( x , y( x )). ( 47 ) Решения yI, yII считаем различными (при совпадении yI, yII справедливость равенства (42) очевидна). Более того, значения этих решений не могут совпадать ни в одной точке отрезка [α, β], поскольку равенство yI(x*)= yII(x*) = y* означало бы, что задача Коши для рассматриваемого дифференциального уравнения с начальным условием y(x*)=y* имела бы два различных решения, а это при наших предположениях относительно правой части уравнения невозможно. Следовательно, выражение (43) не обращается в ноль, а потому можно, во-первых, переписать равенство (46) в виде:
16
z ′( x ) = c( x ) , z( x )
( 48 )
и, во-вторых, переписав с помощью (45) выражение (47) для c(x) в виде f ( x, y I ( x)) − f ( x, y II ( x)) ( y I )' ( x) − ( y II )' ( x) , c( x) = = I II I II y ( x) − y ( x) y ( x) − y ( x) сделать вывод о непрерывности функции c(x) как частного двух непрерывных функций с не обращающимся в ноль знаменателем. Последний вывод позволяет, взяв от обеих частей дифференциального уравнения (48) определенный интеграл по отрезку [α, β], получить равенство β z' ( x ) β dx = ∫α z( x ) ∫α c( x )dx. Переписывая левый интеграл как интеграл по переменной z (естественно, с пересчетом пределов интегрирования) z( β ) dz β ∫z( α ) z = ∫α c( x )dx и вычисляя его по формуле Ньютона – Лейбница, приходим к равенству β α
ln z(β) – ln z(α)= ∫ c( x )dx
или, что то же самое, к равенству β z(β ) ln = ∫ c( x)dx z (α ) α (считаем функцию z положительной, поскольку противоположный случай сводится к этому перенумерацией решений yI, yII). Отсюда по определению логарифма получаем соотношение β c( x )dx z( β ) ∫ α =e z( α ) или соотношение β
c( x )dx z( β ) = z( α ) ⋅ e ∫α .
А это в силу (43), (47) и есть соотношение (42). Следствие 18. Накопленная погрешность (i+1)-го шага ε i(1+)1 оценивается через погрешность ε i сеточного решения yi в узле xi согласно неравенству:
ε i(+11) ≤ e M 3 h ⋅ ε i ,
( 49 )
где h – шаг сетки, а M3 – константа из условия (31). Доказательство. Примем в формуле (42) в качестве решений yI, yII искомое решение y и вспомогательное решение y(i), а в качестве α, β – узлы xi, xi+1. Поскольку разность этих решений в узле xi есть погрешность εi
17
сеточного решения yi, а разность тех же
решений
в
узле
xi+1
есть
накопленная погрешность (i+1)-го шага ε i(+11) , из формулы (42) получаем: β '
(
f ( x , y( x ))dx . = ε i ⋅ e ∫α y Переход здесь к абсолютным величинам с учетом положительности экспоненты дает:
ε i(+11)
ε i(+11)
x
= εi ⋅e
'
(
∫xii +1 f y ( x , y( x ))dx
.
Оценка (49) следует отсюда в силу цепочки соотношений ( ( ( x x x ' ' ' ∫x i +1 f y ( x, y ( x))dx ≤ ∫x i +1 f y ( x, y ( x))dx ≤ ∫x i +1 f y ( x, y ( x)) dx i
i
i
x
≤ ∫x i +1 M 3 dx = M 3 ( xi + 1 − xi ) = M 3 h i
и того факта, что экспонента – монотонно возрастающая функция. Последовательное применение оценок (40), (49) позволяет установить сходимость явного метода Эйлера. Теорема 19. Справедливы неравенства ε i ≤ C( M 1 , M 2 , M 3 , X ) ⋅ h , i = 0 , 1, K , N , ( 50 ) где C – постоянная, которая определяется значениями констант M1, M2, M3 из условий (29)- (31) и длиной отрезка интегрирования X. Доказательство. Для погрешности сеточного решения в узле x0 имеем: ε 0 = 0. В узле x1 накопленная погрешность отсутствует, а потому в силу (40) получаем:
ε 1 = ε 1( 2 ) ≤ M h 2 . Далее, для погрешности в узле x2 с учетом (40), (49) будем иметь:
ε 2 = ε 2( 1 ) + ε 2( 2 ) ≤ ε 2( 1 ) + ε 2( 2 ) ≤ e M 3 h ⋅ ε 1 + M h 2 ≤ e M 3 h M h 2 + M h 2 = = ( e M 3 h + 1 )M h 2 . Аналогично, для узла x3 получим неравенство:
ε 3 = ε 3(1) + ε 3( 2) ≤ ε 3(1) + ε 3( 2) ≤ e M 3 h ε 2 + M h 2 ≤ e M 3 h (e M 3 h + 1) M h 2 + M h 2 ≤ ≤ (e 2 ⋅ M 3 h + e M 3 h + 1) M h 2 . Теперь ясно, что продолжение неравенству:
аналогичных выкладок приведет к
ε i ≤ ( e( i − 1 )M 3 h + e( i − 2 )M 3 h + K + e 2 ⋅ M 3 h + e M 3 h + 1 )M h 2 . В правой части полученного неравенства в круглых скобках выписана сумма членов конечной геометрической прогрессии со знаменателем
q = eM 3 h . Пользуясь для такой суммы выражением
18
1 − q i 1 − ei ⋅ M 3 h ei ⋅ M 3 h − 1 = = M h , 1− q 1 − eM 3 h e 3 −1 приходим к неравенству: ei ⋅ M 3 h − 1 εi ≤ M h M h2 . ( 51 ) 3 e −1 Заметим, что в формуле для суммы членов прогрессии мы одновременно изменили порядок слагаемых и в числителе, и в знаменателе, чтобы сделать и числитель, и знаменатель положительными. Усилим неравенство (51) , заменив числитель фигурирующей в нем дроби большим числом, а знаменатель – меньшим. Для этого заменим индекс i в числителе максимально возможным значением N и, воспользовавшись вытекающим из (3) равенством N · h = X, получим для числителя новое большее значение e M 3 ⋅ X − 1, а в знаменателе, представив величину e M 3 h в виде ряда для экспоненты и отбросив в оставшемся после взаимного уничтожения единиц выражении 1 1 1 M 3 h + ( M 3 h ) 2 + ( M 3 h )3 + K 1! 2! 3! все слагаемые (очевидно, положительные), начиная со второго, получим для знаменателя новое меньшее выражение M 3 h. В результате приходим к неравенству: eM 3 X − 1 eM 3 X − 1 εi ≤ M h2 = M h. M3 h M3 Полученная оценка и есть оценка (50), при этом в силу (41) константа С есть константа M + M 3M 1 C = 21 ⋅ 2 ⋅ ( e M 3 X − 1 ). ( 52 ) M3 Следствие 20. Поскольку константа (52) из правой части оценки (50) не зависит от i, cправедлива и оценка: max ε i ≤ C h. ( 53 ) i = 0 , 1, K , N Из этой оценки следует соотношение (28), означающее, что при стремлении шага сетки к нулю погрешность сеточного решения тоже стремится к нулю, причем стремится к нулю равномерно по узлам сетки. Замечание 21. Если константы M1, M2, M3 известны, то для получения сеточного решения с требуемой точностью ε* следует решить неравенство C h ≤ ε∗ или, что то же самое, неравенство X C ≤ ε∗ ; N
19
при числе частичных отрезков разбиения N, удовлетворяющем этому неравенству, абсолютная величина погрешности сеточного решения в любом узле сетки, как это следует из соотношения (53), не будет превышать ε* . Если же указанные константы неизвестны, а этот случай – наиболее часто встречающийся на практике, для отыскания требуемого значения N пользуются специальным приемом – так называемым правилом Рунге, который позволяет за счет последовательного удвоения числа частичных отрезков разбиения и сравнения получающихся при этом сеточных решений найти значение N, обеспечивающее требуемую точность.
§ 3. Методы Рунге – Кутты Описанные в предыдущем параграфе явный и неявный методы Эйлера принадлежат классу одношаговых методов. Так называют методы, расчетные формулы которых содержат сеточные решения, относящиеся к двум соседним узлам сетки и которые, следовательно, позволяют найти сеточное решение в следующем узле по заданному сеточному решению в предыдущем. Другими примерами одношаговых методов являются исправленный и модифицированный методы Эйлера. Исправленный метод Эйлера задается соотношениями ⎧ y0 − задано , ⎪ ⎨ h ( 54 ) ⎪⎩ yi + 1 = yi + 2 ( f ( xi , yi ) + f ( xi + 1 , yi + h f ( xi , yi )), i = 0 , 1, K , N − 1, а модифицированный метод Эйлера – соотношениями ⎧ y0 − задано , ⎪ ⎨ h h ( 55 ) ⎪⎩ yi + 1 = yi + h f ( xi + 2 , yi + 2 f ( xi , yi )), i = 0 , 1, K , N − 1. Нахождение сеточного решения yi+1 по ранее вычисленному решению yi ((i +1)- й шаг алгоритма) осуществляется в этих методах в два этапа. Именно, в случае исправленного метода Эйлера сначала с помощью описанного ранее явного метода Эйлера находят предварительное значение yi + 1 = yi + h f ( xi , yi ) ( 56 ) сеточного решения в узле xi+1, а затем уточняют его по формуле: h yi + 1 = yi + ( f ( xi , yi ) + f ( xi + 1 , yi + 1 )). ( 57 ) 2 В случае же модифицированного метода Эйлера сначала по формуле явного метода Эйлера находят вспомогательное сеточное решение h y 1 = yi + f ( xi , yi ) i+ 2 2
h с «полуцелым» номером i + 21 , а затем 2 2 вычисляют искомое сеточное решение yi+1 по формуле:
в промежуточном узле xi + 1 = xi +
20
y i + 1 = yi + h f ( x
i+ 1 2
,y
i+ 1
).
2
Укажем геометрический смысл исправленного метода Эйлера (рис. 10).
Проведем через точки (xi, yi), (xi+1, yi + 1 ), где yi + 1 задается формулой
(56), графики соответствующих решений y ( i ) , y ( i + 1 ) дифференциального уравнения (1) и обозначим через α 1 , α 2 углы, которые образуют с осью x касательные, проведенные к этим графикам в указанных точках. Затем проведем через точку (xi, yi) прямую l под углом α к оси x, тангенс которого равен среднему арифметическому тангенсов углов α 1 , α 2 : 1 tg α = ( tg α 1 + tgα 2 ). 2 Лемма 22. Ордината точки пересечения прямой l с прямой, проходящей через узел xI+1 параллельно оси ординат, совпадает со значением сеточного решения в узле xi+1, найденным исправленным методом Эйлера. Доказательство. Выпишем уравнение прямой l: ) y( x ) = ( tgα ) ⋅ ( x − xi ) + yi . Поскольку 1 1 1 1 1 tgα = tgα 1 + tgα 2 = ⋅ ( y ( i ) )' ( xi ) + ⋅ ( y ( i +1 ) )' ( xi +1 ) = f ( xi , y ( i ) ( xi )) + 2 2 2 2 2 1 1 1 + f ( xi +1 , y ( i +1 ) ( xi +1 )) = f ( xi , yi ) + f ( xi +1 , yi +1 ), 2 2 2 уравнение рассматриваемой прямой можно переписать в виде: 1 ) y( x ) = ( f ( xi , yi ) + f ( xi +1 , yi +1 ))( x − xi ) + yi . 2 Полагая здесь x = xi+1 и учитывая равенство xi+1 – xi = h, получим величину h ) y( xi + 1 ) = yi + ( f ( xi , yi ) + f ( xi + 1 , yi + 1 )), 2 совпадающую в силу (57) с сеточным решением yi+1. Замечание 23. В случае исправленного метода Эйлера для нахождения yi + 1 график искомого решения на отрезке [xi, xI+1] заменяется как и в явном методе Эйлера отрезком, проходящим через точку (xi, yi). Однако наклон этого
21
отрезка выбирается здесь сложнее. А именно, в дополнение к точке (xi, yi) с помощью явного метода Эйлера строится точка (xi+1, yi + 1 ) , и в качестве тангенса угла наклона отрезка к оси абсцисс принимается среднее арифметическое тангенсов углов, которые образуют с осью x касательные к проходящим через эти точки графикам решений дифференциального уравнения. Подчеркнем, что усредняются не сами углы, а их тангенсы. Упражнение 23. Выяснить геометрический смысл модифицированного метода Эйлера (55). Возникает вопрос, в чем преимущество методов (54), (55) перед явным методом Эйлера? Ответ таков: исправленный и модифицированный методы Эйлера обеспечивают при h → 0 более быструю сходимость сеточного решения к решению дифференциальной задачи. И обладают они этим свойством в силу того, что локальная погрешность этих методов на шаге алгоритма имеет более высокий порядок малости по h, чем у явного метода Эйлера. Следует, однако, оговориться, что последний факт имеет место не всегда, а лишь для достаточно гладких решений. Поэтому далее мы наложим дополнительные условия на правую часть дифференциального уравнения f, предположив, что непрерывностью по совокупности переменных x, y и ограниченностью обладают не только сама функция f и ее первые частные '' '' '' производные, но и вторые частные производные , f xy , f yy ; f xx соответствующие константы из условий ограниченности этих производных обозначим через M4 , M5 , M6 . Лемма 24. Локальная погрешность ε i(+21) исправленного метода Эйлера удовлетворяет оценке:
ε i(+21) ≤ M ⋅ h 3 , i = 0 , 1, K , N − 1,
( 58 )
где M – конечная постоянная, одна и та же для всех i, значение которой определяется значениями констант M1 – M6 . Доказательство. Идея вывода оценки (58) – в точности та же, что и при выводе аналогичной оценки (40) для локальной погрешности явного метода Эйлера (значения констант M в этих двух оценках, естественно, различные). А именно, в выражении для локальной погрешности метода ε i(+21) = y ( i ) ( xi +1 ) − yi +1 ( 59 ) заменяем сеточное решение yi + 1 равной ему согласно расчетной формуле метода величиной, разлагаем с помощью формул Тейлора полученное в результате этого выражение по степеням h и убеждаемся в том, что оно является бесконечно малой требуемого порядка малости по h. В формуле (59) величина y (i ) ( xi + 1 ) есть, как и в явном методе Эйлера, значение в точке xi + 1 вспомогательного решения дифференциального уравнения – решения задачи Коши:
22
( y ( i ) )′( x ) = f ( x , y ( i ) ( x )),
( 60 )
y ( i ) ( xi ) = y i . ( 61 ) Выразим это значение по формуле Тейлора, удерживая в разложении члены до третьего порядка малости включительно: y ( i ) ( xi +1 ) = y ( i ) ( xi ) + ( y ( i ) )′( xi ) h + 1 2 ( y ( i ) )′′( xi ) h 2 + 1 6 ( y ( i ) )′′′( x + θ i h )h 3 . ( 62 ) В силу равенств (60), (61) имеем: y ( i ) ( xi ) = yi , ( y ( i ) )′( xi ) = f ( xi , y ( i ) ( xi )) = f ( xi , yi ). ( 63 ) Кроме того, дифференцируя равенство (60), а затем повторно его используя, получим соотношение: ( y ( i ) )′′( x ) = f x′ ( x , y ( i ) ( x )) + f y′ ( x , y ( i ) ( x )) ⋅ ( y ( i ) )′( x ) = f x′ ( x , y ( i ) ( x )) +
+ f y′ ( x , y ( i ) ( x )) ⋅ f ( x , y ( i ) ( x )),
( 64 )
из которого с помощью подстановки x = xi с учетом (61) получается равенство
( y ( i ) )′′( xi ) = f x′ ( xi , yi ) + f y′ ( xi , yi ) ⋅ f ( xi , yi ). В силу (63), (65) разложению (62) можно придать вид: y ( i ) ( xi +1 ) = yi + f ( xi , yi ) h + ( 1 2 )( f x′ ( xi , yi ) + f y′ ( xi , yi ) f ( xi , yi )) h 2 +
( 65 )
+ 1 6 ( y ( i ) )′′′( xi + θ i h ) h 3 . ( 66 ) Далее, величина yi + 1 в выражении (59) для локальной погрешности задается формулой (54). Разлагая правую часть этого выражения по формуле Тейлора для функции двух переменных в окрестности точки ( xi , yi ), получим: h h yi+1 = yi + ( f ( xi , yi ) + f ( xi + h, yi + h f ( xi , yi ))) = yi + ( f ( xi , yi ) + { f ( xi , yi ) + 2 2 ′′ ( ~ ′′ ( ~ xi , ~yi )⋅ h 2 + 2 f xy + f x′( xi , yi ) h + f y′ ( xi , yi ) h f ( xi , yi ) + 1 2 ( f xx xi , ~yi ) ⋅ h ⋅ h f ( xi , yi ) + ′′ ( ~ + f yy xi , ~yi ) h 2 f 2 ( xi , yi ))}) = yi + f ( xi , yi )h + 1 2 ( f x′( xi , yi ) + f y′ ( xi , yi ) f ( xi , yi ))h 2 + ′′ ( ~ ′′ ( ~ ′′ ( ~ + 1 2 ( f xx xi , ~yi ) + 2 f xy xi , ~yi ) ⋅ f ( xi , yi ) + f yy xi , ~yi ) ⋅ f 2 ( xi , yi ))h3 , ( 67 ) x , ~y − координаты точки полосы, лежащей на отрезке, соединяющем точку где ~ i
i
( xi , yi ) с точкой ( xi + 1 , yi + 1 ) = ( xi + 1 , yi + h f ( xi , yi )) . Перепишем равенства (66), (67) в менее громоздкой форме, опустив аргументы функций двух переменных, если они равны xi , yi : y ( i ) ( xi + 1 ) = yi + f ⋅ h + 1 2 ( f x′ + f y′ f ) ⋅ h 2 +
6( 3
1
y ( i ) )′′′( xi + θ i h ) ⋅ h 3 ,
( 68 )
yi + 1 = yi + f ⋅ h + 1 2 ( f x′ + f y′ ⋅ f ) ⋅ h 2 + δ i ⋅ h , ( 69 ) где введено обозначение: ′′ ( ~ ′′ ( ~ ′′ ( ~ δ i = 1 2 ( f xx xi , ~yi ) + 2 f xy xi , ~yi ) ⋅ f + f yy xi , ~yi ) ⋅ f 2 ). (70 ) Сравнение выражений (68), (69) показывает, что фигурирующие в них
23
бесконечно малые нулевого, первого и второго порядка малости по h одни и те же, и потому при подстановке этих выражений в (59) взаимно уничтожатся. Значит, локальная погрешность исправленного метода Эйлера имеет вид: ε i(+21) = 1 6 ( y ( i ) )′′′( xi + θ i ⋅ h ) ⋅ h 3 − δ i ⋅ h 3 ( 71 ) и потому является бесконечно малой третьего порядка малости относительно h. При этом модуль второго члена (−δ i h 3 ) в правой части (71) оценивается сверху величиной M 7 ⋅ h 3 , где в силу (70) константа M 7 имеет вид: M 7 = 1 2 ( M 4 + 2 M 5 ⋅ M 1 + M 6 ⋅ ( M 1 )2 ). Что же касается модуля первого члена, то он допускает оценку сверху бесконечно малой M 8 ⋅ h 3 того же порядка, но с другой константой M 8 . Для нахождения этой константы следует продифференцировать правую часть равенства (64) и, воспользовавшись соотношением (60), выразить третью производную решения y (i ) через правую часть дифференциального уравнения и ее частные производные до второго порядка включительно: ′′ ( x , y ( i ) ( x )) + f xy ′′ ( x , y ( i ) ( x )) f ( x , y ( i ) ( x )) + ( y ( i ) )′′′( x ) = f xx
′′ ( x , y ( i ) ( x )) + f yy ′′ ( x , y ( i ) ( x ))⋅ f ( x , y ( i ) ( x ))) f ( x , y ( i ) ( x )) + + ( f xy + f y′ ( x , y ( i ) ( x ))( f x′ ( x , y ( i ) ( x )) + f y′ ( x , y ( i ) ( x )) f ( x , y ( i ) ( x )))
( 72 )
(вытекающее отсюда выражение для константы M 8 через константы M 1 , M 2 , M 3 , M 4 , M 5 , M 6 не выписываем ввиду его громоздкости). Таким образом, установлена оценка (58) с константой M = M 8 + M 7 . Упражнение 25. Показать, что в случае модифицированного метода Эйлера локальные погрешности удовлетворяют оценке, аналогичной оценке (58) (с другой, вообще говоря, константой M). Теорема 26. Погрешности сеточного решения в случае исправленного метода Эйлера удовлетворяют неравенству 2 max ( 73 ) { εi ≤ C h , i = 0 ,1,K, N
где через C обозначена конечная не зависящая от h постоянная, значение которой определяется значениями констант M 1 , K , M 6 и длиной X отрезка интегрирования. Доказательство. Анализ вывода аналогичной оценки (53) для явного метода Эйлера показывает, что расчётная формула явного метода Эйлера используется в них только для вывода оценки (40) для локальных погрешностей. Все же последующие рассуждения имеют общий характер и могут быть использованы для любого одношагового метода. Проводя эти рассуждения с заменой мажоранты M h 2 из неравенства (40) мажорантой
M h 3 локальных погрешностей модифицированного метода Эйлера из неравенства (58), придем к оценке (73) с константой C, обладающей упомянутыми выше свойствами.
24
Замечание 27. Оценка (73) (с другой константой C) имеет место и для модифицированного метода Эйлера. Замечание 28. Оценка (73) гарантирует более быструю сходимость сеточных решений при стремлении шага сетки к нулю нежели аналогичная оценка (40) для явного метода Эйлера (при уменьшении h вдвое правая часть неравенства (73), а значит, и предельно возможное значение абсолютной погрешности сеточного решения у исправленного и модифицированного методов Эйлера уменьшается вчетверо, тогда как в силу оценки (40) такое же уменьшение шага сетки в случае явного метода Эйлера уменьшает предельно возможное значение абсолютной погрешности лишь вдвое). Определение 29. Одношаговый метод называется методом m-го порядка точности (m – натуральное, m ≥ 1), если для погрешности сеточного решения справедлива оценка: m max ( 74 ) { εi ≤ C h . i = 0 , 1,K , N
В частности, явный метод Эйлера имеет первый порядок точности, а исправленный и модифицированный методы Эйлера – второй. Замечание 30. В силу сказанного выше задача построения одношагового метода m-го порядка точности сводится к задаче построения метода с локальной погрешностью порядка h m + 1 . Замечание 31. Исправленный и модифицированный методы Эйлера принадлежат группе методов с расчетной формулой yi + 1 = yi + h( p1 f ( xi , yi ) + p2 f ( xi + β h , yi + β hf ( xi , yi ))). ( 75 ) Здесь p1 , p2 , β − вещественные константы («параметры метода»). В частности, исправленному методу Эйлера отвечают константы p1 = p2 = 1 2 , β = 1, а модифицированному – константы p1 = 0 , p2 = 1, β = 1 2 . Теорема 32. Для того чтобы локальная погрешность одношагового метода с расчетной формулой (75) удовлетворяла оценке (73), необходимо и достаточно, чтобы его параметры удовлетворяли системе уравнений p1 + p2 = 1, p2 β = 1 2 . ( 76 ) Доказательство. Разлагая по степеням h с помощью формулы Тейлора сеточное решение (75) подобно тому, как это делалось в случае исправленного метода Эйлера (см. формулу (67)), получим разложение yi + 1 = yi + ( p1 + p2 ) f h + p2 β ( f x′ + f y′ f ) h 2 + δ i h 3 , ( 77 ) где p ′′ ( ~ ′′ ( ~ ′′ ( ~ δ i = 2 ( f xx xi , ~yi )β 2 + 2 f xy xi , ~yi )β 2 f + f yy xi , ~yi )β 2 f 2 ). ( 78 ) 2 Здесь через f , f x′ , f y′ обозначены значения правой части дифференциального уравнения и ее первых производных в «базовой» точке ( xi , yi ), т.е. в точке, в окрестности которой выписывается разложение Тейлора, а через ~ xi , ~yi − координаты промежуточной точки отрезка,
25
соединяющего базовую точку с «возмущенной» точкой, то есть точкой с приращениями координат β h , β h f по переменным x, y соответственно. Вычитая разложение (77) из разложения (68) (оно в случае метода (75) имеет в точности тот же вид, что и для исправленного метода Эйлера) и приводя подобные, получим для локальной погрешности метода (75) представление: ε i(+21) = ( 1 − p1 − p2 ) f ⋅ h + ( 1 2 − p2 β )( f x′ + f y′ f ) ⋅ h 2 +
+ 1 6 (( y ( i ) )′′′( xi + θ i h ) − δ i ) ⋅ h 3 . ( 79 ) Если условия (76) выполнены, то члены первого и второго порядков малости по h в правой части равенства (79) пропадают и локальная погрешность совпадает с членом третьего порядка малости по h. Оценивая с помощью формул (72), (78) абсолютную величину коэффициента при h 3 подобно тому, как это делалось при изучении исправленного метода Эйлера, придем к неравенству (73). Если же хотя бы одно из условий (76) не выполнено, то локальная погрешность (79) имеет порядок по h ниже третьего, и потому неравенство (73) не может быть справедливым. Замечание 33. Методы с расчётной формулой (75) при выполнении условий (76) в силу теоремы 32 и замечания (30) имеют второй порядок точности. Замечание 34. Нулевое значение параметра p2 не удовлетворяет правому из уравнений (76). Исключая из рассмотрения этот случай, получаем возможность выразить из этого уравнения параметр β через p2 . Кроме того, левое из уравнений (76) позволяет выразить через p2 и параметр p1 . Подстановка этих выражений в (75) приводит к следующему однопараметрическому семейству расчетных формул второго порядка точности: h h yi + 1 = yi + h (( 1 − p2 ) f ( xi , yi ) + p2 f ( xi + , yi + f ( xi , yi ))). 2 p2 2 p2 Придавая здесь параметру p2 какое-либо фиксированное вещественное отличное от нуля значение, получим конкретную расчётную формулу этого семейства. Замечание 35. Геометрически сеточное решение (75) находится, по существу, с помощью построений, которые были описаны при изучении исправленного метода Эйлера (см. лемму 22 и предшествующие ей рассуждения). Отличие состоит лишь в том, что в качестве точки полосы для проведения второй касательной берется точка ( xi + β h , yi + β h f ( xi , yi )) , а вместо среднего арифметического значения угловых коэффициентов касательных берется их среднее алгебраическое значение, т.е. линейная комбинация tgα = p1 tgα 1 + p2 tgα 2
26
коэффициентами p1 , p2 , сумма которых равна (см. (76)) единице. Замечание 36. Методы (75) принадлежат семейству методов Рунге– Кутты и при выполнении условий (76) образуют в нем подсемейство методов второго порядка точности. Идея этого метода была сформулирована Карлом Рунге в 1885 г. и развита Вильгельмом Куттой в работе 1901 г. Это обширное семейство одношаговых методов содержит методы и более высоких порядков точности, из которых чаще всего используются один из методов третьего порядка и один из методов четвёртого порядка. В методе третьего порядка на (i+1)- м шаге алгоритма последовательно друг за другом вычисляются величины с
h h , yi + k1 ), k 3 = f ( xi + h , yi − h k1 + 2 h k 2 ), ( 80 ) 2 2 которые с геометрической точки зрения представляют собой угловые коэффициенты касательных к графикам решений дифференциального уравнения в точке ( xi , yi ) и двух других точках полосы, координаты которых фигурируют во втором и третьем из выражений (80). Затем по формуле h yi + 1 = y i + ( k1 + 4 k 2 + k 3 ) ( 81 ) 6 вычисляется сеточное решение в узле xi + 1 . С геометрической точки зрения это означает, что через точку ( xi , yi ) проводится прямая с угловым коэффициентом, равным алгебраическому среднему величин (80) с коэффициентами усреднения 1 6 , 4 6 , 1 6 , и в качестве сеточного решения в узле xi + 1 берется ордината точки пересечения этой прямой с прямой, проходящей через узел xi + 1 параллельно оси ординат. В методе четвертого порядка на (i+1)-м шаге алгоритма сначала вычисляются величины h h h h k1 = f ( xi , yi ), k 2 = f ( xi + , yi + k1 ), k 3 = f ( xi + k 2 , yi + k 2 ), 2 2 2 2 k 4 = f ( xi + h, yi + h k 3 ), (82) после чего находят сеточное решение по формуле h yi + 1 = yi + (k1 + 2 k 2 + 2 k 3 + k 4 ). (83) 6 Упражнение 37. Выяснить геометрический смысл метода (82)–(83). Расчетные формулы общего метода Рунге–Кутты приведены в [2]. Замечание 38. Контроль точности полученного сеточного решения осуществляется с помощью правила Рунге приближенной оценки погрешности, с которым мы ранее встречались при приближённом вычислении определённых интегралов. При приближенном решении задачи Коши одношаговыми методами это правило применяется следующим образом. k1 = f ( xi , yi ), k 2 = f ( xi +
27
Пусть
y N ,h , y 2 N ,h − сеточные решения в правом конце отрезка 2
интегрирования, вычисленные методом m- го порядка точности с шагом сетки h, h соответственно. Для этих решений справедливы равенства: 2 m
⎛h⎞ y( x0 + X ) − y N ,h = ch + o( h ), y( x0 + X ) − y 2 N ,h = c ⎜ ⎟ + o( h m ), ( 84 ) 2 ⎝2⎠ где c – не зависящая от h постоянная, одна и та же для обеих формул (84), а символом o(h m ) обозначены малые более высокого порядка, чем h m . Воспользоваться равенствами (84) для нахождения главных членов погрешности рассматриваемых решений не удается, поскольку входящее в них значение точного решения y ( x0 + X ) нам не известно. Однако, если вычесть первое равенство из второго , получится соотношение m
m
m
⎛h⎞ c ⎜ ⎟ ( 1 − 2 m ) = y N ,h − y 2 N ,h + o( h m ), ( 85 ) 2 2 ⎝ ⎠ отбрасывание малой высшего порядка в котором приводит к следующему приближенному представлению для главного члена погрешности сеточного решения y 2 N , h : 2
m
1 ⎛ ⎛h⎞ ⎞ c⎜ ⎟ ≈ m ⎜ y 2 N , h − y N ,h ⎟ . ⎠ 2 ⎝2⎠ 2 − 1⎝
( 86 )
Если модуль правой части (86) не превышает заданного предельно допустимого значения для абсолютной погрешности сеточного решения, то вычисления заканчивают и в качестве приближенного решения на отрезке интегрирования принимают сеточное решение, вычисленное с шагом h/2. В противном случае описанную процедуру повторяют для шагов h /2, h/4, и так далее. Отметим, что при оценке погрешности по правилу Рунге конец отрезка может быть заменен любой фиксированной его точкой (например, серединой отрезка); шаг h при этом выбирается так, чтобы эта точка оказалась узлом сетки. Замечание 39. Проведенные только что рассуждения позволяют указать и способ уточнения полученного сеточного решения. А именно, если выразить из равенства (85) величину c(h / 2) m и подставить результат во вторую из формул (84), то получим равенство 1 ⎛ ⎧ ⎞⎫ m y ( x0 + X ) = ⎨ y 2 N , h + m ⎜ y 2 N , h − y N , h ⎟⎬ + o(h ), ⎠⎭ 2 2 ⎩ 2 − 1⎝ которое означает, что величина в фигурных скобках является лучшим приближением для y ( x0 + X ), чем сеточное решение y 2 N , h , поскольку 2 m
погрешность этой величины есть бесконечно малая порядка o(h ), тогда как погрешность сеточного решения имеет порядок O(h m ).
28
Такой способ уточнения сеточных решений назван уточнением по Ричардсону или Ричардсона экстраполяцией по имени английского геофизика Л. Ричардсона, предложившего этот прием в 1910 г. Замечание 40. Методы Рунге–Кутты применяются не только в случае задач Коши, но и в случае краевых задач для систем дифференциальных уравнений первого порядка. При этом используется прием сведения решения краевой задачи к последовательному решению задач Коши, называемый методом пристрелки. Например, в случае краевой задачи y1′ ( x ) = f 1 ( x , y1 ( x ), y 2 ( x )), y 2′ ( x ) = f 2 ( x , y1 ( x ), y 2 ( x )), x0 ≤ x ≤ x0 + X , ( 87 ) y1 ( x0 ) = ϕ , y 2 ( x0 + X ) = ψ
( 88 )
рассмотрим для той же системы дифференциальных уравнений задачу Коши с начальными условиями y1 ( x0 ) = ϕ , y 2 ( x0 ) = δ ( 89 ) и подберем правую часть δ второго из начальных условий (89) так, чтобы решение y 2 (δ ) задачи Коши (оно, очевидно, зависит от δ ) удовлетворяло второму из краевых условий (88): y 2 ( x0 + X ,δ ) = ψ ; решение y1 (δ ), y 2 (δ ) и будет искомым решением краевой задачи. С абстрактной точки зрения задача о подборе δ есть задача о нахождении корня функции Ф(δ ) = y 2 ( x0 + X , δ ) − ψ . Воспользуемся для ее решения методом половинного деления. С этой целью подберем значения α 1 , β 1 ( α 1 < β 1 ) так, чтобы на концах отрезка [α 1 , β 1 ] функция Ф принимала значения разных знаков. В этом случае ввиду непрерывности Ф (непрерывную зависимость решения задачи Коши от правых частей начальных условий мы предполагаем) такой отрезок будет содержать искомый корень. Разделим этот отрезок пополам точкой δ 1 и из двух подотрезков [ α 1 ,δ 1 ], [ δ 1 , β 1 ] выберем тот, на концах которого значения функции Ф будут иметь разные знаки. Обозначим этот подотрезок через [α 2 , β 2 ] и в свою очередь разделим его точкой δ 2 пополам, и так далее. Как только длина отрезка [α n , β n ] окажется меньше допустимой погрешности нахождения корня, вычисления прекращаем и середину δ n последнего отрезка принимаем в качестве приближения к искомому значению δ . Другие способы решения скалярного уравнения Ф(δ ) = 0 описаны в [3]. В заключение следует упомянуть еще об одной группе одношаговых методов, называемых методами разложения решения в ряд Тейлора. Поясним идею такого метода на примере метода 2- го порядка точности. Рассмотрим разложение Тейлора (62) для вспомогательного решения y (i ) нашего дифференциального уравнения, отбросим в нем член 3-го порядка
29
малости и будем считать полученную величину сеточным решением в узле xi + 1 . Другими словами, положим
yi + 1 = y ( i ) ( xi ) + ( y ( i ) )′( xi ) h + 1 2 ( y ( i ) )′′( xi ) h 2 . Заменяя здесь значения функции y (i ) и ее производных в точке xi согласно формулам (63), (65), приходим к расчетной формуле yi + 1 = yi + h f ( xi , yi ) + 1 2 ( f x′ ( xi , yi ) + f y′ ( xi , yi )) f ( xi , yi ) h 2 . С аналитической точки зрения проведенные рассуждении означают замену вспомогательного решения y (i ) на отрезке [ xi , xi + 1 ] многочленом второй степени, производные которого до 2- го порядка включительно в точке xi совпадают с соответствующими производными решения y (i ) , а с геометрической – замену графика решения y (i ) параболой, которая проходит через точку ( xi , yi ) и имеет в этой точке с графиком решения y (i ) общую касательную и одинаковый радиус кривизны (такой случай касания двух кривых называют «касанием 2-го порядка). При этом в качестве сеточного решения yi + 1 принимается значение этого многочлена при x = xi + 1 или в геометрических терминах – ордината точки пересечения параболы с прямой, проходящей через узел xi + 1 параллельно оси ординат. m-го порядка точности Расчетная формула аналогичного метода содержит производные правой части f дифференциального уравнении до порядка m −1 включительно. Вычисление значений этих производных в точке xi составляет основной объем вычислений на (i+1)-м шаге алгоритма. При увеличении m количество этих производных быстро растет, метод становится весьма трудоемким, уступая в этом отношении методу Рунге – Кутты того же порядка точности. По этой причине метод разложения решения в ряд Тейлора используется сравнительно редко.
§ 3. Задачи и упражнения Упражнения для самостоятельного решения Упражнение 1. Вывести расчетную формулу метода разложения в ряд Тейлора третьего порядка точности. Упражнение 2. Выписать расчетные формулы модифицированного метода Эйлера для системы (87). Указание. Считать в соотношениях (55) величины y0 , yi , yi + 1 двумерными векторами, а функцию f – функцией скалярной переменной x и векторной переменной y со значениями в R 2 , заданной с помощью двух скалярных функций f 1 , f 2 тех же аргументов. Заменить в этом соотношении векторы соответствующими парами компонент и приравнять в полученном равенстве одноименные компоненты слева и справа.
30
Упражнение 3. Выписать для системы (87) расчётные формулы: а) исправленного метода Эйлера; б) метода Рунге–Кутты второго порядка точности с параметром p2 ; в) метода Рунге–Кутты третьего порядка точности; г) метода Рунге–Кутты четвёртого порядка точности. Конкретизировать эти расчетные формулы применительно к системе дифференциальных уравнений из упражнения 10 § 1. Задания для лабораторных работ Решить одношаговым методом задачу Коши и краевую задачу для системы о.д.у. с заданной точностью, используя для выбора шага сетки правило Рунге. Варианты систем дифференциальных уравнений: 1 1 x x 1) y ′ = , z ′ = − , 1 ≤ x ≤ 2, y (1) = e, z (1) = , y (1) = e − 1 , z (2) = − e 4 ; 2 2e y z
y2 2) y ′ = , z ′ = y + 1, 0 ≤ x ≤ 1, y (0) = 1, z (0 ) = 1, y (0 ) = 2, z (1) = 1 + 2e 2 ; z−x 1 1 1 1 z z ( y + 2 z − 1) 3) y ′ = , z ′ = , 1 ≤ x ≤ 2, y (1) = , z (1) = , y (1) = , z (2) = ; x x( y − 1) 2 4 3 4 2 2 z 4) y ′ = y 2 z , z ′ = − y z 2 , 1 ≤ x ≤ 2, y (1) = e, z (1) = , y (1) = 2e, z (2) = 4 ; x e e y2 z 1 3 5 5 5) y ′ = − + , z ′ = z + y, 0 ≤ x ≤ 1, y (0 ) = − , z (0 ) = , y (0 ) = −1, z (1) = ; 2z 2 2z 4 4 4 2 z z 6) y ′ = z , z ′ = + , 1 ≤ x ≤ 2, y (1) = e, z (1) = 2e, y (1) = 4 e , z (2) = e; y x z2 x − 2 z , 0 ≤ x ≤ 1, y (0 ) = 1, z (0 ) = 1, y (0 ) = 1, z (1) = 3 2 + 4; y x +1 z2 z 3 2 6 8) y ′ = z , z ′ = − + 2 , 1 ≤ x ≤ 2, y (1) = 2 , z (1) = , y (1) = 3 , z (2) = ; y x 4 10 2 1 2 1 1 9) y ′ = z , z ′ = 2 ( y − x z ) 2 , 1 ≤ x ≤ 2, y (1) = , z (1) = , y (1) = 2 , z (2) = ; e e e e x y 1 y 1 1 10) y ′ = z , z ′ = 3 − 2 , 1 ≤ x ≤ 2, y (1) = 1, z (1) = , y (1) = 1, z (2) = . 2 2 2 4y 4x Варианты одношаговых методов указаны в упражнениях 2, 3. 7) y ′ = z , z ′ =
Литература 1. Петровский И.Г. Лекции по теории обыкновенных дифференциальных уравнений : учеб. пособие / И.Г. Петровский. – М. : Наука, 1964. – 272 с.
31
2. Бахвалов Н.С. Численные методы : учеб. пособие / Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. – М. ; Спб. : Физматлит, 2002. – 630 с. 3. Волков Е.А. Численные методы : учеб. пособие / Е.А. Волков. – Спб. : Лань, 2004. – 256 с. Учебное издание
Гудович Николай Николаевич ИЗБРАННЫЕ ВОПРОСЫ КУРСА ЧИСЛЕННЫХ МЕТОДОВ Выпуск VII Одношаговые методы решения задачи Коши. Учебное пособие для вузов Редактор Е.С. Котлярова