- •Глава 8. Численные методы Решения нелинейных уравнений
- •8.1.Корни нелинейного уравнения. Виды нелинейных уравнений и методы их решения
- •8.2.Типовая последовательность действий при численном решении нелинейных уравнений. Локализация корней
- •8.2.1. Локализация корней при помощи сканирования с постоянным шагом
- •8.2.2. Метод локализации корней с использованием стационарных точек
- •8.3. Уточнение корней уравнения на доверительном отрезке. Метод половинного деления
- •8.3.1. Метод половинного деления уточнения корней на доверительном отрезке
- •8.4. Метод хорд
- •8.5. Уточнение корней уравнения в окрестности начального приближения. Сканирование с переменным шагом
- •8.5.1. Сканирование с переменным шагом
- •8.6. Метод простой итерации
- •Геометрический смысл метода простой итерации.
- •8.7. Метод Ньютона (метод касательных)
8.5. Уточнение корней уравнения в окрестности начального приближения. Сканирование с переменным шагом
В отличие от уточнения корня на доверительном отрезке, в данном случае исходными данными помимо функции f(x) и необходимой точности решения является только одна начальная приближенная точка x0, достаточно близкая к искомому корню уравнения x*. Требуется построить последовательность приближенных решений {xi} (i=1,2,...), сходящуюся к точному корню уравнения x*, который будет ближайшим к начальному приближению x0. Корень x* будет ближайшим к x0 сверху, если функция f(x)>0 и убывает в точке x0, и, наоборот, если функция f(x)<0 и возрастает в точке x0. В других случаях искомый корень x* будет ближайшим к x0 снизу.
Наиболее распространенными методами уточнения корней в окрестности начального приближения являются:
1) сканирование с переменным шагом,
2) метод простой итерации,
3) метод Ньютона (метод касательных).
У метода 1) сканирования с переменным шагом точность определения корня задается длиной итогового доверительного отрезка . У методов простой итерации (2) и касательных (3) условием завершение итерационного процесса является, как и в методе хорд, уменьшение величины приращения значения приближенных значений корня до заданной предельной величины : | xi - xi - 1| < .
Методы 1) сканирования с переменным шагом и 2) простой итерации имеют нулевой порядок - в них используется только расчет значений целевой функции f(x). Метод касательных 3) имеет первый порядок, поскольку использует также первую производную f (x).
8.5.1. Сканирование с переменным шагом
Поиск корня в окрестности приближенной точки x0 по методу сканирования с переменным шагом заключается в начальном просмотре (сканировании на первой итерации) значений функции f(x) в направлении точного значения корня x* с крупным шагом h1 в результате которого определяется доверительный отрезок [a1,b1] длины h1, внутри которого находится x*. Затем шаг сканирования уменьшается в заранее заданное число раз k (k>1) и просмотр значений функции f(x) производится, начиная с последней точки, в обратном направлении (h2:= -h1/k) с определением доверительного отрезка [a2,b2] сокращенной длины h2. Процесс уменьшения и смены направления сканирования (hi:= -hi-1/k) продолжается до тех пор, пока корень x* не будет локализован на доверительном отрезке длины (bi - ai) = hi, не превышающей заданной точности . Длина шага на последней итерации равна модулю hi= h0/ki-1 .
Начальное значение шага сканирования h1 и коэффициент сокращения шага k для максимального сокращения вычислений функции f(x) должны быть приняты по возможности достаточно большими, но, в то же время, таким, чтобы не допустить при сканировании пропуска рядом расположенной пары корней функции или слияния трех близко расположенных корней в одно решение. Очевидно, в общем случае величины h1 и k должны выбираться с учетом особенностей функции f(x) и необходимой точности решения .
После задания h1 и k выполнение метода не учитывает особенности функции f(x). Как и в методе половинного деления, при случайном попадании в корень имеется возможность неправильного определения знака функции f(x) в очередном узле при малом значении f(x) и потери соответствующего корня. Поэтому для корректной работы метода во всех случаях необходимо учитывать точность f расчета функции f(x) и производить проверку f(xi)< f, как и в методе половинного деления.
С учетом вышесказанного полная постановка задачи уточнения корня по методу сканирования с переменным шагом должна содержать следующие исходные данные:
1) начальное приближение корня x0,
2) необходимую точность определения корня ,
3) точность f расчета функции f(x),
4) начальное значение шага сканирования h1,
5) коэффициент сокращения шага k.
Зависимость hi= h1/ki-1 ≤ может быть использована для задания связи между параметрами задачи (h1,k,i). Например, при заданном коэффициенте k и числе итераций i длину начального шага h1на первой итерации можно задать равной h1=ki-1.
Корректная расширенная постановка задачи с учетом возможного попадания в корень означает численное определение: 1) либо нового итогового доверительного отрезка [,] длины, не превышающей (8.5а), 2) либо приближенного значения корня xпр, у которого f(xi)< f (8.5б).
С учетом расширенной постановки задачи уточнения корня (8.5а)-(8.5б) численный алгоритм ее решения на каждой итерации i при известном последнем расчетном узле сi-1 - одной из крайних точек доверительного отрезка [ai-1,bi-1] и значении шага hi-1 (hi-1>) на предыдущей итерации (i -1) должен вначале содержать расчет длины и направления шага hi-1 на текущей итерации i: hi:= -hi-1/k. Затем производится расчет значений функции в узлах вида di,j = сi-1 + j hi: (j = 1,2,...), в каждом узле di,j производятся проверки условий:
а) f(di,j)≤ f - если оно выполнено, то имеет место попадание в корень, di,j принимаем в качестве его искомого уточненного значения и выходим из алгоритма,
б) иначе проверяем условие постоянства знака функции на последнем расчетном шаге f(di,j)f(di,(j-1)) >0 - если оно выполнено, продолжаем проход по узлам,
в) иначе (f(di,j)f(di,(j-1))<0) проверяем условие окончания работы алгоритма hi ≤ , если оно выполнено, отрезок [di,(j-1), dij] принимаем в качестве искомого итогового доверительного отрезка и выходим из алгоритма, иначе принимаем сi:= di,j и переходим к выполнению следующей итерации.
В качестве искомого решения принимаем последний доверительный отрезок [di,(j-1), dij] или приближенное узловое значение di,j, если произошло попадание в корень.
При учете погрешности расчета значений функции метод сходится всегда, поскольку после выполнения каждой итерации i точное значение корня x* удерживается на доверительном отрезке [ai,bi] уменьшающейся длины. Скорость сходимости невысока из-за переборного характера применяемого алгоритма поиска уточнения.
Пример 1. Уточнить по методу сканирования с переменным шагом корень уравнения f(x) = x3 - 6х + 2 = 0 из примера 1 п.8.2 с точностью = 0,01 в окрестности приближенного значения x0 = 3. Точность вычисления функции f = 0,0001.
Решение. Примем коэффициент сокращения шага k=10, число итераций i=2. Тогда из зависимости hi= h1/ki ≤ получим, что длина начального шага h1на первой итерации может быть принята равной h1=ki-1 = 0,0110 = 0,1.
Так как f(3) = 11 > 0, то знак h0 должен быть выбран в направлении убывания функции (приближения ее к нулю). Пробные расчеты дают: f(3 - 0,1) = (2,9)3 - 6(2,9) + 2 = 8,989 <11 = f(3), f(3 + 0,1) = (3,1)3 - 6(3,1) + 2 = 13,191>11. Поэтому задаем: h1 = - 0,1.
Итерация 1. С учетом найденного значения f(2,9) = 8,989 >0 продолжаем вычисления значений функции до получения отрицательной величины (или попадания в корень с точностью f):
f(2,8) = 7,152>0; f(2,7) = 5,483>0; f(2,6) = 3,976>0; f(2,5) = 2,625>0; f(2,4)=1,424>0; f(2,3) = 0,367>0; f(2,2) = -0,552<0.
Так как во всех точках f(di,j) >f и h1 = 0,1>, то принимаем сi:= 2,2 и переходим к следующей итерации.
Итерация 2. Принимаем: h2 = - h1/10 = 0,01. С учетом f(2,2)<0 вычисляем значения функции с шагом h2 до получения положительной величины (или попадания в корень с точностью f):
f(2,21) = -0,4661<0; f(2,22)= -0,379>0; f(2,23)= -0,2904<0; f(2,24)= -0,2006<0; f(2,25) = -0,1094<0; f(2,26) = -0,0168<0; f(2,27) = 0,0771>0.
Так как во всех точках f(di,j) >f , то после смены знака функции проверяем длину полученного доверительного интервала. Так как h1 = 0,01=, то в качестве решения принимаем последний доверительный отрезок [2,26; 2,27].
Как видно из примера, метод не оптимален по числу вычислений функции - на поиск решения потрачено: 2 пробных расчета, 7 расчетов на итерации 1 и 7 расчетов на итерации 2 - всего 16 расчетов значения функции, что значительно превышает даже число расчетов в методе половинного деления.
Достоинствами метода является его простота и гарантированная сходимость к искомому корню для любой непрерывной функции, в том числе недифференцируемой на начальном доверительном отрезке.
Вопросы для проверки знаний.
1. Чем отличается уточнение корня в окрестности приближенной точки от уточнения на доверительном отрезке ?
2. Какие методы уточнения корней в окрестности начального приближения являются наиболее употребительными ?
3. Как задают точность решения в методах уточнения корней в окрестности начального приближения ?
4. Какой порядок имеют методы уточнения корней в окрестности начального приближения ?
5. В чем заключается основная идея уточнения корня в окрестности начального приближения при помощи метода сканирования с переменным шагом ?
6. Почему при корректной реализации метода сканирования с переменным шагом необходимо учитывать возможность попадания в корень?
7. Какой полный набор исходных данных должна содержать полная постановка задачи уточнения корня в окрестности начального приближения при помощи метода сканирования с переменным шагом ?
8. В каком виде может быть получено решение задачи уточнения корня в окрестности начального приближения при помощи метода сканирования с переменным шагом ?
9. Каковы достоинства и недостатки метода уточнения корня в окрестности начального приближения при помощи сканирования с переменным шагом ?
Практические задания.
1. Уточнить по методу сканирования с переменным шагом корень уравнения f(x) = x4 - х - 14 = 0 с точностью = 0,2 на отрезке [1,5;3].
2. Отделить положительный корень уравнения f(x) = x3 - 0,2 x2 - 0,2 х - 1,2 = 0 и уточнить его с точностью = 0,05.