• Nenhum resultado encontrado

Н. Н. Калиткин, Л. В. Кузьмина, Вычисление корней уравнения и определение их кратности, Матем. моделирование, 2010, том 22, номер 7, 33–52

N/A
N/A
Protected

Academic year: 2023

Share "Н. Н. Калиткин, Л. В. Кузьмина, Вычисление корней уравнения и определение их кратности, Матем. моделирование, 2010, том 22, номер 7, 33–52"

Copied!
21
0
0

Texto

(1)

Общероссийский математический портал

Н. Н. Калиткин, Л. В. Кузьмина, Вычисление корней уравнения и определение их кратности, Матем. моделирование, 2010, том 22, номер 7, 33–52

Использование Общероссийского математического портала Math-Net.Ru подразумевает, что вы прочитали и согласны с пользовательским соглашением

http://www.mathnet.ru/rus/agreement Параметры загрузки:

IP: 139.59.245.186

6 ноября 2022 г., 11:24:41

(2)

УДК 519.6155

ВЫЧИСЛЕНИЕ КОРНЕЙ УРАВНЕНИЯ И ОПРЕДЕЛЕНИЕ ИХ КРАТНОСТИ

© 2010 г. Н.Н. Калиткин, Л.В. Кузьмина

Институт математического моделирования РАН, Москва; e-mail: kalitkin@imamod.ru Работа поддержана грантом РФФИ № 08-01-00171

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

CALCULATION OF ROOTS AND THERE MULTIPLICITY FOR NONLINEAR EQUATION

N.N. Kalitkin, L.V. Kuzmina

Institute for Mathematical Modelling of Rus.Acad.Sci., Moscow; e-mail: kalitkin@imamod.ru Different methods for calculation of nonlinear equation roots were compared. There of seconds method occuerd the most effective for simple roots. The methods of bisections and golden sec- tion were effective for multiple roots, but the last iterations should be performed by the method of seconds with the Aitken extrapolation for accuracy improving. All this methods termit to es- tablish a root multiplicity.

1. Введение

1.1. Методы. Проблема нахождения корней уравнения u(x)=0 известна давно. Ей посвящена обширная литература и немало страниц в учебниках (например, [1–5]). Одна- ко до сих пор остаются недостаточно исследованными многие аспекты этой проблемы.

Один из них – нахождение кратных корней с удовлетворительной точностью и одновре- менным определением их кратности. Эта проблема подробно рассмотрена в данной ра- боте (см. также [6–7]).

