Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы вычислительной математики

..pdf
Скачиваний:
17
Добавлен:
15.11.2022
Размер:
3.42 Mб
Скачать

прерывно зависит от входных данных, то есть от начальных (граничных) условий и коэффициентов уравнения.

Численное решение задачи считается корректным, если исходная задача поставлена корректно и ее дискретный аналог сохраняет свойства корректности, то есть получаемая система алгебраических уравнений однозначно разрешима и устойчива1 по входным данным.

Задача Коши заключается в отыскании функции y(x), удовлетворяющей дифференциальному уравнению

yx = f (x, y), 0 < x T, y

 

x=0 = y0 .

(8.1)

 

 

Здесь f(x, y) – заданная непрерывная функция двух аргументов.

Условия существования и единственности решения задачи (8.1) устанавливает следующая теорема.

Теорема 8.1 (Пеано2, [47]). Пусть функция f(x, y) непрерывна в открытой области D. Тогда через каждую точку (u, v) этой области проходит хотя бы одна интегральная кривая. Каждая интегральная кривая может быть продолжена в обе стороны вплоть до границы любой замкнутой области G, целиком содержащейся в D и содержащей точку (u, v) внутри себя.

Кроме того, если функция f(x, y) имеет в области D непрерывные частные производные первого порядка или удовлетворяет условию Липшица,

f (x, y2 )f (x, y1 ) K y2 y1 , (x, y1 ),(x, y2 ) G, K =const >0,

то задача (8.1) имеет единственное решение.

В дальнейшем предполагается, что правая часть f(x, y) уравнения (8.1) дифференцируема требуемое число раз.

Пример 8.1. На материальную точку с массой m, находящуюся на гладкой горизонтальной поверхности, действует горизонтальная гармоническая сила, модуль которой зависит от времени, F(t)= Asin(t). Найти закон движения точки, если ее начальная скорость равна v0.

Уравнение, описывающее движение точки, имеет вид mxtt′′ = Asin(t).

В качестве начальных принимаются условия:

1Под устойчивостью в данном случае понимается непрерывная зависимость решения от входных данных [15].

2Пеано Джузеппе [27.8.1858 – 20.9.1930] – итальянский математик. С 1890 года – профессор Туринского университета.

161

x(0) = 0, v(0)= xt(0)= v0 .

Интегрирование исходного уравнения с заданными начальными условиями дает решение

v(t) = v0 + A[1 cos(t)]m, x(t)= (v0 + Am)t Asin(t)m

непрерывно зависящее от начальных условий x(0) = 0, v(0)= v0 и коэффициентов A, m. При условии, что v0 = − Am , решение задачи принимает вид

x(t)= − Asin(t)m ,

что соответствует случаю гармонического колебания точки вблизи ее начального положения. Иными словами, t > 0 x(t) Am . Очевидно, что при малом

отклонении величины v0 от выбранного значения Am , например за счет погрешности округления в ЭВМ, численное решение задачи дает (рис. 8.1)

x(t) →∞.

t→∞

Рис. 8.1. Действительное решение (кривая 1) и возмущенное решения (кривая 2) задачи из примера 8.1

Таким образом, даже при корректно поставленной задаче ее численное решение может быть связано со значительными трудностями.

8.1. Устойчивость решения задачи Коши

Наряду с уравнением (8.1) рассматривается задача

yx = f (x, y) + δ(x), y(0) = y0 + γ,

(8.2)

162

где δ(x), γ возмущения, вносимые в правую часть уравнения (8.1) и начальные условия.

Задача Коши (8.1) абсолютно устойчива [47], если ε > 0 η > 0 такое,

что x > 0 из условия

 

δ

 

< ε,

 

γ

 

< ε следует

 

~

 

 

 

≤ η. Иначе говоря, реше-

 

 

 

 

 

 

 

 

 

 

 

 

y y

 

 

 

ние устойчиво, если «возмущенное» решение «не слишком сильно» отличается от исходного.

Рассматриваются условия устойчивости решения по начальному условию, то есть полагается δ(x) 0 . Оценивается погрешность решения

~

(x) y(x).

(8.3)

z(x) = y

Для этого из выражения (8.2) вычитается уравнение (8.1):

′ = ~( )− ′ ( )= ( ~)( )= ( + ) ( )

zx yx x yx x f x, y f x, y f x, y z f x, y .

При использовании теоремы Лагранжа о среднем для правой части последнего выражения получается:

f (x, y + z)f (x, y) = zf y(x, y + θz), θ (0,1).

Полученное дифференциальное уравнение zx = zf y(x, y + θz)

