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

2 курс / Численные методы / KurgDubrKurk_ChislMet_part2_2

.pdf
Скачиваний:
62
Добавлен:
21.05.2015
Размер:
167.44 Кб
Скачать

16

4. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

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

уравнение

 

F (x, y(x), y'(x),..., y(k ) (x)) = 0,

(4.1)

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

и ее

производные y' (x),..., y ( k ) (x).

 

Решение дифференциального уравнения(4.1) заключается в нахождении

функций y(x) ,

которые удовлетворяют этому уравнению для всех значенийx в

определенном бесконечном или конечном замкнутом или открытом интервале

(a, b).

 

 

обыкновенного дифференциального уравнения порядкаk

Общее решение

имеет вид

 

 

y = y(x,C1,C2 ,...,Ck ),

 

 

 

(4.2)

 

 

 

 

 

 

где C1,C2 ,...,Ck - произвольные постоянные, частный

выбор

которых

дает

частное решение.

 

 

 

 

 

 

 

 

Обыкновенные

дифференциальные

уравнения

 

часто

 

встречаются

различных прикладных задачах. Однако лишь очень

немногие

из этих

уравнений могут быть решены точно. В этих случаях используют

методы

численного

анализа.

Следует

отметить, что

численные

методы

позволяют

определить лишь частные решения, при этом приближенное значение искомой

функции y(x)

вычисляется на

конечном множестве точек xn Î[a,b]. Решение

получается

в

виде

таблицыyn = y(xn ) . Поэтому такие

методы

известны как

дискретные.

 

 

 

 

 

 

 

 

 

 

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

Отыскание

частного

решения

уравнения(4.1),

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

начальным условиям

, y'(a) = y' ,..., y(k -1) (a) = y

(k -1)

 

 

 

y(a) = y

,

(4.3)

 

0

0

0

 

 

составляет задачу

Коши. По k начальным

условиям (4.3)

 

определяются k

неизвестных констант C1,C2 ,...,Ck .

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

Пусть требуется найти решение дифференциального уравнения

 

y' = f (x, y),

x Î[a, b],

(4.4)

удовлетворяющее начальному условию

 

 

 

 

 

17

 

 

 

 

 

 

 

 

y(a) = y0.

 

(4.5)

Выберем на отрезке

[a, b] конечное множество точек xn (n = 0, 1, ... , N):

 

 

 

 

 

 

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

 

 

 

 

в которых

и будем

искать

приближенные значения

функцииy = y(x

n

) .

 

точки xn

 

 

 

n

 

 

Узловые

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

сетка) с

шагом h = xn+1 - xn .

 

 

 

 

 

 

 

 

4.1.1.Разложение решения в ряд Тейлора. Формула Эйлера

 

 

 

Рассмотрим

более

общую

задачу. Предположим, что

приближенное

решение

в

точке xn нам

известно. Попытаемся найти его в следующей точке

сетки xn+1 .

Наиболее простой способ его построения основан на разложении в

ряд Тейлора (в предположении дифференцируемости функции f(x,y)). Разложим y(xn+1) = y(xn + h) в ряд Тейлора в окрестности точки xn :

y(xn+1) = y(xn ) + y'(xn )h + y''(xn ) h2 + y'''(xn ) h3 + ... , 2! 3!

или

y(xn+1) = y(xn ) + hD(xn , yn , h),

где

D(x, y, h) = y' (x) + y' ' (x) h + ... .

2!

Если этот ряд оборвать, оставив в нем m слагаемых и заменитьy(xn ) приближенным значением yn , получим

y

n+1

= y

n

+ hj(x

, y

n

, h) + O(hm+1),

(n = 0, 1, ... , N-1),

(4.6)

где

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(m) (x)

 

 

 

 

 

 

 

j(x, y, h) = y'(x) +

y''(x)

h + ... +

h

m-1

.

(4.7)

 

 

 

2!

k!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

y' (x) = f (x, y) ,

y''(x) =

df (x, y)

=

f (x, y)

+

f (x, y)

 

dy

= fx' (x, y) + f y' (x, y) f (x, y)

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

x

 

 

 

 

 

 

y

 

 

 

dx

 

 

 

 

 

 

и т.д.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда при m = 1 имеем

 

 

 

 

 

 

 

 

 

 

) + O(h2 )

 

 

 

 

 

 

 

 

 

 

 

y

n+1

= y

n

