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

а16 / Числ_мет_лабораторный_практикум_ч2_88_101

.pdf
Скачиваний:
0
Добавлен:
31.05.2026
Размер:
569.92 Кб
Скачать

Лабораторная работа № 16

Численное решение задачи Коши для системы обыкновенных

дифференциальных уравнений

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

Задачей Коши или задачей с начальными условиями для системы обыкно-

венных дифференциальных уравнений (ОДУ) называется задача построения решения системы уравнений (16.1)

dx (t)

 

 

 

 

 

 

 

 

, , x

 

 

 

 

 

1

 

f

 

(t, x

, x

 

 

 

 

)

 

 

 

1

2

n

 

dt

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

, , x

 

 

 

2

 

f

 

(t, x

 

, x

 

 

 

)

,

dt

 

 

 

 

 

 

 

 

2

1

 

 

2

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

dx

(t)

 

 

 

 

 

 

 

 

 

, , x

 

 

 

 

n

 

f

 

(t, x

 

, x

 

 

 

)

 

 

n

 

2

n

dt

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(16.1)

на некотором промежутке a<tb, удовлетворяющего заданным начальным условиям для каждой неизвестной функции

(0)

(0)

(0)

.

 

 

 

 

 

(16.2)

x1 (a) x1

, x2 (a) x2

, ..., xn (a) xn

 

 

 

 

 

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

i

1

2

n

 

(i=1,2,…,n) опреде-

 

 

 

 

f

(t, x

, x

, , x

)

 

лены и непрерывны в рассматриваемой области.

 

 

 

 

Если на промежутке [a, b] задана равномерная сетка:

 

 

ωh={xn=a+nh, n=0, 1, 2, …, l}, где h=(ba)/l.

 

 

 

(16.3)

то приближенное решение задачи Коши для системы ОДУ можно построить,

применяя расчетные формулы, полученные для одиночного уравнения, к каж-

дому уравнению системы.

Рассмотрим решение системы ОДУ на примере системы из двух уравне-

ний, которую запишем в виде (16.4)

87

dx(t)

 

f (t, x, y),

 

dt

 

 

 

 

 

 

dy(t)

g(t, x, y).

 

dt

 

 

 

 

 

(16.4)

Начальные условия для неизвестных функций:

x(a) x

(0)

,

 

 

 

 

(0)

 

y(a) y

.

 

 

(16.5)

Обозначим сеточную функцию, являющуюся приближенным решением первого уравнения системы, через u(tn)=un, а сеточную функцию для второго уравнения системы через w(tn)=wn. Тогда расчетные формулы для метода Эйле-

ра имеют вид (16.6).

u

 

u

 

hf t

,u

 

, w

,

u

 

x

(0)

,

n 1

n

n

0

 

 

 

 

n

 

 

n

 

 

 

 

 

 

 

w

 

w hg t

 

,u

, w

,

w

y

(0)

,

 

 

 

 

n 1

 

n

n

 

n

n

 

 

0

 

 

 

 

 

(16.6)

где n=0, 1, 2, …, l–1.

 

 

 

 

 

 

 

 

Метод Эйлера имеет погрешность первого порядка [3], т.е. погрешность

для

каждой функции

в точке

tn можно оценить, как

n un xn

M n h и

 

 

 

 

 

 

 

 

 

 

 

x

x

y

w y

n

M y h . Здесь M x

и M y

некоторые постоянные величины.

 

n

 

n

 

n

n

n

 

 

 

 

 

 

Расчетные формулы для четырехэтапного метода Рунге-Кутта, применяе-

мого к системе (16.4) с начальными условиями (16.5), приведены в (16.7).

u0

x

(0)

,

 

 

 

 

w0 y

(0)

,

 

 

 

 

 

 

 

 

 

 

k1,n

k

2,n

 

k3,n

k

4,n

 

hf

hf

hf

hf

t

n

,

 

 

 

 

 

 

 

t

n

 

 

 

 

 

 

 

 

 

 

 

 

 

t

n

 

 

 

 

 

 

 

 

t

n

 

 

un , wn

,

 

 

 

h

, u

 

 

k

, w

 

 

1,n

 

 

 

 

 

 

 

2

 

n

 

2

n

 

 

 

 

 

