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

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

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

порядков погрешностей аппроксимации. Для построения неявной схемы уравнение (8.1) записывается в виде

xk +1

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

xk

причем интеграл в правой части этого выражения вычисляется, например, по формуле трапеций:

yk +1 = yk + h[f (xk , yk ) + f (xk +1 , yk +1 )] 2.

(8.14)

Полученное выражение можно рассматривать как нелинейное уравнение

относительно искомой величины yk+1 :

 

yk +1 hf (xk +1 , yk +1 ) 2 = yk + hf (xk , yk ) 2.

 

Эта схема допускает интегрирование с переменным шагом,

не требует

специальных приемов для начала расчетов. Вместе с тем необходимо исследовать вопрос о существовании и единственности решения.

Пример 8.7 (из монографии [15]). Решить дифференциальное уравнение: yx = y2 , y(0) =1.

Согласно неявной схеме (8.14)

y + = y + h(y2 + y2+ ) 2 .

k 1 k k k 1

В частности, для k = 0 получается

y1 = y0 + h(y02 + y12 )2 =1 + h(1 + y12 )2,

hy12 2 y1 + (2 + h)= 0 ,

представляющее собой квадратное уравнение относительно y1 :

y1(1,2) = [1 ± 1 h(2 + h)]h .

Дискриминант квадратного уравнения должен быть неотрицательным, 1 h(2 + h)0 ,

h2 + 2h 1 0 ,

(h +1)2 2,

2 1 h 2 1.

181

Принцип построения разностных схем требует, чтобы шаг интегрирования был положителен, то есть

0 < h 2 1.

При иных значениях шага h численное решение будет содержать мнимую часть, хотя точное решение исходного уравнения является вещественным:

y(x)= (1 x)1 .

В общем случае решение нелинейного уравнения (8.14) можно находить, например, с помощью итерационного процесса:

 

yk(s++11) = yk + h[f (xk , yk ) + f (xk+1, yk(s+)1 )] 2,

s = 0,1, 2, .

(8.15)

 

В качестве начального приближения можно выбрать yk(0+)1 = yk . Завершение

итерационного

процесса

производится

при

выполнении

условия

 

yk(s++11) yk(s+)1

 

≤ ε,

ε > 0 – заданное малое число. Сходимость процедуры имеет

 

 

место при малых шагах интегрирования h < 2 K, K

– константа в условии

Липшица для правой части исходного дифференциального уравнения. Итерационный процесс (8.15) можно рассматривать следующим образом:

предполагается, что yk(0+)1 = yk , тогда на первом шаге получается решение

y(1+) = y + h[f (x , y )+ f (x + , y )] 2 ≈ y + hf (x , y ),

k 1 k k k k 1 k k k k

соответствующее применению метода Эйлера, имеющего погрешность аппроксимации первого порядка. Далее,

yk(2)+1 = yk +h[f (xk , yk )+ f (xk+1, yk(1)+1 )]2 = yk + h[f (xk , yk )+ f (xk+1, yk +hf (xk , yk ))]2,

что соответствует схеме Рунге–Кутты второго порядка аппроксимации с коэффициентом α =12 . На третьей итерации можно ожидать повышения порядка аппроксимации до третьего, и так далее. Однако следует иметь в виду, что сама исходная схема (8.14) имеет второй порядок, а значит, целесообразно ограничивать общее число итераций. Известно эмпирическое правило [15]: пусть для решения дифференциального уравнения используется неявная схема p-го порядка точности, реализуемая итерационно. При первой итерации получается схема первого порядка точности; при второй – второго порядка, и так далее. При p итерациях получается схема p-го порядка. Дальнейшее увеличение числа итераций не повышает точности решения.

182

8.8. Дифференциальные уравнения высших порядков. Системы дифференциальных уравнений

Рассматривается дифференциальное уравнение n-го порядка с n начальными условиями:

 

yx(n)x = f (x, y, yx , , yx(nx1) ),

 

 

 

(8.16)

′′

′′

(n1)

(n1)

 

y(0)= y0 , yx (0)= y0 , yx (0)= y0 , ,

.

 

yxx

(0)= y0

 

Вводятся обозначения:

 

 

 

 

 

 

y(x) = u1 (x),

(x),

′′

, yxx (x)

= un (x).

yx (x)= u2

yxx (x)= u3 (x),

 

 

 

 

 

(n1)

 

 