+ hf (x

, y

n

 

(формула Эйлера).

При m = 2:

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

n+1

= y

n

+ h[ f (x , y

n

) +

 

( f '

(x , y

n

) + f '

(x

, y

n

) f (x , y

n

)] + O(h3 )

 

 

 

 

 

 

 

n

 

 

2

 

 

x

n

 

 

 

y

n

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

и т.д.

К сожалению, применение этих методов ограничено лишь теми задачами, для которых легко вычисляются полные производные высокого порядка. Поэтому на практике широко используется лишь формула Эйлера, хотя ее точность и не очень высока. Метод Эйлера легко обобщается на случай систем дифференциальных уравнений 1-го порядка:

y1' = f1(x, y1, y2 ,..., yk ), y2' = f2 (x, y1, y2 ,..., yk ),

. . . . . . . . . . . . . . . . . . . .

yk' = fk (x, y1, y2 ,..., yk )

с начальными условиями y1 (x0 ) = y10 ; y2 (x0 ) = y20 ; ... , yk (x0 ) = yk 0 . В этом случае

y j (xn+1) = y j (xn ) + hf j (xn , y1(xn ), y2 (xn ),..., yk (xn )) , (j = 1, 2, ... , k ; n = 0, 1, 2, ... , N-1) .

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

Для решения задачи Коши (4.4)-(4.5) воспользуемся формулами (4.6)-(4.7). Идея метода Рунге-Кутта заключается в построении такого выражения для j(x, y, h) , которое не содержит производных от функции f (x,y).

Рассмотрим построение формулы Рунге-Кутта для m = 2. В этом случае

j(x, y, h) = f (x, y) +

h

( fx' (x, y) + f y' (x, y) f (x, y)].

(4.8)

 

2

 

 

В методе Рунге-Кутта предлагается искать j(x, y, h) в виде:

 

j(x, y, h) = C1 f (x, y) + C2 f (x + ha2 , y + hb21 f (x, y)) ,

(4.9)

где C1 , C2 , a2 , b21 - константы, которые надо определить. Для этого разложим f (x + ha2 , y + hb21 f (x, y)) в формуле (4.9) в ряд Тейлора в окрестности точки

(x,y):

j(x, y, h) = C f (x, y) + C

[ f (x, y) + f '

(x, y)ha + f '

(x, y)hb f (x, y)] =

 

1

 

2

 

x

2

y

21

 

= (C + C

) f (x, y) + C a hf ' (x, y) + C b

hf ' (x, y) f (x, y)

(4.10)

1

2

 

2 2

x

2 21

y

 

Сравнивая (4.8) и

(4.10),

можно

получить

условия, которым

должны

удовлетворять коэффициенты C1 , C2 , a2 , b21 :

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

 

C + C

2

= 1,

C

2

a

2

=

1

,

C

b

21

=

1

.

(4.11)

 

 

1

 

 

 

2

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мы получили систему из 3-х уравнений относительно 4-х неизвестных. Эта система имеет бесконечное множество решений, каждое из которых дает

формулу, имеющую

 

точность

порядка h3 . Для

практического

использования

следует выбрать такое

решение системы(4.11),

при

котором

формула(4.9)

приобретает

наиболее

 

удобный длявычислений

вид. Обычно берут

C = C

2

=

1

.

Тогда a

2

= b

21

=1.

Подставив эти значения в(4.9) и использовав

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

полученное выражение в (4.6), приходим к следующей формуле, которая носит название двухэтапной схемы Рунге-Кутта:

yn+1 = yn + h [K1 + K2 ] + O(h3 ) ,

2

где

K1 = f (xn , yn ) ,

K2 = f (xn + h, yn + hf (xn , yn )) .

Чтобы рассчитать yn+1

по этой формуле, необходимо вычислять функцию

f (x, y) дважды.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формализм Рунге-Кутта можно

 

обощить, используя m вычислений

функции f(x,y) на каждом шаге интегрирования.

В этом

случае получим m -

этапный метод Рунге-Кутта:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 = yn + hj(xn , yn , h) + O(hm+1) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j(x, y, h) = åCr K r ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r =1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K1 = f (x, y) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r -1

 

 

 

 

 

 

 

K r

 

= f (x + har , y + håbrs K s ) ,

r = 2, 3, ... , m .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s=1

 

 

 

 

 

Наиболее широко используетсячетырехэтапная схема метода Рунге-

Кутта (m=4):

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

y

n+1

= y

n

+

[K + 2K

2

+ 2K

3

+ K

4

] + O(h5 ) ,

 

 

 

 

 

6

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K1 = f (xn , yn ) ,

 

 

 

 

 

 

 

 

 

K

2

= f (x

n

+

h

, y

n

+

h

K ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

K3 = f (xn + h , yn + h K2 ) ,

2 2

K4 = f (xn + h, yn + hK3 ) .

4.1.3. Метод Адамса

Недостатком метода Рунге-Кутта является то, что для получения решения уравнения в одной точке приходится вычислять правую часть уравнения(4.4) в нескольких точках. Если правая часть сложна, это приводит к большой вычислительной работе. Однако существуют методы, применение которых на каждом шаге требует только однократного вычисления правой части.

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

y' = f (x, y) , x Î[a, b],

y(a) = y0 .

Проинтегрируем это уравнение в пределах отрезка [x, x + x ], где x, x + x Î[a, b]:

x+x

y(x +x ) - y(x) = ò f (t, y(t))dt .

(4.12)

x

 

Будем считать, что приближенные значения y(x) в точках x0 , x1,..., xn

уже каким-

либо образом вычислены ( y(x0 ) = y0 , y(x1) = y1,..., y(xn ) = yn ). Следовательно, в

этих точках известны и значения производнойyi' = f (xi , yi ) (i = 0, 1, ... , n). Заменим в формуле (4.12) f (t, y(t)) интерполяционным многочленом, значения

которого совпадают со значениями функцииf (xi , yi )

в точках x0 , x1,..., xn ,

и

положим в ней x = xn и x = h . Тогда

 

 

xn+1

 

 

yn+1 - yn = ò pn (x)dx .

 

 

xn

 

 

Если в качестве pn (x) взять интерполяционный

полином Ньютона

для

интерполирования назад, то после несложных, но громоздких преобразований получим:

yn+1 - yn

= hyn' +

h

( yn' - yn'

-1) +

5h

( yn' - 2 yn'

-1 + yn' -2 ) +

 

 

 

2

 

12

 

 

+3h ( yn' - 3yn' -1 + 3yn' -2 - yn' -3 ) + ... .

8

21

Обрывая ряд на том или ином слагаемом, получаем формулы, обладающие различной точностью. Если ограничиться только одним слагаемым в правой части, получим уже известную формулу Эйлера:

yn+1 = yn + hyn' + O(h2 ) .

Учет двух слагаемых в правой части дает:

 

 

 

 

 

 

 

yn+1 = yn +

h

(3yn' - yn' -1) + O(h3 ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для трех слагаемых:

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1

= yn

+

(23yn'

-16 yn' -1 + 5yn' -2 ) + O(h4 ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

для четырех:

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 = yn

+

(55 yn' - 59 yn' -1 + 37 yn' -2

- 9 yn' -3 ) + O(h5 ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и т.д. Эти формулы называются экстраполяционными формулами Адамса.

При

расчете

по

экстраполяционным

формулам Адамса

на

каждом шаге

(кроме первого)

значение

функции y' = f (x, y)

вычисляется

только

в

одной

точке x

n

( y'

 

,..., y'

получены на предыдущих шагах). Однако на первом шаге

 

n-1

 

0

значения y' (а

следовательно, значения y)

 

 

 

 

необходимо

знать

в

нескольких

точках:

 

y0 , y1,..., yn .

Например, чтобы

начать

счет

по

формуле

Адамса,

имеющей

точность O(h3 ) ,

необходимо знать y0 и

y1;

по формуле

Адамса,

имеющей

точность O(h 4 )

- y0 , y1

и y2 .

Обычно

эти

значения yi

находят

другим методом, например, методом Рунге-Кутта, для которого необходимо лишь y0 , известное по условию. Таким образом, метод Адамса, как говорят, не является самоначинающимся.

Рассмотренные нами формулы Адамса называются экстраполяционными, так как интерполяционный полином для подынтегральной функции строился по

точкам xn ,..., x0 , а

использовался

на отрезке[xn , xn+1]

(т.е. за отрезком

интерполяции).

Обычно

точность

экстраполяции ниже, чем собственно

интерполяции.

Для

повышения

точности

можно

поступить

следующим

образом. Интерполяционный многочлен строим не по точкам xn , xn-1, xn-2 ,... , а

по точкам xn+1, xn , xn-1,...

(т.е. за

начальную

точку интерполяционного

многочлена

принимаем

 

 

не xn ,

а xn+1 ).

В

результате

получим

интерполяционную формулу Адамса:

 

 

 

 

 

 

 

yn+1 - yn = hyn' +1

-

h

( yn' +1 - yn' ) -

h

( yn'

+1 - 2 yn' + yn' -1) -

 

 

 

 

 

 

 

2

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

-

h

( yn'

+1 - 3yn'

+ 3yn' -1

- yn' -2 ) - ... .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Учет

в

правой

части этого выражения различного количества слагаемых,

приводит

к

 

интерполяционным

формулам

Адамса, имеющим

различную

точность:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 = yn + hyn' +1 + O(h2 ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 = yn +

h

( yn' +1 + yn' ) + O(h3 ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1

= yn +

h

(5yn' +1 + 8yn' - yn' -1) + O(h4 ) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1

= yn

+

h

(9 yn' +1 +19 yn' - 5yn' -1 + yn' -2 ) + O(h5 ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Точность

 

интерполяционных

формул выше, чем экстраполяционных.

Однако

их

 

непосредственное

использование

невозможно, так

 

как для

вычисления y

n+1

с

их

помощью необходимо знатьy'

= f (x

 

, y

n+1

) ,

которое

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n+1

n+1

 

 

 

еще

неизвестно.

Поэтому

 

на

практике

обычно

экстраполяционные

интерполяционные

формулы

 

используют

совместно. Такой

способ

решения

дифференциальных уравнений называется методом прогноза-коррекции. Суть его в следующем. Сначала в качестве прогноза(нулевое приближение)

используется

экстраполяционная формула, с

помощью

 

которой

вычисляется

y(0) , а затем y'

= f (x

, y(0)

) . Полученное значение

y'

 

применяется в более

n+1

 

n+1

n+1

n+1

 

 

 

n+1

 

 

 

 

 

 

точной

интерполяционной

формуле и

 

 

 

 

(1)

уже

в

первом

вычисляетсяy

 

 

 

 

 

 

 

 

 

 

n+1

 

 

 

 

 

приближении, после чего вновь рассчитывается

y'

= f

(x

, y(1) )

. Далее

y

n+1

 

 

 

 

 

 

 

n+1

 

 

n+1

n+1

 

 

 

можно

снова

уточнить

по

интерполяционной

формуле, получив

yn(2+)1

. И так

далее. Таким образом, коррекция проводится с помощью итерационного процесса, на каждом шаге которого контролируется относительная ошибка:

y(m) - y( m-1)

d = n+1 n+1 , y(m)

n+1

где m нумерует итерации. Когда d становится меньше заранее заданной малой величины e , процесс прекращается.

23

Методы Рунге-Кутта и Адамса легко распространяются на системы дифференциальных уравнений 1-го порядка.

4.2. Численные методы решения дифференциальных уравнений высших порядков

Дифференциальные уравнения высших порядков могут быть сведены к системе дифференциальных уравнений 1-го порядка. Например, уравнение k-го порядка

y(k ) = f (x, y, y', y'',..., y(k -1) )

эквивалентно системе k уравнений 1-го порядка:

ì

 

y'= y1,

ï

 

y'

= y

2

,

ï

 

1

 

 

ï

 

..................

í

 

ï

 

'

= yk -1,

ï

'

yk -2

ï

= f (x, y, y1, y2 ,..., yk -1)

îyk -1

с k неизвестными функциями y, y1 , y2 ,..., yk -1 . Поэтому на уравнения высших порядков можно перенести все рассмотренные методы решения сист уравнений 1-го порядка. Однако для решения уравнений высших порядков существуют и специальные методы. В первую очередь это относится к уравнениям 2-го порядка (уравнения более высоких порядков обычно сводят к

системе

уравнений 1-го порядка).

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

решения

дифференциальных

уравнений2-го

порядка

являетсяметод

Нумерова.

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

y' ' = g(x) y .

Как и ранее, будем искать его решение в равномерной сетке точек x0 , x1,..., xN с

шагом h. Значения функции g(x) известны:

g(x0 ) = g0 , g(x1) = g1,..., g(xN ) = gN .

Разложим y(x) в ряд Тейлора вблизи точки xn :

 

 

 

 

 

 

x 2

 

x3

 

x 4

y( IV ) + ...

y(x

+x ) = y

 

+ xy' +

 

y'' +

 

y''' +

 

 

2!

3!

4!

n

 

n

n

 

n

n

n

Тогда при x = h получим:

24

 

 

 

yn+1

- yn

= hyn' +

h2

 

 

yn'' +

h3

 

yn''' +

h4

 

yn( IV ) + ...

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3!

 

 

 

4!

 

 

 

При x = -h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn-1 - yn

= -hyn' +

h2

 

yn''

-

h3

yn''' +

h4

yn( IV ) -...

 

 

 

 

 

 

 

 

4!

 

 

 

 

 

 

 

 

2!

 

 

 

3!

 

 

 

 

 

 

 

Сложим два последних равенства:

 

 

 

 

 

 

 

 

 

 

h4

 

 

 

 

 

 

 

 

 

 

 

 

yn+1

- 2 yn + yn-1 = h2 yn'' +

 

yn( IV ) + O(h6 ) .

(4.13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

Если в правой части этого выражения

 

оставить только первое слагаемое,

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

уравнений 2-го порядка:

yn+1 - 2 yn + yn-1 = h2 gn yn ,

 

 

или

 

 

 

 

 

 

 

 

 

 

yn+1 = yn (2 + h2 gn ) - yn-1 ,

 

 

 

 

 

h4

 

 

 

 

точность которой

 

yn( IV ) . Очень часто такой точности недостаточно.

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если учесть следующий член разложения(4.13), точность формулы

повысится и будет

порядкаh6 yn(VI ) .

Чтобы получить формулу с такой

точностью, необходимо вычислить yn( IV ) . Для этого возьмем 2-ую производную

выражения (4.13) и умножим ее на

h 2

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

h4

 

 

 

 

 

 

 

 

 

h6

 

 

 

 

 

 

( yn'' +1

- 2 yn'' + yn'' -1) =

 

yn( IV ) +

 

yn(VI ) + O(h8 ) .

 

12

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

144

 

 

 

 

В правой части оставим только первое слагаемое (точность формулы при этом будет ~h6 yn( IV ) ). Полученное выражение подставим в (4.13) и опустим в нем все члены степени h6 yn( IV ) и выше. Это даст:

yn+1 - 2 yn + yn-1

= h2 yn'' +

h2

( yn''

+1 - 2 yn'' + yn'' -1) + O(h6 ) .

(4.14)

 

 

12

 

 

 

Исключим из (4.14) вторые

производные

с помощью равенства yn''

= gn yn и

после несложных преобразований получим:

 

 

 

 

 

 

1

é

 

yn+1

=

 

 

 

 

 

ê2 yn

(1 +

 

 

 

h2

 

 

 

 

 

 

ë

 

 

 

1 -

 

 

gn+1

 

 

 

12

 

 

 

 

 

 

 

 

5h

2

 

 

h

2

ù

 

 

gn ) - yn-1

(1 -

 

gn-1)ú .

(4.15)

12

 

 

 

12

û

 

25

Формула (4.15) называется формулой Нумерова. Ее остаточный член равен

h6 y( IV )

n .

240

Метод Нумерова очень точен, удобен и устойчив. Для начала счета по этой формуле необходимо знать y0 и y1. На их основе вычисляют y2 ; через y1

и y2 - y3 и т.д.

Метод Нумерова широко применяется для решения радиального уравнения Шредингера:

 

d 2 P

 

é

l(l

+ 1) ù

 

 

 

-

 

l

+

V (r) +

 

 

ú

P

(r) = E P

(r) .

 

2

 

2

 

dr

 

ê

r

l

l l

 

 

 

 

ë

 

û

 

 

 

Его можно представить в виде:

 

 

P

'' = g

l

(r)P (r) ,

 

 

где

 

l

 

 

l

 

 

 

 

 

 

 

 

l(l + 1)

 

 

 

 

 

gl (r) = V (r) - El

+

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r 2

 

 

Начальные

условия

для

решения

 

уравнения

Шредингера

строятся

физических соображений.

 

 

 

 

 

 

 

 

 

4.3. Решение краевых задач для обыкновенных дифференциальных уравнений. Метод прогонки

Под краевой задачей понимают нахождение решения уравнения

F (x, y, y', y'',..., y( k ) ) = 0 ,

(4.16)

где a £ x £ b , а функция y(x) на концах отрезка[a, b]

удовлетворяет

граничным условиям:

 

ji ( y(a), y'(a), y''(a),..., y(k -1) (a)) = 0 ,

(4.17)

y j ( y(b), y'(b), y''(b),..., y(k -1) (b)) = 0 ,

(4.18)

i = 1, 2, ... , L , j = L+1, L+2, ... , k .

 

Если уравнения (4.16) - (4.18) линейны относительно y(x), y' (x), ... , y(k ) (x) , то краевая задача (4.16) - (4.18) называется линейной.

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

Соседние файлы в папке Численные методы