h2 , un k22,n , wn

h, un k3,n , wn

 

m

 

 

 

1,n

 

 

 

2

,

 

 

 

 

 

 

 

 

,

 

 

m2,n

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

m3,n ,

 

 

 

m1,n

m2,n

m3,n

m4,n

hg t

n

,

 

 

 

 

 

 

hg t

n

 

 

 

 

 

 

 

 

 

 

 

hg t

n

 

 

 

 

 

 

 

hg t

n

 

 

un , wn ,

h , un k1,n

2 2

h2 , un k22,n

h, un k3,n ,

,wn

,wn

wn

 

m1,n

 

,

 

 

 

 

 

 

 

 

 

 

(16.7)

 

2

 

 

 

 

 

 

 

m2,n

 

,

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

m3,n ,

 

 

 

88

u

 

u

 

 

1

(k

2k

n 1

n

 

 

 

 

6

1,n

 

 

 

 

 

 

 

 

2,n

2k

3,n

 

k

4,n

)

 

 

.

w

w

1

(m

2m

2m

 

n 1

n

6

1,n

2,n

3,n

 

 

 

 

 

m

)

4,n

 

.

Четырехэтапный метод Рунге-Кутта имеет погрешность четвертого поряд-

ка [3], т.е. погрешность для каждой функции в точке tn можно оценить, как

n

un

xn

M n h

 

и n

wn yn

M n h

 

. Здесь

Mn

и

M n некоторые постоянные

x

 

 

x

4

y

 

y

4

 

x

 

y

величины.

Расчетные формулы трехшагового метода Адамса указаны в (16.8)

 

un 1

un

h

23 f

tn ,un , wn 16 f tn 1,un 1, wn 1 5 f tn 2

,un 2

, wn 2

 

, u0=x(0),

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(16.8)

 

w

w

 

h

23g t

,u

, w 16g t

 

,u

 

, w

5g t

 

,u

 

, w

 

,

w0=y(0)

 

 

n 1

n 1

n 2

n 2

 

 

n 1

n

 

12

 

n

n

n

 

n 1

 

 

n 2

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для начала вычислений методом Адамса необходимо, используя метод

Рунге-Кутта, найти значение сеточных функций в точках t1

и t2.

 

Трехшаговый метод Адамса имеет погрешность третьего порядка [3], т. е

погрешность для каждой неизвестной функции в точке tn

можно оценить, как

n

un xn

 

M n h

 

и

n

wn yn M n h

. Здесь Mn

и

M n

некоторые постоянные

x

 

 

 

 

 

 

x

3

 

y

 

 

y

3

 

 

x

 

 

y

 

 

 

величины.

2. Практическая оценка погрешности решения ОДУ. Правило Рунге

Оценку погрешности можно выполнить, сравнивая значения сеточных функций, полученных с различными шагами сетки, на правом конце отрезка.

Обычно значения шага сетки различаются в два раза. Тогда оценки погрешно-

стей имеют вид:

2xm

y

2m

x2m xm

2n 1

y2m ym

2n 1

(16.9)

.

89

Здесь x – оценка погрешности для значения x2m на правом конце отрезка, а 2m

y – оценка погрешности для значения y2m. Значение показателя степени n 2m

принимается равным порядку погрешности метода.

3. Оформление результатов вычислений

Результаты вычислений сеточных функции размещаются в таблицах 16.1 и

16.2. Таблица 16.1 содержит значения сеточных функций un и wn, которые опре-

деляются с помощью метода Рунге-Кутта. Таблица 16.2 заполняется отдельно для метода Эйлера и метода Адамса. В методе Адамса значения неизвестных

 

функций в точке

 

0 берется из начальных условий, а в точках 1 и

t

2 использу-

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

ются результаты из табл. 16.1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 16.1

 

 

 

 

 

 

 

 

 

Решение системы ОДУ методом Рунге-Кутта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление функции un

 

 

Вычисление функции wn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

tn

 

k1,n

 

 

k2,n

 

k3,n

 

k4,n

 

un

 

m1,n

m2,n

m3,n

 

m4,n

 

wn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

t0

 

k1,0

 

 

k2,0

 

k3,0

 

k4,0

 

u0

 

m1,0

m2,0

m3,0

 

