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

Численные методы

.pdf
Скачиваний:
75
Добавлен:
05.01.2019
Размер:
2.15 Mб
Скачать

2.2. Отделение корней уравнения

Графический метод

Отделить корень х* уравнения f(x) = 0 – значит указать окрестность точки x* (отрезок [a, b]), не содержащую других корней этого уравнения.

Очевидно, что найти корень уравнения (1) означает найти абсциссу точки пересечения графика y = f(x) с прямой у = 0, т. е. осью абсцисс. При этом если построение y = f(x) затруднительно, то ее представляют в эквивалентном виде:

f1(x) = f2(x)

с таким расчетом, чтобы графики y1 = f1(x) и y2 = f2(x) строились проще.

Абсциссы их точек пересечения и будут корнями уравнения (1).

 

Пример 1. Рассмотрим в качестве примера уравнение (2 x)2 ex

0,5.

Приведем

его

к стандартному виду

(1):

(2 x)2 ex 0,5 0,

где

f (x) (2 x)2

ex 0,5. Так как при построении графика функции f(x) вруч-

ную могут

возникнуть трудности, то, согласно

(3), запишем его

как

(2 x)2 0,5 ex .

Построим графики функций

f1(x) (2 x)2 и f2(x) e x 0,5

(рис 1).

 

 

 

 

 

Рис 1. Пример графического отделения корней

10

На рис. 1 видно, что данное уравнение имеет 3 корня. Первый из них, очевидно, принадлежит промежутку х1 [-5, -3]. Для нахождения промежутков, на которых расположены два оставшихся корня, увеличим масштаб построения графиков (рис 2.).

Рис 2. Графическое отделение корней

Из рисунка видно, что х2 [1, 2]; х3 [2, 3].

При графическом отделении корней уравнения результат зависит от точности построения графиков.

Аналитический метод

Как известно из анализа, если непрерывная функция f(x) на концах отрезка [a, b] принимает значения разных знаков, т. е. если f(a) f(b) < 0, то внутри этого отрезка существует, по крайней мере, один корень уравнения f(x) = 0 (рис. 3). При этом корень x* будет единственным, если f '(x) сохраняет знак внутри интервала (а, b), т. е. является монотонной (рис. 3.1, а).

11

у

f(a)

 

f (x) < 0

 

 

 

b

a

x*

х

f(b)

а

у

f(b)

0

а

 

x2

d

b

 

x1

c

x3

х

f(a)

б

Рис 3. a – один корень уравнения, b – несколько корней уравнения

Согласно вышеизложенному, получается следующий алгоритм определения корней уравнения f(x) = 0:

1)находим участки возрастания и убывания функции f(x) (с помощью производной f (x), если она существует);

2)составляем таблицу знаков функции f(x) в стационарных точках (или ближайших к ним), а также в граничных точках области определения f(x);

3)определяем границы интервалов, на которых f(x) имеет противоположные знаки. Внутри таких интервалов содержится только по одному корню.

На рис. 3, б интервалы монотонности функции (a, c), (c, d), (d, b), на концах которых функция имеет противоположные знаки. Корнями уравнения f(x) = 0 на отрезке [a, b] в данном случае являются точки x1, x2 и x3.

12

Пример 2. Рассмотрим уравнение из примера 1. С целью экономии времени не будем вручную исследовать функцию f (x) (2 x)2 ex 0,5 на монотонность и определять ее знак на концах промежутков монотонности, а сразу построим ее график в Mathcad (рис. 4).

Рис. 4. График функции f(x)

На рис. 4 интервалы монотонности данной функции: (-∞, 0), (0, ≈2), (≈2, +∞), на концах которых функция имеет противоположные зна-

ки. Корнями уравнения f(x) = 0 в данном случае являются точки x1, x2 и x3 из данных промежутков.

2.3. Уточнение корней уравнения

Метод половинного деления

Алгоритм метода (рис. 5) состоит из следующих операций. Отрезок [a, b] делят пополам точкой c, c = (a+b)/2, и находят значение функции в точке с. Если f(c) = 0, то корень уравнения соответствует точке c. Если f(c) 0, то можно сузить диапазон поиска корня: перейти от отрезка [a, b] к отрезку [a, c] или [c, b] в зависимости от знака f(c). Если f(a) f(c)<0, то корень находится на отрезке [a, c], и точку с будем считать точкой b; а если f(a) f(c) > 0, то корень находится на отрезке [c, b], и точку с будем считать точкой a.

13

Каждый такой шаг уменьшает в два раза интервал, в котором находится корень уравнения f(x) = 0. После нескольких шагов получится отрезок, длина которого будет меньше или равна числу ε, т. е. |a–b| = <ε. Любая точка такого отрезка, например, один из его концов, подходит в качестве решения поставленной задачи.

 