Теперь уравнение (8.16) можно заменить системой дифференциальных уравнений первого порядка с соответствующими начальными условиями

u

 

 

(x)= u

2

(x),

 

 

u

 

(0)= y

0

,

 

 

 

 

1,x

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

(x)= u

 

(x),

 

 

 

 

(0) = y′ ,

 

 

 

u

 

 

3

 

u

2

 

 

 

 

 

2,x

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8.17)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,x (x)= un (x),

 

 

 

 

 

 

 

 

 

 

 

 

 

un

 

un1 (0)= y0(n2),

 

 

 

,x (x)= f

(x,u1,u2

 

 

 

 

(0)= y(n1).

 

 

un

,,un ); u

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

Эта система уравнений представляется в матричной форме:

Здесь обозначено:

{ux

}= {f },

{u(0)}= {u0 }.

 

 

 

 

 

 

(8.18)

u1

(x)

 

f1 (x,u1

(x),,un

(x))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x,u1

(x),,un

 

 

 

 

{u}=

u2

(x)

 

f2

(x))

 

 

 

 

 

 

 

,

{f }=

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x,u1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

un

(x)

 

fn

(x),,un (x))

Для системы (8.17), как частный случай, имеют место обозначения:

 

 

 

 

 

u2

(x)

 

 

 

 

 

 

 

 

 

 

 

y0

 

 

 

 

 

 

 

 

 

 

(x)

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

{f }=

u

 

 

 

 

 

 

{u

 

}=

 

 

 

 

 

 

 

3

 

 

 

,

 

0

 

0

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(n1)

 

 

 

 

 

 

fn (x,u1 (x),,un (x))

 

 

 

 

 

 

 

y0

 

8.8.1. Метод Эйлера для системы дифференциальных уравнений

Рассматривается первое уравнение системы (8.18), u1,x (x) = f1 (x,u1 (x),u2 (x),, un (x)).

183

С помощью разложения решения u1(x) в ряд Тейлора вблизи точки xk u1 (xk+1 )= u1 (xk ) + u1,x (xk )h + O(h2 )=

= u1 (xk )+ f1 (xp ,u1 (xk ), , un (xk ))h + O(h2 )

схема Эйлера принимает вид

u1k+1 = u1k + f1 (xk ,u1k ,,unk )h .

Для всей системы уравнений (2.18) схема Эйлера выглядит аналогично:

{uk+1}={uk }+ h{f (xk ,u1k ,,unk )}.

Пример 8.8. Решить обыкновенное дифференциальное уравнение второго порядка yxx′ + y = 0, y(0) = 1, yx (0) = 0.

Точным решением этой задачи является функция y(x) = cos(x). Первая производная решения yx (x) = sin(x). На фазовой плоскости (то есть в системе координат Oyy) решение представляет собой окружность единичного радиуса, поскольку

y2 + (yx )2 = cos2 (x) + sin2 (x)=1.

Этот частный факт можно использовать для качественной оценки погреш-

ности получаемого численного решения задачи. Вводятся обозначения:

y(x) = u1 (x), yx (x)= u2 (x).

Исходную задачу можно представить в виде системы дифференциальных

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

u1,x (x)= u2 (x),

u1 (0)=1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0)= 0.

u2,x (x) = −u1 (x);

u

2

 

 

 

 

 

 

 

Разностная схема для этой системы уравнений:

 

= u

 

+ hu

 

 

 

,

u

 

2k

1k+1

1k

 

 

 

= u

 

hu

 

.

u

2k

 

2k+1

 

 

 

1k

 

На рис. 8.7 приведено численное решение y(x), полученное при шаге интегрирования h = 0,1. Поведение полученного решения на фазовой плоскости представлено на рис. 8.8.

184

Рис. 8.7. Численное решение методом

 

Рис. 8.8. Фазовая диаграмма

Эйлера уравнения

y′′

+ y = 0 сшагом

 

 

xx

 

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

интегрирования h = 0,1

 

методом Эйлера уравнения

 

 

 

y

 

 

 

+ y = 0; шагинтегрированияh = 0,1

 

 

 

xx

 

8.8.2. Метод Рунге–Кутты для системы дифференциальных уравнений

Рассматривается наиболее распространенная схема четвертого порядка аппроксимации. Вводятся матрицы

 

 

 

f1 (xk ,u1k ,...,unk )

 

 

 

 

 

 

(xk ,u1k ,...,unk )

 

 

