Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧисМетЗад.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
15.86 Mб
Скачать

6. Метод Рунге – Кутты

Формулы Рунге – Кутты третьего порядка:

Формулы Рунге – Кутты четвёртого порядка:

При вычислениях по приведённым формулам сначала последовательно находятся k1, k2, . . . , а затем определяется yk+1.

Формулы Рунге – Кутты m-го порядка (m > 2) имеют погрешность порядка hm+1.

7. Метод Адамса

Введём обозначения

fk = f(xk, yk),  pfk =  p-1fk -  p-1fk-1, 0fk = fk, k = 0, 1, 2, . . .

Экстраполяционная формула Адамса

Её погрешность

Rk = r+1hr+2y(r+1)(), xk-r    xk .

Значения первых шести коэффициентов р

Интерполяционная формула Адамса

Её погрешность

Для отыскания значения fk+1 = f(xk+1, yk+1) используется yk+1, полученное по экстраполяционной формуле. Интерполяционная формула Адамса используется для уточнения значения yk+1; – более точное по сравнению с yk+1 значение решения y(x) в точке x = xk+1.

Значения первых шести коэффициентов

Замечания. Для вычисления rfk необходимо каким-либо методом найти значения yk, yk-1, . . . , yk-r. Часто для этого используется метод Рунге – Кутты (6) и метод последовательных приближений (8).

Значение r выбирается равным порядку практически постоянных в пределах заданной точности разностей  pfk.

Если r фиксировано, то экстраполяционная и интерполяционная формулы приводятся к виду

Это модифицированные или ординатные формулы Адамса.

Приведём значения коэффициентов р и для r = 3:

8. Метод последовательных приближений

Этот метод используется для построения начала таблицы. Формулы метода последовательных приближений:

где i – коэффициенты экстраполяционной формулы Адамса, r – порядок практически постоянных в пределах заданной точности разностей. Разностями r-го порядка пренебрегают.

Значения коэффициентов

По этому методу сначала вычисляются приближённо значения y1, y2,, yr. Причём y1 находят по первой формуле, оставляя в ней лишь два слагаемых; y2 находят по второй формуле, ограничиваясь тремя слагаемыми, и т.д. Далее проводится итерационный процесс до тех пор, пока в пределах заданной точности не совпадут y1, y2,, yr, полученные на последнем и предпоследнем этапах. Значения y1, y2,, yr, полученные на последнем этапе, принимаются за окончательный результат.

Задание № 7

Решить численно одним из методов с точностью 10-5 на промежутке [0, 1] дифференциальное уравнение при начальном условии х(0) = 0.

Составить программу решения уравнения (допускается любой язык программирования), привести результаты её реализации и построить график решения. Проверить правильность решения, используя специализированные математические пакеты.

Вариант А

Вариант

Уравнение

а

k

1

x ' = cos(at + x) + k(tx)

1.00

0.50

2

-"-

1.25

0.75

3

-"-

1.50

1.00

4

-"-

1.75

1.25

5

-"-

2.00

1.50

6

x ' = 1 – sin(at + x) +

1.00

- 0.3

7

-"-

1.25

- 0.1

8

-"-

1.50

0.1

9

-"-

1.75

0.3

10

-"-

2.00

0.5

11

x ' = + k x2

1.00

- 0.5

12

-"-

1.25

- 0.3

13

-"-

1.50

- 0.1

14

-"-

1.75

0.1

15

-"-

2.00

0.3

16

x ' = 1 + (at)sin(x) – (k + t) x

0.50

1.00

17

-"-

0.75

1.25

18

-"-

1.00

1.50

19

-"-

1.25

1.75

20

-"-

1.50

2.00

21

x ' = (ax2)cos(t) + k x

0.6

0.2

22

-"-

0.7

0.3

23

-"-

0.8

0.4

24

-"-

0.9

0.5

25

-"-

1.0

0.6

Вариант Б

Вариант

Уравнение

a

k

1

x ' = 1 + a x sin(t) – k x2

0.2

1.00

2

-"-

0.4

1.25

3

-"-

0.6

1.50

4

-"-

0.8

1.75

5

-"-

1.0

2.00

6

x ' = a e – (a + t x) + k(t 2 + x)

0.2

0.3

7

-"-

0.4

0.4

8

-"-

0.6

0.5

9

-"-

0.8

0.6

10

-"-

1.0

0.7

11

x ' =

0.1

0.1

12

-"-

0.2

0.2

13

-"-

0.3

0.3

14

-"-

0.4

0.4

15

-"-

0.5

0.5

16

x ' = 0.2 ch(a t + x) +

0.3

1.00

17

-"-

0.4

1.25

18

-"-

0.5

1.50

19

-"-

0.6

1.75

20

-"-

0.7

2.00

21

- 0.5

0.2

22

-"-

- 0.4

0.3

23

-"-

- 0.3

0.4

24

-"-

- 0.2

0.5

25

-"-

- 0.1

0.6

Замечание 1. В рамках пакета Maple проверка правильности решения задачи осуществляется следующим образом:

Таблица значений решения в узлах сетки с шагом h = 0.05 приведена ниже.

Замечание 2. В рамках пакета Mathcad решение обыкновенных дифференциальных уравнений осуществляется последовательностью специальных команд.

Сначала формируются "матрицы" (в данном случае скаляры) начальных у словий и правой части. Затем командой rkfixed (или какой-либо другой) осуществляется сама процедура решения.

0 0

0.05000000000000 0.00084520959923

0.10000000000000 0.00343083039397

0.15000000000000 0.00783786372686

0.20000000000000 0.01415598922061

0.25000000000000 0.02248458081565

0.30000000000000 0.03293379527424

0.35000000000000 0.04562590720360

0.40000000000000 0.06069676562373

0.45000000000000 0.07829758606469

0.50000000000000 0.09859694045094

0.55000000000000 0.12178321860328

0.60000000000000 0.14806740950846

0.65000000000000 0.17768656848628

0.70000000000000 0.21090780566410

0.75000000000000 0.24803330959979

0.80000000000000 0.28940623751877

0.85000000000000 0.33541823340112

0.90000000000000 0.38651842970525

0.95000000000000 0.44322513172968

1.00000000000000 0.50614014425799

MATLAB

Maple Mathcad

Таблица значений функции приведена выше.

Замечание 3. Пакет MATLAB требует оформления правой части уравнения в виде m-функции:

function df=DifEq(t,x)

global a k

df=(exp(k*x+t)-exp(-(k*x+t)))/(2.0*(0.9+a))+k*x;

Затем вводятся команды:

Таблица значений функции приведена выше. Ниже представлен график решения.

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

Дана система n уравнений первого порядка

yi' = fi(x, y1, y2, , yn), i = 1, 2, , n (4.2)

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

y1(x0) = y10, y2(x0) = y20, , yn(x0) = yn0. (4.3)

Для отыскания численного решения системы (4.2) с начальными условиями (4.3) вычисляют для некоторых значений аргумента x1, x2, , xN (x0 < x1 < x2 <  < xN) значений функций y1(x), y2(x), , yn(x), являющиеся искомым решением, т.е. составляют n таблиц

[yi(x1), yi(x2), , yi(xN)] i = 1, 2, , n.

К данной задаче применимы все методы, рассмотренные для случая одного дифференциального уравнения, если в вышеприведённых формулах заменить yk на yik (yik = yi(xk)) и fk на fik (fik = fi(xk, y1k, y2k, , ynk)). Например, расчётная формула метода Эйлера (2) для системы запишется так

{yi (k+1) = yik + hfik} i = 1, 2, , n.