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

Название: Численные методы решения обыкновенных дифференциальных уравнений
Раздел: Рефераты по математике
Тип: реферат

Лабораторная работа 1

Численные методы решения

обыкновенных дифференциальных уравнений (4 часа)

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

Обыкновенным дифференциальным уравнением называется равенство

, (1)

в котором - независимая переменная, изменяющаяся в некотором отрезке , а - неизвестная функция y ( x ) и ее первые n производные.

Число называется порядком уравнения .

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

Различают два типа обыкновенных дифференциальных уравнений

- уравнения без начальных условий

- уравнения с начальными условиями.

Уравнения без начальных условий - это уравнение вида (1).

Уравнение с начальными условиями - это уравнение вида (1), в котором требуется найти такую функцию , которая при некотором удовлетворяет следующим условиям:

,

т.е. в точке функция и ее первые производных принимают наперед заданные значения.

Задачи Коши

При изучении способов решения дифференциальных уравнений приближенными методами основной задачей считается задача Коши.

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

Выведем формулы метода Рунге-Кутта второго порядка точности. Для этого решение представим куском ряда Тейлора, отбрасывая члены с порядком выше второго. Тогда приближенное значение искомой функции в точке x 1 можно записать в виде:

(2)

Вторую производную y "( x 0 ) можно выразить через производную функции f ( x , y ) , однако в методе Рунге-Кутта вместо производной используют разность

соответственно подбирая значения параметров

Тогда (2) можно переписать в виде:

y 1 = y 0 + h [ β f ( x 0 , y 0 ) + α f ( x 0 + γh , y 0 + δh )], (3)

где α , β , γ и δ – некоторые параметры.

Рассматривая правую часть (3) как функцию аргумента h , разложим ее по степеням h :

y 1 = y 0 +( α + β ) h f ( x 0 , y 0 ) + αh 2 [ γ fx ( x 0 , y 0 ) + δ fy ( x 0 , y 0 )],

и выберем параметры α , β , γ и δ так, чтобы это разложение было близко к (2). Отсюда следует, что

α + β =1, αγ =0,5, α δ =0,5 f ( x 0 , y 0 ).

С помощью этих уравнений выразим β , γ и δ через параметры α , получим