Для нахождения как простых, так и кратных корней уравнения применяют различ- ные методы: бисекций (дихотомии, деление пополам), простых итераций, Ньютона (ка- сательных), секущих и парабол. Отметим также, что вместо задачи u(x)=0 можно решать задачу u2(x)=min` и применять метод золотого сечения; при этом пригодны только нуле- вые min.

Все эти методы итерационные. Каждый из этих методов имеет свои достоинства и недостатки. При этом можно строго доказать [6], что никакой метод не обеспечивает сходимости с заданной точностью за конечное число итераций, даже если u(x) имеет не- 2 Математическое моделирование, №7

(3)

ограниченное число непрерывных производных. Возникает вопрос – каким методом или какой комбинацией методов целесообразно пользоваться.

Для случая кратных корней проблема усугубляется. Во-первых, сходимость ряда методов существенно замедляется, становясь линейной. Во-вторых, подразумевается проведение всех вычислений на компьютере с определенной разрядностью чисел (сей- час наиболее распространены 64-разрядные вычисления), т.е. с ошибками округления.

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

Полвека назад, на довольно медленных компьютерах тех лет, в литературе нередко рекомендовалась интерактивная процедура. Пользователю предлагалось построить гра- фик функции u(x), визуально найти нули функции и выбрать хорошие нулевые прибли- жения для корней. Затем эти корни вычислялись на компьютере одним из указанных выше методов. Однако при нынешних скоростях компьютеров и массовых расчетах ин- терактивные процедуры неприемлемы. Метод должен быть автоматизированным и об- ладать высокой надежностью. Он должен сам находить окрестность корня, проводить уточнение корня и при этом автоматически настраиваться на разрядность компьютера, то есть обеспечивать наилучшую точность при заданных ошибках округления.

Ниже проведено сравнение различных методов с точки зрения указанных требова- ний. Показано, что метод золотого сечения (который обычно не применялся к подобным задачам) отличается высокой надежностью и хорошо находит окрестность корня и уста- навливает его кратность. При этом он позволяет удовлетворительно определить само значение корня. Метод бисекций обладает сходными свойствами, но применим только для корней нечетной кратности. В ближней окрестности целесообразно уточнять вели- чину корня специальным дополнением метода секущих, вводя в него экстраполяцион- ный процесс Эйткена. Метод Ньютона не вошел в перечень рекомендованных, хотя он позволяет добиться несколько лучшей точности. Причина в том, что в методе Ньютона необходимо задавать явное выражение не только u(x), но и u′(x). Это неудобно при практических вычислениях (во всех остальных методах явное выражение производной не нужно). Если же заменять производную разностным выражением, то погрешность метода Ньютона из-за ошибок округления будет не меньше, чем у других методов.

1.2. Задача. Опишем формальную постановку задачи. Пусть задано явное выраже- ние функции u(x). От функции требуем по меньшей мере непрерывности, а для ряда ме- тодов – наличие непрерывной первой производной, а возможно – и второй. Требуется решить уравнение

(1) ( ) 0.

u x =

Пользователь задает концы отрезка [x1,x2], на котором он предполагает наличие корня;

по умолчанию программа сама выбирает границы отрезка. Если программа на этом от- резке не обнаружила корня, то можно применять некоторое расширение отрезка и по- вторение поиска корня (процедура расширения может быть неоднократной). Программа должна выдавать величину найденного корня с оценкой его погрешности, а также крат- ность корня. Напомним, что x* является p-кратным корнем уравнения (1), если

(4)

.

для (2)

2( ) 0*

u x = r=0,...,p−1; u( )p ( ) 0.x* =

Вблизи корня функция приближенно представима в следующем виде:

(3)

* *

( ) ( ) [1p ( ) ...].

u x ≈ ⋅ −a x x +b x x− +

Такое разложение подразумевает наличие (p+1)–й производной функции.

2. Методы вычисления корня

2.1. Метод Ньютона. Сейчас этот метод является наиболее распространенным.

Это одношаговый метод. Задается нулевое приближение x0, а следующее приближение вычисляется по формуле

1 ( ) / ( )

n n n n

x + =xu x u x′ (4)

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

1 2 ( ) / [ ( ) ( )]

n n n n n .

x + =xhu x u x + −h u xh (5)

Чем меньше шаг h, тем лучше точность такой замены. Однако слишком малое h выби- рать нельзя из-за ошибок округления. Отметим, что формула (5) требует трёх вычисле- ний функции на одном шаге.

Сходимость. Скорость сходимости ньютоновских итераций в малой окрестности корня нетрудно исследовать, подставляя разложение (3) в (4). Заметим, что для упроще- ния выкладок удобно сдвинуть аргумент на x*; тогда будет x*=0. При этом погрешности всех xn оказываются равными им самим. Запись выкладок становится более простой и компактной. Как известно [1–5], вблизи простого корня сходимость квадратичная:

(6)

1 * ( *) , 2

n n

x +xb xx p=1.

Для кратных корней сходимость оказывается линейной [6–7]:

(7)

1 * ( *), ( 1) / , 1.

n n

x +xq xx q= pp p>

Видно, что знаменатель линейной сходимости q лежит в пределах 0<<q<<1. Итерации сходятся тем медленнее, чем больше кратность корня.

Таким образом, метод Ньютона является быстрым только для простых корней, а для кратных корней он сходится медленно. Например, для получения десяти верных де- сятичных знаков нужно 3–4 итерации при p=1, более тридцати при p=2 и более двухсот при p=10.

Если же x0 выбран неудачно, то итерации (5)–(6) могут вообще не попасть в близ- кую окрестность корня, то есть не сойтись.

2*

(5)

Отметим, что для простого корня метод Ньютона сходится с той стороны от корня, где u(x)u″(x)>0; с противоположной стороны сначала происходит переброс на нужную сторону, а затем сходимость. Для p≥2 итерации монотонно сходятся с любой стороны корня; при этом безразлично, четно или нечетно p. Это легко видеть из графиков.

Определение кратности. Формулой (7) можно воспользоваться для определения кратности корня. Вблизи корня x* из (7) можно получить, что (xn+1xn)/(xnxn−1)≈q. Будем вычислять по тройкам соседних итераций следующие величины:

(8)

1 1

( ) / ( ), 1/ (1 ).

n n n n n n n

q = x +x xx p = −q

Если последовательность pn стремится к целому числу p, это и будет искомая кратность корня.

Этот алгоритм позволяет определить кратность корня, если итерации вошли в ма- лую окрестность корня. Заметим, что этот алгоритм указывает и на простой корень; при этом qn→0, pn→1.

Формула (8) определяет величину qn по трем соседним итерациям. В принципе можно определять qn по двум итерациям из соотношения

1/(1 )

1/ pn qn ,

n n n n

u + u =q =q

но это уравнение не разрешается явно относительно qn, так что применять его невыгод- но.

Уточнение по Эйткену. Для величин, сходящихся приблизительно как суммы геометрической прогрессии, Эйткен предложил алгоритм уточнения (см. в [5]). Величи- ны xn для кратных корней (p≥2) ведут себя указанным образом. Алгоритм Эйткена для них принимает следующий вид. Вычисляется величина

1 1 ( 1 ) / (1

n n n n n n),

x + =x + + x +x qq (9)

где qn берутся из (8). Формулами (8)–(9) можно пользоваться, если последовательность pn почти вышла на свой предел p (то есть на целое число).

Сходимость алгоритма (9) можно исследовать, подставляя разложение (3) в (4) и (8)–(9), при этом получается следующая оценка:

2 2 2

1 * 3 ( 1 *) ( *

( 1)

n p b n

n ).

x x x x q x

+ − ≈ − p ⋅ ⋅ + − ≈ −

x (10)

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

(6)

Напомним. что экстраполяцию можно использовать только в достаточно малой ок- рестности корня (однако слишком близко к корню ее надо использовать осторожно из-за ошибок округления). Заметим, что уточнением (9) и оценкой (10) можно пользоваться только для кратных корней (p≥2). Для простых корней (p=1) уточнение (9) непримени- мо: значение xn+1 может отстоять от корня гораздо дальше, чем xn+1.

Ошибки округления. Величины u(x) вычисляются с ошибками округления, зачас- тую составляющими довольно много последних двоичных разрядов мантиссы числа.

Наибольшая ошибка возникает при вычислении разности значений функции в знамена- теле (5).

В расчете это проявляется следующим образом. На начальных итерациях, до вхож- дения в малую окрестность корня, поведение последовательности pn нерегулярное. За- тем наблюдается быстрое стремление pn к целому числу p. Однако при дальнейшем уве- личении числа итераций наблюдается быстрая ″разболтка″ pn. Начало ″разболтки″ ука- зывает на опасное возрастание ошибок округления. При этом уже нельзя пользоваться уточнением (9). В этот момент целесообразно останавливать расчет.

При дальнейшем увеличении числа итераций значения xn+1 некоторое время еще стремятся к корню, далее начинают ″разбалтываться″. Остановка расчета по началу

″разболтка″ xn+1 была предложена Гарвиком (см. в [4]).

2.2. Обобщенный метод Ньютона. Основным недостатком метода Ньютона явля- ется то, что сходимость итераций гарантирована лишь в достаточно малой окрестности корня. При неудачном выборе x0 значения xn могут беспорядочно меняться, не попадая в окрестность сходимости.

Однако отношение u(x)/u′(x) указывает то направление, в котором |u(x)| возрастает.

Поэтому в [8] и других работах этих авторов было предложено следующее обобщение метода Ньютона. Формула (4) заменялась на

(11)

1 ( ) / ( ), 0 1.

n n n n n n

x + =x − τ u x u x′ < τ ≤

На первых итерациях вдали от корня значения τn выбираются небольшими, чтобы обес- печить убывание |u(x)|. В малой окрестности корня надо выбирать τn→1; при этом (11) переходит в метод Ньютона. Этот метод и особенно его обобщение на системы уравне- ний позволили решать ряд трудных прикладных задач.

Но эффективность метода (11) сильно зависит от конкретного выбора алгоритма для определения τn (разными авторами были предложены разные алгоритмы). Кроме то- го, согласно теореме из [6] никакой алгоритм не может обеспечить сходимость из любо- го нулевого приближения даже для многократно дифференцируемых u(x).

Приведем один удовлетворительный алгоритм. Возьмем сначала τn=1, то есть вы- полним чисто ньютоновский шаг; его результат обозначим через xn+1. Затем положим

(12)

2 2 2

{ ( ) / [ ( ) ( 1)]} .

n u xn u xn u xn+

τ = + 1/2

Значение (12) подставляют в (11) и вычисляют окончательное значение xn+1.

Поясним разумность данного алгоритма. Видно, что найденное τn∈(0,1). Если в ре-

(7)

зультате ньютоновского шага (предиктора) оказалось, что модуль u x( n+1) u x( )n , то τn≈1 и окончательный шаг близок к ньютоновскому. Если же u x( n+1) u x( n) , то нью- тоновский шаг плох и τn<<1.

Заметим, что если итерации пришли в малую окрестность корня, целесообразно выключать алгоритм (12) и полагать τn=1, то есть переходить на чисто ньютоновский процесс. С этого момента можно применять все формулы для определения кратности корня и ускорения сходимости, приведенные в п.2.1.

Приведем еще один простой алгоритм. Сначала в (11) положим τ=1 и вычислим xn+1. Если оказалось u2(xn+1)<u2(xn), то итерация считается выполненной. В противном случае уменьшаем τ в 2 раза, снова вычисляем xn+1 и повторяем сравнение, и т.д. Оче- видно, за конечное число делений пополам будет получен такой шаг τn, при котором u2(xn+1)<u2(xn). Такой вариант расчета удобен тем, что в малой окрестности корня он сам выключается: выбираются τn=1.

Заметим, что оба эти алгоритма выбора τn естественно переносятся на системы уравнений.

Непрерывный аналог. В [8] при выводе метода (11) исходили из непрерывных аналогов итерационных процессов, предложенных в [9]. Если τn→0, то (11) переходит в обыкновенное дифференциальное уравнение, точное решение которого легко находится:

( ( )), ( ( )) ( )0 t. du dx

u x t u x t u x e dx dt

⋅ = − = ⋅ (13)

Видно, что u(x(t))→0 при t→∞; значит, при этом x(t)→x*, то есть к корню уравнения (1).

Обобщенный метод Ньютона (11) можно рассматривать как явную схему Эйлера для дифференциального уравнения (13). На первый взгляд кажется, что если взять шаг τn<<1, сделать достаточно много шагов и достичь такого момента t, что exp(−t)<<1, то будет найден искомый корень уравнения. В таком случае сходимость обобщенного ме- тода Ньютона была бы гарантированной при выборе любого x0.

Однако это не всегда справедливо. Рассмотрим следующий пример, решаемый в элементарных функциях:

(14)

2 2 2 2 2 1/2

( ) , ( ) ( 0 ) t .

u x =x +a x t =⎡⎣ x +a ea

)

2 2

Уравнение (1) с функцией (14) не имеет вещественных корней, но имеет два комплекс- ных корня x*ia. При вещественном x0 траектория спуска (14) остается вещественной вплоть до достижения точки вещественного минимума со значениями

(15)

(

2, 0, ln 1 0 / .

m m m

u =a x = t = +x a

Это точка бифуркации. В ней вещественная траектория спуска расщепляется на две комплексные, которые стремятся к своим комплексным корням x* при t→∞. Однако формула обобщенного метода Ньютона (11) такова, что при вещественном x0 все итера-

(8)

ции xn+1 в данном примере остаются вещественными. Поэтому численный расчет будет требовать все более мелкого шага τn и дойдет лишь до вещественного минимума u(x), но не до корня.

Качественно аналогичной будет ситуация для функций u(x), имеющих веществен- ный корень и вещественный экстремум. Например, пусть u(x0)>0, u′(x0)>0, корень x* ле- жит левее точки x0, а между x* и x0 имеется положительный минимум u(x). Тогда веще- ственный спуск (13) пойдет от точки x0 в направлении корня, но дойдет лишь до точки минимума. Если продолжить траекторию в комплексную плоскость, то она уйдет к ком- плексному корню, но к вещественному корню пройти не сможет.

Отсюда видно, что ни обобщенный метод Ньютона [8], ни непрерывный аналог метода Ньютона [9] не обеспечивают сходимость при произвольных x0.

2.3. Метод секущих. В методе Ньютона на каждой итерации приходится для вари- анта (4) вычислять значения функции и производной, а в варианте (5) – три значения функции. Можно ограничиться одним вычислением функции, если аппроксимировать производную разностным отношением по точкам xn и xn−1, то есть заменить касательную секущей. Вместо (4) получаем формулу

(16)

1 ( 1) ( ) / [ ( ) (

n n n n n n n

x + =xxx u x u xu x 1)].

Объем вычислений на одной итерации здесь втрое меньше, чем в методе Ньютона. Ме- тод секущих двухшаговый, и для начала расчета надо задать две начальные точки x0 и x1.

Сходимость. В малой окрестности корня нетрудно исследовать сходимость итера- ций, подставляя разложение (3) в (16).

1°. Для простого корня (p=1) сходимость, в отличие от метода Ньютона, не являет- ся квадратичной. Она подчиняется степенному закону, показатель которого меньше 2 (см. [1–5]):

( )

1/

1 * *c, 5 1 2 1.632, c.

n n

x +xC xx c= + ≈ C b= (17)

Формально сходимость (17) медленней квадратичной. Однако фактически это не приво- дит к заметному увеличению числа итераций. Если xn уже вошло в область регулярной сходимости, то для получения 16 верных значащих цифр требуется 5–6 итераций, в то время как в методе Ньютона будет 3–4 итерации. Такая разница несущественна на быст- родействующих компьютерах (тем более, что основное количество итераций требуется для попадания в окрестность сходимости).

2°. Для кратного корня (p≥2) сходимость оказывается линейной, как и в методе Ньютона (7), но с другим знаменателем q. Новый знаменатель определяется из решения уравнения

(18) (q+1)qp1=1.

Для решения уравнения (18) удалось найти хорошее приближенное выражение

(9)

4 ( 1) (ln 4 1)2 (ln 4 1) (2 ).

q≈⎡⎢⎣ p p− + − − − ⎤ p

⎥⎦ (19)

Она получается из того факта, что величина μ(p)=[1−p(1−q2)]/q оказалась почти посто- янной величиной. Приравнивая её значению μ(∞)=ln4−1 и решая полученное квадратное уравнение для q, получаем (19).

В табл.1 для различных p приведены точные и приближенные значения знаменате- лей q, а также знаменателей метода Ньютона (7). Отметим любопытный факт: хотя при- ближение (19) строилось для кратных корней, оно дает правильный результат и для про- стого корня.

Из табл.1 видно, что знаменатели метода секущих тоже лежат в пределах 0<q<1, но они несколько ближе к 1, чем в методе Ньютона. Поэтому для кратных корней метод се- кущих также сходится несколько медленней, чем метод Ньютона.

Однако одна итерация метода секущих втрое дешевле ньютоновской итерации.

Поэтому трудоемкость метода секущих примерно вдвое меньше, чем метода Ньютона.

Таблица 1. Знаменатели линейной сходимости q.

Секущих Сим.

сек.

Сим.

пар.

Метод p

Ньютона (7)

Точн.

(18)

Прибл.

(19)

μ (23) (26) 1 0.0000 0.0000 0.0000 0.0000 0.0000 2 0.5000 0.6180 0.6171 0.3821 0.5000 0.3789 3 0.6667 0.7549 0.7546 0.3847 0.680 0.6255 4 0.7500 0.8192 0.8191 0.3853 0.7704 0.7214 5 0.8000 0.8567 0.8566 0.3856 0.8181 0.7778 6 0.8333 0.8813 0.8812 0.3858 0.8493 0.8152 7 0.8571 0.8987 0.8986 0.3859 0.8713 0.8415 8 0.8750 0.9116 0.9116 0.3860 0.8878 0.8615 9 0.8889 0.9216 0.9216 0.3861 0.9005 0.8768 10 0.9000 0.9296 0.9296 0.3862 0.9106 0.8891

1.0000 1.0000 1.0000 0.3863 1.0000 1.0000 Определение кратности. Кратность корня можно выразить через знаменатель ли- нейной сходимости из формулы (18)

1 ln(1 ) / ln .

p= − +q q (20)

Определим расчетное значение qn по трем последовательным итерациям аналогично ме- тоду Ньютона (8). В отличие от метода Ньютона для метода секущих можно построить явно разрешимое относительно qn выражение всего по двум итерациям:

/ ( 1 ).

n n n n

q =u u u

Подставляя это значение в (20), получим расчетное значение pn. В области регулярной сходимости, то есть вблизи корня, значения расчетного знаменателя лежат в пределах 0<qn<1. Подстановка этих значений в (20) дает 1<pn<+∞. Если последовательность pn

стремится к целому числу p, это число и будет кратностью корня.

(10)

Описанный алгоритм применим не только для кратного корня, но и для простого.

В самом деле, для простого корня сходимость (17) быстрей линейной, так что вблизи корня |xn+1xn|<<|xnxn−1|. Тогда qn≈0, а pn≈1. Поэтому предложенный алгоритм единооб- разно применяется при любой кратности корня.

Уточнение по Эйткену. Для кратных корней (p≥2) уточненное значение xn+1 вы- числяется точно по тем же формулам (8)–(9), что и в методе Ньютона. Оценка погреш- ности также похожа на (10), однако имеет некоторые отличия:

2 2

1 * 2 ( 1 *) ( *

( 1)

n b n

n ).

x x x x q

p q

+ − ≈ − ⋅ + − ≈ −

− ⋅ x x (21)

Значение q в формуле (21) берется не ньютоновское, а соответствующее методу секущих (18)–(19). Коэффициент перед (xn+1x*)2 также несколько другой, причем в него входит нулевое приближение x0. Однако по-прежнему погрешность экстраполированного зна- чения много меньше, чем погрешность неэкстраполированного значения, а сами экстра- полированные значения сходятся линейно со знаменателем q2, то есть вдвое быстрей не- экстраполированных. Как и в методе Ньютона, уточнение по Эйткену и оценку его точ- ности (21) можно использовать только для кратных корней (p≥2). Для простого корня (p=1) оценка (21) не верна, а значение xn+1 имеет худшую точность, чем xn+1.

Ошибки округления. Они здесь качественно проявляются точно так же, как и в ме- тоде Ньютона. Количественно они примерно таковы, как в методе Ньютона с разност- ным вычислением производной (5).

2.3. Симметризованные методы. Метод секущих можно рассматривать как при- ближение к методу Ньютона, в котором касательная заменена односторонней разностью.

Это уменьшает трудоемкость одной итерации так как требует одного вычисления функ- ции за шаг вместо 3-х в (5). Однако это несколько ухудшает сходимость. Рассмотрим методы с симметричной разностью для производных, в которых для экономии вычисле- ний используется значение xn−1. Для этого возьмем следующие 3 точки и значения функ- ции в них:

(22)

1 1 1 1

1 1 1

, , ( ) 2 ;

( ), ( ), ( ).

n n n n n n n n

n n n n n n

x x x x x x x x

u u x u u x u u x

+

+

= + − ≡ −

= = = +1

1

Поскольку un−1 вычислено на предыдущей итерации, на новой итерации надо вычислить только 2 значения un, un+1.

Симметризованные секущие. Точки xn1,xn+ равноудалены от точки xn. Беря по ним первую производную, получим аналог разностного метода Ньютона (5), где вместо шага h берется величина xnxn1

1 1 1 1

/ , ( ) / ( ).

n n n n n 2 n n n n

x + =xu uu′ ≡ u +u xx 1 Симметризованный метод секущих является двухшаговым.

(23)

(11)

Можно показать, что процесс (23) сходится квадратично в окрестности простого орня

). Для кратных корней зависимость знаме-

ения примерно такая же, как ля м

ные параболы. Метод Ньютона основан на разложении u(x) вбли- ко

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

Отметим один недостаток алгоритма (23

нателя линейной сходимости q(p) гораздо более сложна, чем в методе секущих. Здесь не удалось найти простого способа определения кратности корней в ходе расчета. Лишь для простого и двукратного корней легко установить кратность по пределу последова- тельности pn=1/(1−qn), где qn – расчетный знаменатель (8).

Чувствительность алгоритма (23) к ошибкам округл д етода секущих.

Симметризован

зи рня, причем в разложении учитывается слагаемое с первой производной. Можно учесть в разложении еще слагаемые со второй производной, то есть истинную кривую заменить параболой. Все производные заменим симметризованными разностями по точ- кам (22). Тогда получим двухшаговый алгоритм:

2 2

1 1 1 1

1 ( ) ( ) 0, ( 2 ) / ( ) ;

2u xn′′ n+xn +u xnn+xn +un = un′′ = un+un+un xnxn1 (24) производная берется из (23). Для величины xn+1xn приходится решать квадратное

к

) внешне напоминает трехшаговый метод парабол, описанный в

парабол к ошибкам округления

комплексных величин при вычислении можно избавиться, немного un

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

Алгоритм (24

учебниках [1–5]. Однако по свойствам симметризованный метод парабол существенно отличается от классического. Можно доказать, что алгоритм (24) имеет кубическую схо- димость в окрестности простого корня (p=1), квадратичную вблизи двукратного корня и линейную при p≥3. Правда, такая улучшенная сходимость на практике почти бесполез- на. Она проявляется лишь в малой окрестности корня, когда для получения всех верных (представимых на компьютере) знаков числа осталось сделать 3–5 итераций. Вдали же от корня сходимость алгоритма (24) не лучше других.

Чувствительность симметризованного метода

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

От появления

видоизменив алгоритм (24). Заменим в первом слагаемом множитель xn+1xn или его квадрат ньютоновским приближением (4). Получим два варианта алгоритма

( )

2

1 1

/ 1 / ( )

n n n n 2 n n n

x +x = − u u′ ⎡⎢⎣ − u u′′ u′ ⎤⎥

⎦ (25)

или

( )

2

1 1

/ 1 / ( )

n n n n 2 n n n

x +x = − u u′ ⋅ +⎡⎢⎣ u u′′ u′ ⎤⎥⎦. (26)

(12)

Формула не требует явного вычисления производ-

н кова же, как у (24).

(25) близка к методу Halley [10], но ых. Скорость сходимости этих алгоритмов та

и в них имели разные аки

ущих или парабол. Однако последние

становятся линейны- и, п

итания близких значений функ- ии н

2.4. Метод бисекций. Этот двухшаговый метод требует задания двух начальных точек x1, x2. Точки должны быть такими, чтобы значения функци

зн . В этом случае на отрезке [x1, x2] лежит по меньшей мере один корень уравнения (1). Итерация заключается в том, что находят середину отрезка x3=(x1+x2)/2, вычисляют u(x3) и выбирают ту из половин отрезка, на концах которой значения функции имеют разные знаки. Таким образом, за одну итерацию длина отрезка уменьшается вдвое, то есть сходимость линейна со знаменателем q=0.5.

В учебниках традиционно считают такую сходимость медленной и на этом основа- нии отдают предпочтение методам Ньютона, сек

методы быстро сходятся лишь в окрестности простого корня.

Для кратных корней ситуация меняется. Бисекции сходятся по-прежнему линейно с q=0.5, а сходимости методов Ньютона, секущих и парабол также

м ричем с худшими знаменателями: для корней высокой кратности их знаменатели близки к 1. Для уменьшения начального отрезка в 1015 раз всегда требуется 50 бисекций, а для ″быстрых″ методов число итераций может достигать сотен (это будет показано в р.4). В этой ситуации метод бисекций (требующий лишь одного вычисления функции за итерацию), становится более быстрым и экономичным.

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

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

Отметим, что при делении отрезка можно дойти до такой итерации, когда величи- ны xn1 и xn отличаются последним двоичным разрядом мантиссы. Середина такого от-

езка

я бессмы

x*, но точность еще невы- ока

(27) то несколько грубее

. Беря 2 точки i j

р x3 из-за ошибок округления совпадает с одним из концов, то есть дальнейшие де- лени сленны. Поэтому число бисекций в программе надо ограничивать; для 64- разрядных чисел оно не должно превышать ∼50–55 итераций.

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

Пусть итерации уже попали в небольшую окрестность корня

с (эта ситуация легко опознается по величине оставшегося отрезка, а также малости значений u(x) на обоих его концах). Запомним несколько таких значений xi, ui=u(x). По- скольку окрестность корня мала, можно считать, что

( *) ;p

i i

ua xx

э , чем (3). Здесь a и p неизвестны, а x* вычисляется при сходимости итераций x и x, исключаем a и находим кратность:

ln ui ln xi x* .

p≈ −

*

j j

u xx (28)

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

(13)

Точность описанного способа ухудшается с увеличением кратности по следующим ричинам. Вместо неизвестн

ближенное значение

п ого точного значения x* надо подставлять в (27) – (28) при- x*; оно вычисляется с тем меньшей точностью, чем выше крат- - ия п

чные. Можно предложить некоторые эв- ьный отрезок [x1, x2], задан- тать, но они в

й уравнения (1), если поставить задачу

2]. Внутри ставят две точки

ность корня. Значение xi нельзя брать слишком близко к корню, чтобы ошибки округле н ри вычислении ui были невелики; но тогда соотношение (27) будет не очень хоро- шим из-за примеси следующего члена ряда (3).

Основные недостатки метода бисекций следующие.

1°. Метод в принципе не позволяет найти корни четной кратности.

2°. Для корней нечетной кратности не всегда удается найти такой начальный отре- зок [x1, x2], на концах которого знаки u(xi) разли

ристические алгоритмы, расширяющие или сужающие начал

ный пользователем программы. Такие алгоритмы могут неплохо рабо принципе не могут быть безотказыми.

Однако в целом для корней нечетной кратности метод бисекций является конку- рентоспособным.

2.5. Золотое сечение применяют для нахождения минимума функции. Этот метод можно применять к нахождению корне

2( ) min,

u x = (29)

а из найденных минимумов выбирать лишь те, в которых u(x)=0.

Напомним, что в этом методе необходимо задать начальный отрезок [x1, x

него x3 и x4, делящие начальный отрезок на три отрезка в отношениях : 1 2 : 2 / (3 5) 0.382.

ξ − ξ ξ = + ≈ (30)

и таковы, что оставшаяся внутренняя

ем той же пропорции. Поэтому на каж

ии. Эти вычисленные или запомненные зна- ения

2°. Если из-за ошибок округления соотношение u(x3) и u(x4) определено непра- Вычисляют значения u(x3), u(x4); откидывают тот крайний отрезок, который прилегает к большему из этих двух значений. Такие итерации повторяются. При этом пропорци

(30) точка уменьшенного отрезка удовлетворяет на

н дой новой итерации надо вычислять только одну

точку в одно значение функции, то есть процесс столь же экономичен, сколь и бисекции.

Процесс сходится линейно со знаменателем q=(1−ξ)≈0.618. Это в 1.5 раза медлен- нее, чем для метода бисекций. Зато метод золотого сечения, в отличие от метода бисек- ций, применим к корням любой кратности.

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

1°. При очередном делении отрезка только одна из двух точек x3, x4 вычисляется;

вторая запоминается с предыдущей итерац

ч содержат ошибки округления. На далеких итерациях величина (x4x3)→0, а ошиб- ки превышают её, и порядок расположения точек становится неправильным (рис.1). По- этому надо ограничивать число итераций; для 64-разрядного компьютера оно не должно превышать ≈100.

(14)

вильно, то будет отброшена не та часть отрезка [x1, x2]. С этой итерации процесс пойдет по неверному пути. Этот эффект проявляется раньше, чем неправильное определение знака в методе бисекций.

Рис.1. Золотое сечение; пропорции деления отрезка на 64-разрядном компьютере;

k – номер итерации.

Дадим хороший критерий для определения этой ошибки. Вблизи минимума долж- ны выполняться следующие соотношения для наклонов участков:

3 1 4 3 2 4

4 3 2 4

u u u u u u .

3 1

xx (31)

ольшой окрестности корня.

Кратность корня в этом

ций. Напишем формулу с учетом того, что итерации могут сойтись к минимуму x , в ко-

2 (32)

о точек xi, ui в окрестности минимума; по ка- ждой паре точек исключаем a и находим кратность корня:

x x x x

− − −

− ≤ −

Нарушение любого из этих неравенств (31) показывает, что расчет надо прекращать. Ра- зумеется, включать проверку этого критерия можно лишь в неб

методе можно определить по аналогии с методом бисек- тором u*u(x*)≠0. Тогда вблизи минимума *

2 2

u ( )xu* +a x x( − *) .p

Величины x*, u* берутся по результатам сошедшихся итераций. Величины a, p являются неизвестными. Опять запоминаем нескольк

2 2

* *

2 2

* *

2 ln ln .

j j

p ui u xi x

x x u u

⎜ ⎟

≈ ⎜⎝ − ⎟⎠ −

(33) Эти соотношения являются приближенными по тем же при

⎛ − ⎞ −

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

Недостаток метода состоит

то есть к решению задачи (29), не являющемуся корнем уравнения (1). В этом случае в том, что он может сойтись к ненулевому минимуму,

Referências

Documentos relacionados

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