m4,0

 

w0

1

 

t1

 

k1,1

 

 

k2,1

 

k3,1

 

k4,1

 

u1

 

m1,1

m2,1

m3,1

 

m4,1

 

w1

 

 

 

m-1

 

tm-1

 

k1,m-1

 

k2,m-1

 

k3,m-1

 

k4,m-1

 

um-1

 

m1,m-1

m2,m-1

m3,m-1

 

m4,m-1

 

wm-1

 

m

 

tm-1

 

 

 

 

 

 

 

 

 

 

 

 

 

um

 

 

 

 

 

 

 

 

 

 

 

wm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 16.2

 

 

 

 

 

 

 

Решение системы ОДУ методами Эйлера и Адамса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Метод Эйлера

 

 

 

 

Метод Адамса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

tn

 

f(tn,un,wn)

 

 

 

un

 

g(tn,un,wn)

 

wn

 

un

 

 

wn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

t0

 

f(t0,u0,w0)

 

 

 

u0

 

g(t0,u0,w0)

 

w0

 

u0

 

 

w0

 

 

 

1

 

 

t1

 

f(t1,u1,w1)

 

 

 

u1

 

g(t1,u1,w1)

 

w1

 

u1

 

 

w1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m-1

tm-1

f(tm-1,u m-1,w m-1)

um-1

g(tm-1,u m-1,w m-1)

wm-1

um-1

wm-1

m

tm-1

 

um

 

wm

um

wm

 

 

 

 

 

 

 

 

 

 

4.Задания для самостоятельного выполнения

1.Для двух разбиений отрезка интегрирования, границы которого указаны в варианте задания, с m=10 и m=20 вычислить приближенное значение сеточ-

ной функции для соответствующей системы ОДУ с заданными начальными условиями, используя методы Эйлера, Рунге-Кутта и Адамса см. (16.6), (16.7) и (16.8). Вычисления выполнять с 5 десятичными знаками.

2.Оформить результаты расчетов в виде таблиц 16.1 и 16.2, адаптированных к условиям задачи.

3.Оценить значения погрешности полученного решения для каждой сеточной функции, используя правило Рунге.

4.Построить и включить в отчет графики сеточных функций, полученных различными методами для m=20.

5.Пример выполнения задания

Задание

1. Вычислить приближенное решение задачи Коши для системы ОДУ

x x ye

 

t

 

t

y

xe

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

x(0) 0,

 

1,

y(0)

при двух разбиениях отрезка [0,4] с m=10 и m=20, используя методы Эйле-

ра, Рунге-Кутта и Адамса.

2.Оформить результаты расчетов в виде таблиц 16.1 и 16.2, адаптированных к условиям задачи.

3.Оценить погрешность решения на правом конце отрезка, используя правило Рунге.

4.Построить и включить в отчет графики сеточных функций, полученных различными методами для m=20.

91

Результаты вычислений

Численное решение системы обыкновенных дифференциальных уравне-

ний выполняется в соответствии с расчетными формулами (16.6), (16.7) и

(16.8).

Результаты решения системы методом Эйлера и методом Адамса разме-

щаются в табл. 16.3 для случая m=10 и табл. 16.4 для m=20. Форма таблиц соот-

ветствует табл. 16.2.

Результаты решения системы методом Рунге-Кутта размещаются в табл. 16.5 для случая m=10 и табл. 16.6 для m=20. Форма таблиц соответствует табл. 16.1.

Таблица 16.3

Решение ОДУ методами Эйлера и Адамса для m=10

 

 

 

Метод Эйлера

 

Метод Адамса

 

 

 

 

 

 

 

 

n

tn

fn

un

gn

wn

un

wn

 

 

 

 

 

 

 

 

0

0

1

0

0

1

0

1

1

0,4

0,27032

0,4

-0,59673

1

0,26102

0,92122

2

0,8

-0,16605

0,50813

-1,13086

0,76131

0,32232

0,69702

3

1,2

-0,34865

0,44171

-1,46652

0,30896

0,29186

0,35473

4

1,6

-0,35830

0,30225

-1,49704

-0,27764

0,21430

-0,07048

5

2

-0,27754

0,15893

-1,17432

-0,87646

0,13625

-0,48700

6

2,4

-0,17003