решается с помощью разделения переменных: dzz = f y(x, y z)dx ,

z(x)

dz

= x

f y(t, y + θz)dt ,

z

 

 

 

z0

 

 

0

 

 

z(x)

 

x

 

 

= f y(t, y + θz)dt ,

ln(z)z0

 

 

 

 

0

 

 

 

 

 

 

x fy(t, yz ) dt

.

z(x) = z0e0

Очевидно, что погрешность z не будет возрастать, если x z z0 . Но это

возможно в том случае, когда x f y(t, y z)dt 0 . Поскольку это требование

0

должно выполняться для любого значения x, необходимо потребовать, чтобы имело место неравенство f y′ ≤ 0 .

Пример 8.2. Исследовать устойчивость решения

дифференциального

уравнения yx = ky с начальным условием y(0)= y0 .

 

163

Точное решение этого уравнения имеет вид

y(x) = y0ekx . Если k < 0, усло-

вие устойчивости выполняется,

f y(x, y) = k < 0 , погрешность решения

 

 

z(x)

 

=

 

~

 

 

=

 

~

y

 

 

e

kx

0

 

 

 

 

 

 

 

 

 

 

 

y(x)y(x)

 

 

y

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x→∞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и различие между основным и возмущенным решениями уменьшается с увеличением значения аргумента (рис. 8.2, а).

а б

Рис. 8.2. Примеры сходимости (а) и расходимости (б) основного (кривые 1) и возмущенного (кривые 2) решений задачи из примера 8.2

При k > 0 условие устойчивости не выполняется, f y(x, y) = k > 0, погрешность

z(x)

 

=

 

~

(x)y(x)

 

=

 

~

y

 

e

kx

→∞

 

 

 

 

 

 

 

y

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

x→∞

 

 

 

 

 

 

 

 

 

 

 

 

 

и различие между основным и возмущенным решениями увеличивается с ростом аргумента x (рис. 8.2, б).

8.2. Метод Пикара1

Уравнение (7.1) интегрируется с помощью разделения переменных:

1 Пикар Шарль Эмиль [24.7.1856 – 11.12.1941] – французский математик. В 1877 году окончил Высшую нормальную школу в Париже. С 1881 года – профессор этой же школы, а с 1886 года – профессор Парижского университета. С 1895 – член-корреспондент Петербургской академии наук; с 1889 – член Парижской академии наук; с 1924 года – член Французской академии наук; с 1925 года – почетный член Академии наук СССР.

164

dy = f (x, y)dx,

y( x)

x

 

dy = f (t, y)dt,

 

y0

0

 

 

x

 

y(x)= y0 + f (t, y(t))dt.

(8.4)

0

С помощью последнего соотношения строится итерационный процесс

y(s) (x)= y0 + x

f (t, y(s1) (t))dt ,

(8.5)

0

 

 

при этом в качестве «нулевого» приближения выбирается y(0) (x)y0 = const. Интеграл в правой части процедуры (8.5) вычисляется точно или численно.

Пример 8.3. Найти методом Пикара решение уравнения yx = −ky , y(0)=1.

Начальное приближение строится в соответствии с идеей метода:

y(0) (x)1.

Первое приближение

y(1) (x)= y0 + x f (t, y(0) (t))dt =1 + x (ky(0) (t))dt =1 k x 1dt =1 kx .

0

0

0

Аналогично определяются второе приближение,

y(2) (x)=1 + x (k(1 kt))dt =1 k x

1dt + k 2 x tdt =1 kx + (kx)2 2 ,

0

0

0

третье,

 

 

y(3) (x)=1 + x [k(1 kt + (kt)2

2)]dt =1 kx + (kx)2 2 (kx)3 6 ,

0

 

 

четвертое,

y(4) (x) = 1 + x [k(1 kt + (kt)2 2 (kt)3 6)]dt =

0

=1 kx + (kx)2 2 (kx)3 6 + (kx)4 24,

итак далее. Получаемая последовательность решений представляет собой частичные суммы разложения в ряд Тейлора экспоненты y(x)= ekx , являющейся

точным решением поставленной задачи.

Условия сходимости решения уравнения методом Пикара

Предполагается, что в ограниченной области

G ={(x, y) x [0,T ], y [a,b]},

165

правая часть f (x, y) уравнения (8.1) удовлетворяет условию Липшица,

f (x, y2 )f (x, y1 ) K y2 y1 .

Вследствие ограниченности области (x, y) G выполнены соотношения x T, y y0 H = b a .

Вычитая из соотношения (8.5) уравнение (8.4), можно определить погрешность приближенного решения,

