Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вычислительная математика.pdf
Скачиваний:
3
Добавлен:
24.11.2025
Размер:
3.89 Mб
Скачать

34-59.

α

 

 

k

 

 

 

 

0,6

0,7

0,8

0,9

 

1,0

 

 

 

 

1,0

0,27241

0,33256

0,38791

0,43933

 

0,48748

 

0,05822

0,08271

0,10778

0,13289

 

0,15772

 

 

 

 

1,1

0,26301

0,3225059

0,37727

0,42824

 

0,47606

 

0,13345

0,1533088

0,17435

0,19588

 

0,21752

 

 

 

 

1,2

0,24614

0,30636

0,36161

0,41291

 

0,46100

 

0,20804

0,22311

0,24007

0,25806

 

0,27655

 

 

 

 

1,3

0,22065

0,28346

0,34043

0,39298

 

0,44203

 

0,28401

0,29357

0,30607

0,32030

 

0,33552

 

 

 

 

1,4

0,18348

0,25202

0,31258

0,36764

 

0,41856

 

0,36450

0,36669

0,37377

0,38367

 

0,39527

 

 

 

 

 

2.10 Численные методы решения задачи Коши

 

 

 

для обыкновенного дифференциального уравнения

 

 

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

 

 

 

 

y′ = f (x, y) ,

 

 

 

 

(1)

y(x0 ) = y0

 

 

 

 

(2)

позволяют найти решение в виде таблицы: в точках x1, x2 ,..., xn ,..., называемых узлами сетки

нужно найти приближения

y1, y2 ,..., yn ,...,

для значений точного решения

yk y(xn+1) y(xn ) . Везде в дальнейшем через yn

обозначается приближенное решение за-

дачи (1) – (2) в узле xn . На практике, как правило, решение

y(x) нужно найти на каком-то

конечном отрезке [x0 , x0 + H ].

 

2.10.1 Метод Эйлера

 

Приближенные значения yn y(xn ) вычисляются последовательно по формулам

yn+1 = yn + hf (xn , yn ) ,

(3)

где h = xn+1 xn – шаг сетки. При этом искомая интегральная кривая y(x) , проходящая через точку (x0 , y0 ) , заменяется ломаной в точках (xn , yn ) . Каждое звено ломаной имеет направление, совпадающее с направлением интегральной кривой, которая проходит через точку (xn , yn ) . Поэтому метод Эйлера часто называют методом ломаных.

Для оценки погрешности метода на практике пользуются двойным пересчетом: расчет

на отрезке [x , x 1] повторяют с шагом h / 2 и погрешность более точного решения y* 1

n n+ n+

(при шаге h / 2 ) оценивают по формуле

| y* 1 y(x 1) || y* 1 y 1 | .

n+ n+ n+ n+

69

Пример. Применяя метод Эйлера, составить на отрезке [0, 1] таблицу значений реше-

ния уравнений y/ = y

 

2x

с начальным условием y(0) =1, выбрав шаг h = 0,2 .

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение. Здесь

 

f (x, y) = y

 

2x

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2xn

 

 

 

 

 

 

 

 

 

 

По формуле (3)

 

 

 

 

 

 

 

 

0 +0,2n ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 = yn +0,2 yn

yn

 

, xn =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y0 (0) =1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1(0,2)

=1+0,2 1

 

 

=1,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 0,2

=1,3733,

 

 

 

 

 

 

 

 

2 0,4

 

=1,5316 ,

y2 (0,4) =1,2 +0,2 1,2

 

 

 

y3 (0,6) =1,3733 +

0,2 1,3733

 

 

 

1,2

 

1,3733

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 0,6

 

=1,6812 ,

 

 

 

 

 

 

 

 

 

y4 (0,8) =1,5316 +0,2 1,5316

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,5316

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 0,8

 

 

1,8271.

 

 

 

 

 

 

 

 

 

y5 (1,0) =1,6812 +0,2 1,6812

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

1,6812

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для сравнения полученного результата найдем точное решение исходного уравнения. Это уравнение Бернулли, его решение будем искать в виде y = uv .

 

 

 

 

 

 

2x

 

 

 

 

 

 

2x

 

 

 

dv

 

dv

 

 

 

uv

uv = − uv

 

 

v) = − uv

, v

v = 0 ,

dx = v , v

= dx ,

 

 

u v

 

