Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Заочники - 2013-2014 - Семестр 2 / 1 - Конспект лекций по численным методам.doc
Скачиваний:
103
Добавлен:
11.05.2015
Размер:
3.98 Mб
Скачать

3.3.3. Метод секущих

Этот метод является модификацией метода Ньютона в плане его реализации, т. е. задача поиска корня связана лишь с вычислением значения функции f(x). Заменив производнуюf '(xn) в методе Ньютона так называемой разделенной разностью по двум точкамxnиxn+hn, гдеhn– некоторый малый параметр, получим итерационную формулу

,n= 0, 1, 2, …, (3.9)

которая называется методом секущих.

Приближение xn+1 является абсциссой точки пересечения секущей прямой, проведенной через точки (xn,f(xn)) и (xn +hn ,f(xn +hn)) с осьюх(рис. 3.6).

Имеются другие интерпретации формулы (3.9). В частности, метод Вегстейна, в котором для выбора параметраhиспользуют предыдущую расчетную точку, т. е. берутhn =xn–1 xn, тогда (3.9) имеет вид

,n= 0, 1, 2, … . (3.10)

EMBED Word.Picture.8

Рис. 3.6

Метод Вегстейна, очевидно, двухшаговый (m = 2), т. е. для вычисления требуется задать две начальные точки приближения, лучше всегоx0 =а;x1 =b. Данный метод медленнее метода секущих, однако требует в два раза меньше вычисленийf(x) и поэтому оказывается более эффективным.

Целесообразным является использовать подходы к уточнению корня, не выпускающие корень из выделенной «вилки» (отрезка [a,b]).

Так, если f(b)f "(x) > 0 дляx[a,b], берут в качествеx0=a, и уточнение ко­рня производится по формуле

,n = 0, 1, 2, …, (3.11)

а если f(a)f "(x) > 0 для x[a,b], берут в качествеx0=b, и уточнение корня производится по формуле

,n = 0, 1, 2, … . (3.12)

3.3.4. Метод деления отрезка пополам

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

Его алгоритм реализовывается согласно следующей рекуррентной последовательности: для x*[,];x0 =;x1 =, находитсяx2 = (+) / 2.

Очередная точка x3выбирается, как середина того из смежных сx2интервалов [x0,x2] или [x2,x1], на котором находится корень. В результате получается следующий алгоритм метода деления отрезка пополам:

1) вычисляем y0=f(x0);

2) вычисляем x2= (x0+x1) / 2,y2=f(x2);

3) если y0y2> 0, тоx0=x2, иначеx1=x2; (3.13)

4) если x1x0 >, то повторяем с п. 1;

5) вычисляем x*= (x0+x1) / 2.

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

Немного подкорректировав, алгоритм (3.13) более наглядно можно представить в виде блок-схемы (рис. 3.7).

EMBED Word.Picture.8

Рис. 3.7

3.3.5. Метод хорд

Геометрическая интерпретация метода представлена на рис. 3.8.

Пусть корень Суравненияf(x) = 0 отделен на [a,b]. Функцияf(x) непрерывна на отрезке и на его концах имеет разные знаки. ТочкиАиВимеют координаты соответственно (a,f(a)) и (b,f(b)).

Искомым корнем Сбудет пресечениеf(x) с осьюх. В начале итераций вместоСищется приближениеx1как результат пересечения осихс хордойАВ.

Рис. 3.8

Уравнение прямой АВзапишем в виде.

Полагая у= 0, находим, что можно записать в следующем виде:

, или. (3.14)

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

. (3.15)

На основании (3.14) и (3.15) можно записать рекуррентную последовательность:

, если, (3.16)

и

, если. (3.17)

Заметим, что на выделенном интервале [a,b] имеют место четыре типа расположения кривойf(x).

Для If '(x) > 0,f "(x) > 0 (рис. 3.9,а), дляIIf '(x) < 0,f "(x) < 0 (рис. 3.9,б), дляIIIf '(x) > 0,f "(x) < 0 (рис. 3.9,в), дляIVf '(x) < 0,f "(x) > 0 (рис. 3.9,г).

Тогда для IиIIтипов расположения кривой используется (3.16), т. е.х0 =а. ДляIIIиIVтипов используется (3.17), т. е.х0 =b.

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