0,04791

-0,52811

-1,34619

0,07231

-0,85423

7

2,8

-0,07460

-0,02010

0,33060

-1,55744

0,02719

-1,10529

8

3,2

-0,00815

-0,04995

1,22529

-1,42520

0,00102

-1,19075

9

3,6

0,02765

-0,05320

1,94720

-0,93508

-0,01160

-1,10424

 

 

 

-0,04214

 

-0,15620

 

 

10

4

 

 

-0,01514

-0,84012

 

 

 

 

 

 

 

 

92

Таблица 16.4

Решение ОДУ методами Эйлера и Адамса для m=20

 

 

 

Метод Эйлера

 

Метод Адамса

 

 

 

 

 

 

 

 

n

tn

fn

un

gn

wn

un

wn

 

 

 

 

 

 

 

 

0

0

1

0

0

1

0

1

1

0,2

0,61873

0,2

-0,24428

1

0,16266

0,98007

2

0,4

0,31382

0,32375

-0,48297

0,95114

0,26103

0,92107

3

0,6

0,08248

0,38651

-0,70427

0,85455

0,31038

0,82477

4

0,8

-0,08232

0,40301

-0,89691

0,71370

0,32319

0,69527

5

1

-0,18998

0,38654

-1,05073

0,53431

0,31082

0,53791

6

1,2

-0,25091

0,34855

-1,15721

0,32417

0,28226

0,35871

7

1,4

-0,27550

0,29836

-1,20993

0,09273

0,24469

0,16484

8

1,6

-0,27340

0,24326

-1,20490

-0,14926

0,20352

-0,03604

9

1,8

-0,25309

0,18858

-1,14087

-0,39024

0,16261

-0,23594

10

2

-0,22166

0,13797

-1,01944

-0,61841

0,12453

-0,42692

11

2,2

-0,18475

0,09363

-0,84505

-0,82230

0,09085

-0,60133

12

2,4

-0,14661

0,05668

-0,62485

-0,99131

0,06230

-0,75221

13

2,6

-0,11027

0,02736

-0,36839

-1,11628

0,03906

-0,87349

14

2,8

-0,07767

0,00531

-0,08728

-1,18996

0,02090

-0,96028

15

3

-0,04989

-0,01023

0,20540

-1,20742

0,00734

-1,00904

16

3,2

-0,02734

-0,02020

0,49565

-1,16634

-0,00224

-1,01774

17

3,4

-0,00994

-0,02567

0,76922

-1,06721

-0,00854

-0,98594

18

3,6

0,00270

-0,02766

1,01232

-0,91336

-0,01221

-0,91482

19

3,8

0,01122

-0,02712

1,21228

-0,71090

-0,01389

-0,80712

 

 

 

-0,02488

 

-0,46844

 

-0,66704

20

4

 

 

-0,01411

 

 

 

 

 

 

 

 

93

Таблица 16.5

Решение ОДУ методом Рунге-Кутта для m=10

 

 

 

Вычисление функции un

 

 

Вычисление функции wn

 

 

 

 

 

 

 

 

 

 

 

 

 

n

tn

k1,n

k2,n

k3,n

k4,n

un

m1,n

m2,n

m3,n

m4,n

wn

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0,4

0,24749

0,26199

0,14712

0

0

-0,09771

-0,06046

-0,15634

1

1

0,4

0,14260

0,05221

0,06080

-0,00076

0,26102

-0,15576

-0,24221

-0,20927

-0,28648

0,92122

2

0,8

-0,00365

-0,04674

-0,04265

-0,06705

0,32232

-0,28694

-0,34848

-0,32505

-0,37142

0,69702

3

1,2

-0,06859

-0,08118

-0,07999

-0,08246

0,28074

-0,37284

-0,39976

-0,38954

-0,39773

0,36279

4

1,6

-0,08306

-0,07925

-0,07961

-0,07170

0,20184

-0,39989

-0,38793

-0,39255

-0,36126

-0,02874

5

2

-0,07175

-0,06138

-0,06237

-0,05148

0,12310

-0,36383

-0,31488

-0,33359

-0,26777

-0,41576

6

2,4

-0,05127

-0,04019

-0,04124

-0,03136

0,06131

-0,27033

-0,19211

