Материал: Спецглавы высшей математики. численные методы. Пантелеев И.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

шагов пропорциональна

N O h2 , поскольку

N 1/ h ,

то S O h , т.е. метод

Эйлера — метод первого

порядка

точности по h.

 

 

Известны различные уточнения метода Эйлера. Модификации

данных методов направлены на уточнение направления

перехода из точки xi , yi

в точку xi 1 , yi 1 . Например, в

методе Эйлера-Коши используют следующий порядок вычислений:

 

yi

h f xi , yi ,

 

yi 1

(VIII.27)

y

y

h

f xi , yi f xi 1, yi 1

 

.

 

i 1

i

 

2

 

 

 

 

 

Геометрически это означает, что определяется направление интегральной кривой в исходной точке xi , yi и во

вспомогательной точке, xi 1 , yi 1 а в качестве окончательного

берется среднее значение этих направлений.

 

 

Пример

VIII.1.

Найти

решение

задачи

Коши

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

 

 

 

 

 

dy

x2 , y 0 1,3

 

 

 

 

dx

 

 

 

 

 

 

 

 

методами Эйлера и Эйлера-Коши. 1. Метод Эйлера.

• Создайте файл Euler.m (листинг VIII.1), содержащий описание функции, возвращающей решение дифференциального уравнения методом Эйлера.

Листинг VIII.1. Файл Euler_g9.m function [X,Y]=Euler_g9(y0,x0,xl,N) dx=(xl-x0)/N;

х(1)=х0; у(1)=у0; for i=l:N

x(i+l)=x(l)+dx*i;

y(i+l)=y(i)+dx*F9(x(i));

end;

X=x;

Y=y;

function z=F9(x) z=x.^2;

45

 

 

 

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

2

 

35

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,5 1

1,5 2 2,5

3

3,5 4 4,5

5

 

 

 

Рис. VIII.2. Визуализация точного (1) и численного (2)

 

решений задачи Коши дифференциального уравнения

dy

x2

,

dx

 

 

y 0 1,3

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

 

 

 

 

 

 

 

 

 

• Выполните следующую последовательность команд:

 

 

 

» х0=0; % левая граница отрезка интегрирования

 

 

 

» xl=5;

% правая граница отрезка интегрирования

 

 

 

»у0=1.3; % начальное условие

»N=50; % число узлов разбиения отрезка интегрирования

»[X Y]=Euler_g9(y0,x0,xl,N); % нахождение численного

% решения задачи Коши

»i=l:length(X);

»Z(i)=yO+l/3*X(i).^3; % вычисление значений точного решения

179

178

»plot(X,Z,X,Y,':') % визуализация численного и точного решений

% (рис. VIII.2)

»plot(X,abs(Z-Y)) % визуализация разности между численным % и точным решениями ДУ (рис. VIII.3)

1,4

1,2

1

0,8

0,6

0,4

0,2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

 

 

Рис. VIII.3. Разность между численным и точным решениями

задачи Кош дифференциального уравнения

dy

x2 , y 0 1,3

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Метод Эйлера-Коши.

• Создайте файл EulerKoshi.m (листинг VIII.2), содержащий описание функции, возвращающей решение дифференциального уравнения методом Эйлера-Коши.

Листинг_ VIII.2. Файл EulerKoshi.m function [X,Y]=EulerKoshi(y0,x0,xl,N) dx=(xl-x0)/N;

x( l)=x0; y( l)=y0; for i=2:N

x(i)=x(l)+dx*(i-l); Z=y(i-l)+dx*F9(x(i-l) ,y(i-l)) ;

180

y(i)=y(i-l)+(F9(x(i-l),y(i-l))+F9(x(i),Z))*dx/2; end;

X=x;

Y=y;

function z=F9(x,y); z=x.^2;

45

40

35

30

25

20

15

10

5

0

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

Рис. VIII.4. Визуализация точного и численного решений задачи Коши дифференциального уравнения dydx x2 , y 0 1,3

методом Эйлера-Коши

• Выполните следующую последовательность команд:

»х0=0;%левая граница отрезка интегрирования

