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

Численные методы (лекции)2013

.pdf
Скачиваний:
18
Добавлен:
16.03.2015
Размер:
236.54 Кб
Скачать

Мы будем искать

следующее

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

f (x0) + f (x0)(x1 − x0)

= 0. Тогда x1

= x0

f (x0)

. Пусть

f (x0)

известно xn. Тогда

f (xn) xn+1 = xn f (xn) .

виде

нам

Этот метод называется методом Ньютона или методом касательных. Заметим, что метод Ньютона состоит в том, что мы находим касательную в точке xn. Затем ищем пересечение этой касательной

сосью Ox. Это и будет следующее приближение. Метод Ньютона можно записать, как

xn+1 = s(xn),

где

 

 

 

f (x)

 

 

 

 

s(x) = x −

 

.

 

 

 

 

 

f (x)

 

 

 

Найдем s(x):

 

 

 

 

 

 

 

 

s(x) = 1 −

(f (x))2

− f (x)f ′′(x)

=

f (x)f ′′(x)

.

(f (x))2

 

(f (x))2

 

 

 

Рассмотрим вопрос о сходимости метода Ньютона. Для этого нам потребуется теорема о среднем.

Теорема 8.4. Пусть f (x) и g(x) непрерывные функции на отрезке [a; b] и g(x) неотрицательна. Тогда существует ξ [a; b] такое, что

Z b Z b

f (x)g(x)dx = f (ξ) g(x)dx.

a a

Теорема 8.5. Пусть x корень уравнения f (x) = 0. Предположим, что f (x) дважды дифференцируемая функция на отрезке Ur (x ), f ′′(x) непрерывна на этом отрезке и f (x) =6 0 на Ur (x ). Пусть

0 < m1 = inf |f (x)|, M2 = sup |f ′′(x)|,

Ur (x )

Ur (x )

 

причем

q = M2|x0 − x | < 1.

2m1

Тогда метод Ньютона сходится для любого x0 Ur (x ).

Доказательство. Перепишем метод Ньютона в виде

f (xn) xn+1 − x = xn − x − f (xn) ,

30

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F (xn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn+1 − x =

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (xn)

 

 

 

 

 

 

где F (x) = (x − x )f (x) − f (x). Заметим, что F (x ) = 0 и

 

 

 

 

F (x) = f (x) + (x − x )f ′′(x) − f (x) = (x − x )f ′′(x).

 

 

Запишем тождество

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

F (xn) = F (x ) + Zx n F (t)dt = Zx n (t − x )f ′′(t)dt.

 

 

По теореме 8.4 имеем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

− x

2

 

F (xn) = Zx

(t − x )f ′′(t)dt = f ′′(ξ) Zx

(t − x )dt =

(xn )

 

f ′′(ξ).

2

 

Отсюда,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|xn+1

− x | = |

F (xn)

| = |

(xn − x )2

 

f ′′(ξ)

| ≤

 

M2

(xn − x )2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (xn)

2

 

 

 

 

f (xn) 2m1

 

 

 

2m1 ·

2m1

2

 

 

 

 

 

 

 

 

 

 

 

 

1+2+22+···+2n

 

 

 

(xn−1 − x )4 ≤ · · · ≤

2m1

 

 

 

(x0 − x )2

 

M2

 

M2

 

 

 

 

 

 

 

 

 

 

 

 

M2

 

 

 

 

 

 

n+1

 

 

 

 

 

 

 

2n+1

−1

− x |2

−1

|x0 − x | = q2

 

−1|x0 − x |.

 

 

= 2m1

|x0

 

 

 

 

 

M2

 

 

 

 

 

n+1

 

 

 

 

 

 

 

 

 

 

n+1

 

 

 

 

 

Таким образом, |xn+1 − x | → 0 при n → ∞.

 

 

 

 

 

 

8.3. Метод секущих. Метод секущих состоит в том, что мы проводим через две точки (xn−1, f (xn−1) и (xn, f (xn)) прямую, и ищем пересечение ее со осью Ox. В аналитической записи метод секущих записывается так

xn − xn−1

xn+1 = xn f (xn) − f (xn−1) f (xn).

9.Лекция 9

9.1.Численное дифференцирование. Простейшие слу-

чаи. Пусть дано разбиение a = x0 < x1 < x2 < · · · < xn = b отрезка [a; b] на n равных частей, т.е. xi = a + ih. Мы хотим приблизить производные функции u(x). Обозначим ui = u(xi), ui = u(xi) и u(ik) = u(xi). В качестве приближенного значения u(xi) мы можем взять одно из следующих выражений

ux−,i =

ui − ui−1

, ux+,i =

ui+1 − ui

, ux,i =

ui+1 − ui−1

.

h

h

 

 

 

 

2h

31

Найдем погрешность. Для этого воспользуемся формулой Тейлора. Получаем

 

 

ui − ui−1

 

ui − (ui − hui+ h2 u′′

1))

 

= ui

h

u′′

 

 

ux−,i =

 

 

 

 

 

=

 

 

 

 

 

2

 

 

 

 

 

 

 

1),

 

h

 

 

 

 

 

h

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где ζ1 [xi−1; xi]. Аналогично,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ui+1 − ui

 

 

 

ui + hui