-0,22197

-0,13200

-0,73718

7

2,8

-0,03108

-0,02204

-0,02290

-0,01559

0,02039

-0,13415

-0,03901

-0,07531

0,02461

-0,94226

8

3,2

-0,01534

-0,00916

-0,00975

-0,00516

-0,00236

0,02321

0,12025

0,08325

0,17735

-0,99863

9

3,6

-0,00497

-0,00141

-0,00175

0,00063

-0,01208

0,17691

0,26055

0,22869

0,30211

-0,89737

10

4

 

 

 

 

-0,01386

 

 

 

 

-0,65445

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

94

Таблица 16.6

Решение системы ОДУ методом Рунге-Кутта m=20

 

 

 

Вычисление функции un

 

 

Вычисление функции wn

 

 

 

 

 

 

 

 

 

 

 

 

 

n

tn

k1,n

k2,n

k3,n

k4,n

un

m1,n

m2,n

m3,n

m4,n

wn

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0,2

0,16097

0,16287

0,12826

0

0

-0,02210

-0,01779

-0,03979

1

1

0,2

0,12795

0,09694

0,09845

0,07153

0,16266

-0,03973

-0,06118

-0,05700

-0,07791

0,98007

2

0,4

0,07128

0,04767

0,04882

0,02882

0,26103

-0,07788

-0,09783

-0,09393

-0,11292

0,92107

3

0,6

0,02862

0,01153

0,01236

-0,00170

0,30988

-0,11293

-0,13057

-0,12713

-0,14343

0,82535

4

0,8

-0,00185

-0,01346

-0,01289

-0,02205

0,32233

-0,14347

-0,15810

-0,15525

-0,16823

0,69673

5

1

-0,02216

-0,02933

-0,02898

-0,03424

0,30956

-0,16829

-0,17934

-0,17718

-0,18631

0,54032

6

1,2

-0,03432

-0,03804

-0,03786

-0,04017

0,28073

-0,18641

-0,19342

-0,19205

-0,19697

0,36238

7

1,4

-0,04022

-0,04139

-0,04133

-0,04152

0,24301

-0,19709

-0,19980

-0,19927

-0,19978

0,16999

8

1,6

-0,04154

-0,04093

-0,04096

-0,03970

0,20181

-0,19992

-0,19820

-0,19854

-0,19462

-0,02917

9

1,8

-0,03971

-0,03793

-0,03802

-0,03588

0,16098

-0,19477

-0,18871

-0,18989

-0,18171

-0,22718

10

2

-0,03588

-0,03344

-0,03356

-0,03097

0,12306

-0,18186

-0,17169

-0,17368

-0,16155

-0,41613

11

2,2

-0,03096

-0,02824

-0,02838

-0,02565

0,08959

-0,16170

-0,14783

-0,15054

-0,13495

-0,58849

12

2,4

-0,02563

-0,02291

-0,02304

-0,02040

0,06128

-0,13510

-0,11808

-0,12140

-0,10297

-0,73738

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

95

 

 

 

 

 

13

2,6

-0,02039

-0,01783

-0,01795

-0,01555

0,03829

-0,10310

-0,08361

-0,08742

-0,06688

-0,85689

14

2,8

-0,01553

-0,01326

-0,01337

-0,01128

0,02037

-0,06700

-0,04582

-0,04995

-0,02813

-0,94223

15

3

-0,01126

-0,00933

-0,00942

-0,00768

0,00703

-0,02823

-0,00619

-0,01050

0,01174

-0,99001

16

3,2

-0,00766

-0,00608

-0,00616

-0,00476

-0,00238

0,01167

0,03367

0,02938

0,05115

-0,99832

17

3,4

-0,00475

-0,00350

-0,00357

-0,00249

-0,00853

0,05111

0,07220

0,06809

0,08852

-0,96683

18

3,6

-0,00248

-0,00155

-0,00159

-0,00081

-0,01209

0,08850

0,10785

0,10408

0,12235

-0,89680

19

3,8

-0,00080

-0,00014

-0,00017

0,00037

-0,01369

0,12237

0,13920

0,13592

0,15131

-0,79101

20

4

 

 

 

 

-0,01386

 

 

 

 

-0,65369

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

96

Соседние файлы в папке а16