»xl=5;%правая граница отрезка интегрирования

»уО=1.3; % начальное условие

»N=50;% число узлов разбиения отрезка

% интегрирования

»

[X

Y]=EulerKoshi(y0,x0,xl,N);

»

%

нахождение численного решения задачи Коши

i=l:length(X);

 

 

181

»Z(i)=y0+l/3*X(i).^3;

%вычисление значений точного решения

»plot(X,Z,X,Y,':')

%визуализация точного и численного решений

%(рис. VIII.4)

»plot(X,abs(Z-Y))

%визуализация разности между численным и

%точным решениями ДУ (рис. VIII.5)

x10

9

8

7

6

5

4

3

2

1

0

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

Рис. VIII.5. Разность между точным решением задачи Коши дифференциального уравнения dydx x2 , y 0 1,3 и численным решением, полученным методом Эйлера-Коши

Из сравнения рис. VIII.3, VIII.5 видно, что погрешность, как и ожидалось, уменьшилась в 102 раз (h = 0.1).

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

Метод Эйлера и метод Эйлера-Коши относятся к семейству методов Рунге-Кутта. Для построения данных методов можно использовать следующий общий подход. Фиксируем

некоторые числа:

p1,..., pq ; ij , 0 j q.

 

 

2 ,..., q ;

 

Последовательно вычисляем:

 

k1

h h f x, y ,

 

k2

h h f x 2 h, y 12 k1 h ,

 

 

x q h, y q1k1 h ... qq 1kq 1 h

kq h h f

и полагаем:

 

 

 

 

 

q

 

y x h y x pi ki h z h .

(VIII.28)

 

 

i 1

 

Рассмотрим вопрос о выборе параметров i , pi , ij .

Обозначим

h y x h z h .

 

 

 

 

 

 

 

Будем предполагать, что

 

 

 

x

0 0,

 

 

 

 

 

 

 

 

 

 

 

 

0

0 ...

 

 

а x 1 0 0

для некоторой функции f(x, у).

 

По формуле Тэйлора справедливо равенство

 

s

i 0

i

 

s 1

0h

 

s 1

 

 

h

 

h

 

 

 

 

 

 

h

 

,

(VIII.29)

i!

 

s 1 !

 

i 0

 

 

 

 

 

 

 

где 0 < θ < 1.

При q = 1 будем иметь:

183

182

h y x h y x p1 h f x, y ,

0 0,

0 y x h p1 f x, y h 0 ,

h y x h .

Ясно, что равенство 0 0 выполняется для любых функций f x, y лишь при условии, что р1 =1. При данном

значении р1 из формулы (VIII.28) получаются формулы (VIII.24), (VIII.25) метода Эйлера. Погрешность данного метода на шаге согласно (VIII.29) равна

h x h h2 . 2

Рассмотрим случай q = 2 , тогда

h y x h y x p1hf x, y p2hf x, y ,

где

x x 2 h,

y y 21 h f x, y .

Согласно исходному дифференциальному уравнению y f ,

y f x dfdy dydx f x f y f x, y ,

y

 

dfy

df

 

 

fxx fxy f f

 

 

fy dx

 

 

 

dx

 

fxx

fxy f f fxy

fyyf fy fx fy f

(VIII.30)

fxx 2 fxy f fyy f

 

2

 

 

 

 

 

 

fy y .

 

 

184

Вычисляя производные

функции

h и, подставляя в

 

 

 

 

выражения для h , h ,

h значение h 0 , получаем:

0 0,

p2 f ,

 

 

(VIII.31)

0 1 p1

 

 

1 2 p2

21 f y f .

0 1 2 p2 2 f x

Требование

 

 

 

 

 

 

0 0 0 0

будет выполняться для всех f x, y только в том случае, если

одновременно справедливы следующие три равенства относительно четырех параметров:

1

p1 p2

0,

 

1

2 p2 2

0,

(VIII.32)

1

2 p2 21

0 .

 

Задавая произвольно значения одного из параметров и определяя значения остальных параметров из системы (VIII.32), можно получать различные методы Рунге-Кутта с порядком

