Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Calculus_of_approximations.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.89 Mб
Скачать

Пример 1

Решить методом Эйлера дифференциальное уравнение y'=cos y + 3 x с начальным условием y(0)=1,3 на отрезке [0, 1] приняв шаг h=0,2

k

xk

yk

yk=0,2(cos yk+3xk)

0

0

1,3

0,05

1

0,2

1,35

0,16

2

0,4

1,52

0,25

3

0,6

1,77

0,32

4

0,8

2,09

0,38

5

1

2,47

Алгоритм решения задачи на рис. 6.5.

Программу составить самостоятельно.

{ Программа 6.1}

var x,y,a,b,h:real; {Метод Эйлера}

function f(x,y:real):real;

begin f:= cos(y)+3*x; end;

begin

writeln('введите y, a, b, h');

readln(y,a,b,h); x:=a;

repeat

writeln(x:0:3,' ',y:0:3);

y:=y+h*f(x,y);

x:=x+h;

until x>b+0.1;

readln; end.

Пример 2

Решить методом Эйлера дифференциальное уравнение y'=cos y + 3x с начальным условием y(0)=1,3 на отрезке [0, 1] приняв шаг h=0,1

k

xk

y2k

yk

0

0

1,3

1,30

1

0,1

1,33

2

0,2

1,35

1,38

3

0,3

1,46

4

0,4

1,52

1,56

5

0,5

1,68

6

0,6

1,77

1,82

7

0,7

1,98

8

0,8

2,09

2,15

9

0,9

2,33

10

1

2,47

2,53

Вывод: погрешность метода Эйлера слишком велика для решения практических задач. Дальнейшим развитием метода Эйлера явились методы Рунге-Кутта.

5. Метод Рунге-Кутта второго порядка (Метод Эйлера-Коши)

Р ассмотрим метод Рунге-Кутта второго порядка. В этом методе величины yi+1 вычисляются по следующим формулам:

yi+1 = yi + yi

yi=yi1+yi2

,

См. рис. 6.6

Тогда .

Обозначим , тогда

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

Алгоритм решения задачи на рис 6.7.

Программу составить самостоятельно.

{Программа 6.2}

{Метод Рунге - Кутта 2 порядка}

var z,x,y,a,b,h:real;

function f(x,y:real):real;

begin f:= cos(y)+3*x; end;

begin

writeln('Введите y, a, b, h');

readln(y,a,b,h); x:=a;

repeat

writeln(x:0:3,' ',y:0:3);

z:=y+h*y*(1-x);

y:=y+h*(f(x,y)+f(x+h,z))/2; x:=x+h;

u

Рис 6.7

ntil x>b+0.1; readln; end.

6. Метод Рунге-Кутта 4 порядка

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

В этом методе величины yi+1 вычисляются по следующим формулам:

yi+1 = yi + yi

yi=h(k1 + 2k2 + 2k3 + k4)/6, i = 0, 1, ...

k1 = f(xi, yi),

k2 = f(xi+h/2, yi+hk1/2),

k3 = f(xi+h/2, yi+hk2/2),

k 4 = f(xi+h, yi+hk3).

Алгоритм решения задачи на рис. 6.8.

Программу составить самостоятельно.

{Программа 6.3}

{Метод Рунге - Кутта 4 порядка}

var k1,k2,k3,k4,x,y,a,b,h,d:real;

function f(x,y:real):real;

begin f:= cos(y)+3*x; end;

begin

writeln('Введите y, a, b, h');

readln(y,a,b,h); x:=a;

repeat

writeln(x:0:3,' ',y:0:3);

k1:=f(x,y);

k2:=f(x+h/2,y+h*k1/2);

k3:=f(x+h/2,y+h*k2/2);

k4:=f(x+h,y+h*k3);

d:=(k1+2*k2+2*k3+k4)/6;

y:=y+d; x:=x+h;

u

Рис. 6.8

ntil x>b+0.1;

readln; end.

Пример

Решить уравнение y'=y(1-x) с начальным условием y(0)=1 методом Эйлера, Эйлера-Коши и Рунге-Кутта 4 порядка. Сравнить результаты с точным решением .

методы

Эйлера

Эйлера-Коши

Рунге-Кутта 4 порядка

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

x

y

0

1

1

1

1

0,1

1,1

1,0995

1,0997

1,0997

0,2

1,199

1,1969

1,1972

1,1972

0,3

1,2949

1,29

1,2905

1,2905

0,4

1,3856

1,3766

1,3771

1,3771

0,5

1,4687

1,4544

1,455

1,455

0,6

1,5421

1,5213

1,522

1,522

0,7

1,6038

1,5754

1,5762

1,5762

0,8

1,6519

1,6153

1,6161

1,6161

0,9

1,685

1,6397

1,6405

1,6405

1

1,7018

1,6479

1,6487

1,6487

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