z(s) (x)= y(s) (x)y(x)= x [f (x, y(s1) (t))f (x, y(t))]dt ,

0

и оценить модуль погрешности,

z(s) (x)

 

=

x [f (x, y(s1) (t))f (x, y(t))]dt

x

 

f (x, y(s1) (t))f (x, y(t))

 

dt

 

 

 

 

0

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

K x

 

y(s1) (t)y(t)

 

dt = K x

 

 

z(s1) (t)

 

dt .

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

Поскольку z0 (x) = y0 y(x) H (решение рассматривается внутри облас-

ти G), получается:

z(1) (x) K x z(0) (t)dt = HKx ,

 

 

 

0

z(2) (x)

 

K x

z(1) (t)dt = HK 2 x2 2 ,

 

0

 

z(3) (x) K x z(2) (t)dt = HK 3 x3 6 ,

 

 

 

 

0

 

 

 

K x

…,

 

z(s) (x)

 

z(s1) (t)dt = HK s xs n!H (KT )s s!.

 

 

0

 

В силу того, что

lim(KT )s s!= 0,

 

 

 

 

 

 

 

 

s→∞

следует, что погрешность решения уменьшается с ростом числа итераций,

z(s) (x) H (KT )s s! 0 ,

s→∞

иметод Пикара сходится к точному единственному решению исходной задачи.

8.3.Метод Эйлера

166

Пусть для отрезка [a, b], на котором ищется решение дифференциального уравнения (8.1), построена сеточная область Ωm ={a = x0 < x1 <…< xm = b} с постоянным шагом h. Для построения решения обыкновенного дифференциального уравнения (8.1) используется разложение искомой функции y(x) в ряд Тей-

лора вблизи произвольной точки xk Ωm :

 

 

y(xk+1 )= y(xk )+ yx (xk )h +….

 

Учитывая, что согласно уравнению (8.1) yx (xk ) = f (xk , y(xk )), это разложе-

ние решения можно записать в виде

))h +….

 