, u v u(v

 

 

 

 

dv

= ∫dx , ln | v |= x , v = e

x

,

du

e

x

= −

 

2x

, udu = −2xe

2x

dx ,

udu = −∫2xe

2x

dx ,

v

 

 

dx

 

uex

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u2

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

, u = e2x (2x +1) + 2C ,

 

 

 

2

= e2x x +

2

+C , u2 = e2x (2x +1) + 2C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = ex e2x (2x +1) + 2C , 1 = 1+ 2C , 1 =1+ 2C , C = 0 , y = 2x +1 .

Составим таблицу:

i

xn

yn

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

2x +1

 

0

0

1,0000

1,0000

 

 

 

 

 

 

 

 

1

0,2

1,2000

1,1832

 

 

 

 

 

 

 

 

2

0,4

1,3733

1,3416

 

 

 

 

 

 

 

 

3

0,6

1,5316

1,4832

 

 

 

 

 

 

 

 

4

0,8

1,6812

1,6124

 

 

 

 

 

 

 

 

5

1,0

1,8271

1,7320

 

 

 

 

 

 

 

 

Из таблицы видно, что абсолютная погрешность составляет 0,0951, т.е. относительная погрешность составляет 5,2%.

70

2.10.2 Метод Рунге-Кутта

Одним из самых распространенных методов решения задачи (1) – (2) является метод Рунге-Кутта четвертого порядка точности. Данный метод описывается следующими шестью соотношениями:

yn+1 = yn + ∆yn ,

yn =

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

(K1(n) + 2K2(n) + 2K3(n) + K4(n) ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K (n)

= hf (x , y

n

),

 

 

 

 

 

 

 

 

 

 

1

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(n)

 

 

 

 

 

 

 

h

 

 

 

 

K (n)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

yn +

 

1

 

 

 

 

 

K2

= hf xn +

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K (n)

 

 

 

 

 

 

+

h

,

y

 

+

K (n)

 

 

 

 

= hf x

n

 

 

n

 

2

 

,

 

 

 

3

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K4(n) = hf (xn + h, yn + K3(n) ).

 

 

 

 

Все вычисления удобно располагать в таблице:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

x

 

 

 

 

 

 

 

y

 

 

K = hf (x, y)

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0

 

 

 

 

 

 

 

y0

 

 

K1(0)

K1(0)

 

 

 

 

 

x0

+ h

 

 

 

 

y0

+ K1(0)

 

K2(0)

2K2(0)

 

0

 

 

 

 

 

 

2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

x0

+ h

 

 

 

 

y0

+

K2(0)

 

K3(0)

2K3(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

x0 +h

 

 

 

 

y0+K3(0)

 

K4(0)

K4(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y0

 

1

 

 

 

 

x1

 

 

 

 

 

 

 

y1

 

 

 

 

Порядком (или степенью) точности метода Рунге-Кутта называют такое число s, для которого погрешность приближенного равенства yn y(xn+1) y(xn ) будет величиной по-

рядка hs+1 . Для нашего метода погрешность будет величиной порядка h5 .

Порядок заполнения таблицы

1)Записываем в первой строке таблицы данные значения x0 , y0 .

2)Вычисляем f (x0 , y0 ) , умножаем на h и заносим в таблицу в качестве K1(0) .

3) Записываем во второй строке таблицы

x0

+

h

, y0 +

K (0)

2

1 .

 

 

 

 

2

71

4)

Вычисляем

 

 

+

h

,

y

 

+

K (0)

, умножаем на h и заносим в таблицу в качестве

f x

0

 

0

1

 

 

 

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5)

Записываем в третьей строке таблицы x0 +

h

,

y0 +

K (0)

2

2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

6)

Вычисляем

 

 

+

h

,

y

 

+

K (0)

, умножаем на h и заносим в таблицу в качестве

f x

0

 

0

2

 

 

 

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K2(0) .

K3(0) .

7)Записываем в четвертой строке таблицы x0 + h, y0 + K3(0) .

8)Вычисляем f (x0 + h, y0 + K3(0) ), умножаем на h и заносим в таблицу в качестве K4(0) .

9)В столбец y записываем числа K1(0) , 2 K2(0) , 2 K3(0) , K4(0) .

10) Суммируем числа, стоящие в столбце y , делим на 6 и заносим в таблицу в к ачестве

y0 .

11) Вычисляем y1 = y0 + ∆y0 . Затем все вычисления продолжают в том же порядке, принимая за начальную точку (x1, y1) .

Заметим, что шаг сетки можно менять при переходе от одной точки к другой. Для контроля правильности выбора шага h вычисляют дробь

K (n) K (n)

θ = 2 3 .

K1(n) K2(n)

Величина θ не должна превышать нескольких сотых, в противном случае шаг следует уменьшить. Оценка погрешности метода очень затруднительна. Грубую оценку погрешности можно получить с помощью двойного пересчета по формуле

 

| yn* y(xn ) |

| y* y

 

|

,

 

 

 

 

 

 

 

 

 

n

n

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

где y(xn )

– значение точного решения уравнения (1) в точке xn , а

yn* , yn – приближенные

значения, полученные с шагом h / 2 и h.

 

 

 

2

 

 

 

Пример. Методом Рунге-Кутта найти решение уравнения

