Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория.pdf
Скачиваний:
331
Добавлен:
11.05.2015
Размер:
5.05 Mб
Скачать

ГЛАВА 6. ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

Нелинейное алгебраическое уравнение с одной переменной в общем случае может быть записано в виде

f (x)=0

(6.1)

где функция f (x) определена и непрерывна на конечном или бесконечном интервале x (a,b) .

Всякое значение

 

ξ [a,b],

 

обращающее

 

функцию f (x)

в

нуль,

называется корнем

уравнения

(6.1)

или

нулем

функции f (x) .

Число ξ

называется корнем k-й кратности,

если при x=ξ вместе с функцией

f (x)

равны нулю и ее производные до порядка (k-1) включительно:

 

 

f ( )

 

f

 

)

 

′′

 

)

 

... f

(k 1)

(

 

)

 

0

 

 

 

=

(

=

f (

=

 

 

=

.

 

(6.2)

ξ

 

 

ξ

 

 

ξ

 

 

 

ξ

 

 

 

Однократный корень называется простым. Два уравнения называются равносильными (эквивалентными), если множества их решений совпадают.

Нелинейные уравнения с одной переменной подразделяются на алгебраические (функция f (x) является алгебраической) и трансцендентные в противном случае. Уже на примере алгебраического многочлена известно, что нули f (x) могут быть как действительными, так и комплексными. Поэтому более точная постановка задачи состоит в нахождении корней уравнения (6.1), расположенных в заданной области комплексной плоскости. Можно рассматривать также задачу нахождения действительных корней, расположенных на заданном отрезке. Иногда, пренебрегая точностью формулировок, просто говорят, что требуется решить уравнение (6.1). Большинство алгебраических и трансцендентных нелинейных уравнений аналитически (т.е. точно) не решается, поэтому на практике для нахождения корней используются численные методы. В связи с этим под решением уравнения (6.1) будем понимать задачу приближенного нахождения корней

уравнения вида (6.1). При этом под близостью приближенного значения x к корню ξ уравнения, как правило, понимают выполнение неравенства

|ξ x|<ε при малых ε >0 ,

т.е. абсолютную погрешность приближенного равенства xξ .

Используют также и относительную погрешность, т.е. величину |ξx| .

|x|

Нелинейная функция f (x) в своей области определения может иметь конечное или бесконечное количество нулей или может не иметь их вовсе.

135

Численное решение нелинейного уравнения (6.1) заключается в нахождении с заданной точностью значений всех или некоторых корней уравнения и распадается на несколько подзадач:

во-первых, надо исследовать количество и характер корней (вещественные или комплексные, простые или кратные),

во-вторых, определить их приближенное расположение, т.е. значения начала и конца отрезка, на котором лежит только один корень,

в-третьих, выбрать интересующие нас корни и вычислить их с требуемой точностью.

Большинство методов нахождения корней требует знания промежутков, где заведомо имеется и притом единственный нуль функции. В связи с этим вторая задача называется отделением корней. Решив ее, по сути дела, находят приближенные значения корней с погрешностью, не превосходящей длины отрезка, содержащего корень.

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

Для функций общего вида нет универсальных способов решения задачи отделения корней. Отметим два простых приема отделения действительных корней уравнения – табличный и графический.

Первый прием состоит в вычислении таблицы значений функции в заданных точках xi , расположенных на условно небольшом расстоянии h одна от другой и использовании следующих теорем математического анализа:

1.Если функция y=f(x) непрерывна на отрезке [а,b] и f(a)f(b)<0, то внутри отрезка [a,b] существует по крайней мере один корень уравнения f(x)=0.

2.Если функция y=f(x) непрерывна на отрезке [а,b], f(a)f(b) < 0 и f′(x) на интервале (a,b) сохраняет знак, то внутри отрезка [a,b] существует единственный корень уравнения f(x)=0.

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

выполняется ли на отрезке [xi 1,xi] условие f (xi 1) f (xi)0 . Таким образом, если при некотором i числа f (xi 1) и f (xi)имеют разные знаки, то это означает, что на интервале (xi 1, xi) уравнение имеет по крайней мере

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

136

процесс до состояния, позволяющего утверждать наличие пар корней, не различимых с точностью h =ε . Это хорошо известный способ перебора.

По таблице можно построить график функции y = f (x). Корнями

уравнения (6.1) являются те значения х, при которых график функции пересекает ось абсцисс. Этот способ более нагляден и даёт неплохие приближённые значения корней. Построение графика функции даже с малой точностью обычно дает представление о расположении и характере корней уравнения (иногда позволяет выявить даже корни четной кратности). Во многих задачах техники такая точность уже достаточна.

Если построение графика функции y = f (x) вызывает затруднение, следует преобразовать исходное уравнение к виду ϕ1(x) =ϕ2 (x) таким образом, чтобы графики функций y =ϕ1(x) и y =ϕ2 (x) были достаточно

просты. Абсциссы точек пересечения этих графиков и будут корнями уравнения.

Пример: Отделить корни уравнения x2 sin x1=0.

 

 

 

Представим уравнение в виде:

x2 1=sin x

 

и построим графики

функций

y

=

x

2

и

y=sin x

.

 

 

 

1

 

 

 

Совместное

 

 

рассмотрение

графиков

позволяет сделать заключение, что данное

уравнение

имеет

два

корня

ξ1 [1,0] и

ξ2 [1,π].

Допустим, что искомый корень уравнения отделен, т.е. найден отрезок [a,b] , на котором имеется только один корень уравнения. Для вычисления корня с требуемой точностью ε обычно применяют какую-либо итерационную процедуру уточнения корня, строящую числовую последовательность значений xn , сходящуюся к искомому корню уравнения.

Начальное приближение x0 выбирают на отрезке [a,b] , продолжают

вычисления, пока не выполнится неравенство xn1 xn < ε, и считают, что xn – есть корень уравнения, найденный с заданной точностью. Имеется

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

137

Последовательность x

, сходящаяся

к пределу

x* ,

 

имеет

скорость

 

n

 

 

 

 

 

 

 

 

 

 

α

сходимости порядка α , если при n → ∞

 

x

 

x*

 

=

 

x

 

x*

 

 

 

 

 

 

 

 

n +1

 

= O

 

n

 

. При

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α =1 сходимость называется линейной, при 1<α <2 – сверхлинейной, при α =2 – квадратичной. С ростом α алгоритм, как правило, усложняется и условия сходимости становятся более жесткими.

Приближённые значения корней уточняют различными итерационными методами. Рассмотрим наиболее эффективные из них.

6.2. Метод половинного деления (бисекции, дихотомии)

Пусть функция f (x) определена и непрерывна при всех x [a,b] и на [a,b] меняет знак, т.е. f (a) f (b)<0 . Тогда согласно теореме 1 уравнение имеет на (a,b) хотя бы один корень. Возьмем произвольную точку c (a,b). Будем называть в этом случае отрезок [a,b] промежутком

существования, корня, а точку c - пробной точкой. Поскольку речь здесь идет лишь о вещественных функциях вещественной переменной, то

вычисление значения f (c) приведет к какой-либо одной из следующих

взаимоисключающих ситуаций:

А) f (a) f (c)<0 Б) f (c) f (b)<0 В) f (c)=0

