Реферат по курсу
численных методов выполнил студент группы РЭ–01-1
Днепропетровский
Национальный Университет
Радиофизический
факультет
Кафедра физики
СВЧ
Днепропетровск
2002
1. Численное решение уравнений с одним неизвестным
В
данной работе рассматриваются метода приближённого вычисления действительных
корней алгебраического или трансцендентного уравнения
f(x)=0 (1.1)
на
заданном отрезке [a, b].
Уравнение
называется алгебраическим, если заданная функция есть полином n-ой степени:
f(x) = P(x) = a0xn
+ a1xn- 1 + … + an-1 x + an
= 0, a0 ¹ 0
Требование
a0 ¹ 0 обязательно, так как при
невыполнении этого условия данное уравнение будет на порядок ниже.
Всякое
уравнение (1.1) называется
трансцендентным, если в нём невозможно явным образом найти неизвестное, а можно
лишь приближённо.
Однако
в число алгебраических уравнений можно также включить те уравнения, которое
после некоторых преобразований, можно привести к алгебраическому.
Те
методы, которые здесь рассматриваются, применимы, как к алгебраическим
уравнениям, так и к трансцендентным.
Корнем
уравнения (1.1) называется такое
число x,
где f(x)=0.
При
определении приближённых корней уравнения (1.1) необходимо решить две задачи:
отделение
корней, т. е. определение достаточно малых промежутков, в каждом из которых заключён
один и только один корень уравнения (простой и кратный);
уточнение
корней с заданной точностью (верным числом знаков до или после запятой);
Первую
задачу можно решить, разбив данный промежуток на достаточно большое количество
промежутков, где бы уравнение имело ровно один корень: на концах промежутков
имело значения разных знаков. Там где данное условие не выполняется, те
промежутки откинуть.
Вторая
задача решается непосредственно в методах рассмотренных ниже.
При
графическом отделении корней уравнения (1.1) нужно последнее преобразовать к виду:
j1(x)=j2(x) (2.1)
и
построить графики функций y1=j1(x), y2=j2(x).
Действительно,
корнями уравнения (1.1)
f(x) = j1(x) - j2(x) = 0
являются
абсциссы точек пересечения этих графиков (и только они).
Из
всех способов, какими можно уравнение (1.1) преобразовать к виду (2.1) выбираем тот, который обеспечивает
наиболее простое построение графиков y1=j1(x) и y2=j2(x). В частности можно взять j2(x) = 0 и тогда придём к построению
графика функции (1.1), точки
пересечения которого с прямой y2=j2(x)=0, т. е. с осью абсцисс, и есть
искомые корни уравнения (1.0).
Условия,
наложенные на функцию f(x) на отрезке [a, b].
Будем
предполагать, что функция f(x) непрерывна на отрезке [a, b] (для метода хорд можно потребовать на
интервале) и имеет на этом интервале
первую и вторую производные, причём обе они знакопостоянны (в частности
отличны от нуля). Будем также предполагать, что функция f(x) принимает на концах отрезка значения разного знака. В силу
знакопостоянства первой производной функция f(x)
строго монотонна, поэтому при сделанных предположениях уравнение (1.1) имеет в точности один корень на
интервале (a, b).
2. Метод дихотомии
Этот
метод ещё называется методом вилки.
Нам
необходимо найти корень уравнения (1.1)
на отрезке [a, b]. Рассмотрим отрезок [x0, x1]: [x0, x1]Ì[a, b]. Пусть мы нашли такие точки х0,
х1, что f (х0)
f(х1) £
0, т. е. на отрезке [х0, х1] лежит не менее одного корня
уравнения. Найдём середину отрезка х2=(х0+х1)/2
и вычислим f(х2).
Из двух половин отрезка выберем ту, для которой выполняется условие
f (х2) f(хгран.) £
0, так как один из корней лежит на этой половине. Затем новый отрезок делим
пополам и выберем ту половину, на концах которой функция имеет разные знаки, и
т. д. (рис 1.2).
рис.
1.2
Если
требуется найти корень с точностью Е, то продолжаем деление пополам до тех пор,
пока длина отрезка не станет меньше 2Е. Тогда середина последнего отрезка даст значение корня с требуемой точностью. Дихотомия проста и очень надёжна. К простому корню она сходится для любых непрерывных функций
в том числе и не дифференцируемых; при
этом она устойчива к ошибкам округления. Скорость сходимости не велика; за одну
итерацию точность увеличивается примерно вдвое, т. е. уточнение трёх цифр
требует 10 итераций. Зато точность ответа гарантируется.
Приступим
к доказательству того, что если непрерывная функция принимает на концах
некоторого отрезка [a, b] значения разных знаков, то
методом дихотомии однозначно будет найден корень.
Предположим
для определённости, что функция f(x) принимает на левом конце
отрезка [a, b] отрицательное значение, а
на правом – положительное:
f(a) < 0, f(b) > 0.
Возьмём
среднюю точку отрезка [a,
b], h=(a+b)/2 и
вычислим значение в ней функции f(x). Если f(h)=0, то утверждение теоремы доказано: мы нашли такую точку, где
функция обращается в нуль. Если f(h)¹ 0, тогда из отрезков
[a, h] и [h, b]
выберем один из них тот, где функция на его концах принимает значения разных
знаков. Обозначим его [a1,
b1]. По
построению: f(a1)<0, f(b1)>0. Затем среднюю точку
отрезка [a1,
b1] точку h1 и проведём тот же алгоритм нахождения
другого отрезка [a2,
b2] где бы
по построению f(a2)<0, f(b2)>0. Будем продолжать
этот процесс. В результате он либо оборвётся на некотором шаге n в силу того, что f(hn)=0, либо будет
продолжаться неограниченно. В первом случае вопрос о существовании корня
уравнения f(x)=0 решён, поэтому
рассмотрим второй случай.
Неограниченное
продолжение процесса даёт последовательность отрезков [a, b], [a1,
b1], [a2, b2],… Эти отрезки
вложены друг в друга – каждый последующий отрезок принадлежит всем предыдущим:
an £ an+ 1 < bn+ 1 £ bn (1.2)
причём:
f(an) < 0, f(bn) > 0
Длины
отрезков с возрастанием номера n
стремятся к нулю:
Рассмотрим
левые концы отрезков. Согласно (1.2) они образуют монотонно убывающую
ограниченную последовательность {an}. Такая последовательность имеет
предел, который можно обозначить через c1:
Согласно
(1.1) и теореме о переходе к пределу в неравенствах имеем:
c1
£
bn (2.2)
Теперь
рассмотрим правые концы отрезков. Они образуют монотонно не возрастающую ограниченную
последовательность {bn}, которая тоже имеет предел. Обозначим его
через с2: . Согласно неравенству (2.1) пределы с1 и с2
удовлетворяют неравенству с1 £ с2. Итак,
an £
с1 < с2 £ bn, и следовательно:
с2-с1
£
bn - an=(b-a)/2n.
Таким
образом, разность с2-с1 меньше любого наперёд заданного
положительного числа. Это означает, что с2-с1=0, т. е.: с1=с2=с
Найденная точка интересна тем, что она
является единственной общей точкой для всех отрезков построенной
последовательности Используя непрерывность функции f(x), докажем, что она
является корнем уравнения f(x)=0.
Мы
знаем, что f(an)<0. Согласно определению непрерывности и
возможности предельного перехода в неравенствах, имеем:
f(c)=lim
f(an)£0
(3.2)
Аналогично,
учитывая, что f(bn)³0, получаем, что:
f(c)=lim
f(bn) ³0
(4.2)
Из
(3.2) и (4.2) следует, что f(c)=0. т. е. с – корень уравнения.
Процесс
построения последовательности вложенных стягивающих отрезков методом вилки
(дихотомии) является эффективным вычислительным алгоритмом решения уравнения
f(x)=0. На n-ом шаге процесса получаем:
an
£
c £
bn
Это
двойное неравенство показывает, что число an определяет корень с
недостатком, а число bn с избытком, с ошибкой не превышающей длину
отрезка Dn=bn-an=(b-a)/2n.
При увеличении n ошибка стремится к нулю по закону геометрической прогрессии со
знаменателем q=0.5. Если задана требуемая точность e>0, то чтобы её
достигнуть достаточно сделать число шагов N, не превышающее log2[(b-a)/e]: N>log2[(b-a)/e].
3. Метод итераций
Этот
метод называется ещё методом последовательных приближений.
Пусть
нам необходимо найти корень уравнения (1.1) на некотором отрезке [a, b].
Предположим,
что уравнение (1.0) можно переписать в виде:
x=j(x) (1.3)
Возьмём
произвольное значение x0
из области определения функции j(x) и будет строить
последовательность чисел {xn},
определённых с помощью рекуррентной формулы:
xn +1=j(xn), n=0, 1, 2, … (2.3)
Последовательность
{xn}
называется итерационной последовательностью. При её изучении встают два
вопроса:
Можно ли процесс вычисления чисел xn продолжать неограниченно, т. е. будут ли числа xn принадлежать отрезку [a, b] ?
Если итерационный процесс (2.3)
бесконечен, то как ведут себя числа xn при n®¥
Исследование
этих вопросов показывает, что при определённых ограничениях на функцию j(x) итерационная последовательность
является бесконечной и сходится к корню уравнения (1.3).
, c=j(c) (3.3)
Однако
для того, чтобы провести это исследование нам нужно ввести новое понятие.
Говорят,
что функция f(x) удовлетворяет на отрезке [a, b] условию Липшица, если существует
такая постоянная a,
что для любых x1,
x2, принадлежащих
отрезку [a, b] имеет место неравенство:
|
f(x1) - f(x2)| £ a|x1 - x2| (4.3)
Величину
a
в этом случае называют постоянной Липшица.
Если
функция f(x), удовлетворяет на отрезке
[a, b] условию Липшица, то она непрерывна на
нём. Действительно, пусть x0
– произвольная точка отрезка. Рассмотрим приращение функции f(x) в этой точке:
Df=f(x0+Dx) – f(x0)
и
оценим его с помощью неравенства (4.3)
|Df | £ a|Dx|
Таким
образом, , что означает непрерывность функции f(x).
Условие
Липшица имеет простой геометрический смысл. Возьмём не графике функции y=f(x) две произвольные точки M1 и M2 с координатами
(x1, f(x1)) и (x2, f(x2)). Напишем уравнение прямой линии, проходящей через
эти точки:
y=f(x1) + k(x-x1)
где
k– тангенс угла наклона
прямой у оси Оx и
определяется формулой:
Если
функция f(x) удовлетворяет на отрезке [a, b] условию Липшица, то при произвольном
выборе точек M1
и M2 имеем |k|£a.
Таким образом, с геометрической точки зрения условие Липшица означает
ограниченность тангенса угла наклона секущих, проведённых через всевозможные
пары точек графика функции y=f(x).
рис
2.3 геометрическая иллюстрация условия Липшица.
рис
3.3 геометрическая иллюстрация cвязи условия Липшица с предположением о
дифференцируемости функции.
Предположим,
что функция f(x) имеет на отрезке [a, b] ограниченную производную:
|
f ¢(x)| £ m;
тогда она удовлетворяет условию Липшица с постоянной a=m. Для доказательс- тва этого
утверждения воспользуемся формулой конечных приращений Лагранжа:
f(x2) – f(x1) = f ¢(x)(x2-x1) (5.3)
где
x1, x2,
- произвольные точки отрезка [a,
b] x,
- некоторая точка отрезка [x1,
x2]. Возьмём
модуль обеих частей равенства (4.3) и заменим в правой части | f ‘(x)| на m. В результате по- лучим неравенство
(4.3) с a=m. Рис.2.3 даёт
геометрическую иллюстрацию установленного свойства. Согласно формуле Лагранжа
(5.3) каждой секущей графика функции y = f(x) мож- но поставить в
соответствие параллельную её касательную. Поэтому наибольший тангенс угла
наклона касательных, и его можно оценить той же константой m: |k| £
m.
Познакомившись
с условием Липшица, перейдём к изучению итерационной последовательности,
предполагая, что уравнение имеет корень x=c.
Существование этого корня можно установить с помощью качественного
предварительного исследования уравнения с применением теоремы о существовании
корня непрерывной функции.
Теорема о существовании корня непрерывной функции
Если
функция f(x) непрерывна на отрезке [a, b] и принимает на его концах значения
разных знаков, то на этом отрезке существует, по крайней мере, один корень
уравнения f(x).
Теорема
о сходимости итерационной последовательности
Пусть
с – корень уравнения (2.3) и пусть функция j(x) удовлетворяет на некотором отрезке [c-d, c+d] (d>0) условию Липшица с
постоянной a<1.
Тогда при любом выборе x0
на отрезке [c-d, c+d] существует бесконечная
итерационная последовательность {xn} и эта последовательность сходится к корню x=c, который является единственным
решением уравнения (1.3) на отрезке [c-d,
c+d].
Сформулированная
теорема имеет очень простой смысл. Будем говорить, что функция j
осуществляет отображение точки x
на точку y=j(x). Тогда условие Липшица с
постоянной a<1
означает, что отображение j является сжимающим: расстояние между точками x1 и x2 больше, чем
расстояние между их изображениями y1=j(x1)
и y2=j(x2).
Корень
c является неподвижной
точкой отображения j,
он преобразуется сам в себя c=j(c). Поэтому каждый шаг в
итерационном процессе, сжимая расстояния должен приближать члены
последовательности {xn}
к неподвижной точке c.
После
таких соображений поясняющих смысл теоремы, перейдём к её доказательству.
Возьмём произвольную точку x0
на отрезке [c-d, c+d], она отстоит от точки c не больше чем на d: |c-x0| £ d.
Вычислим
x1: x1=j(x0), при этом x1-c =j(x0)-j(c). Разность j(x0)-j(c) можно оценить с помощью условия
Липшица:
|x1-c| = |j(x0)-j(c)| £
|x0-c| £ ad. (6.3)
Неравенство
(6.3) показывает, что x1
принадлежит отрезку [c-d, c+d] и расположен ближе к
точке c, чем x0.
Продолжим
построение итерационной последовательности. Вычислим x2: x2=j(x1), при этом:
|x2-c| = |j(x1)-j(c)| £ a|x1-c| £ a2|x0-c| £ a2d
Точка
x2 опять
принадлежит отрезку [c-d, c+d] и расположена ближе к
точке c, чем точка x1, т.е. мы
приблизились к c.
По
индукции легко доказать, что последующие итерации также существуют и
удовлетворяют неравенствам.
|xn-c| £ an |x0-c| £ and (7.3)
Отсюда
следует, что:
, т. е.
Остаётся
доказать, что корень x=c (1.3) является единственным
решением уравнения на отрезке [c-d, c+d].
Действительно, допустим, что существует ещё один корень x=c1.
Примем
c1 за
нулевое приближение и будем строить итерационную последователь- ность (2.3).
Тогда с учётом (7.3) получим xn=c1 (n=0, 1, 2, …). С другой
стороны, по доказанному , т. е. c1=c. Никаких других решений
уравнение на отрезке иметь не может.
Сходимость
итерационной последовательности к корню уравнения (1.3) может быть использована
для приближённого определения корня с любой степенью точности. Для этого нужно
только провести достаточное количество итераций.
4. Быстрота сходимости процесса итераций
Используем
теперь производную функции j(x)
для оценки скорости сходимости итераций при решении уравнения х=j(x). Нужно оценить скорость, с
которой убывают погрешности an=x-xn приближённых значений х1, … , хn, … корня x.
рис
1.4
Можно
заметить, что справедливы равенства x=j(x) и хn+ 1=j(хn).
Из них вытекает, что:
an+ 1= x-хn+ 1=j(x)-j(хn)
Но
по формуле Лагранжа имеем:
j(x)-j(хn)= j ¢(cn)·( x-xn)= j ¢(cn) ·an
где
cn - точка
лежащая между точками x и хn.
Поэтому:
an+ 1=j ¢(cn) ·an (1.4)
Из
равенства (1.4) вытекает следующий вывод:
Пусть
x
– корень уравнения x=j (x) - лежит на отрезке [a, b]. Если на этом отрезке выполняется
неравенство |j
¢(x)|<q<1, а начальное приближение x1
также выбрано на отрезке [a,
b], то при любом n выполняется соотношение:
|an+ 1|<qn·|a1|
(2.4)
В
самом деле, из равенства (1.4) имеем:
|a2|=|j ¢(c1)|·|a1|
Но
точка c1
лежит на отрезке [a, b] (рис.1.4), и потому:
|j ¢(c1)|<q
Отсюда
следует, что:
|a2|<q·|a1|
Точно
так же получаем, что:
|a3|=|j ¢(c1)|·|a2|<q·|a2|< q2·|a1|
и
вообще:
|an+
1|=qn·|a1|
Тем
самым наше утверждение доказано.
Так
само при 0<q<1 последовательность
чисел q, q2,
q3, … , qn,
… стремится к нулю, то и погрешность an+ 1 стремится к нулю с
возрастанием n. Иными словами, при указанных выше предположениях числа x1, x2, … , xn, … приближаются
к числу x,
причём разность |x-xn| убывает
быстрее, чем qn·|a1|.
Точно
так же можно доказать, что если на отрезке [a, b] выполнено
неравенство:
|j ¢(x)|>1,
то
процесс итераций расходится.
Особенно
быстро сходится процесс последовательных приближений, если в точке x
производная функции j(x) обращается в нуль. В этом
случае по мере приближения к x, значение j ¢(x) стре
|an+ 1|=|j ¢(cn)|·|an|
то
сходимость процесса ускоряется по мере приближения к точке x.
Однако
то же самое можно наблюдать в методе Ньютона, при замене f(x)=0 на имеем: и её производная: в точке x: f(x)=0 -
в методе Ньютона наблюдается ускорение сходимости процесса приближений.
5. Метод касательных (метод Ньютона)
Метод
касательных, связанный с именем И. Ньютона, является одним из наиболее
эффективных численных методов решения уравнений. Идея метода очень проста.
Возьмём производную точку x0
и запишем в ней уравнение касательной к графику функции f(x):
y=f(x0)+ f ¢(x) (x-x0) (1.5)
Графики
функции f(x) и её касательной близки
около точки касания, поэтому естественно ожидать, что точка x1 пересечения касательной с
осью Ox будет
расположена недалеко от корня c
(рис. 1.5)
Для
определения точки имеем уравнение:
f(x0)+ f ¢(x0) (x1-x0)=0
таким
образом: x1=x0 – f (x0)/ f ¢(x0) (2.5)
Повторим
проделанную процедуру: напишем уравнение касательной к графику функции f(x) при x=x1 и найдём для неё точку пересечения x2 с осью Ox (см.
рис.1.5) x2=x1 – f (x1)/ f ¢(x1). Продолжая этот процесс,
получим последовательность {xn},
определён- ную с помощью рекуррентной формулы:
xn+ 1=xn – f (xn)/ f ¢(xn), n=0, 1, 2, … (3.5)
рис.
1.5
Построение
последовательности {xn}по методу касательных
При
исследовании этой последовательности, как и последовательности метода итераций,
встают два вопроса:
Можно
ли процесс вычисления чисел xn
продолжать неограниченно, т. е. будут ли числа xn принадлежать
отрезку [a, b] ?
Если
процесс (3.5) бесконечен, то как ведёт себя последовательность {xn} при n®¥ ?
При
анализе этих вопросов предположим, что корень x=c является внутренней точкой отрезка [a, b] (a<c<b), а функция f(x) дважды дифференцируема на данном отрезке, причём её
производные удовлетворяют неравенствам:
|
f ¢(x)|³m>0, | f ¢¢(x)|£M, xÎ[a, b], (4.5)
и
докажем следующую теорему.
Теорема
о сходимости метода касательных.
Если
функция f(x) удовлетворяет условиям,
сформулированным п.1., то найдётся такое d: 0<d£min(c–a, b–c), что при любом выборе
начального приближения на отрезке [c-d,
c+d] Ì
[a, b] существует бесконечная итерационная
последовательность (3.5) и эта последовательность сходится к корню c.
Доказательство.
В силу предположения о дифференцируемости функции f(x) и не равенстве нулю её производной f ¢(x) уравнение f(x)=0 эквивалентно на отрезке [a, b]
уравне- нию:
x=j(x), j(x)=x– f (x)/ f ¢(x) (5.5)
так
что корень x=c исходного уравнения
является одновременно корнем уравнения (5.4).
Исследуем
возможность отыскания этого корня с помощью итераций.
Вычислим
производную функции j(x):
(6.5)
и
оценим полученное выражение. Согласно неравенствам (4.5):
(7.5)
Для
дальнейшей оценки || воспользуемся непрерывностью функции f(x) и равенством её нулю в точке x= с:
(8.5)
Положим
e=m2/(2M)
Тогда
в силу (8.5) для данного e можно указать такое d: 0<d£
min (c–a, b–c), что для всех выполняется
неравенство:
(9.5)
Учитывая
это, получим:
(10.5)
Таким
образом, функция j(x) удовлетворяет на отрезке [c-d, c+d] Ì [a, b] условию Липшица с постоянной a=0.5<1. Это означает,
что уравнение (5.5) можно решать методом итераций: при любом выборе нулевого
приближения x0
на отрезке [c-d, c+d] существует бесконечная
последовательность {xn},
xn+1=j(xn), n=0, 1, 2, …, сходящаяся к корню x=c.
Теперь
нам остаётся заметить, что итерационной последовательностью для уравнения
(5.5), сходимость которой мы только что установили, является последовательность
(3.5) метода касательных. Теорема доказана.
Требование
близости нулевого приближения x0
к искомому корню c
является существенным для метода касательных. На рис.2.5 изображён график, где
х0 выбрано неправильно, то есть расстояние сх0>ас, так
как ас<bс. В
результате чего х1 не принадлежит отрезку [a, b], и на этом процесс построения рекуррентной последовательности
метода касательных обрывается.
Таким
образом, до начала расчётов по данному методу для выбора нулевого приближения х0
нужно знать область локализации искомого корня х=с. Если известен в общих
чертах график функции f(x), то его легко определить
по этому графику. В случае необходимости можно сделать несколько шагов по
методу вилки. Затруднения, связанные с предварительным исследованием уравнения,
вполне окупаются высокой скоростью сходимости метода.
рис.
2.5 Случай, когда процесс построения
последовательности {xn}
обрывается из-за плохого выбора нулевого приближения
6. Первые приближения для метода касательных
Первые
нулевые приближения для метода Ньютона, для итерационной последовательности,
можно так же найти другим путём. Если нам известно, что функция f(x) на отрезке [a, b] непрерывна и дважды дифференцируема, и имеет ровно один
корень, тогда можно взять за нулевое приближение значение одного из концов
отрезка [a, b] в зависимости от знака
второй производной, иначе при первом же приближении можно попасть за пределы
отрезка [a, b] (рис. 1.6).
То
есть можно сформулировать следующее правило:
Пусть
в точках a и b функция f(x) имеет различные знаки, причём на отрезке [a, b] вторая производная положительна. Тогда за начальное
приближение х1 надо выбирать ту из точек a или b, в которой функция f(x)
принимает положительное значение. Если же на отрезке [a, b] вторая производная
отрицательна, то за начальное
приближение x1
надо выбирать ту точку, в которой функция f(x)
принимает отрицательное значение.
7. Метод секущих
В
методе Ньютона (касательных) требуется вычислять производную функции, что не
всегда удобно. Можно заменить производную функции первой разделённой разностью,
найденной по двум последним итерациям, т. е. заменить касательную секущей.
Тогда вместо процесса получим:
(1.7)
для
начала процесса необходимо задать х0 и х1 (рис. 1.7).
Такие процессы, где для вычисления очередного приближения надо знать два
предыдущих, называют двух шаговыми.
Эти
изменения сильно меняют характер итераций. Например, сходимость итераций может
быть немонотонной не только вдали от корня, но и малой окрестности корня.
Скорость сходимости также изменяется. Его можно оценить, разлагая все функции в
(1.7) по формуле Тейлора с центром . Получим с точностью до бесконечно малых более высокого
порядка:
(2.7)
Решение
этого рекуррентного соотношения естественно искать в виде аналогичном методу
Ньютона: . Подставляя эту форму в соотношение (2.6), получим:
ab=1, b2
- b
- 1 = 0 (3.7)
Только
положительный корень b квадратного уравнения (3.6) соответствует убыванию
ошибки, т. е. сходящемуся процессу. Следовательно, в методе секущих
,
в
то время как в методе Ньютона ошибка убывает быстрей (соответствуя b=2).
Но в методе на каждой итерации надо вычислять и функцию, и производную, а в
методе секущих – только функцию. Поэтому при одинаковом объёме вычисления в
методе секущих можно сделать вдвое больше итераций и получить более высокую
точность. Что является более приемлемым при численных расчётах на ЭВМ, чем
метод касательных.
В
знаменателе формулы (1.7) стоит разность значений функции. Вдали от корня это
несущественно; но вблизи корня, особенно корня высокой кратности, значения
функции малы и очень близки. Возникает потеря значащих цифр, приводящая к
«разболтке» счёта. Это ограничивает точность, с которой можно найти корень; для
простых корней это ограничение невелико. Приводить к общему знаменателю
уравнение (1.7) не следует: может увеличится потеря точности в расчётах.
От
«разболтки» страхуются так называемым приёмом Гарвика. Выбирают не очень малое e,
ведут итерации до выполнения |xn+
1-xn|<e и
затем продолжают расчёт до тех пор, пока | xn+ 1-xn | убывают. Первое же возрастание обычно означает
начало «разболтки»; тогда расчёт прекращают и последнюю итерацию не используют.
8. Метод хорд, или линейной аппроксимации
Рассмотрим
задачу решения уравнения (1.1) методом хорд.
Этот
метод состоит в следующем. График функции f(x)
заменяется её хордой, т. е. отрезком соединяющий концевые точки графика функции
f(x): точки (a, f(a)) и (b, f(b)). Абсцисса х1 точки пересечения этой хорды с осью
Ох и рассматривается, как первое приближение искомого корня (рис 1.8). Далее
берётся тот из отрезков [a,
x1] и [x1, b], на концах которого,
функция f(x) принимает значения разного
знака (далее будет показано, что при сделанных предположениях f(x) ¹
0 и, следовательно, такой отрезок
всегда существует), и к нему применяется тот же приём; получается второе
приближение корня х2 и т. д. В результате образуется последовательность
хn, n=1, 2, … которая, как это
будет показано, при сделанных ограничениях на функцию f(x), сходится к корню уравнения f(x).
Легко
получить рекуррентные формулы для указанных чисел хn, n=1, 2,… Уравнение прямой, проходящее
через крайние точки графика функции f(x)
имеет вид:
(1.8)
Обозначим
его правую часть через l(x), т. е. Запишем уравнение в
виде:
y = l(x)
Найдём
абсциссу х1 точки пересечения прямой (1.8) с осью Ох, т. е. Решим
уравнение l(x)=0; получим:
(2.8)
Легко
убедится, что:
a < x1 < b (3.8)
Это,
например, следует из строгой монотонности и непрерывности функции l(x) и того, что на концах отрезка [a, b] она принимает значения разного знака:
l(a)=f(a) и l(b)=f(b).
Аналогично
находим
n=1, 2, … (4.8)
Покажем,
что последовательность {xn}
стремится к корню уравнения (1.0) монотонно.
Предположим
для определённости, что f ¢(x) и f ¢¢(x) >0, a<x<b
(рис 1.8). В этом случае функция f(x)
строго монотонна и строго выпукла вниз. Следовательно, любая внутренняя точка
хорды, соединяющей крайние точки графика функции f(x), лежит над соответствующей точкой графика функции f(x), т. е.
l(x) > f(x), a
> x > b
В
частности, если х0 корень уравнения (1.1): f(x0) = 0, отсюда следует, что
l(x0) > 0
C (3.8) и (4.8) получаем:
l(x) = 0, a > x1 > b
Таким
образом,
l(x1) < l(x0) (5.8)
но
линейная функция l(x) строго монотонно
возрастает, так как
l(b) = f(b) >
f(a) = l(a)
поэтому
из (5.8) следует x1 < x0 , заменяя теперь отрезок [a, b] отрезком [x1, b] и замечая, что f(x1) < 0 , аналогично можно доказать, что x1 < x2 < x0, далее по
индукции получим:
x1 < x2 < … < xn < … < x0,
Таким
образом, последовательность {xn},
будучи монотонной, сходится. Пусть lim xn = c, при n®¥ . Переходя к пределу при n®¥ в равенстве (4.8) получим f(c)=0, т. е. последовательность {xn} сходится к корню уравнения (1.1).
Если
| f ¢(x)|³m>0, a<x<b,
то не трудно получить оценку погрешности сходимости последовательности {xn} через значения
самой функции f(x) в точках xn. Действительно,
f(xn)= f(xn)- f(x0)= f ¢(xn)×(xn-x0),
xn<xn<x0, n = 1, 2, …,
Отсюда:
, n =
1, 2, …,
Остальные
случаи, т. е. случаи:
,
,
рассматриваются
аналогично разобранному (рис 2.8).
рис.
2.8
9.
Усовершенствованный метод хорд
Если
итерационная последовательность, полученная методом хорд, сходится, то скорость
сходимости будет такой же, как и у метода итераций, - погрешность значения
корня убывает, как геометрическая прогрессия. Существует усовершенствование
способа хорд, дающее гораздо более быструю сходимость. В обычном методе хорд мы
на каждом шагу используем один из концов отрезка [a, b] последнее получившееся приближение. Вместо этого можно
использовать два последних приближения – ведь они ближе к искомому корню, чем
концы отрезка [a, b].
рис.1.9 а) б)
Формула,
при которой мы используем два последних приближения, имеет вид:
(1.9)
При
этом а1 вычисляется по формуле:
а
а2 в зависимости от знаков f(a), f(b), f(a1),
если f(a)<0, f(b)>0,
, f(a1)<0
, f(a1)>0
Если
случайно окажется, что точка а3, вычисленная по формуле (1.9), лежит
за пределами отрезка [a,
b], то на следующем
шаге надо вместо этой точки взять ближайший к ней конец этого отрезка (рис.
1.9, б). Оказывается, что сходимость усовершенствованного метода хорд гораздо
быстрее, чем у обычного. Именно, если x - корень уравнения f(x)=0, то:
|an+ 1|<C×|an-x| S, где
10.
Комбинированный метод решения уравнений
При
решении уравнений часто комбинируют методы хорд и Ньютона. Если график функции y=f(x) обращён вогнутостью вверх, то находят точки а1 и х1
по формулам:
(1.10)
(2.10)
Если
же график функции y=f(x) обращён вогнутостью вниз, то точку а1
находят по формуле (1.10), а точку х1 – по формуле:
(3.10)
Как
видно из рис.1.10 а) и б), корень x уравнения f(x)=0
лежит обычно между полученными точками а1 и х1. Применяя
снова к этим точкам формулы метода хорд и метода Ньютона, получают новую пару
точек а2 и х2 и т. д.
Таким
путём получают две последовательности точек а1, а2, а3,
…, an, … и x1, x2, x3, … , xn, …,
приближаются с разных сторон к искомому корню x. Преимущество описанного
метода состоит в том, что при нём получаются приближённые значения как с
избытком так и с достатком.
рис.1.10
а)
б)
11. Заключительные замечания
Ситуация,
когда одну и ту же задачу можно решить многими способами, является довольно
типичной. В таких случаях естественно возникает необходимость сравнения их
между собой.
При
оценке эффективности численных методов существенное значение имеют различные
свойства:
универсальность;
простота
организации вычислительного процесса и контроля над точностью;
скорость
сходимости.
Наиболее
универсальным является метод деления пополам (дихотомии): он только требует
непрерывности функции. Остальные методы накладывают более сильные ограничения.
Во многих случаях это преимущество метода вилки может оказаться существенным.
С
точки зрения организации вычислительного процесса все виды численного
нахождения корней уравнения очень просты. Однако и здесь метод деления пополам
обладает некоторым преимуществом. Вычисления можно начинать с любого отрезка [a, b], на концах которого непрерывная
функция f(x) принимает значения разных
знаков. Процесс будет сходится к корню уравнения f(x)=0, причём на каждом шаге он даёт для корня двустороннюю
оценку, по которой легко определить достигнутую точность. Сходимость же метода
итераций или касательных зависит от того, насколько удачно выбрано нулевое
приближение.
Наибольшей
скоростью сходимости обладает метод касательных. В случае, когда подсчёт
значений функции f(x) сложен и требует больших
затрат машинного времени, это преимущество становится определяющим. На вопрос о
том, какой метод – метод итераций или дихотомия даёт большую скорость
сходимости, однозначно ответить нельзя. При методе дихотомии знаменатель
геометрической прогрессии убывания погрешности равен q=0.5, а при методе хорд он может
принимать значения 0<q<1.
Из
вышесказанного следует, что ответ на вопрос о наилучшем численном методе
решения уравнения не однозначен. Он существенно зависит от того, какую
дополнительную информацию о данной функции мы имеем, в соответствие с этим,
каким свойствам метода придаём большее значение.
При
обосновании метода итераций и метода Ньютона на функции j(x) и f(x), а
также на выбор начального приближения х0 накладывались определённые
ограничения. Однако при решении конкретных задач проверить их выполнение часто
бывает трудно и даже практически не возможно. Функция может не задаваться в
виде простой формулы, а находится в результате численного решения некоторой
математической задачи, получаться из измерений и проверять «экспериментально»:
начинают расчёт и следят за поведением первых членов последовательности {xn}. Если по ним
видно, что процесс сходится, то расчёт продолжают, пока не достигнут нужной
точности. В противном случае вычисления прекращают и анализируют полученные
данные, пытаясь установить причину рассходимости и, в соответствии с ней
выбрать другой метод решения задач.
Список литературы
А.
Н. Тихонов, Д. П. Костомаров «Вводные лекции по прикладной математике»
М.
«Наука» 1984
Л.
Д. Кудрявцев «Математический анализ т. 2» М. 1984 «Наука»
П.
Ф. Фильчаков «Справочник по высшей математике» К. 1973 «Наукова Думка»
Н.
Н. Калиткин «Численные методы» М. «Наука» 1978
Н.
Я. Виленкин «Итерационные методы» М. «Наука» 1984