y 1 = y 0 + h [(1 - α ) f ( x 0 , y 0 ) + α f ( x 0 +, y 0 + f ( x 0 , y 0 )], (4)

0 < α ≤ 1.

Теперь, если вместо (x 0 , y 0 ) в (4) подставить (x 1 , y 1 ), получим формулу для вычисления y 2 приближенного значения искомой функции в точке x 2 .

В общем случае метод Рунге-Кутта применяется на произвольном разбиении отрезка [ x 0 , X ] на n частей, т.е. с переменным шагом

x0 , x1 , …,xn ; hi = xi+1 – xi , xn = X. (5)

Параметры α выбирают равными 1 или 0,5. Запишем окончательно расчетные формулы метода Рунге-Кутта второго порядка с переменным шагом для α =1:

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

i = 0, 1,…, n -1.

и α =0,5:

yi+1 =yi + [f(xi , yi ) + f(xi + hi , yi + hi f(xi , yi ))], (6.2)

i = 0, 1,…, n -1.

Наиболее употребляемые формулы метода Рунге-Кутта – формулы четвертого порядка точности:

yi+1 =yi + (k1 + 2k2 + 2k3 + k4 ),

k1 =f(xi , yi ), k2 = f(xi + , yi + k1 ), (7)

k3 = f(xi + , yi + k2 ), k4 = f(xi +h, yi +hk3 ).

Для метода Рунге-Кутта применимо правило Рунге для оценки погрешности. Пусть y ( x ; h ) – приближенное значение решения в точке x , полученное по формулам (6.1), (6.2) или (7) с шагом h , а p порядок точности соответствующей формулы. Тогда погрешность R ( h ) значения y ( x ; h ) можно оценить, используя приближенное значение y ( x ; 2 h ) решения в точке x , полученное с шагом 2 h :

(8)

где p =2 для формул (6.1) и (6.2) и p =4 для (7).

Уточненное решение пишем в виде

. (9)

В алгоритмах с автоматическим выбором шага предварительно задают погрешность в виде положительного параметра ε, и на каждом этапе вычисления следующего значения yi +1 подбирают такой шаг h , при котором выполняется неравенство

, (10)

Метод Рунге-Кутта применим и к задаче Коши для системы m дифференциальных уравнений первого порядка с m неизвестными функциями

x (x0 , X), (11)

y1 (x0 )=y1,0 , y2 (x0 )=y2,0 ,…, ym (x0 )=ym,0 . (12)

Приведем для задачи (11), (12) расчетные формулы метода Рунге-Кутта четвертого порядка. Пусть требуется найти систему m функций y 1 ( x ), y 2 ( x ),…, ym ( x ), удовлетворяющих в интервале ( x 0 , X ) дифференциальным уравнениям (11), а в точке x 0 – начальным условиям (12). Предположим, что отрезок [ x 0 , X ] разбит на N частей:

xi = x 0 + i hi ,

Тогда каждую l -ю функцию yl ( x ) можно приближенно вычислять в точках xi +1 по формулам Рунге-Кутта

Kl,1 =fl (xi , y1,i , y2,i ,…,ym,i ), i=1, 2, …, m,

Kl,2 =fl (xi + , y1,i + K1,1 , y2,i + K2,1 ,…,ym,i + Km,1 ), i=1, 2, …, m,

Kl,3 =fl (xi + , y1,i + K1,2 , y2,i + K2,2 ,…,ym,i + Km,2 ), i=1, 2, …, m, (13)

Kl,4 =fl (xi + h, y1,i + hK1,3 , y2,i + hK2,3 ,…,ym,i + hKm,3 ), i=1, 2, …, m,

Yl,i+1 = yl,i +( Kl,1 + 2 Kl,2 + 2 Kl,3 + Kl,4 ), i=1, 2, …, m,

Здесь через yl , i обозначается приближенное значение функции yl ( x ) в точке xi .

Обратите внимание на порядок вычислений по формулам (13). На каждом шаге сначала вычисляются коэффициенты Kl , i в следующем порядке:

K1,1 , K2 ,1 ,…, Km,1 ,

K1,2 , K2 ,2 ,…, Km,2 ,

K 1,3 , K 2 ,3 ,…, Km ,3 ,

K 1,4 , K 2 ,4 ,…, Km ,4 ,

и лишь затем приближенные значения функций y 1, i +1 , y 2, i +1 ,…, ym , i +1 .

Задачи Коши для дифференциальных уравнений n -го порядка

y(n) =f(x, y, y', …, y(n-1) ), x (x0 , X), (14)

y(x0 )=y0 , y'(x0 )=y1,0 , …, y(n-1) (x0 )=yn-1,0 (15)

сводятся к задаче Коши для системы дифференциальных уравнений первого порядка с помощью замены переменных

z 0 = y , z 1 = y ',… , zn-1 = y(n-1) . (16)

Учитывая (16), из уравнения (14) получим систему дифференциальных уравнений

(17)

Начальные условия (15) для функций zl переписываются в виде

z0 (x0 )= y0 , z1 (x0 )= y1,0 ,…, zn-1 (x0 )= y п -1,0 . (18)

Запишем для полученной системы метод Рунге-Кутта:

zl,i+1 = zl,i + (Kl,1 + 2Kl,2 + 2Kl,3 + Kl,4 ), (19)

i =0, 1, …, N , l =0, 1, …, n -1.

Для вычисления коэффициентов Kl ,1 , Kl ,2 , Kl ,3 и Kl ,4 имеем следующие формулы:

K 0,1 = z 1, i ,

K1 ,1 = z2 , i,

…………

Kn-1,1 = f(xi , z0,i , z1,i ,…, zn-1,i ,),

K 0,2 = z 1, i + K 1,1 ,

K1 ,2 = z2 , i + K2 ,1 ,

…………………

Kn-1,2 = f(xi + , z0,i + K0,1 , z1,i + K1,1 ,…, zn-1,i + Kn-1,1 ),

K0,3 = z 1, i + K 1, 2 ,

K1,3 = z2,i + K2 ,2 ,

……………………

Kn-1,3 = f(xi + , z0,i + K0,2 , z1,i + K1,2 ,…, zn-1,i + Kn-1,2 ),

K0,4 = z1,i + hK1,3 ,

K1,4 = z2,i + hK2,3 ,

……………………

Kn-1,4 = f(xi + h, z0,i + hK0,2 , z1,i + hK1,2 ,…, zn-1,i + hKn-1,2 ).

Задания лабораторной работы 1

1. Написать файл-функции для решения поставленных далее задач.

2. Сохранить их в отдельных m-файлах (среда Матлаб)

3. Выполнить и оформить в виде отчета поставленные далее задачи.

Задача № 1 . Решить задачу Коши на отрезке [x0 ,X] методом Рунге-Кутта четвертого порядка, применяя деление отрезка на N частей. Оценить погрешность.

Варианты заданий в табл.1.

Табл.1.

№ варианта

Уравнение

Начальное условие

[ x 0 , X ]

N

1

y'(x)=sin(xy2 )

y(0)=1

[0,2]

10

2

y'(x)=cos(x) + y2

y(0)=2

[0,2]

20

3

y'(x)= cos(xy2 )

y(0)=3

[0,2]

30

4

y'(x)=sin

y(0)=1

[0,2]

40

5

y'(x)=tg

y(0)=2

[0,2]

50

6

y'(x)=x + y2

y(1)=3

[1,2]

10

7

y'(x)=

y(1)=1

[1,2]

20

8

y'(x)=cos

y(1)=2

[1,2]

30

9

y'(x)=sin ( x )

y(1)=3

[1,2]

40

10

y'(x)=

y(1)=1

[1,2]

50

11

y'(x)=x ln(1+y2 )

y(1)=2

[1,3]

10

12

y'(x)=y cos(x+y2 )

y(1)=3

[1,3]

20

13

y'(x)=ex x+y2

y(1)=1

[1,3]

30

14

y'(x)=sin(x(1+y2 ))

y(1)=2

[1,3]

40

15

y'(x)=lg

y(1)=3

[1,3]

50

16

y'(x)=x+y2 3x

y(-1)=1

[-1,1]

10

17

y'(x)=|x-y|(1+x2 +y2 )

y(-1)=2

[-1,1]

20

18

y'(x)=

y(-1)=3

[-1,1]

30

19

y'(x)=x+

y(-1)=1

[-1,1]

40

20

y'(x)=

y(-1)=2

[-1,1]

50

21

y'(x)=

y(0)=3

[0,π]

10

22

y'(x)=sin(x) ln(1+y2 )

y(0)=1

[0,π]

20

23

y'(x)=sin(y) cos(x+y2 )

y(0)=2

[0,π]

30

24

y'(x)=ex sin(y)+x2 ey

y(0)=3

[0,π]

40

25

y'(x)= cos(x) (x+y2 )

y(0)=1

[0,π]

50

26

y'(x)=

y( π/2 )=2

[π/2,π]

10

27

y'(x)=x 2y+y 2x

y( π/2 )=1

[π/2,π]

20

28

y'(x)= |x - y| cos(x2 + y2 )

y( π/2 )=3

[π/2,π]

30

29

y'(x)=

y( π/2 )=2

[π/2,π]

40

30

y'(x)=(y + x )

y( π/2 )=3

[π/2,π]

50

Задача № 2 . Решить задачу Коши для дифференциального уравнения сведением к задачи Коши для системы уравнений первого порядка.

Табл.2.

№ варианта

Дифференциальное уравнение

Начальное условие

[ x 0 , X ]

N

1

y(x)=x y(x)+ sin(x)

y (0)=1,

y' (0) =2

[0,2]

10

2

y"'(x)=2x2 y(x) y"(x)

y(0)=2,

y' (0) =2,

y"(0)=1

[0,2]

20

3

y"(x) – 3cos(x) y(x)=tg(x)

y(0)=3,

y' (0) =2

[0,2]

30

4

"'y(x)=x y'(x)

y(0)=1,

y' (0) =1,

y"(0)=1

[0,2]

40

5

y"'(x)=-cos(x) y"(x) – y(x) sin(x)

y(0)=2,

y' (0) =2 ,

y"(1)=1

[0,2]

50

6

y"(x)– sin(x) y(x)=sin(x)

y(1)=3,

y' ( 1 ) =1

[1,2]

10

7

y"(x) – 2x2 y(x)=cos(x)

y(1)=1,

y' ( 1 ) =1

[1,2]

20

8

y"'(x)=(x – 1) y(x) + x y"(x)

y(1)=2,

y' ( 1 ) =1,

y"(1)=1

[1,2]

30

9

y"(x) - sin(x) y(x)=sin3 (x)

y(1)=3,

y' ( 1 ) =1

[1,2]

40

10

y"'(x)=x y(x) - sin(x) y'(x)

y(1)=1,

y' ( 1 ) =1,

y"(1)=1

[1,2]

50

11

y"(x)-cos(x) y(x)=x

y(1)=2,

y' ( 1 ) =1

[1,3]

10

12

y"'(x) – 2x2 y(x)=x2

y(1)=3,

y' (0) =1,

y"(0)=1

[1,3]

20

13

y"(x) - lgx y(x)=2x

y(1)=1,

y' ( 1 ) =1

[1,3]

30

14

y"'(x) - 2|sin(x)| y'(x)=3x3

y(1)=2,

y' ( 1 ) =1,

y"(1)=1

[1,3]

40

15

y"(x) – 2lnx y(x)=1+x

y(1)=3,

y' ( 1 ) =1

[1,3]

50

16

y"'(x) - |cos(x)| y(x)=x

y(-1)=1,

y' ( -1 ) =1,

y"(-1)=1

[-1,1]

10

17

y"(x) - 2|x| y(x)=cos2 (x)

y(-1)=2,

y' ( 1 ) =1

[-1,1]

20

18

y"'(x) - y(x)=e2x

y(-1)=3,

y' ( -1 ) =1,

y"(-1)=1

[-1,1]

30

19

y"(x) – ln(1+x2 ) y(x)=sin(2x)

y(-1)=1,

y' ( 1 ) =1

[-1,1]

40

20

y"'(x) – sin|x| y(x)=sin(x)

y(-1)=2,

y' ( -1 ) =1,

y"(-1)=1

[-1,1]

50

21

y"(x) - 2y(x)=sin(x)

y(0)=3,

y' (0) =2

[0,π]

10

22

y"'(x)=3y(x)+y"(x) cos(x)

y(0)=1,

y' (0) =1,

y"(0)=1

[0,π]

20

23

y"(x) - 2x y(x)=x3

y(0)=2,

y' (0) =2

[0,π]

30

24

y"'(x) - x y(x)=x4 y'(x)

y(0)=3,

y' (0) =1,

y"(0)=1

[0,π]

40

25

y"(x) - 2x2 y(x)=x2

y(0)=1,

y' (0) =2

[0,π]

50

26

y"'(x)=cos(x) y(x)+ex y"(x)

y( 2 )=2,

y' ( 2 ) =1,

y"(2)=1

[2,π]

10

27

y"(x) - 2x2 y(x)=2x ex

y( 2 )=3,

y' (0) =2

[2,π]

20

28

y"'(x) - 5y"(x)=32x

y( 2 )=1,

y' ( 2 ) =1,

y"(2)=1

[2,π]

30

29

y"(x) - 2sin(x) y(x)=sin(3x)

y( 2 )=2,

y' (0) =2

[2,π]

40

30

y"'(x) - lnx y'(x)=1

y( 2 )=3,

y' ( 2 ) =1,

y"(2)=1

[2,π]

50

Задача № 3 .

Найти методом Рунге-Кутта с точностью ε = 10-8 решение задачи Коши y '( x )=2 x (1+ y 2 ), y (0)=0 в точке x =1 .

(Точным решением является функция y ( x )= tg ( x 2 ) )

Задача № 4 .

Решить методом Эйлера на отрезке [1, 2] задачу Коши

y '( x )= , y (1)=0.

(Точным решением данной задачи является функция y ( x )= tg ( ln ).

Контрольные вопросы:

1. Какое уравнение называется обыкновенным дифференциальным уравнением?

2. Какие методы решения задач для дифференциальных уравнений вы знаете?

3. В каком случае решение дифференциального уравнения единственно?

4. Рассказать правило Рунге для оценки погрешности.