Если f (c)=0, то корень уравнения найден. В противном случае из двух частей отрезка [a,c] или [c,b] выберем ту, на концах которой функция имеет разные знаки, так как один из корней лежит на этой половине.

Затем повторяем процесс для выбранного отрезка.

 

 

методом

 

 

 

 

 

Такой

процесс

называют

 

 

 

 

 

дихотомии. Наиболее употребительным

 

 

 

 

 

частным

случаем

метода дихотомии

 

a

c(a1)

 

 

является

метод половинного

деления,

 

 

 

реализующий

самый простой способ

 

 

с1

b(b1)

 

 

выбора пробной точки – деление

 

 

 

 

 

 

 

 

 

 

промежутка

существования

корня

Рис. 6.1. Метод дихотомии

 

 

пополам.

 

 

 

 

 

 

 

 

 

 

 

За один шаг метода половинного деления промежуток существования корня сокращается ровно вдвое. Поэтому, если за k -е приближение к корню ξ уравнения примем точку xk , являющуюся серединой полученного на k -м шаге отрезка [ak,bk], полагая a0 =a , b0 =b , то придем к неравенству

138

|

x |

 

,

(6.3)

ξ

k <ba

 

 

2k

 

 

которое, с одной стороны, позволяет утверждать, что последовательность ( xk ) имеет предел – искомый корень ξ уравнения (6.1), с другой стороны, является априорной оценкой абсолютной погрешности равенства xk ξ , что дает возможность подсчитать число шагов (итераций) метода половинного деления, достаточное для получения корня ξ с заданной точностью ε .Для

чего нужно лишь найти наименьшее натуральное k удовлетворяющее неравенству

b2ka <ε .

Проще говоря, если требуется найти корень с точностью ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значения корня с требуемой точностью.

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