y′ =

y + x с начальным

 

 

x

условием y(1) = 0 на отрезке [1; 1,5], приняв шаг h = 0,1.

 

 

 

 

 

 

 

Решение. Решение и результаты вычислений приведены в таблице.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

xn

 

yn

 

 

f (xn , yn )

K = hf (xn , yn )

 

 

 

 

yn

 

 

0

1

 

0

 

 

1

0,1

 

 

0,1

 

 

 

1,05

 

0,05

 

 

 

1,145238

0,114524

 

 

0,229048

 

 

 

1,05

 

0,057262

 

1,159071

0,115907

 

 

0,231814

 

 

 

1,1

 

0,115907

 

1,310740

0,131074

 

 

0,131074

 

 

 

 

 

 

 

 

 

 

 

 

 

0,115323

 

72

1

1,1

0,115323

1,309678

0,130968

0,130968

 

1,15

0,180807

1,464447

0,146445

0,292889

 

1,15

0,188546

1,477905

0,147791

0,295581

 

1,20

0,263114

1,638523

0,163852

0,163852

 

 

 

 

 

0,147215

2

1,2

0,262538

1,637563

0,163756

0,163756

 

1,25

0,344416

1,801066

0,180107

0,360213

 

1,25

0,352591

1,814146

0,181415

0,362829

 

1,3

0,443953

1,983005

0,198301

0,198301

 

 

 

 

 

0,180805

3

1,3

0,443388

1,982135

0,198214

0,198214

 

1,35

0,524495

2,153696

0,215370

0,430739

 

1,35

0,551073

2,166404

0,216640

0,443281

 

1,4

0,660028

2,342897

0,234290

0,234290

 

 

 

 

 

0,216087

4

1,4

0,659475

2,342107

0,234211

0,234211

 

1,45

0,776580

2,521146

0,252115

0,504229

 

1,45

0,785532

2,533493

0,253349

0,506700

 

1,50

0,912824

2,717099

0,271710

0,271711

 

 

 

 

 

0,252808

5

1,5

0,912283

 

 

 

Задания

Применяя метод Эйлера, численно решить данные дифференциальные уравнения с данными начальными условиями на отрезке [a,b] с шагом h = 0,1 при указанных значениях параметров.

1.y′ = 12 xy , y(0) =1, a = 0 , b =1.

2.y′ = x2 + y2 , y(0) = 0 , a = 0 , b =1.

3.y′ =1+ xy2 , y(0) = 0 , a = 0 , b =1.

4.y′ = x y+1 y2 , y(0) =1, a = 0 , b =1.

5 – 16. y

= αy

2

 

β

, y(1) =1, a =1, b = 2 .

 

+ x2

 

 

а) [варианты 5 – 12], α = −1, β = 0,05 +0,05k , k = 0, 1, 2,...,7 , б) [варианты 13 – 16], α = −0,5 , β = 0,1+0,1k , k = 0, 1, 2, 3 , 17 – 30. y′ = xα2 xy −βy2 , y(1) = γ , a = (1) , b = 2 .

Значения параметров α,β, γ даны в таблице

73

Номер варианта

α

β

γ

17

0,2

0,8

0,5

18

0,25

2,0

0,5

19

0,25

1,0

0,5

20

0,4

0,4

1,0

21

0,5

2,0

0,5

22

0,8

0,2

2,0

23

0,9

0,4

1,5

24

1,0

1,0

1,0

25

1,0

1,0

2,0

26

1,0

2,0

2,0

27

1,0

0,25

2,0

28

1,0

0,5

2,0

29

1,0

4,0

0,5

30

1,6

0,4

2,0

 

 

 

 

 

 

 

 

Ответы

 

 

 

 

 

 

1.

y1 =1,

y2 =1,005000 ,

y3 =1,010025 ,

y4 =1,025175 ,

y5 =1,045679, y6 =1,071821,

y7 =1,103976 ,

y8 =1,142615 , y9 =1,188320,

y10 =1,241794 .

 

 

 

 

 

 

2.

y1 = 0 ,

y2 = 0,001,

y3 = 0,005,

 

y4 = 0,014002 ,

y5 = 0,030022 ,

y6 = 0,055112 ,

y7 = 0,091416 , y8 = 0,141252 , y9 = 0,207247 , y10 = 0,292542 .

 

 

 

 

 

3.

y1 = 0,1, y2 = 0,2001, y3 = 0,3009 ,

y4 = 0,40272 ,

y5 = 0,5092 ,

y6 = 0,62217 ,

y7 = 0,74539 ,

y8 = 0,88428 , y9 =1,04684 , y10 =1,24547 .

 

 

 

 

 

 

4.

y1 =1,

y2 = 0,99091,

y3 = 0,97530 ,