+ h2 u′′2) − ui

 

 

 

h

 

 

 

ux+,i =

 

 

 

=

 

 

 

 

2

 

 

 

 

= ui+

 

 

u′′2),

h

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

где ζ2 [xi; xi+1]. Немного более точна последняя формула

 

 

 

 

 

 

 

 

 

 

 

ux,i =

ui+1 − ui−1

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(ui + hui+

h2

ui′′

+

h3

u′′′3)) − (ui + hui+

h2

ui′′ +

h3

u′′′4))

2

6

2

6

 

 

 

 

 

 

 

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

= ui + h2 (u′′′3) + u′′′4)), 12

где ζ3, ζ4 [xi−1; xi+1]. Мы можем считать u′′′(x) непрерывной. Тогда существует ζ5 [xi−1; xi+1] такой, что u′′′3) + u′′′4) = 2u′′′5). Отсюда

 

 

 

 

 

ux,i = ui

+

 

h2

u′′′5).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

Вторую производную можно заменить соотношением

 

 

 

 

uxx,i =

ui+1 − 2ui + ui−1

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

1

(ui + hui

 

 

h2

 

h3

 

h4

 

 

+

 

 

 

ui′′ +

 

 

 

ui′′′ +

 

 

 

u(IV )1)) − 2ui+

 

h2

2

 

6

 

24

 

 

 

 

 

 

h2

h3

h4

 

 

(ui − hui

+

 

 

ui′′

 

 

ui′′′ +

 

u(IV )2)) =

 

 

 

2

 

6

24

 

ui′′ +

h2

(u(IV )1) + u(IV )2)) = ui′′ +

h2

u(IV )3),

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

где ξ1, ξ2, ξ3 [xi−1; xi+1].

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

x= f (t, x), x(t0 ) = x0.

Пусть ti = t0 + τ i равномерная сетка с шагом τ . Тогда рассмотрим разностное уравнение

xn+1 − xn = f (tn, xn).

τ

32

Таким образом, мы получим приближенные значения функции x(t) в точках tn. Данный метод называется методом Эйлера. Мы будем говорить, что разностный метод сходится в точке t, если при τ → 0 и tn = nτ = t последовательность |xn − x(tn)| → 0. Метод сходится на отрезке [t0; T ], если он сходится в каждой точке. Погрешностью метода в точке tn называется rn = xn −x(tn). Рассмотрим равенство

Z τ

x(tn+1) = x(tn + τ ) = x(tn) + x(tn + z)dz.

0

Заменим R0τ x(tn + z)dz на τ x(tn) + O(τ 2). Тогда

x(tn+1) = x(tn) + τ x(tn) + O(τ 2) = x(tn) + τ f (tn, xn) + O(τ 2).

Таким образом, мы получили метод Эйлера. Заметим, что погрешность метода Эйлера в точке tn равна O(τ ).

Теперь, вместо τ x(tn) + O(τ 2) воспользуемся формулой трапеции

 

 

 

 

 

τ

 

 

 

x(tn )+x(tn+1 )

 

3

 

 

 

и заменим 0 x (tn +z)dz на

 

 

τ +O(h ). Получим неявную

2

 

формулу

Адамаса

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

f (tn, xn) + f (tn+1, xn+1)

 

 

 

 

 

x(tn+1) = x(tn) +

 

τ + O(h3).

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

Погрешность формулы Адамаса равна O(h2).

 

 

Рассмотрим

 

формулу

прямоугольника,

т.е.

заменим

R0

x (tn +

)

dz

на

τ x (tn +

2 ) + O(h ).

τ

1

 

 

3

 

τ

 

 

z

τ

3

Получим

 

 

 

 

 

 

 

x(tn+1) = x(tn) + τ f (tn +

 

, xn+ ) + O(h ),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где x

1

= xn + τ f (tn, xn). Этот метод называется методом Рунге–

 

n+

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

Кутта второго порядка.

Запишем явный вид методов Рунге–Кутта. В процессе вычисления фиксируются некоторые числа

α2, . . . , αq p1, . . . pq , βij , 0 < j < i ≤ q

последовательно получаем

k1(τ ) = τ f (tn, xn),

k2(τ ) = τ f (tn + α2τ, xn + β21k1(τ )),

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

kq (τ ) = τ f (tn + αq τ, xn + βq1k1(τ ) + · · · + βq, q − 1kq−1(τ ))

и полагаем

q

X

xn+1 = xn + piki(τ ).

i=1

33

 

(0) =

(0) =

=

 

P

q

 

 

 

 

 

 

 

 

i=1 piki(τ )). Выберем αi, βij , pi

Обозначим φ(τ ) = x(t + τ ) −x(t) −(

 

так, что φ

 

φ′′

· · ·

φ(s)(0) = 0

 

 

 

 

 

 

При q = s = 4, чаще всего, используется формула

 

 

 

 

 

 

 

 

τ

k1

 

 

τ

k2

k1 = τ f (t, x), k2 = τ f (t +

 

, x +

 

), k3

= τ f (t +

 

, x +

 

),

2

2

2

2

 

 

 

 

 

 

 

1

 

 

 

 

 

 

k4 = τ f (t + τ, x + k3), xn+1 = xn +

 

(k1 + 2k2 + 2k3 + k4).

6

34