Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВМ_LABS / ЛР4_ЧР ОДУ(p)

.pdf
Скачиваний:
22
Добавлен:
21.03.2015
Размер:
128.56 Кб
Скачать

1

Лабораторная работа № 4

ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЕРВОГО ПОРЯДКА

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

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

Будем рассматривать здесь применение простейших численных методов. Само собой разумеется, что вопрос об отыскании прибли-

жённых значений решения y = y(x) уравнения

 

y′ = f(x, y),

(1.1)

удовлетворяющего условию

 

y(x0 ) = y0,

(1.2)

можно ставить, если это решение существует и единственно (т.е. задача корректно поставлена). Как известно, достаточным условием существования и единственности этого решения является непрерывность функции f(x,y) в рассматриваемой области и ограниченность её частной производной по y. В некоторых случаях условий коррект-

ности может оказаться недостаточно. Необходимо, чтобы задача была хорошо обусловлена (устойчива), т.е. малые изменения в задании исходных данных приводили к достаточно малым изменениям искомого решения.

2. Метод Эйлера.

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

y= f(x, y), a ≤ x ≤ b,

(2.1)

y(a) = y0.

На отрезке [a, b] выберем конечное множество точек

xi (i = 0,N):

a= x0 < x1 < ...< xN = b.

Вметоде Эйлера приближённые значения y(xi ) ≈ yi вычисляются последовательно по формуле

 

 

 

2

yi+1 = yi + hi f(xi , yi ), i =

 

 

 

0,N -1,

(2.2)

где hi = xi+1 xi . При этом искомая интегральная кривая y(x), проходящая через точку (x0, y0 ), заменяется ломаной с вершинами в точках (xi,yi ). Каждое звено ломаной имеет направление, совпадающее с направлением интегральной кривой (2.1), которая проходит через точку (xi,yi ). Поэтому метод Эйлера часто называют методом ломаных.

Вычисление приближений yn искомого решения y(x) по формуле (2.2) представляет собой обыкновенный метод Эйлера. Этот метод даёт весьма грубое приближёние решения задачи Коши. Он обычно используется в случае, когда необходимо получить примерное представление о решении на небольшом промежутке.

Если функция f(x,y) непрерывна и ограничена вместе со свои-

ми первыми производными, т.е.

 

f

 

M

 

,

 

 

f

 

 

M

 

,

f

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

x

 

 

 

2

 

 

y

 

3

 

 

 

 

 

 

 

 

 

 

для x [a, b], y [y0,Y], то имеет место неравенство

 

y(x

) y

i

 

 

M4 h

eM3 (xi x0 ),

(2.3)

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

2 M3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где M4 = M2 + M1 M3, h = max hi .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0iN1

 

 

 

 

 

Метод Эйлера обладает малой точностью, к тому же погрешность каждого нового шага, вообще говоря, систематически возрастает. Наиболее приемлемым для практики методом оценки точности является в данном случае способ двойного счёта – с шагом h и с шагом h / 2. Совпадение десятичных знаков в полученных двумя способами результатах даёт естественные основания считать их верными.

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

Рассмотрим задачу Коши на отрезке [x0, X] для дифференциального уравнения (1.1) с начальным условием (1.2). Будем искать значения приближённого решения этой задачи лишь в фиксированных точках xi (i = 1,...,N) данного отрезка. Выбранные узловые

точки будем считать равноотстоящими:

3

 

 

 

 

X - x

0

 

 

 

 

 

xi

= x0

+ ih, i = 1,N, h > 0, N =

 

.

h

 

 

 

 

 

 

 

 

Метод Рунге-Кутта – одношаговый метод решения поставленной задачи, т.е. такой метод , который позволяет найти приближённое

значение решения заданной задачи в узле xi+1 по информации об этом решении лишь в одной предыдущей узловой точке xi .

Рассмотрим метод Рунге-Кутта четвёртого порядка точности, который является одним из самых распространённых методов решения задач с начальными условиями для ОДУ. Итак, пусть дано дифферен-

циальное уравнение (1.1) и условие yk = y(xk ), которое либо является начальным условием (при k = 0), либо получено как результат предыдущего шага. Для получения следующего значения yk+1 вначале вычисляются четыре числа:

r0 = hf(xk , yk ),

r1 = hf(xk + h 2, yk + r0 2),

(4.1)

r2 = hf(xk + h2, yk + r1 2), r3 = hf(xk + h, yk + r2 )

(здесь h – шаг интегрирования). Вслед за этим вычисляется приращение по формуле:

yk = (r0 + 2r1 + 2r2 + r3 )6,

апотом вычисляется новое значение функции:

yk+1 = yk + yk .

Метод Рунге-Кутта – один из наиболее употребительных методов повышенной точности. Однако общий недостаток методов этого семейства – отсутствие простых способов оценки погрешности метода. Широко используемый на практике для этих методов способ контро-

ля точности – двойной счёт. Если y2h – вычисленное значение y(x)

с шагом 2h, а yh – соответствующее узловое значение, полученное с шагом h, то для ориентировочной оценки погрешности ε последнего значения yh можно использовать формулу:

y y

ε ≈ 2h h .

15

4

Содержание отчёта:

ручное решение;

решение в MS Excel;

программа решения на языке Turbo Pascal.

Задание. Методами Эйлера и Рунге-Кутта с шагами h и h/2 на отрезке [a,b] решить задачу Коши для дифференциального уравнения y′ = f (x, y) c заданным начальным условием y(a)= c. На основании результатов двойного счета сделать вывод о точности решений. По полученным таблицам построить графики интегральных кривых.

Вар.

 

 

 

f(x, y)

 

 

 

 

a

b

c

h

1

 

 

 

xy3 x2

24

5

0.7

0.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

4x2

+1 3y2

2.6

4.6

1.8

0.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

cos (1.5x y2 ) 1.3

–1

1

0.2

0.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

x2 + xy + y2

2

3

1.2

0.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

cos (1.5y + x)2 +1.4

1

2

0.9

0.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

4.1x y2 + 0.6

0.6

2.6

3.4

0.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

1

 

 

 

+ 2y

1.5

2

2.1

0.05

 

 

 

 

 

 

 

 

1+ x3 y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

x + cos

 

 

 

y

2.1

3.1

2.5

0.1

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

2xy

0.4

3

5

1.7

0.2

 

 

 

 

 

 

 

 

 

x + 4

 

 

 

 

 

 

 

 

 

 

10

2.5x + cos(y + 0.6)

1

3

1.5

0.2

11

x + 2.5y2

+ 2

1

2

0.9

0.1

 

 

 

 

 

 

 

 

12

2 sin(x + y)2

2

3

2.3

0.1

 

 

 

 

 

 

 

 

 

13

2

 

+ x +1

0.1

0.5

1.25

0.05

 

x +

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

x + cos

y

 

–2

–1

3

0.1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в папке ВМ_LABS