y4 = 0,95520 , y5 = 0,93219 ,

y6 = 0,90754 ,

y7 = 0,88188,

y8 = 0,85598 , y9 = 0,83026 , y10 = 0,80502 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

 

 

β

 

 

 

 

 

x

 

 

 

 

 

 

 

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,1

 

0,3

 

 

0,5

 

0,7

 

0,9

1,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

0,05

0,9050

 

0,7622

 

 

0,6596

 

0,5820

 

0,5210

0,4952

 

 

 

6

 

 

0,10

0,9100

 

0,7726

 

 

0,6722

 

0,5955

 

0,5348

0,5090

 

 

 

7

 

 

0,15

0,9150

 

0,7829

 

 

0,6848

 

0,6089

 

0,5483

0,5224

 

 

 

8

 

 

0,20

0,9200

 

0,7932

 

 

0,6972

 

0,6221

 

0,5616

0,5356

 

 

 

9

 

 

0,25

0,9250

 

0,8035

 

 

0,7097

 

0,6352

 

0,5748

0,5487

 

 

 

10

 

 

0,30

0,9300

 

0,8137

 

 

0,7220

 

0,6482

 

0,5878

0,5616

 

 

 

11

 

 

0,35

0,9350

 

0,8240

 

 

0,7344

 

0,6612

 

0,6008

0,5744

 

 

 

12

 

 

0,40

0,9400

 

0,8342

 

 

0,7483

 

0,6753

 

0,6144

0,5877

 

 

 

13

 

 

0,1

0,9600

 

0,8866

 

 

0,8219

 

0,7651

 

0,7151

0,6923

 

 

 

14

 

 

0,2

0,9700

 

0,9093

 

 

0,8513

 

0,7979

 

0,7457

0,7234

 

 

 

15

 

 

0,3

0,9800

 

0,9319

 

 

0,8805

 

0,8300

 

0,7827

0,7604

 

 

 

16

 

 

0,4

0,9900

 

0,9544

 

 

0,9094

 

0,8622

 

0,8161

0,7939

 

74

Номер варианта

 

 

x

 

 

0,2

0,4

0,6

0,8

1,0

 

17

0,4094

0,3474

0,3022

0,2675

0,2401

18

0,3709

0,2974

0,2496

0,2157

0,1901

19

0,4096

0,3479

0,3028

0,2684

0,2410

20

0,8189

0,6950

0,6045

0,5352

0,4806

21

0,4100

0,3491

0,3046

0,2705

0,2434

22

1,6377

1,3897

1,2086

1,0702

0,9609

23

1,2288

1,0452

0,9116

0,8087

0,7266

24

0,8198

0,6981

0,6092

0,5412

0,4871

25

1,2212

0,9108

0,7377

0,6254

0,5640

26

1,0948

0,8482

0,7012

0,5988

0,5273

27

1,6380

1,3908

1,2104

1,0727

0,9640

28

1,4836

1,1901

0,9984

0,8627

0,7609

29

0,4109

0,3514

0,3144

0,2768

0,2482

30

1,6390

1,3942

1,2155

1,0789

0,9705

2. Методом Рунге-Кутта четвертого порядка точности найти решение на отрезке [a,b] следующих дифференциальных уравнений при заданных начальных условиях с указанным шагом h.

1.y′ = −1+xyx2 , y(0) = 2 , h = 0,05 , a = 0 , b = 0,3.

2.y′ = y +(1+ x)y2 , y(0) =1, h = 0,1, a = 0 , b = 0,5 .

3.

y

=

y +

x2

+ y2

 

, y(1) = 0 , h = 0,1, a =1, b =1,5.

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

y

 

 

 

y

 

2

ln x ,

y(1) = −2 , h = 0,1, a =1, b =1,5.

= − x + y

 

 

 

 

 

 

 

2

 

 

y

 

 

 

1

 

 

 

5.

y

= y

 

 

+ x

+ x2 ,

y(1) = 0 , h = 0,1, a =1, b =1,5.

 

 

 

6.y′ = y x , y(0) =1,5, h = 0,2 , a = 0 , b = 2 .

7.y′ = xy y2 , y(1) =1, h = 0,2 , a =1, b = 2 .

8.–43.

y′ =

α

, y(0) = 0 , h = 0,1, a = 0 , b = 0,3;

x2 + y2

α =1,0 + 0,4k , k = 0,1,...,5 , β =1,0 +0,4n , n = 0,1,...,5 .

Ответы

1.2; 1,997504; 1,990074; 1,977872; 1,961161; 1,940285; 1,915652.

2.1; 1,242486; 1,616212; 2,268508; 3,699313; 9,386956.

3.0; 0,105; 0,22; 0,345; 0,48; 0,625.

4.–2; –1,801814; –1,613047; –1,439382; –1,283287; –1,145080.

75

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