при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трёх цифр требует 10 итераций. Зато точность ответа гарантируется.

К основным недостаткам метода дихотомии можно отнести следующие.

1.Для начала расчёта необходимо найти отрезок, на котором функция изменяет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдётся процесс (хотя к одному из них обязательно сойдётся).

2.Метод неприменим к корням чётной кратности.

3.Для корней нечётной высокой кратности он сходится, но менее точен и менее устойчив к ошибкам округления, возникающим при вычислении значений функции.

Дихотомия применяется тогда, когда требуется высокая надёжность счёта, а скорость сходимости малосущественна.

Один из недостатков дихотомии – сходимость неизвестно к какому корню – характерен почти для всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если x1 есть простой корень уравнения и f (x) липшиц-непрерывна, то вспомогательная функция g(x) = f (x) /(x x1) непрерывна, причём все нули функций f(x) и g(x) совпадают, за исключением x1, так как g(x1) 0. Если x1 - кратный корень уравнения, то он будет нулём g(x) кратности на единицу

139

меньше; остальные нули обеих функций по-прежнему будут одинаковы. Поэтому найденный корень можно удалить, т.е. перейти к функции

g(x). Тогда отыскание остальных нулей

f (x) сведётся к отысканию нулей

g(x). Когда мы найдём какой-нибудь

корень

x2 функции g(x),

то этот

корень тоже можно

удалить, вводя

новую

вспомогательную функцию

ϕ(x) = g(x) /(x x2 ).

Так

можно

последовательно

найти все

корни

уравнения.

 

 

 

 

 

 

 

При использовании описанной процедуры необходимо учитывать

следующую тонкость. Строго говоря,

мы находим

лишь приближённое

~

 

~

 

 

~

 

 

значение корня x x.

А функция g(x)

= f (x) /(x x1) имеет нуль в точке x1 и

полюс в близкой к ней точке

~

 

 

 

 

 

x1 (рис. 6.2); только на некотором расстоянии от

этого корня она близка к g(x). Чтобы это не сказывалось при нахождении следующих корней, нужно вычислять каждый корень с высокой точностью, особенно если он кратный или вблизи него расположен другой корень уравнения.

у

~

 

 

g(x)

Кроме того, в любом методе

 

g(x)

 

 

 

окончательные

итерации

вблизи

 

 

~

 

 

определяемого

корня

рекомендуется

 

g(x)

 

 

выполнять не по функциям типа g(x), а

 

g(x)

 

 

 

 

 

 

x

по исходной функции f (x) . Последние

 

%

x1

 

 

итерации,

вычисленные

по

функции

 

x1

 

 

g(x), используются при этом в качестве

Рис. 6.2. Иллюстрация возникновения

нулевого

 

приближения.

Особенно

погрешности в окрестности корня

важно это при отыскании многих

 

 

 

 

 

 

 

 

 

 

корней, так как чем больше корней

удалено,

тем

меньше

нули

вспомогательной

функции

 

 

%

)

соответствуют остальным нулям функции

f (x) .

