Метод секущего
В численном анализе метод секущего представляет собой алгоритм поиска корня , который использует последовательность корней секущих линий для лучшего приближения корня функции f . Метод секущих можно рассматривать как конечно-разностную аппроксимацию метода Ньютона . Однако метод секущих предшествует методу Ньютона более чем на 3000 лет. [1]
Метод
[ редактировать ]Для нахождения нуля функции f метод секущего определяется рекуррентным соотношением .
Как видно из этой формулы, два начальных значения x 0 и x 1 требуются . В идеале их следует выбирать близкими к желаемому нулю.
Вывод метода
[ редактировать ]Начиная с начальных значений x 0 и x 1 , строим линию через точки ( x 0 , f ( x 0 )) и ( x 1 , f ( x 1 )) , как показано на рисунке выше. В форме наклона-пересечения уравнение этой линии имеет вид
Корень этой линейной функции, то есть значение x такое, что y = 0, равен
Затем мы используем это новое значение x как x 2 и повторяем процесс, используя x 1 и x 2 вместо x 0 и x 1 . Мы продолжаем этот процесс, решая для x 3 , x 4 и т. д., пока не достигнем достаточно высокого уровня точности (достаточно небольшой разницы между x n и x n −1 ):
Конвергенция
[ редактировать ]Итерации метода секущих сходятся к корню если начальные значения и находятся достаточно близко к корню. Порядок сходимости , где
это золотое сечение . В частности, сходимость суперлинейная, но не совсем квадратичная .
Этот результат справедлив только при некоторых технических условиях, а именно, что быть дважды непрерывно дифференцируемым, а рассматриваемый корень — простым (т. е. с кратностью 1).
Если начальные значения недостаточно близки к корню, нет никакой гарантии, что метод секущего сходится. Общего определения понятия «достаточно близко» не существует, но критерий связан с тем, насколько «волнистой» является функция на интервале. . Например, если дифференцируема на этом интервале и существует точка, в которой на интервале, то алгоритм может не сходиться.
Сравнение с другими методами поиска корней
[ редактировать ]Метод секущего не требует, чтобы корень оставался в квадратных скобках, как это делает метод деления пополам , и, следовательно, он не всегда сходится. Метод ложного положения (или regula falsi ) использует ту же формулу, что и метод секущего. Однако здесь не применяется формула и , как и метод секущей, но и на последней итерации такой, что и иметь другой знак. Это означает, что метод ложного положения всегда сходится; однако только с линейным порядком сходимости. Брекетинг со сверхлинейным порядком сходимости в качестве метода секущей может быть достигнут с помощью улучшений метода ложного положения (см. Regula falsi § Улучшения в regula falsi ), таких как метод ITP или метод Иллинойса .
Рекуррентную формулу метода секущего можно вывести из формулы метода Ньютона.
используя конечно-разностное приближение, для небольшого :
Метод секущих можно интерпретировать как метод, в котором производная заменяется приближением, и, таким образом, является квазиньютоновским методом .
Если мы сравним метод Ньютона с методом секущих, то увидим, что метод Ньютона сходится быстрее (порядок 2 против φ ≈ 1,6). Однако метод Ньютона требует оценки обоих и его производная на каждом шаге, тогда как метод секущих требует лишь оценки . Следовательно, на практике метод секущей иногда может оказаться быстрее. Например, если мы предположим, что оценка занимает столько же времени, сколько и вычисление ее производной, и мы пренебрегаем всеми остальными затратами, мы можем выполнить два шага метода секущего (уменьшив логарифм ошибки в φ раз). 2 ≈ 2,6) за ту же стоимость, что и один шаг метода Ньютона (уменьшение логарифма ошибки в 2 раза), поэтому метод секущего быстрее. Однако если мы рассмотрим параллельную обработку для вычисления производной, метод Ньютона докажет свою ценность, поскольку он быстрее по времени, хотя и требует больше шагов.
Обобщение
[ редактировать ]Метод Бройдена представляет собой обобщение метода секущего на более чем одно измерение.
На следующем графике функция f показана красным цветом, а последняя секущая линия — жирным синим цветом. На графике точка пересечения секущей линии по оси x кажется хорошим приближением корня f .
Вычислительный пример
[ редактировать ]Ниже метод секущей реализован на языке программирования Python .
Затем он применяется для нахождения корня функции f ( x ) = x 2 − 612 с начальными баллами и
def secant_method(f, x0, x1, iterations): """Return the root calculated using the secant method.""" for i in range(iterations): x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0)) x0, x1 = x1, x2 # Apply a stopping criterion here (see below) return x2def f_example(x): return x ** 2 - 612root = secant_method(f_example, 10, 30, 5)print(f"Root: {root}") # Root: 24.738633748750722
Очень важно иметь хороший критерий остановки, указанный выше, иначе из-за ограниченной числовой точности чисел с плавающей запятой алгоритм может возвращать неточные результаты при выполнении слишком большого количества итераций. Например, приведенный выше цикл может остановиться, когда сначала будет достигнуто одно из следующих значений: abs(x0 - x1) < tol, или abs(x0/x1-1) < tol, или abs(f(x1)) < tol. [2]
Примечания
[ редактировать ]- ^ Папаконстантину, Джоанна; Тапиа, Ричард (2013). «Происхождение и эволюция метода секущих в одном измерении» . Американский математический ежемесячник . 120 (6): 500–518. doi : 10.4169/amer.math.monthly.120.06.500 . JSTOR 10.4169/amer.math.monthly.120.06.500 . S2CID 17645996 – через JSTOR.
- ^ «УЧЕБНИК MATLAB для первого курса. Часть 1.3: Методы секущих» .
См. также
[ редактировать ]Ссылки
[ редактировать ]- Авриэль, Мордехай (1976). Нелинейное программирование: анализ и методы . Прентис Холл. стр. 220–221. ISBN 0-13-623603-0 .
- Аллен, Майрон Б.; Исааксон, Эли Л. (1998). Численный анализ для прикладной науки . Джон Уайли и сыновья . стр. 188–195. ISBN 978-0-471-55266-6 .
Внешние ссылки
[ редактировать ]- Примечания к методу секущих , PPT, Mathcad, Maple, Mathematica, Matlab в Институте целостных численных методов
- Вайсштейн, Эрик В. «Метод секущих» . Математический мир .