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

 

         Метод Эйлера. Метод Эйлера-Коши. Метод Рунге-Кутта. Метод Адамса.

 

         Рассмотрим задачу Коши:

                   y¢=¦(x,y);    y(x0)=y0.

(1)

 

         Задача (1) при определенных ограничениях, наложенных на функцию ¦(x,y) (в дальнейшем мы будем предполагать, что эти ограничения выполняются), имеет единственное решение.

         При численном решении задачи (1) требуется определить значение неизвестной функции y(x) в некоторой точке x*.

         Для решения поставленной задачи интервал [x0,x*] разбивается на n частей с точками разбиения x0, x1,…, xn=x* (xi-xi-1=hi). Затем по приближенным формулам находят последовательно y1=y(x1), y2=y(x2), …, yn=y(xn).

         Большинство приближенных формул вычисления yi=y(xi) получаются следующим образом. Переписав уравнение (1) в форме дифференциалов dy=¦(x,y)×dx и проинтегрировав его в пределах от

xi-1 до xi, получим:

                  

или

.

(2)

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

         .

(3)

         В методе Эйлера интеграл  вычисляется с помощью формулы левых прямоугольников:

 

;

(4)

, i = 1, 2, …, n.

(5)

         Погрешность приближенной формулы (4), а следовательно, и формулы (5) на одном шаге есть

         ; cÎ(xi-1,xi).

(6)

         В этом случае говорят, что погрешность метода на одном шаге имеет порядок hi2.

         В методе Эйлера-Коши сначала определяют вспомогательные величины

         ,

 

а затем интеграл  вычисляют с помощью формулы трапеций. Тогда приближенная формула для вычисления yi принимает следующий вид:

         .

(7)

Погрешность этой формулы на одном шаге имеет порядок hi3.

         В методе Рунге-Кутта сначала последовательно вычисляются вспомогательные величины

         ;

         ;

         ;

         ,

а затем приближенно принимается, что

         .

(8)

Погрешность этой формулы на одном шаге имеет порядок hi5.

         В методе Адамса для вычисления Dyi-1 функция f(x,y) приближенно заменяется интерполяционным полиномом третьей степени, построенным по четырем предыдущим точкам xi-4, xi-3, xi-2,   xi-1. Таким образом, чтобы построить решение задачи Коши в точке    x = x4, необходимо по начальному значению y0 = y(x0) предварительно вычислить его в точках x1, x2, x3 каким-либо другим методом (наиболее часто для этой цели используется метод Рунге-Кутта). Точки x0, x1, x2, x3 обычно называются разгонными точками.

         Итак, если hi постоянны и равны h, то, заменяя f(x,y) вторым интерполяционным полиномом Ньютона, имеем:

и тогда

.

(9)

Погрешность этой формулы на одном шаге имеет порядок h5.

 

Типовые задачи.

 

Задача 1.

Решить дифференциальное уравнение   с начальным условием y(1)=2,70 на интервале [1; 1,5] методом Эйлера, принимая h=0,125. Все вычисления вести с тремя верными в узком смысле знаками.

 

Решение. По исходным начальным данным x0=1 и y0=2,70 вычисляем . Далее, следуя формуле (4), имеем      Dy0=-0,169. Таким образом, по формуле (5) получаем  y1=2,70–0,169=2,53.

         Дальнейшие вычисления выполняем аналогично, принимая за исходные значения x1,y1; x2,y2 и так далее. Результаты вычислений представлены в следующей таблице.


 

i

xi

yi

y'i = f(xi,yi)

Dyi = hf(xi,yi)

0

1,000

2,70

–1,35

–0,169

1

1,125

2,53

–1,41

–0,176

2

1,250

2,35

–1,41

–0,176

3

1,375

2,17

–1,38

–0,172

4

1,500

2,00

 

 

 

Задача 2.

Решить методом Эйлера-Коши уравнение   с начальным условием y(1)=2,70 на интервале [1; 2], принимая h=0,25. Все вычисления вести с тремя верными  в узком смысле знаками.

 

Решение. По исходным начальным данным x0 = 1 и y0 = 2,70 вычисляется y'0=–1,35. Затем вычисляются вспомогательные величины  и . Наконец, по формуле (7) вычисляется y1=2,70–0,35=2,35.

         Принимая теперь за исходные данные x1=1,25 и y1=2,35, дальнейшие вычисления выполняем аналогично вышеприведенным, а их результаты представим в виде следующей таблицы:

 

i

xi

yi

y'i=fi

hfi

Dyi-1

0

1,00

2,70

–1,35

–0,338

 

 

 

 

1

1,25

2,35

–1,41

–0,352

2,36

–1,42

–0,355

–0,346

2

1,50

2,01

–1,34

–0,355

2,00

–1,33

–0,332

–0,342

3

1,75

1,69

–1,21

–0,302

1,68

–1,20