погрешности

s 2 .

 

Например, при p

1

из (VIII.32)

 

 

 

 

 

 

 

 

1

2

 

 

 

1

 

 

 

 

 

получаем: p2

 

,

2

1, 21

1

 

 

2

 

 

 

 

 

 

 

 

 

 

Для выбранных значений параметров формула (VIII.28) приобретает следующий вид:

y

i 1

y

i

h

f xi , yi f xi 1, yi* 1 .

 

 

 

 

2

 

Здесь yi 1 записано

вместо

y x h , yi — вместо

y x , а с

помощью у*i+1 обозначено выражение yi h f xi , yi .

Таким образом, для рассматриваемого случая приходим к расчетным формулам (VIII.27) метода Эйлера-Коши. Из (VIII.29) следует, что главная часть погрешности на шаге есть

185

0 h3 / 6,

т. е. погрешность пропорциональна третьей степени шага.

На практике наиболее часто используют метод Рунге-Кутта с q 4, s 4

Данный метод реализуется в соответствии со следующими

расчетными формулами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k1 h f x, y ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

k

1

 

 

 

 

 

 

 

 

k2

h f x

 

, y

 

 

 

,

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

k

2

 

 

 

 

 

 

 

 

k3

h f x

 

 

, y

 

 

 

,

 

 

 

 

 

(VIII.33)

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k4

h f x h, y k3 ,

 

 

 

 

 

 

 

y z h y x

1

 

k

1

 

2k

2

2k

3

k

4

.

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

Погрешность рассматриваемого метода Рунге-Кутта на шаге пропорциональна пятой степени шага.

Геометрический смысл использования метода Рунге-Кутта с

расчетными формулами состоит

в

следующем. Из

точки xi , yi сдвигаются в направлении,

определяемом углом

α1, для которого tg 1 f xi , yi .

На

этом направлении

выбирается точка с координатами

 

 

 

 

 

 

 

 

 

 

 

h

 

 

k

1

 

 

 

 

 

xi

 

 

, yi

 

 

 

.

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

Затем из точки

xi , yi

 

 

сдвигаются в направлении,

определяемым углом α2, для которого

k

 

 

 

 

 

 

h

 

 

 

1

 

 

tg 2

f xi

 

 

,

yi

 

,

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

186

 

 

 

 

 

 

 

 

и на

 

этом

направлении

выбирается

точка

с

координатами

 

 

h

 

k

1

 

 

 

 

 

xi , yi ,

 

xi

 

 

, yi

 

. Наконец, из точки

 

сдвигаются в

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

направлении, определяемом углом α3, для которого

 

 

 

 

 

 

 

 

h

 

 

 

k

1

 

 

 

 

 

 

 

 

 

tg 3

f xi

 

, yi

 

 

 

,

 

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и на

 

этом

направлении

выбирается

точка

с

координатами

xi h, yi k3

. Этим задается

еще

 

 

одно

 

направление,

определяемое

 

углом

α4,

 

 

для

 

 

которого

tg 4

f xi h, yi k3 .

Четыре

 

полученные

направления

усредняются в соответствие с (VIII.33). На этом окончательном направлении и выбирается очередная точка

xi 1 , yi 1 xi h, yi y

Пример VIII.2. Найти решение задачи Коши дифференциального уравнения

dydx x2 , y 0 1.3

методом Рунге-Кутта четвертого порядка.

1. Создайте файл RungeKutt4.m (листинг VIII.3),

содержащий описание функции, возвращающей решение дифференциального уравнения методом Рунге-Кутта четвертого порядка.

Листинг VIII.3. Файл RungeKutt4,m function [X,У]=RungeKutt4(y0,x0,xl,N) dx=(xl-x0)/N;

x(l)=x0; У(1)=У0; for i=2:N

x(i)=x(l)+dx*(i-l); kl=dx*F9(x(i-l),y(i-l)); k2=dx*F9(x(i-l)+dx/2,y(i-l)+kl/2);

187

Источник: https://studfile.net/preview/16565850/