Метод хорд

Блок-схема метода деления отрезка пополам и числовой пример

Сужение отрезка производится путем замены границ а или b на текущее значение корня х. При этом значение f(a) вычисляется лишь один раз, так как нам нужен только знак функции f(x) на левой границе, а он в процессе итераций не меняется.

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

На рис. 3.2 представлена блок-схема метода половинного деления.

Пример. Методом деления отрезка пополам найти хотя бы один корень уравнения с погрешностью e = 0,005.

Представим уравнение к виду . Для определения [a, b], на котором имеется хотя бы один корень, выполним табулирование

 

Рис. 3.2. Блок-схема метода половинного деления

функции f(x). Пусть уравнение описывает скорость изменения подвижного узла механизма в зависимости от угла поворота кривошипа: f(x) – скорость в м/с; х –

угол в радианах, х = 0…2π (0…6,28). Результаты табулирования функции представлены в табл. 3.1.

Можно принять а=0,9; b=1,2 , т.к. f(0,9)×f(1,2) < 0. Уточним значение а, т.к. видно, что корень х* лежит ближе к b (f(b) ближе к 0).

Таблица 3.1

Результаты табулирования функции f(x)

х 0,3 0,6 0,9 1,2
f(x) 1,07 1,13 0,82 -0,06

Пусть а=1,1; f(1,1)=0,29. Окончательно: а=1,1, b=1,2, f(1,1)×f(1,2) < 0.

Значит корень .

Уточнение а позволяет снизить число итераций. Последовательно имеем:

1) f (1,1) = 0,289;

2) f (1,2) = -0,062;

3) f (x) = f [(a+b)/2] = f (1,15) = 0,119; n=1

4) f [(1,15+1,2)/2] = f (1,175) = 0,030; n=2

5) f [(1,175+1,2)/2] = f (1,1875) = -0,016; n=3

6) f [(1,175+1,1875)/2] = f (1,18125) = 0,007; n=4

7) f [(1,1875+1,18125)/2] = f (1,184375) =- 0,004; n=5

½ f (x)½< 0,005; (e = 0,005).

Корень х = х* = 1,184375.

 

Пусть мы нашли отрезок [a, b], на котором функция f(x) меняет знак. Для определенности примем f(a) > 0, f(b) < 0 (рис.3.3). В данном методе процесс итераций состоит в том, что в качестве приближений к корню уравнения f(x) =0 принимаются значения х0, х1, х2, … точек пересечения хорды с осью абсцисс.

Сначала запишем уравнение хорды АВ (уравнение прямой линии).

.

Для точки пересечения её с осью абсцисс (х=х0; у=0) получим уравнение:

;

 

; (3.1)

 

Рис. 3.3. Графическая иллюстрация метода хорд

 

На первом этапе вычисления определяем х0 по (3.1). Затем определяем f(х0). Т.к. f(a)×f(x0) < 0, то искомый корень находится [a, x0]. Отрезок [x0, b] отбрасываем. Следующая итерация состоит в определении нового приближенного значения х1 как точка пересечения хорды АВ с осью абсцисс и т.д. Для определения х1 в (3.1) подставим b= х0 и вместо f(b) ® f(х0). Итерационный процесс продолжается до тех пор, пока значение f(хn) не станет по модулю меньше заданного числа e, т.е. .

Блок-схема метода хорд аналогична методу деления отрезка пополам. Разница в том, что вместо вычисления приближения корня по формуле x = (a+b)/2 нужно использовать формулу (3.1). Необходимо также ввести операторы вычисления f(x) на границах новых отрезков.

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

Пример. .

a=1,1; b=1,2

1) f (1,1) = 0,289;

2) f (1,2) = -0,062;

3) ; f(1,182) = 0,004; n=1

½ f(x)½< e = 0,005

Корень х = х* = 1,182; n=1;

Если погрешность e взять меньше: e = 0,001, то потребуются еще итерации.

4) a = x = 1,182, т.к. f (1,182) × f (1,2) < 0;

; f(1,18309) = 0,0004.

Корень х* = х = 1,18309; n=2.

Метод хорд в этом случае (и чаще всего) эффективнее метода половинного деления.