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

П13_14

.pdf
Скачиваний:
17
Добавлен:
09.04.2015
Размер:
252.63 Кб
Скачать

Одношаговые методы решения ОДУ

Неявный метод второго порядка:

y

 

= y

 

+

h

[ f (x

, y

 

) + f (x

 

, y

 

)]

i +1

i

 

i

i +1

i +1

 

 

2

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод предикторкорректор:

~ =

yi

+

h

f

(

xi , yi

)

«предсказываем»

 

y

2

 

 

 

 

 

 

 

 

 

 

yi +1 = yi

~

«исправляем»

+ h f (xi +1 2 , y )

где

xi +1 2 = xi + h / 2

 

11

Одношаговые методы решения ОДУ

МЕТОДЫ РУНГЕ-КУТТЫ

Многоэтапные методы повышенного порядка точности

«Этап» - вычисление правой части уравнения

k1 = f (xi , yi )

 

k2 = f (xi + α 2 h, yi + β 21k1h )

k3

= f (xi + α 3h, yi

+ β 31k1h + β 32 k2 h )

…………………………………………….

 

 

 

 

 

 

n −1

 

kn

=

 

+

α n h, yi

+

 

 

 

f xi

 

 

βnj k j h

 

 

 

 

n

 

j =1

 

 

 

yi +1 = yi + hc j k j

 

αn, βnj, cn,

 

 

 

j =1

 

 

 

– параметры, которые подбирают так,

чтобы метод был как можно более точным 12

ПРИМЕРЫ МЕТОДОВ РУНГЕ-КУТТЫ

Двухэтапный метод (второго порядка точности)

 

i

= f (x i

 

y i ),

 

 

i

 

 

 

 

h

 

h

i

k

 

,

 

k

2

=

 

f x i

+

 

, y i

+

 

k

1

 

 

 

 

2

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

i

+1

= y

i

+ hk i

,

i = 0 , 1, 2 ,...

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

Трехэтапный метод (третьего порядка точности)

k1= f (xi ,yi ), k2= f (xi+h/ 2,yi+hk1/ 2), k3 = f (xi+h,yi -hk1+2hk2 )

yi +1 = yi + h (k1 + 4k2 + k3 ), i = 0,1, 2,...

6

Четырехэтапный метод (четвертого порядка точности)

 

k1= f (xi ,yi ), k2= f (xi+h/ 2,yi+hk1 / 2),

 

k3 = f (xx+h/ 2,yi+hk2 / 2),

k4 = f (xi+h,yi+hk3 ),

 

yi +1

= yi +

h

(k1 + 2k2 +

2k3 + k4 ), i = 0,1, 2,...

13

 

 

6

 

 

 

 

 

 

Пример 1: решение в MathCAD

Метод предиктор-корректор

50

40

v 30

u( t) 20

10

0

2

4

6

8

10

12

z , t

z := pr_corr(1, 10, 10, 1, f) 0

v := pr_corr(1, 10, 10, 1, f) 1

Пример 1: решение в MathCAD

Трехэтапный метод Рунге-Кутты

ОБОБЩЕНИЕ МЕТОДА ЭЙЛЕРА НА СИСТЕМУ ОДУ

 

dy j

 

 

(

 

)

 

 

 

Все условия

 

=

f j

x, y1

j

=

1, 2,..., n

заданы в

 

 

 

dx

 

, y2 ,..., yn ,

 

одной точке!

 

 

 

 

 

 

 

 

y j (x) − искомые

функции,

 

y j ( x0 ) = y 0j

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

ЗАДАЧА КОШИ ИСПОЛЬЗУЕМ МЕТОД ЭЙЛЕРА

ПРИМЕР: Система 2х ОДУ первого порядка:

y′ = f ( x, y, z)

 

 

 

.

 

 

 

 

 

,

x [a, b]; y(a) = y 0 ,

z′ = g (x, y, z)

 

 

 

 

Обобщение метода Эйлера:

Реализация:

 

 

 

 

 

y =y0, z

0

=z0,

 

0

 

 

yi+1=yi+h f(xi , yi ,zi),

z(a) = z 0

yi +1 yi = f (xi , yi , zi ), h

zi +1 zi = g (xi , yi , zi ). h

zi+1=zi+h g(xi, yi, zi). i=0, 1,..., M-1.

16

 

ОБОБЩЕНИЕ МЕТОДОВ РУНГЕ-КУТТЫ НА СИСТЕМУ ОДУ

Система 2х ОДУ первого порядка:

y′ = f (x, y, z)

, x [a, b]; y(a) = y 0 , z(a) = z 0

 

z′ = g (x, y, z)

 

Обобщение двухэтапного метода Рунге-Кутты:

 

 

 

.

 

 

 

 

 

 

 

k1 = f (xi , yi , zi ),

l1 = g (xi , yi , zi ),

 

k2 = f (xi + h, yi + hk1 , zi + hl1 ),

 

l2 = g (xi + h, yi + hk1 , zi + hl1 )

 

 

 

 

y

= y + h

k1 + k2

, z

 

= z

 

+ h

l1 + l2

.

 

 

i +1

i

 

 

i +1

i

2

 

 

2

 

 

 

 

 

 

 

 

 

17

УРАВНЕНИЕ ВТОРОГО ПОРЯДКА:

y′′ + p(t) y′ + q(t ) y = r(t ), t [a, b]

2 дополнительных условия на функцию y заданы в одной точке x=a

 

0

0

- начальные данные

y(a) = y ,

 

y (a) = z

 

 

Задача Коши с помощью замены: z(t)=y′(t), z′(t)=y′′(t)

 

 

 

.

 

сводится к системе 2х ОДУ первого порядка:

y′ = f (t, y, z) ≡ z

 

 

 

 

 

 

 

z′ = g (t, y, z) ≡ − p(t )z q(t ) y

r (t )

y(t), z(t) – искомые функции;

f ( t, y, z ), g (t ,y ,z) –функции правых частей;

y0, z0начальные данные

18

ПРИМЕР 2. Постановка задачи

Задача Коши для ОДУ 2 порядка

 

d 2u

+ 2

du

+ u(x) = x, u(0) = 1,

 

 

du

(0) = 0

 

dx 2

 

 

 

 

 

 

 

dx

 

 

 

 

 

 

 

dx

 

Точное решение

u(x) := 3 e− x + 2 x e− x + x − 2

 

 

 

Проверка точного решения

 

 

Подставляем в

 

d2

 

d

 

 

 

 

 

 

 

 

 

 

 

 

u(x) + 2

 

 

u(x) + u(x) − x → 0

 

 

 

 

 

 

dx2

 

 

 

уравнение

 

 

dx

 

Подставляем в

u(0)

= 1 x := 0

d

u(x) → 0

начальные

 

 

 

dx

данные

ПРИМЕР 2. Решение методом Эйлера

Приводим к системе 2х ОДУ. Правые части:

F(x, y , z) := z G(x, y , z) := x − 2 z − y

Решаем систему методом Эйлера

y

1

 

u( t)

0.9

0.8

0

0.2

0.4

0.6

0.8

x, t

x := euler(0, 1, 10, 1, 0, F, G) 0

y := euler(0, 1, 10, 1, 0, F, G) 1

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