Методы вычисления минимума функции одной переменной
Метод последовательного перебора
Суть метода показана на рис. 1.65. В качестве начальных данных метода задаётся начальное приближение корня x0 и начальный шаг перебора h. Из точки начального приближения осуществляется с шагом h перебор значений в сторону уменьшения функции до тех пор, пока очередное значение функции не станет больше предыдущего значения. На этом этапе выполняется уменьшение шага h, например в 4 раза, с изменением его знака:
h = –h / 4
Далее процедура перебора выполняется с новым шагом h и так далее до тех пор, пока значение h не станет меньше заданной погрешности. Минимальное значение будет соответствовать последнему х в переборе.
Рис. 1.65. Суть метода последовательного перебора
Метод деления отрезком пополам
Суть метода показана на рис. 1.66. В качестве начальных данных метода задается отрезок [a,b], внутри которого расположен минимум. Отрезок [a,b] точкой с делится пополам:
с = (a + b) / 2
Вычисляются значения функции f(с – e) и f(с + ε), где ε — заданная погрешность. В зависимости от соотношения этих значений отрезок [a,b] сужается до половинного значения. Если f(с – e) < f(с + ε), то полагается b = с + ε. Если f(с – e) > f(с + ε), то отрезок сужается до а = с – e. Для получившегося отрезка [a,b] вновь находится точка с и процесс продолжается до тех пор, пока b – a не окажется меньше погрешности e. Минимум функции будет в точке с = (a + b) / 2.
Недостатком метода является то, что при сужении отрезка [a,b] в два раза функцию надо вычислять тоже два раза в точках f(с – e) и f(с + ε). От этого недостатка избавлен метод золотого сечения
Рис. 1.66.Суть метода деления отрезка пополам
Метод золотого сечения
Суть метода показана на рис. 1.67. В качестве начальных точек задается отрезок [a,b], внутри которого расположен минимум. Отрезок [a,b] делится по правилу золотого сечения на три отрезка:
с = a + q, d = b – q,
где: q = 2 / (3 + 51/2) * (b – a).
Далее, как и в методе деления отрезка пополам, проверяется значения f(c) и f(d). Если f(c) < f(d), то отрезок [a,b] сужается переносом в точку b = d. При этом полагается d = c и образуется новая точка c = a + q. Если f(c) > f(d), то отрезок [a,b] сужается переносом а в точку a = c. При этом полагается c = d и образуется новая точка d = b - q. При каждом сужении отрезка [a,b] для работы метода функцию надо вычислять только один раз. Это самый эффективный метод из всех приведенных при условии, что известен отрезок [a,b] с минимумом.
Рис. 1.67. Суть метода золотого сечения
Методы вычисления корня функции одной переменной
Метод простой итерации
В методе уравнение f(x) = 0 сводится к уравнению
x = x + f(x) (1)
В качестве начального приближения задается значение x0. Далее по формуле (1) вычисляется новое значение x1. Если |x1 – x0|>E (E —заданная погрешность), то полагается x0 = x1 и опять по формуле (1) вычисляется x1. Процесс продолжается до тех пор пока |x1 – x0| не станет меньше заданной погрешности E. Корень уравнения при этом в x1.
Недостатком метода является его плохая сходимость при произвольной функции f(x). Очень часто метод вообще не сходится к корню.