G(x) = f (x) / (x xi

 

 

i

 

 

 

 

 

 

 

 

 

Учитывая эти предосторожности и вычисляя корни с 8 – 10 верными

десятичными цифрами, зачастую можно определить десятка два корней, о

расположении которых заранее ничего не известно (в том числе корней

высокой кратности р 5).

 

 

 

 

 

 

6.3. Метод хорд

Логично предположить, что в семействе методов дихотомии можно достичь несколько лучших результатов, если отрезок [a,b] делить точкой c не пополам, а пропорционально величинам ординат f (a) и f (b) .

140

Это означает, что точку c есть смысл находить, как абсциссу точки пересечения

оси Ох с прямой, проходящей через точки A(a, f (a)) и B(b, f (b)), иначе, с хордой

дуги графика функции f (x) . Такой способ

выбора пробной точки, называют методом хорд или методом линейной интерполяции.

Запишем уравнение прямой проходящей через точки А и В:

 

 

 

yf (a)

=

xa

 

 

 

f (b)f (a)

 

ba

и, полагая y=0, находим:

 

 

 

f (a)(ba)

.

 

 

c=af (b)f (a)

 

 

Метод хорд подобно алгоритму метода бисекции строит последовательность вложенных отрезков [аn,bn], но в качестве xn берется точка пересечения хорды с осью абсцисс :

x

n+1

= a

n

f (an )

(b

a

n

) .

(6.4)

 

 

 

 

f (bn ) f (an )

n

 

 

 

 

 

 

 

 

 

 

 

 

 

Длина промежутка локализации корня при этом может не стремится к нулю, поэтому обычно счет ведется до совпадения значений двух очередных приближений с точностью ε . Метод сходится линейно, но близость двух очередных приближений не всегда означает, что корень найден с требуемой точностью. Поэтому, если 0<m| f (x)|M , x [a,b],

рекомендуют продолжать вычисления до совпадения с точностью mε .

M m

Более надежным практическим критерием окончания итераций в методе хорд является выполнение неравенства

 

 

(x

n

x

n1

)2

 

< ε.

(6.5)

 

 

2xn1 xn xn2

 

 

 

 

 

 

 

 

6.4. Метод простой итерации

 

 

 

 

 

 

 

Заменим уравнение f (x)=0 эквивалентным ему уравнением

 

 

 

 

 

x=ϕ(x) .

(6.6)

141

сходилась к корню данного уравнения

Это можно сделать

разными

способами, например, положив

ϕ(x) = x +τ(x) f (x),

где

τ(x)

произвольная

непрерывная

знакопостоянная функция. Выберем некоторое нулевое приближение х0 и вычислим дальнейшие приближения по формулам

xk +1=ϕ(xk), k=0,1,2,..

(6.7)

Эти формулы определяют одношаговый общий итерационный метод, называемым методом простых итераций. Попытаемся понять, каким

требованиям должна удовлетворять функция ϕ(x) , чтобы последовательность (xk) , определяемая (6.7) была сходящаяся, и как

построить функцию ϕ(x) по функции f (x) , чтобы эта последовательность

f (x)=0.

Пусть ϕ(x) - непрерывная на некотором отрезке [a,b] функция. Если определяемая формулой (6.7) последовательность (xk) сходится к

некоторому числу ξ , т.е. ξ=lim xk , то, переходя к пределу в равенстве

k→∞

(6.7), получаем ξ=ϕ(ξ). Это равенство означает, что ξ - корень

уравнения (6.6) и эквивалентного ему исходного уравнения.

Нахождение корня уравнения (6.6) называется задачей о неподвижной точке. Существование и единственность этого корня основывается на принципе сжимающих отображений.

Определение: Непрерывная функция ϕ(x) называется сжимающей на отрезке [a,b] если:

1)ϕ(x) [a,b], x [a,b]

2)q (0,1) : |ϕ(x2)ϕ(x1)|q|x2x1|, x1,x2 [a,b].

Второе условие для дифференцируемой на [a,b] функции равносильно выполнению неравенства ϕ' (x) q <1 на этом отрезке.

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

графиков функций y=ϕ(x) и y=x. Метод простой итерации не всегда обеспечивает сходимость к корню уравнения. Достаточным условием сходимости этого метода является выполнение неравенства ϕ' (x) q <1 на

отрезке, содержащем корень и все приближения xк.

Проиллюстрируем (рис. 6.4) геометрически поведение сходящейся итерационной последовательности (xk) , не отмечая значения ϕ(xk) , а

142

отражая их на ось абсцисс с помощью биссектрисы координатного угла

y=x .

Рис.6.4 Сходимость метода простой итерации при ϕ' (x) q <1.

Как видно из рис. 6.4, если производная ϕ(x) <0 , то последовательные приближения колеблются около корня, если же производная ϕ(x) >0 , то

последовательные приближения сходятся к корню монотонно. Справедлива следующая теорема о неподвижной точке.

Теорема: Пусть ϕ(x) определена и дифференцируема на [a,b]. Тогда, если выполняются условия:

1) ϕ

 

 

 

(x) [a,b]

x [a,b]

 

 

 

 

 

 

 

 

x (a,b)

 

(6.8)

2) q : |ϕ (x)|q<1

 

 

 

3) 0

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x [a,b]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

то уравнение x=ϕ(x) имеет на [a,b] единственный корень ξ и к этому

корню сходится определяемая методом простых итераций

 

последовательность (xk) , начинающаяся с x0 [a,b].

 

При этом справедливы следующие оценки погрешности:

 

 

 

 

k

 

 

q

 

 

k

 

 

 

k 1

 

и

 

 

 

 

 

 

 

 

 

 

 

 

|ξx |1q|x

x

|

 

 

 

 

 

 

 

 

 

 

 

 

 

qk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ξ xk

 

1 q

 

x1 x0

 

,

если ϕ (x) > 0

(6.9)

 

 

 

 

 

 

 

 

 

 

ξ xk

 

<

 

xk

xk 1

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если ϕ (x) < 0

 

Вблизи корня итерации сходятся примерно как геометрическая прогрессия со

 

 

