ГЛ 9
.pdfГлава 9. Численные методы решения обыкновенных дифференциальных |
98 |
уравнений |
|
ìu1′ |
= f1( x,u1 ,u2 , ,um ) , |
||||||||
ï |
= |
f2 |
( x,u1 ,u2 |
, ,um ) , |
|||||
ïu2¢ |
|||||||||
í |
|
|
|
|
|
|
|
|
x [a ;b] |
ï............... |
|
|
|
|
|
|
|||
ï ¢ |
|
fm( x,u1 ,u2 , ,um ) |
|||||||
îum = |
|||||||||
и начальным условиям |
|
|
ìu1(a) = |
u1 , |
|||||
|
|
|
|||||||
|
|
|
ïïu2(a) = |
u |
2 , |
||||
|
|
|
í |
|
|
|
|
|
|
|
|
|
ï............... |
|
|||||
|
|
|
îïum (a) = |
u |
m . |
||||
Здесь f1 , f2 , , f m |
− |
|
заданные функции m+1 |
a ,b ,u1 ,u2 , ,um − заданные постоянные.
(9.2.5)
(9.2.6)
переменной,
Для сокращения записи подобные задачи часто записывают в векторной форме, поэтому введём обозначения:
Глава 9. Численные методы решения обыкновенных дифференциальных |
99 |
уравнений |
|
|
æ |
|
u |
|
ö |
æ |
u (x) ö |
|
|
|
ç |
1 |
÷ |
ç |
1 |
÷ |
|
||
|
ç |
|
u |
2 |
÷ |
ç |
u2 |
(x)÷ |
|
u= |
ç |
... |
÷ |
− заданный вектор-столбец, u(x)= ç |
....... ÷ |
− искомая вектор-функция, |
|||
|
ç |
|
|
|
÷ |
ç |
|
÷ |
|
|
ç |
|
|
|
÷ |
èç |
um(x)ø÷ |
|
|
|
|
|
|
|
|||||
|
è |
um ø |
|
æç f(x,u)=f(x,u1,u2, ,um)=çç ççè
f1(x,u) f2(x,u)
.............
fm(x,u)
ö |
|
æ |
÷ |
|
ç |
÷ |
= |
ç |
÷ |
ç |
|
÷ |
|
ç |
÷ |
|
ç |
ø |
|
è |
f1 |
(x,u1,u2, ,um) |
ö |
||
f |
( |
x,u,u |
, ,u) |
÷ |
2 |
|
1 2 |
m |
÷ |
................................ |
÷ − заданная вектор-функция. |
|||
÷ |
||||
f |
|
(x,u,u |
, ,u |
)÷ |
m |
1 2 |
m |
ø |
æ |
u1( |
a) ö |
|
æ |
u1′ |
( |
|
x) ö |
|
|
|
ç |
u2 |
( |
)÷ |
|
ç |
¢ |
( |
|
)÷ |
|
|
ç |
|
a ÷ |
|
ç |
u2 |
|
x ÷ |
|
|
||
Тогда u(a)= ç |
....... ÷ |
, |
u¢(x)= ç |
....... ÷ |
и задачу Коши (9.2.5) |
− (9.2.6) можно записать |
|||||
ç |
u |
|
÷ |
|
ç |
¢ |
|
( |
÷ |
|
|
ç |
|
(a)÷ |
|
ç |
|
)÷ |
|
|
|||
è |
m |
ø |
|
è |
um |
|
x ø |
|
|
в векторной форме совсем коротко: |
|
u′ = f (x ,u) , x [a ,b], |
(9.2.7) |
u(a) = u . |
(9.2.8) |
В таком виде задача Коши для системы выглядит так же, как и задача Коши для одного уравнения (9.1.1).
Глава 9. Численные методы решения обыкновенных дифференциальных |
100 |
уравнений |
|
Схемы Эйлера и Рунге-Кутта для систем уравнений
Будем считать, что задача Коши (9.2.7) - (9.2.8) имеет
единственное решение u(x) на отрезке [a ;b] и в дальнейшем будем называть его точным решением этой задачи. Введём на отрезке
[a ;b] сетку {xn = a + h × n : h = (b - a)N , n = 0,1, , N} и найдем на этой сетке приближённое решение задачи Коши {un} . Приближённое решение
представляет собой множество векторов
|
æ |
u |
n1 |
ö |
|
|
ç |
|
÷ |
|
|
un= |
ç |
un2 |
÷ |
,n= 0,1, ,N. |
|
ç |
|
|
÷ |
||
|
ç |
......÷ |
|
||
|
ç |
u |
|
÷ |
|
|
è |
|
nmø |
|
Каждый из этих |
векторов |
|
даёт приближённое значение |
|||||
вектор-функции u(x) |
в узле xn |
|
u( xn ) ≈ un . |
|||||
|
|
|
|
|
|
|
||
Запишем это приближённое векторное равенство в координатах: |
||||||||
|
ìu1( xn ) ≈ un1 , |
|
||||||
|
ïïu |
2 ( xn ) » un2 |
, |
n =0 ,1, , N. |
||||
|
í |
|
|
|
|
|
|
|
|
ï.................... |
|
|
|||||
|
ïu |
m |
( x |
n |
) » u |
nm |
. |
|
|
î |
|
|
|
Абсолютная погрешность p-го компонента приближённого решения в
узле xn представляет собой |
|
u p ( xn ) −unp |
|
. |
Погрешностью |
всего |
|||
|
|
||||||||
приближённого решения (как вектор-функции) в узле сетки xn |
будем |
||||||||
называть величину p 1, 2, , m |
u p (xn ) −unp |
. Оценка погрешности p-го |
|||||||
max |
|
|
|
|
|
|
|||
= |
|
|
|
|
|
|
|
|
|
компонента приближённого решения в узле сетки |
xn представляет |
||||||||
собой любое положительное |
|
число |
un p , |
удовлетворяющее |
неравенству u p (xn ) −unp ≤ un p . Оценкой погрешности приближённого
Глава 9. Численные методы решения обыкновенных дифференциальных |
101 |
|||||
уравнений |
|
|
|
|
|
|
решения в узле сетки xn называется любое положительное число |
un |
|||||
, удовлетворяющее неравенству p 1, 2, ,m |
u p (xn ) −unp |
|
≤ |
un |
. |
|
max |
|
|
|
|||
= |
|
|
|
|
|
|
Задача вычисления приближённого решения задачи Коши (9.2.7) - (9.2.8) с заданной точностью обычно ставится следующим образом.
Для заданного положительного числа ε требуется подобрать сетку { xn} и найти приближённое сеточное решение задачи Коши { un} , абсолютная погрешность которого во всех узлах сетки не превышает
заданной точности |
ε |
: |
æ |
|
u p (xn ) -unp |
|
ö |
. |
|
|
|
||||||||
n=0,1, ,N èp=1, 2, , m |
|
ø |
|||||||
|
|
max ç |
max |
|
÷ £ε |
|
|||
Так как внешний вид задач (9.2.7) - (9.2.8), (9.1.1) почти |
|||||||||
одинаков, для приближённого |
решения |
задачи (9.2.7) - (9.2.8) |
строятся вычислительные схемы, аналогичные тем, которые были рассмотрены, только скалярные величины заменяются векторными.
Например, схема Эйлера для приближённого решения задачи (9.2.7) -
(9.2.8) будет иметь вид |
|
u0 = u , |
(9.2.9) |
un+1 = un + h × f( xn ,un ) , n =0 ,1, , N −1. |
(9.2.10) |
В координатах схема Эйлера для систем будет выглядеть более громоздко:
ìu01 = u1 ,
ïïu02 = u2 ,
í
ï..............
ïîu0m = um ,
ìun+11 = un1 + h f1 (xn ,un1 ,un 2 , ,un m ), |
|
|||||||||||||
ïu |
= u |
n 2 |
+ h f |
2 |
(x |
n |
,u |
n1 |
,u |
n 2 |
, ,u |
n m |
), |
|
ï n+12 |
|
|
|
|
|
|
|
|
||||||
í................................................................. |
n =0 ,1, , N −1 |
|||||||||||||
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
îun+1m = un m + h fm (xn ,un1 ,un 2 , ,un m ). |
|
|||||||||||||
Аналогично строится и схема Рунге-Кутта четвертого порядка: |
||||||||||||||
|
|
|
u0 = u , |
|
|
|
|
|
|
|
|
|
(9.2.11) |
Глава 9. Численные методы решения обыкновенных дифференциальных |
102 |
|||||||||||
уравнений |
|
|
|
|
|
|
|
|
|
|
|
|
ì |
|
|
|
|
|
|
|
|
|
|
|
|
ïK1 = f( xn ,un ) , |
|
|
|
|
|
|
||||||
ï |
|
= f( xn |
+ h 2, un + h K1 2) , |
|
|
|||||||
ïK |
2 |
|
|
|||||||||
ï |
|
= f( xn |
+ h 2 , un + h K2 2) , |
(9.2.12) |
||||||||
íK3 |
||||||||||||
ïK |
4 |
= f( x |
n |
+ h , u |
n |
+ h K |
3 |
) , |
|
|
||
ï |
|
|
h |
|
|
|
|
|
||||
ï |
|
|
|
+ |
[K1 |
+ 2 K2 + 2 K3 + K4 ], |
n = 0,1, , N - 1. |
|
||||
ïun+1 = un |
6 |
|
||||||||||
î |
|
|
|
|
|
|
|
|
|
|
|
Оценки погрешности вычислительных схем для векторного случая производятся так же, как и для скалярного. Можно доказать,
что вычислительная схема Эйлера (9.2.9) − (9.2.10) имеет первый
порядок точности, если функция f и ее частные производные непрерывны и ограничены. А вычислительная схема Рунге-Кутта
(9.2.11) − (9.2.12) имеет четвёртый порядок точности, если функция f
и ее частные производные до четвертого порядка непрерывны и ограничены.
Для получения приближённого решения задачи (9.2.7) − (9.2.8) с
заданной точностью ε можно использовать правило Рунге. Строится последовательность сгущающихся (в 2 раза) сеток и для каждой пары сеток сравниваются приближённые решения на них {un p } и {u2n p } в
совпадающих |
узлах xn = x2n . |
|
Практическая оценка |
погрешности |
||||||||||||
приближённого |
решения |
в совпадающем |
узле xn = x2n |
по правилу |
||||||||||||
Рунге принимает вид |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
max |
|
u |
2n p |
−un p |
|
. |
(9.2.13) |
max |
|
u p (xn ) |
− |
u |
2n p |
|
≈ |
p=1,2, ,m |
|
|
|
|
||||
|
|
|
|
|||||||||||||
|
|
(2k −1) |
|
|
||||||||||||
p=1,2, , m |
|
|
|
|
|
|
|
|
|
|
|
Процесс построения приближённых решений продолжается до тех пор, пока во всех совпадающих узлах xn = x2n двух последних сеток не будет выполнено условие
max |
u |
2n p −un p |
≤ε . |
(9.2.14) |
p=1, 2, , m |
||||
(2k −1) |
|
|
Тогда последнее полученное приближённое решение {un p } будет иметь заданную точность ε в совпадающих узлах двух последних сеток. Поскольку погрешность приближённого решения обычно принимает максимальное значение на правом конце отрезка [a ;b], условие (9.2.14) обычно проверяется только при n = N .
Глава 9. Численные методы решения обыкновенных дифференциальных |
103 |
уравнений |
|
9.3. Численные методы решения краевых задач для обыкновенных дифференциальных уравнений
Помимо задач Коши, встречаются и другие виды краевых задач, дополнительные (краевые) условия для которых формулируются в нескольких точках. Для их решения существует несколько методов. Два из них в этом параграфе.
Баллистический метод
Баллистический метод применяется для решения краевых задач с краевыми условиями, поставленными на концах промежутка, на котором ищется решения задачи. Основная идея метода состоит в том, чтобы свести решение краевой задачи к задаче Коши, для решения которой существуют надежные вычислительные схемы (например, схемы Рунге-Кутта). Баллистический метод называют также методом стрельбы и методом пристрелки. Названия метода возникли из-за глубокой аналогии, имеющейся между ним и действиями артиллеристов. Существует несколько разновидностей баллистического метода. Мы будем рассматривать его на примере решения краевой задачи для системы двух дифференциальных уравнений первого порядка
u1′ = |
f1( x,u1,u2 ) , x [a;b] , |
, |
(9.3.1) |
|||||||
2 |
|
2 |
1 |
2 |
) |
, |
|
|
(9.3.2) |
|
u′ = f |
|
( x,u ,u |
|
|
x [a;b] |
|
|
|||
с краевыми условиями |
|
|
|
|
|
|
|
|
|
|
u2 (a) = ϕ (u1(a)) , |
|
|
|
|
|
(9.3.3) |
||||
ψ (u1(b),u2 (b)) = 0. |
|
|
|
(9.3.4) |
||||||
Здесь a и b – заданные постоянные, а |
f1, |
f2 ,ϕ,ψ − заданные функции. |
Решением (точным решением) этой краевой задачи называется пара непрерывных и дифференцируемых на отрезке (a;b) функций { u1( x),u2 ( x)} , удовлетворяющих уравнениям (9.3.1), (9.3.2) и краевым условиям (9.3.3), (9.3.4). Будем предполагать, что точное решение краевой задачи существует и единственно. Требуется найти
Глава 9. Численные методы решения обыкновенных дифференциальных |
104 |
уравнений |
|
приближенное решение этой задачи с погрешностью, не превышающей заданного положительного числа ε .
Введем параметр η такой, что |
|
u1(a) =η . |
(9.3.5) |
Тогда из равенства (9.3.3), получим |
|
u2 (a) = ϕ(η ) , |
(9.3.6) |
Если функции u1( x) и u2 ( x) удовлетворяют условиям (9.3.5) и (9.3.6), то при любом значении η они будут удовлетворять и краевому условию (9.3.3).
Зафиксируем какое-либо значение параметра η и решим любым способом задачу Коши для системы дифференциальных уравнений (9.3.1), (9.3.2) с начальными условиями (9.3.5), (9.3.6). Обозначим точное решение задачи Коши (9.3.1), (9.3.2), (9.3.5), (9.3.6) как { u1( x;η),u2 ( x;η)} (оно, очевидно, зависит от значения параметра η). При любом значении η функции u1( x;η) и u2 ( x;η) будут удовлетворять дифференциальным уравнениям (9.3.1), (9.3.2) и краевому условию (9.3.3). Для получения решения краевой задачи осталось подобрать (пристрелять) значение параметра η, при котором функции u1( x;η) и u2 ( x;η) будут удовлетворять также и условию (9.3.4). Для этого мы подставляем u1( x;η) и u2 ( x;η) в краевое условие (9.3.4). В результате этого получается уравнение с одним неизвестным η
ψ (u1(b;η ),u2 (b;η )) = 0. |
(9.3.7) |
Если ηе − точное решение уравнения (9.3.7), то { u1( x;ηe ),u2( x;ηe )} −
точное решение краевой задачи (9.3.1), (9.3.2), (9.3.3), (9.3.4).
Чаще всего получить точное решение задачи Коши (9.3.1), (9.3.2), (9.3.5), (9.3.6) и уравнения (9.3.7) не удается. В этом случае для решения этих задач используются численные методы (например,
метод Рунге-Кутта |
и метод половинного деления). |
Обозначим |
|||||||||||
{ |
u1( x;η), |
u |
2 ( x;η)} |
приближенное решение задачи Коши (9.3.1), (9.3.2), |
|||||||||
(9.3.5), (9.3.6), получаемое каким либо численным методом. |
|||||||||||||
|
Чаще всего |
u1( x;η) и u2 ( x;η) представляют собой сеточные |
|||||||||||
функции, а |
точка |
x = b принадлежит сетке. Поэтому можно |
|||||||||||
определить |
u1(b;η) и |
u |
2 (b;η) . Подставляя в равенство |
(9.3.7) эти |
|||||||||
значения, получаем уравнение с одним неизвестным η |
|
||||||||||||
|
|
|
|
|
|
|
|
|
ψ ( |
u1(b;η ), |
u |
2 (b;η )) = 0. |
(9.3.8) |
Решая его каким-либо численным методом, получаем приближенное решение уравнения (9.3.8) − ηa . А в качестве приближенного
Глава 9. Численные методы решения обыкновенных дифференциальных |
105 |
уравнений |
|
решения краевой задачи (9.3.1), (9.3.2), (9.3.3), (9.3.4) выбирается
{u1( x;ηa ),u2 ( x;ηa )} .
Ксожалению, для оценки погрешности полученного
приближенного решения требуются дополнительные исследования.
Разностный метод
Рассмотрим краевую задачу для линейного обыкновенного
дифференциального уравнения 2-го порядка |
|
u′′ - p( x) × u = f ( x) , x [a,b], |
(9.3.9) |
u(a) = α , u(b) = β . |
(9.3.10) |
Здесь a, b,α, β − заданные вещественные постоянные, |
p(x), f (x) − |
заданные функции.
Решением (точным решением) этой краевой задачи называется функция u(x) , дважды дифференцируемая и непрерывная на отрезке [a;b], удовлетворяющая уравнению (9.3.9) и краевым условиям (9.3.10). Будем предполагать, что точное решение краевой задачи существует и единственно. Требуется найти приближенное решение этой задачи с погрешностью, не превышающей заданного
положительного числа ε . |
|
|||
Введем на |
отрезке [a;b] равномерную сетку |
точек |
||
{ xn = a + h n |
|
h = (b − a) |
N, n = 0,1, , N}с шагом h. Приближенное |
решение |
|
краевой задачи будем искать в виде сеточной функции. Дифференциальное уравнение (9.3.9) должно выполняться во всех точках отрезка [a ;b], в том числе и во всех узлах сетки:
. (9.3.11) Используем формулу численного дифференцирования (6.1.23) для приближенного вычисления производной
u′′( xn ) ≈ u( xn−1) − 2 u( xn ) + u ( xn+1) . h2
Подставим это приближённое равенство в дифференциальное уравнение. В результате этого получим систему приближённых алгебраических равенств
u( xn−1) − 2u( xn ) + u( xn+1) |
− p( xn ) u( xn ) ≈ f ( xn ) , n =1, 2, , N −1. (9.3.12) |
h2 |
|
Из краевых условий (9.3.10) определяются
Глава 9. Численные методы решения обыкновенных дифференциальных |
106 |
уравнений |
|
u( x0 ) = u(a) = α , u( xN ) = u(b) = β . |
(9.3.13) |
Таким образом, мы получили систему приближенных линейных алгебраических уравнений с постоянными коэффициентами (9.3.12), (9.3.13) относительно неизвестных u( x0 ),u( x1 ), ,u( xN ) . Решив ее, получим приближенные значения неизвестных.
Описанный способ определения приближённого решения, получил название разностного метода. Обозначим приближённые значения u( xn ) как un и запишем вычислительную схему для получения приближённого решения {un} :
un−1 − 2 un + un+1 |
− p( xn ) un = f ( xn ) , n =1, 2, , N −1. |
(9.3.14) |
|
h |
2 |
||
|
u0 = α , uN = β . |
(9.3.15) |
|
|
|
Подобные вычислительные схемы называются разностными, поскольку они получаются из дифференциальных уравнений путем замены производных разностными отношениями по формулам численного дифференцирования. Разностная схема (9.3.14), (9.3.15) представляет собой линейную систему с трехдиагональной матрицей. В самом деле, после элементарных преобразований система (9.3.14), (9.3.15) принимает вид
u0 = α , |
(9.3.16) |
un−1 − (2 + h2 p( xn ))un + un+1 = h2 f ( xn ) , n =1, 2, , N −1. |
(9.3.17) |
uN = β . |
(9.3.18) |
Подставим начальное краевое условие (9.3.16) в первое уравнение (9.3.17) (при n =1), а конечное краевое условие (9.3.18) − в
последнее уравнение (9.3.17) (при n = N −1). В результате наша линейная система примет вид, аналогичный системе уравнений (3.3.2):
− (2 + h2 p( x1))u1 + u2 = h2 f ( x1) − α ,
un−1 − (2 + h2 p( xn ))un + un+1 = h2 f ( xn ) , uN −2 − (2 + h2 p( xN −1))uN −1 = h2 f ( xN −1)
Запишем ее в виде (3.3.2):
|
(9.3.19) |
n =2,3, , N −2 , |
(9.3.20) |
− β . |
(9.3.21) |
Глава 9. Численные методы решения обыкновенных дифференциальных |
107 |
уравнений |
|
ì− C1u1 + B1u2 = − F1, |
|
|
|
|
|||||||||||
ï |
A u |
n−1 |
- C |
n |
y |
n |
+ B |
u |
n+1 |
= - F , n = 2,3, ,N - 2, |
|||||
í |
n |
|
|
|
|
n |
|
n |
|
||||||
ï |
A u |
|
- C |
|
u |
N−1 |
= |
- F |
. |
||||||
î |
N−1 N− 2 |
|
|
|
|
N−1 |
|
N−1 |
|
Здесь
ì |
An = |
1, |
n = |
2,3, ,N − 1, |
|||||||
ï |
B |
|
= |
1, |
n = |
1,2, ,N - |
2, |
||||
ï |
n |
|
|
|
|
|
|
|
|
|
|
ï |
C |
n |
= |
2+ |
h2 |
× p(x |
n |
), n = |
1,2, ,N - 1, |
||
ï |
|
|
|
|
|
|
|
|
|
||
í |
|
|
|
ì |
- h2 |
f (x ) + α , n = 1, |
|||||
ï |
F |
|
= |
ï |
- |
h2 |
1 |
), n = |
2,3, ,N - 2, |
||
ï |
|
ï |
f (x |
n |
|||||||
ï |
n |
|
í |
|
|
|
|
|
|
||
ï |
|
|
|
ï |
- |
h2 |
f (xN−1) + β , n = N - 1. |
||||
|
|
|
ï |
||||||||
î |
|
|
|
î |
|
|
|
|
|
|
|
(9.3.22)
(9.3.23)
Для решения системы (9.3.22) целесообразно использовать метод правой прогонки (см. параграф 3.2). Если p( xn ) ³ 0, то все достаточные условия применимости метода прогонки будут выполнены. Решая систему (9.3.22) методом прогонки, получим приближенное решение краевой задачи на сетке { un} .