{

K1

=

f2

 

,

}

 

 

 

 

 

 

 

 

...........................

 

 

 

 

 

 

 

 

 

 

 

fn (xk ,u1k ,...,unk )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f1 (xk

+ h / 2,u1k

+ hK11 / 2,...,unk

+ hK1n

/ 2)

 

 

 

(xk

 

 

 

 

 

 

f2

+ h / 2,u1k

+ hK11 / 2,...,unk

+ hK1n

/ 2)

,

{K 2} =

 

 

 

 

 

 

......................................................................

 

 

 

 

 

 

 

 

 

fn (xk

+ h / 2,u1k

+ hK11 / 2,...,unk

+ hK1n

/ 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

185

 

 

 

f1 (xk

+ h / 2,u1k

+ hK 21 / 2,...,unk

+ hK 2n

/ 2)

 

 

 

 

 

(xk

 

 

 

 

 

 

 

 

 

{

}

=

f2

+ h / 2,u1k

+ hK 21 / 2,...,unk

+ hK 2n

/ 2)

,

 

 

 

 

 

 

 

 

 

 

 

K3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fn (xk

+ h

/ 2,u1k

+ hK 21 / 2,...,unk

+ hK 2n

/ 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f1 (xk

+ h,u1k

+ hK31,...,unk

+ hK3n )

 

 

 

 

 

 

 

 

 

 

 

 

+ hK3n )

 

 

 

 

 

 

 

f2 (xk

+ h,u1k

+ hK31,...,unk

 

,

 

 

{K 4} =

 

 

 

 

 

 

 

 

 

 

 

 

..........................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

fn (xk

+ h,u1k

+ hK31,...,unk

+ hK3n )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 8.9. Фазовая диаграмма результатов численного интегрирования уравнения yxx′ + y = 0 методом Рунге–Кутты

четвертого порядка с шагом h = 0,1

{uk+1}={uk }+ h[{K1}+

+ 2{K 2}+ 2{K 3}+ {K 4}]6.

На рис. 8.9 приведен график фазовой траектории численного решения задачи из примера 2.7, полученный для такого же шага интегрирования по схеме метода Рун- ге–Кутты четвертого порядка. Сравнение с рис. 8.8 подтверждает, что схема четвертого порядка аппроксимации имеет существенное преимущество в точности решения перед схемами первого порядка.

8.9. Разностные схемы интегрирования дифференциальных уравнений второго порядка

Рассматривается дифференциальное уравнение второго порядка uxx(x) = f (x,u(x),ux (x))

с начальными условиями

186

u(0) = u0 , ux (0)= u0.

С использованием обозначения u′ = v исходная задача сводится к системе двух дифференциальных уравнений первого порядка:

u

(x) = v(x),

 

x

 

 

 

(x)= f (x,u(x),v(x));

vx

 

 

u(0)= u

0

,

 

 

 

 

 

 

v(0) = u0 .

Ниже рассматриваются различные варианты интегрирования представленной системы обыкновенных дифференциальных уравнений, описанные в монографии [10].

8.9.1. Схема Эйлера

Схема Эйлера (8.6) для рассматриваемого частного случая имеет вид

v

= v

k

+ hf (x

k

,u

k

,v

k

),

 

k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= uk + hvk .

 

 

 

 

 

 

uk+1

 

 

 

 

 

 

8.9.2. Схема Эйлера–Кромера

Модификация схемы Эйлера, носящая название Эйлера–Кромера,

v

= v

k

+ hf (x

k

,u

k

,v

k

),

 

k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= uk +1 + hvk ,

 

 

 

 

uk+1

 

 

 

 

дает устойчивые решения для колебательных систем.

8.9.3. Схема средней точки

Разностная схема, называемая методом средней точки,

v

= v

k

+ hf (x

k

,u

k

,v

k

),

 

k+1

 

 

 

 

 

 

 

= uk + h(vk + vk+1 ) 2,

 

 

uk+1

имеет второй порядок точности по переменной u и первый порядок – по переменной v. Хотя приближение по средней точке дает точное решение, когда в правой части уравнения находится постоянная величина, в общем случае оно не дает лучших результатов по сравнению с методом Эйлера. Несложные преобразования приводят к выражению

uk+1 = uk + hvk + h2 f (xk ,uk ,vk )2.

8.9.4. Схема полушага

Разностная схема

187

vk+1/ 2 = vk1/ 2 + hf (xk ,uk ,vk ),

 

 

 

 

 

 

 

 

 

= u

 

+ hv

 

,

u

k

k+1/ 2

 

k+1

 

 

 

относится к методам высокой точности. Необходимо также отметить, что он является несамостартующим, поскольку значение v1/ 2 в первом выражении для k = 0 не определено. Вместе с тем для начала вычислений можно положить

v1/ 2 = v(x1/ 2 ) v(0)+ hf (0,u(0),v(0))2 = u0′ + hf (0,u0 ,u0)2,

определить значение

u1 = u0 + hv1/ 2

и далее уже продолжать расчеты по приведенным формулам.

8.9.5. Схема Верле

Для построения этой схемы используются разложения решения в ряды Тейлора:

u(xk+1 ) = u(xk )+ hux (xk ) + h2uxx(xk )2 + O(h3 ), u(xk1 ) = u(xk )hux (xk ) + h2uxx(xk )2 + O(h3 ).

Последовательное сложение и вычитание этих формул приводит к выражениям

u(xk+1 ) + u(xk1 )= 2u(xk )+ h2uxx(xk )+ O(h3 ),

u(xk+1 ) u(xk1 ) = 2hux (xk )+ O(h3 ),

которые позволяют построить соотношения

uk+1 = −uk1 + 2uk + h2 f (xk ,uk ,vk ),

(8.19)

vk = (uk +1 uk 1 )2h,

носящие название алгоритма Верле. Очевидным недостатком этой схемы является то, что для начала расчетов необходимо знать два значения искомой функции, то есть схема является также несамостартующей. Премущество заключается в том, что она имеет третий порядок точности по переменной u и второй порядок – по переменной v. Схема Верле особенно эффективна, когда правая часть исходного уравнения не зависит от v.

188

Эквивалентна в некотором смысле алгоритму Верле самостартующая схема

uk+1 = uk + hvk + h2 f (xk ,uk ,vk ) 2 ,

(8.20)

vk+1 = vk + h[f (xk+1,uk +1,vk +1 )+ f (xk ,uk ,vk )]2 .

8.9.6. Схема Бимана

Точность такого же порядка, что и алгоритм Верле, имеет схема Бимана

uk+1 = uk + hvk + h2 [4 f (xk ,uk ,vk ) f (xk1,uk1,vk 1 )] 6

(8.21)

vk +1 = vk + h[2 f (xk +1 ,uk +1 ,vk +1 ) + 5 f (xk ,uk ,vk ) f (xk 1 ,uk 1 ,vk 1 )]6.

Контрольные вопросы и задания

8.1.Известно, что схема Рунге–Кутты (8.11) имеет второй порядок аппроксимации независимо от величины параметра α. Однако при значении α = 0 эта схема обращается в схему Эйлера, имеющую первый порядок аппроксимации. Объясните причину противоречия.

8.2.Оцените порядок аппроксимации уравнения (8.1) неявной разностной схемой (8.14).

8.3.С помощью математических выкладок получите соотношения разностной схемы (8.20) из выражений (8.19).

8.4.При каких условиях схема (8.21) является явной?

8.5.Оцените порядок аппроксимации уравнения yxx′ = f (x, y, yx ) разност-

ными схемами Эйлера–Кромера, Верле, Бимана, средней точки, полушага. 8.6. Для дифференциального уравнения yx =1 y2 с начальным условием

y(0) = 0,5 получить решение, отличающееся при х = 1 от точного не более чем на 0,01%. Определите, сколько потребуется для этого итераций метода Пикара. Оцените величины шагов интегрирования h в методах Эйлера, Рунге–Кутты второго, третьего и четвертого порядков, Адамса.

8.7.Установите геометрический смысл схемы метода Рунге–Кутты третьего или четвертого порядков аппроксимации (на выбор).

8.8.Определите условия, накладываемые на шаг интегрирования h в методе Рунге–Кутты второго порядка требованием невозрастания погрешности при выполнении расчетов.

189

8.9. При оценке порядка аппроксимации дифференциального уравне-

ния (8.1) разностной схемой

Эйлера получено выражение ψk =

′′

′′

= yxx (xk )h +…= O(h), которое зависит не только от h, но и от yxx (xk ). Укажите

′′

(xk ) ограничено. Каковы аналогичные усло-

условия, при которых значение yxx

вия для методов Рунге–Кутты и неявной схемы аппроксимации?

190

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