Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
25.03.2021
Размер:
166.9 Кб
Скачать

Отчет по лабораторной работе № 6 на тему: «Численное решение задачи Коши для ОДУ 1-го порядка»

по дисциплине «Вычислительные методы»

Постановка задачи

Найдите приближенное решение задачи Коши для обыкновенного дифференциального уравнения 1-го порядка:

y’ = f(t, y), t [t0, T] y(t0)=y0

и оцените погрешность решения задачи при разных значениях шага. Подберите шаг, при котором достигается точность ε=10-4.

f(t ,y) := −45 y + 10 t2 sin(t) t3 + 5

t0 := 0 T := 3 y0 := 3

1.

Программа, реализующая метод Эйлера-Коши:

EylerK(f ,y0,t0,T,h) :=

 

y0 y0

 

 

 

 

 

 

 

 

 

 

t0 t0

 

 

 

 

 

 

 

n

 

T t0

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

for

i 0..n 1

 

 

 

 

 

 

 

 

ti+1 ti + h

h

(f(ti,yi)+ f(ti+1,yi + h f(ti,yi)))

 

 

 

 

 

 

 

 

 

 

 

 

yi+1 yi +

 

 

 

2

 

 

 

 

 

augment(t ,y)

 

 

Проверка правильности работы программы:

k(y ,t) := y + 3 t2 t3

 

 

 

 

 

k1 := EylerK(k,0,0,3,0.3)

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

0.3

0.045

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.6 0.1890.9 0.491

1.2 1.171

k1 = 1.5 2.5131.8 1.463

2.1 2.555

2.4 1.0582.7 2.6543 0.719

2. Нахождение решения исходной задачи с шагом h0 = (T - t0) / 10:

h0 := T 10t0 = 0.3

 

0

3

 

 

 

0.3

227.286

 

 

 

 

 

 

4

 

 

0.6

1.786×

10

 

 

0.9

1.404×

6

 

 

10

 

 

1.2

1.104×

8

 

 

10

 

 

8.682× 109

y11 := EylerK(f ,y0,t0,T,h0) =

1.5

 

 

 

 

11

 

1.8

6.826×

 

10

 

 

5.367×

13

 

2.1

10

 

 

 

 

15

 

2.4

4.22× 10

 

 

2.7

3.318×

17

 

 

10

 

 

3

2.609×

19

 

 

10

 

3. Нахождение решения исходной задачи с шагом h1 = 2 × h0:

h1 := 2 h0 = 0.6

 

 

0

3

 

 

 

 

0.6

978.545

 

 

 

 

 

 

 

 

 

1.2

3.312× 105

y11 := EylerK(f ,y0,t0,T,h1) =

 

 

 

8

 

 

 

1.121×

 

 

 

1.8

1010

 

 

2.4

3.795× 10

 

 

 

3

1.285×

13

 

 

 

10

 

Оценка погрешности по правилу Рунге:

N1 := T t0

h1 i := 0..N1

delta1i := y12i,1 y112 i,1

delta1 := delta1 22 1

R := max( delta1)= 8.695× 1018

2

4.Подбор шага h2, при котором погрешность по правилу Рунге не превосходит точности

ε=10-4:

y11 := EylerK(f ,y0,t0,T,0.00015)

 

 

y12 := EylerK(f ,y0,t0,T,0.0003)

 

 

i := 0.. T t0

 

 

0.0003

 

 

delta1i :=

y12i,1 y112 i,1

 

 

delta1 := delta1

 

 

 

22 1

 

 

R := max(

delta1)= 9.553× 105

 

 

График решения:

 

 

3

 

 

 

2

 

 

 

y11i ,1

 

 

 

1

 

 

 

0 0

0.5

1

1.5

 

 

y11i ,0

 

3

5.Нахождение решения исходной задачи с шагом h0 = (T - t0) / 10 с помощью встроенной функции Mathcad rkfixed и оценка погрешности решения по правилу Рунге:

 

 

0

3

 

 

 

 

 

3.041×

3

 

 

0.3

10

 

 

 

 

 

6

 

 

0.6

3.2 × 10

 

 

 

 

3.369×

9

 

 

 

0.9

10

 

 

 

 

3.545×

12

 

 

 

1.2

10

 

y21 := rkfixed(y0,t0,T,N0,f) =

 

1.5

3.732×

15

 

 

10

 

 

 

1.8

3.928×

18

 

 

 

10

 

 

 

4.134× 1021

 

 

2.1

 

 

 

 

4.351×

24

 

 

2.4

10

 

 

 

 

 

27

 

 

2.7

4.58× 10

 

 

 

3

 

30

 

 

 

4.82× 10

 

 

 

0

3

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

0.6

5.548×

109

 

 

1.2

1.065× 10

 

y22 := rkfixed(y0,t0,T,N1,f) =

 

2.045×

13

 

 

1.8

10

 

 

 

2.4

3.928×

17

 

 

 

10

 

 

 

3

7.541×

21

 

 

 

10

 

i := 0..N1

delta2i := y22i,1 y212 i,1

delta2 := delta2 24 1

R := max( delta2)= 3.213× 1029

6.Подбор шага h3, при котором погрешность по правилу Рунге не превосходит точности

ε=10-4:

y31 :=

rkfixed(y0,t0,T,544,f)

 

y32 :=

rkfixed(y0,t0,T,272,f)

 

i := 0..

272

 

 

 

 

 

 

 

 

delta3i :=

 

y32i,1 y312 i,1

 

 

 

 

 

 

delta3 :=

 

delta3

 

 

 

 

24 1

 

R := max(

 

delta3

 

)= 9.932× 105

4

 

 

h3 := T544t0 = 5.515× 103

7. Итоговая таблица:

 

Порядок точности

Погрешность при

Шаг, при котором

Метод

достигается точность

 

метода

шаге h0

ε=10-4

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

2

9×1018

0,000150

Метод Рунге-Кутты 4-го

4

3×1029

0,005515

порядка

 

 

 

8. Выводы:

Явные методы Эйлера-Коши и Рунге-Кутты 4-го порядка дали очень большое значение погрешности при решении задачи Коши для заданной в условии функции и выбранных отрезка, начального условия и шага. Погрешность метода Эйлера-Коши при шаге 0,3 была равна 9×1018, а погрешность метода Рунге-Кутты 4-го порядка - 3×1029; это говорит о том, что изначально поставленная задача плохо обусловлена относительно входных данных. Следовательно, эти методы не могут быть использованы для решения задачи Коши при заданных условиях.

Для достижения требуемой точности необходимо уменьшить шаг. При использовании метода Эйлера-Коши необходимо уменьшить шаг в 2000 раз, а при использовании метода РунгеКутты 4-го порядка - приблизительно в 54 раза.

Таким образом, метод Рунге-Кутты 4-го порядка позволяет достигнуть заданной точности ε=10-4 приблизительно в 37 раз быстрее, чем метод Эйлера-Коши 2-го порядка, то есть лучше подходит для решения задачи Коши.

5

Соседние файлы в папке Лабораторные работы