Начало

 

 

Ввод a, b, ε

 

 

c:=(a+b)/2

 

Нет

f(a)∙f(c)≤0

Да

 

 

a:=c

 

b:=c

 

|b-a|≤ ε

нет

 

 

 

Да

 

 

x:=c

 

 

Вывод x

 

 

Конец

 

Рис. 5. Блок-схема алгоритма «Метод половинного деления»

Пример 3. Найдем решение уравнения из примера 1 методом половинного деления в Mathcad (рис. 6).

14

Рис. 6. Пример реализации метода половинного деления в Mathcad

Найдем решение уравнения из примера 1 методом половинного деле-

ния в Pascal ABC (рис. 7).

Рис. 7. Пример реализации метода половинного деления в Pascal ABC

15

Метод Ньютона (метод касательных)

В основе метода лежит разложение функции f(x) в ряд Тейлора: f (xn h) f (xn ) h f (xn ) h22 f (xn ) ...

Члены ряда, содержащие h во второй и более высоких степенях, отбрасываются; используется соотношение xn+h = xn+1. Получаем:

 

(3)

f (xn h) f (xn ) (xn 1 xn ) f (xn )

Выражение (3) – уравнение касательной к кривой y = f(x), проведенной через точку с координатами (xn, f(xn)) (рис. 8).

Предполагается, что переход от xn к xn+1 приближает значение функции к нулю так, что f(xn+h) = 0. Значение xn+1 соответствует точке, в которой касательная к кривой в точке xn пересекает ось Ох. Отсюда:

f (x ) xn 1 xn f (xn )

n

Так как кривая f(x) отлична от прямой, то значение функции f(xn+1) не будет в точности равно нулю. Поэтому вся процедура повторяется, причем вместо xn используется xn+1. Счет прекращается, когда разница меж-

ду xn и xn+1 будет меньше или равна числу ε, т. е

 

xn 1 xn

 

 

 

 

f (xn )

 

=<ε.

 

 

 

 

 

 

 

 

f (xn )

 

 

 

 

 

 

 

 

 

 

Проблематичным является выбор x0 – первого приближения (а точке x0 = a или x0 = b проводить первую касательную к графику функции). Часто при неудачном выборе x0 нет монотонного убывания последовательности |xn+1 – xn|, поэтому рекомендуется за начальное приближение принять такое значение x0 из [a,b], для которого выполняется условие: f (x0) f // (x0) 0, называемое условием Фурье.

Метод Ньютона требует меньшего числа повторений, чем метод половинного деления. Недостатки метода – необходимость дифференцирования функции f(x), и f'(x) должно быть не равно нулю.

16

Рис. 8. Геометрическая интерпретация метода Ньютона (касательных)

Начало

Ввод a, b,

x:=a (или b)

t:=f(x)/f´(x)

x:=x-t

|t|≤

Нет

 

Да Вывод x

Конец

Рис. 9. Блок-схема алгоритма «Метод Ньютона (метод касательных)»

Пример 4. Найдем решение уравнения из примера 1 методом Ньютона

(касательных) в Mathcad (рис. 10) и в Pascal ABC (рис. 11).

17

Рис. 10. Пример реализации метода Ньютона (метод касательных) в Mathcad

Рис. 11. Пример реализации метода Ньютона (метод касательных) в Pascal ABC 18

Метод хорд (метод ложного положения)

В основе метода лежит линейная интерполяция по двум значениям функции f(x), имеющим противоположные знаки. Через точки, соединяющие значения функции f(a) и f(b) на концах отрезка [a, b], проводят прямую (хорду). Решение уравнения f(x)=0 приближают абсциссой пересечения хорды с Ох.

y

 

 

 

B

f(b)

 

 

 

 

 

 

 

 

 

 

 

y = f(x)

 

x1 x2 x3

 

 

a

 

x*

b

 

 

 

C

f(a)

A

A1

x

A2

 

 

 

Рис. 12. Геометрическая интерпретация метода хорд

Уравнение прямой АВ можно записать в виде:

x a

 

y f (a)

 

b a

f (b) f (a)

 

 

x b

 

 

y f (b)

 

 

.

b a

 

f (b) f (a)

Найдем точку пересечения хорды АВ с Ox (первое приближение)

Находим первое приближение, полагая в (4)

у = 0:

или

 

 

 

x1 a f (a)

b a

,

 

f (b) f (a)

 

 

 

 

 

или (полагая в (5) y = 0 )

 

 

 

x1 b f (b)

 

b a

 

.

 

f (b) f (a)

 

 

 

 

 

(4)

(5)

(6)

(7)

19