y(xk+1 )= y(xk )+ f (xk , y(xk

 

С помощью полученного выражения строится вычислительный процесс

yk+1 = yk + f (xk , yk )h,

k =1,2,,

y0 = y(0).

(8.6)

Здесь и далее символами

yk

обозначается результат численного решения

уравнения (8.1), а выражение

y(xk ) в дальнейшем используется для обозначе-

ния точного решения исходной задачи.

Пример 8.4. Решить методом Эйлера уравнение yx = −y, y(0)=1.

В этом частном случае правая часть дифференциального уравнения имеет вид f (x, y) = −y , то есть вычислительная схема метода Эйлера (8.6) записыва-

ется следующим образом:

yk+1 = yk yk h = yk (1 h), k =1,2,

Строится последовательность значений функции yk для узлов сетки Ωm ,

y0 = y(0) =1,

y1 = y0 (1 h) = (1 h),

y2 = y1 (1 h)= (1 h)(1 h)= (1 h)2 ,

y3 = y2 (1 h) = (1 h)3 , … ym = (1 h)m .

Для оценки точности получаемого численного решения производятся вычисления с различными шагами интегрирования h (табл. 8.1). Точное решение y(x) = ex , например, для x = 10 принимает значение y(10)=0,453999·10–4.

Таблица 8.1 Результаты численного решения ym методом Эйлера обыкновенного дифференциального уравнения y′ = −y с начальным условием y(0) = 1

Величина шага h

0,5

0,25

0,1

0,01

0,001

0,0001

 

 

 

 

 

 

 

167

Число шагов m

20

40

100

1000

10000

100000

 

 

 

 

 

 

 

ym·104

0,009537

0,100566

0,265614

0,431713

0,451733

0,453772

Три верные значащие цифры получены для шага h = 0,0001, при этом требуется выполнить 100000 «шагов» по аргументу x, то есть необходимо 100000 раз выполнить вычисления в соответствии с формулой (8.6). Для оценки точности решения погрешность представляется разностью

zk = yk y(xk ),

определяющей отклонение численного решения по схеме Эйлера от точного. Соотношение (8.6) записывается в виде разностного аналога дифференциального уравнения (8.1),

(yk+1 yk ) h = f (xk , yk ).

(8.7)

Подстановка в формулу (8.6) значений yk = zk + y(xk ) и yk+1 = zk+1 + y(xk+1 ) дает выражение

(zk+1 zk )h + [y(xk+1 )y(xk )]h = f (xk , zk + y(xk )).

Преобразование последней формулы с помощью добавления в правую часть и одновременного вычитания f (xk , y(xk )) приводит к результату

(zk+1 zk )h = −[y(xk+1 )y(xk )]h + f (xk , zk + y(xk )) + f (xk , y(xk ))f (xk , y(xk )),

(zk+1 zk ) h =

(8.8)

= −{[y(xk +1 )y(xk )]h f (xk , y(xk ))}+ f (xk , zk + y(xk ))f (xk , y(xk )).

Выражение в фигурных скобках представляет собой разностный аналог выражения (8.7), в котором приближенные значения yk искомой функции заменены точными значениями y(xk). Это позволяет проверить, насколько точно разностный аналог (8.7) аппроксимирует исходное дифференциальное уравнение (8.1). Величина

ψk = [y(xk +1 )y(xk )] h f (xk , y(xk ))

(8.9)

определяет погрешность аппроксимации разностным аналогом исходного дифференциального уравнения. Для оценки этой погрешности разложение решения в ряд Тейлора

y(xk+1 )= y(xk )+ yx (xk )h + yxx(xk )h2 2 +…

подставляется в формулу (8.9):

168

ψk = [y(xk ) + yx (xk )h + yxx(xk )h2 2 +…− y(xk )]h f (xk , y(xk ))=

= yx (xk ) + yxx(xk )h2 +…− f (xk , y(xk )).

Поскольку согласно исходному уравнению yx (xk ) = f (xk , y(xk )),

оценка погрешности принимает вид

ψk = yxx(xk )h2 +…= O(h).

При условии, что значения второй производной yxx(xk ) ограничены на отрезке [a, b], погрешность аппроксимации оказывается величиной, пропорциональной первому порядку шага интегрирования. В общем случае порядок погрешности аппроксимации равен p, если имеет место соотношение вида

ψk = O(h p ).

Второе слагаемое в формуле (8.8) в соответствии с теоремой Лагранжа о среднем можно представить в виде

f (xk , y(xk ) + zk ) f (xk , y(xk ))= f y(xk , y(xk )+ θzk )zk , θ (0,1).

Тогда выражение (8.8) преобразуется следующим образом: (zk+1 zk )h = f y(xk , y(xk )+ θzk )zk + O(h),

zk+1 = zk + f y(xk , y(xk )+ θzk )zk h + O(h2 )= zk [1 + f y(xk , y(xk )+ θzk )h]+ O(h2 ).

Для того чтобы при выполнении вычислений погрешность не возрастала, требуется выполнение условия 1 + f y(x, y)h 1, или 1 1 + f y(x, y)h 1. Отсю-

да следует неравенство

 

 

 

 

 

2 f y(x, y)h ≤ 0,

(8.10)

соответствующее критерию устойчивости по начальным данным,

f y′ ≤ 0, полу-

ченному ранее. Далее, с учетом выполнения условия Липшица,

 

 

 

 

 

f (x, y2 ) f (x, y1 )

 

K

 

y2 y1

 

,

 

 

 

 

 

 

 

 

 

оценивается производная

 

 

f y(x, y)

 

= f (xk , y(xk )+ zk )f (xk , y(xk )) zk

 

 

 

 

K y(xk )+ zk y(xk ) zk = K,

K f y(x, y)K.

Сучетомусловияустойчивостирешения f y(x, y)0 получается неравенство

169

 

 

 

K f y(x, y) ≤ 0,

 

 

 

из которого, с учетом выражения (8.10), следует оценка шага h:

 

 

 

h ≤ − 2 f y(x, y) 2 K.

 

 

 

Следовательно, для того, чтобы не нарастала погрешность вычислений, необ-

ходимо ограничивать величину шага интегрирования. На рис. 8.3 представлены

результаты решения задачи из примера 8.3 с использованием формулы (8.6) при

малых шагах интегрирования, а также точное решение той же задачи.

 

y

 

 

 

y

 

 

 

1

 

 

 

1

 

 

 

0,75

 

 

 

0,75

 

 

 

0,5

 

 

 

0,5

 

 

 

0,25

 

 

 

0,25

 

 

 

0

 

 

4,5 x

0

 

 

 

0

1,5

3

0

1,5

3

4,5 x

 

а

 

 

 

 

б

 

y

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

0,75

 

 

 

 

 

 

 

0,5

 

 

 

 

 

 

 

0,25

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

0

1,5

 

3

 

4,5

x

 

 

 

 

в

 

 

 

Рис. 8.3. Сравнение точного решения с результатами расчетов на ЭВМ

 

при различных шагах интегрирования: h = 0,5 (а), h = 0,25 (б),

 

 

h = 0,1 (в); — – точное решение, —о— – численное решение

 

170

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]