xk xk 1

 

 

знаменателем

q =

 

 

. Метод имеет линейную скорость

xk 1 xk 2

 

 

 

 

 

 

 

сходимости. Очевидно, что чем меньше

q (0,1)

, тем быстрее сходимость.

 

Таким

образом, успех

метода

зависит

от того, насколько удачно

143

выбрано ϕ(x) .

Например, для извлечения квадратного корня, т.е. для решения

уравненияx2 =a , можно положить ϕ (x) =a / x

 

или ϕ

2

(x) =1/ 2 [x +a / x]

 

 

 

1

 

 

 

 

 

 

 

 

и соответственно написать такие итерационные процессы:

 

a

 

 

 

1

 

 

 

a

 

 

 

xk +1 =

или

xk +1

=

 

+

 

 

 

 

xk

2

xk

 

 

.

 

 

 

 

 

 

 

 

 

xk

 

 

Первый процесс вообще не сходится, а второй сходится при любом х0 > 0 и

сходится очень быстро, так как ϕ '(ξ) = 0

. Второй процесс используется при

извлечении корня в "запаянных" командах микрокалькуляторов.

Пример 1: Найти методом итерации с точностью ε =

1

104 наименьший

2

корень уравнения

 

 

 

 

 

 

f (x)=x3 +3x2 1=0 .

 

 

 

 

 

 

 

 

 

 

Решение: Отделяем корни:

 

 

 

 

x

4

3

2

1 0

1

2

3

f (x)

 

+

+

+

+

+

Очевидно, уравнение имеет три корня, расположенные на отрезках [3;2], [1;0] и [0;1]. Наименьший находится на отрезке [3;2].

Т.к. на этом отрезке x2 0, разделим уравнение на x2 . Получим:

x+3

1

=0 => x=

 

1

3

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

|ϕ

 

 

 

 

 

 

2x

3

=

1 , т.е.

 

1

max

 

 

max

q=

(x)|=

 

4

4

3 x ≤ −2

 

 

 

 

3 x ≤ −2

 

 

 

Пусть x0

=−2.5, тогда δ

=max[3x0;2 x0] =0.5

x =ϕ(2.5) =

1

 

3

=−2.84 [3,2]

 

 

обозначим

 

 

1

 

.

 

Проверим выполнение условия теоремы:

 

 

ϕ(x)=x2 3

 

 

 

 

 

 

 

 

 

1

(2.5)2

 

|ϕ(x0)x0|=0.34<(1q)δ =0.357

 

Условия сходимости выполнены.

Найдем число итераций для достижения заданной точности ε = 12 104 ,

решая относительно n неравенство

144

ϕ

0

x

0

 

 

0.34 4

1

 

 

 

 

 

(x )

 

qn ε =>

 

 

210

4

=> n6

 

1q

 

 

3 4n

 

 

 

 

 

 

n

 

xn

 

 

 

ϕ(xn)=

1

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

0

 

2.50000

 

2.84000

 

 

 

 

 

1

 

2.84000

 

2.87602

 

 

 

 

 

2

 

2.87602

 

2.87910

 

 

 

 

 

3

 

2.87910

 

2.87936

 

 

 

 

 

4

 

2.87936

 

2.87938

 

 

 

 

 

5

 

2.87938

 

2.87938

Замечание: Для нахождения двух других корней исходного уравнения методом простой итерации уже нельзя пользоваться формулой: x=x12 3,

т.к.

max

 

2x

3

 

=−∞,

max

 

2x

3

 

=−∞

.

 

 

 

 

 

 

 

 

 

max |ϕ (x)|=

 

 

 

 

 

 

 

 

1 x 0

1 x 0

 

 

 

 

 

1x0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Условие сходимости на этих отрезках не выполнено.

Метод релаксации - один из вариантов метода простой итерации, в котором

ϕ(x) = x τ f (x),

т.е. равносильное уравнение имеет вид:

x = x τ f (x) .

Приближения к корню вычисляются по формулам

 

xn+1 = xn τ f (xn ),

(6.10)

 

Если f (x)<0 , то рассматривают уравнение f (x)=0 .

 

Конкретные рекомендации по выбору τ могут быть даны в случае, когда, например, известны оценки сверху и снизу для производной исходной

функции f (x) . Пусть

0αf (x)γ <∞

Параметр τ подбирается таким, чтобы производная ϕ(x) =1τ f (x) в нужной области была малой по модулю.

1τ γ ϕ(x)1λα

и значит,

|ϕ(x)|q(τ) =max{|1τα |,|1τγ |}

145