–0,300

–0,318

4

2,00

1,41

 

 

1,39

–1,04

–0,260

–0,281

 

Задача 3.

Решить методом Рунге-Кутта уравнение  с начальным условием y(1)=2,70 на интервале [1; 2], принимая h = 0,5. Все вычисления вести с тремя верными  в узком смысле знаками.

 

Решение.

                   ;

                   ;

                   ;

                   .

По формуле (8) имеем:

.

         Вычисление y2 = y(2,0)  аналогично вычислению y1, а результат его представлен в следующей таблице:

i

x

Y

f(x,y)

k1,2k2,2k3,k4

Dy

0

1,00

1,25

1,25

1,50

2,70

2,36

2,34

2,00

–1,35

–1,42

–1,40

–1,33

–0,675

–1,42

–1,40

–0,665

 

 

 

–0,693

1

1,50

1,75

1,75

2,00

2,01

1,68

1,71

1,40

–1,34

–1,20

–1,22

–1,05

–0,670

–1,20

–1,22

–0,525

 

 

 

–0,602

2

2,00

1,41

 

 

 

 

Задача 4.

Решить методом Адамса уравнение   с начальным условием y(1) = 2,70 на интервале  [1; 2,5], принимая h=0,25. В качестве разгонных точек x0, x1, x2, x3 и решений  y0,  y1,  y2,  y3  взять значения, полученные в задаче 2. Все вычисления вести с тремя верными в узком смысле знаками.

 

Решение. Примем в качестве разгонных точек значения x0 = 1,00;

x1 = 1,25; x2 = 1,50; x3 = 1,75. Используя в качестве значений yi и fi (i=0,1,2,3) значения, полученные в задаче 2, вычислим конечные разности Df2 = 0,13; D2f1 = 0,06; D3f0 = –0,07.

Теперь по формуле (9) при h = 0,25 и i = 4 получим y4 = 1,40.

 

Далее вычисляется f4 = –1,05 и конечные разности Df4 = 0,16; D2f2 = 0,03; D3f1 = –0,03, а затем опять по формуле (9) при i=5 вычисляется y5=1,16 и т.д.

  Весь процесс решения удобно представить в виде следующей таблицы:

 

i

xi

yi

fi

Dfi

D2fi

D3fi

0

 

1

 

2

 

3

 

4

 

5

1,00

 

1,25

 

1,50

 

1,75

 

2,00

 

2,25

2,70

 

2,35

 

2,01

 

1,69

 

1,40

 

1,16

–1,35

 

–1,41

 

–1,34

 

–1,21

 

–1,05

 

–0,6

 

0,07

 

0,13

 

0,16

 

 

0,13

 

0,06

 

0,03

 

 

 

–0,07

 

–0,03

 

Задача Ж.

         Решить уравнение y' = f(x,y) на интервале [x0,x*] с начальным условием y(x0)=y0, принимая h = 0,1 ,

         а) методом Эйлера;

         б) методом Рунге-Кутта:

y' = x2+y;

[0; 0,2];

y0 = 1.

y' = 2x2+y;

[0; 0,2];

y0 = 1.

y' = 2x+y;

[0; 0,2];

y0 = 1.

y' = x+2y;

[0; 0,2];

y0 = 1.

y' = x2–y;

[1; 1,2];

y0 = 0.

y' = x–2y;

[1; 1,2];

y0 = 0.

y' = 2(x+y);

[1; 1,2];

y0 = 0.

y' = 2x–3y;

[1; 1,2];

y0 = 0.

y' = 2x+3y;

[0; 0,2];

y0 = 1.

y' = x+3y;

[0; 0,2];

y0 = 1.

y' = 4x+y;

[0; 0,2];

y0 = 1.

y' = 3x–y;

[0; 0,2];

y0 = 1.

y' = 4x–y;

[0; 0,2];

y0 = 1.

 

         в) методом Адамса, вычислив y1 ,y2 ,y3 методом Эйлера-Коши:

y' = 1+xy;

[1; 1,5];

y0 = 1.

y' = x+y;

[0; 0,5];

y0 = 1.

y' = 2x+y;

[0; 0,5];

y0 = 1.

y' = 3x+y;

[0; 0,5];

y0 = 1.

y' = 4x+y;

[0; 0,5];

y0 = 1.

;

[0; 0,5];

y0 = 1.

y' = y–2x;

[0; 0,5];

y0 = 1.

y' = y–3x;

[0; 0,5];

y0 = 1.

y' = x+y2;

[0; 0,5];

y0 = 1.

y' = x–y2;

[1; 1,5];

y0 = 0.

y' = x–2y2;

[1; 1,5];

y0 = 0.

y' = 2x–y2;

[1; 1,5];

y0 = 0.

 


 

 

К оглавлению

Назад к разделу "Решение систем линейных уравнений"

Вперед к разделу "Литература"