метод ИТП
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В численном анализе метод ITP , сокращение от Interpolate Truncate и Project , является первым алгоритмом поиска корня , который достигает суперлинейной сходимости метода секущего. [1] сохраняя при этом оптимальную [2] наихудшая производительность метода пополам . [3] Это также первый метод с гарантированной средней производительностью, строго лучшей, чем метод деления пополам при любом непрерывном распределении. [3] На практике он работает лучше, чем традиционные стратегии, основанные на интерполяции и гибридных методах ( метод Брента , Риддерс , Иллинойс ), поскольку он не только сходится суперлинейно по функциям с хорошим поведением, но также гарантирует высокую производительность при функциях с плохим поведением, где интерполяция терпит неудачу. [3]
Метод ITP следует той же структуре стандартных стратегий брекетинга, которая отслеживает верхнюю и нижнюю границы местоположения корня; но он также отслеживает область, в которой производительность в худшем случае находится на верхнем уровне. В качестве стратегии брекетинга на каждой итерации ITP запрашивает значение функции в одной точке и отбрасывает часть интервала между двумя точками, где значение функции имеет один и тот же знак. Запрашиваемая точка вычисляется в три этапа: она интерполирует поиск оценки regula falsi , затем искажает/усекает оценку (аналогично Regula falsi § Улучшения в regula falsi ), а затем проецирует искаженную оценку на интервал в окрестности биссектрисы. середина. Окрестность точки биссектрисы вычисляется на каждой итерации, чтобы гарантировать минмакс-оптимальность (теорема 2.1 из [3] ). Метод зависит от трех гиперпараметров и где это золотое сечение : первые два управляют размером усечения, а третья — это слабая переменная, которая управляет размером интервала для шага проецирования. [а]
Проблема с поиском корня
[ редактировать ]Учитывая непрерывную функцию определено из к такой, что , где ценой одного запроса можно получить доступ к значениям по любому заданному . И, учитывая заранее заданную целевую точность Алгоритм поиска корня предназначен для решения следующей задачи с наименьшим количеством запросов:
Постановка задачи: найти такой, что , где удовлетворяет .
Эта проблема очень распространена в численном анализе , информатике и технике ; и алгоритмы поиска корней являются стандартным подходом к ее решению. Часто процедура поиска корня вызывается более сложными родительскими алгоритмами в более широком контексте, и по этой причине эффективное решение корневых проблем имеет чрезвычайно важное значение, поскольку неэффективный подход может привести к высоким вычислительным затратам, когда во внимание принимается более широкий контекст. счет. Это то, что пытается сделать метод ITP, одновременно используя гарантии интерполяции, а также минимальные оптимальные гарантии метода деления пополам, который заканчивается не более чем через итерации при запуске на интервале .
Метод
[ редактировать ]Данный , и где это золотое сечение , в каждой итерации метод ITP вычисляет точку следующие три шага:
- [Шаг интерполяции] Вычисление биссектрисы и ложных точек: и ;
- [Шаг усечения] Возмущаем оценщик по направлению к центру: где и ;
- [Шаг проецирования] Спроецируйте оценщик на минмаксный интервал: где .
Значение функции в этой точке запрашивается, а затем интервал сокращается до корня, сохраняя подинтервал со значениями функции противоположного знака на каждом конце.
Алгоритм
[ редактировать ]Следующий алгоритм (написанный на псевдокоде ) предполагает начальные значения и даны и удовлетворяют где и ; и он возвращает оценку это удовлетворяет максимум в функциональные оценки.
Input: Preprocessing: , , and ; While ( ) Calculating Parameters: , , ; Interpolation: ; Truncation: ; If then , Else ; Projection: If then , Else ; Updating Interval: ; If then and , Elseif then and , Else and ; ; Output:
Пример: поиск корня многочлена
[ редактировать ]Предположим, что метод ITP используется для нахождения корня многочлена С использованием и мы находим это:
Итерация | ||||
---|---|---|---|---|
1 | 1 | 2 | 1.43333333333333 | -0.488629629629630 |
2 | 1.43333333333333 | 2 | 1.52713145056966 | 0.0343383329048983 |
3 | 1.43333333333333 | 1.52713145056966 | 1.52009281150978 | -0.00764147709265051 |
4 | 1.52009281150978 | 1.52713145056966 | 1.52137899116052 | -4.25363464540141e-06 |
5 | 1.52137899116052 | 1.52713145056966 | 1.52138301273268 | 1.96497878177659e-05 |
6 | 1.52137899116052 | 1.52138301273268 | ← Критерии остановки удовлетворены |
Этот пример можно сравнить с методом деления пополам. § Пример: поиск корня многочлена . Метод ITP потребовал менее половины количества итераций, чем деление пополам, чтобы получить более точную оценку корня без затрат на гарантии minmax. Другие методы также могут достичь аналогичной скорости сходимости (например, Риддерса, Брента и т. д.), но без гарантий минимального максимума, предоставляемых методом ITP.
Анализ
[ редактировать ]Основное преимущество метода ITP заключается в том, что он гарантированно не требует больше итераций, чем метод деления пополам, когда . Таким образом, его средняя производительность гарантированно будет лучше, чем у метода деления пополам, даже если интерполяция не удалась. Более того, если интерполяция не дает сбоя (гладкие функции), то гарантированно достигается высокий порядок сходимости, как и у методов, основанных на интерполяции.
Худший случай производительности
[ редактировать ]Поскольку метод ITP проецирует оценку на интервал minmax с слабина, это потребует максимум итераций (теорема 2.1 из [3] ). Это minmax-оптимум, как и метод деления пополам, когда выбран быть .
Средняя производительность
[ редактировать ]Потому что это занимает не более итераций, среднее число итераций всегда будет меньше, чем у метода деления пополам для любого рассматриваемого распределения, когда (Следствие 2.2 из [3] ).
Асимптотическая производительность
[ редактировать ]Если функция дважды дифференцируемо и корень просто, то интервалы, полученные методом ИТП, сходятся к 0 с порядком сходимости если или если и не является степенью 2 с членом не слишком близко к нулю (теорема 2.3 из [3] ).
Программное обеспечение
[ редактировать ]См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Более подробное обсуждение гиперпараметров можно найти в документации по ITP в библиотеке kurbo .
Ссылки
[ редактировать ]- ^ Аргирос, Индиана; Эрнандес-Верон, Массачусетс; Рубио, MJ (2019). «О сходимости секущих методов» . Современные тенденции в математическом анализе и его междисциплинарных приложениях . стр. 141–183. дои : 10.1007/978-3-030-15242-0_5 . ISBN 978-3-030-15241-3 . S2CID 202156085 .
- ^ Сикорский, К. (1 февраля 1982 г.). «Биссекция оптимальна» . Численная математика . 40 (1): 111–117. дои : 10.1007/BF01459080 . ISSN 0945-3245 . S2CID 119952605 .
- ^ Jump up to: а б с д и ж г Оливейра, IFD; Такахаши, RHC (06 декабря 2020 г.). «Улучшение средней производительности метода бисекции с сохранением минмаксной оптимальности» . Транзакции ACM в математическом программном обеспечении . 47 (1): 5:1–5:24. дои : 10.1145/3423597 . ISSN 0098-3500 . S2CID 230586635 .
- ^ Нортроп, П.Дж. (2023), itp: Алгоритм поиска корней интерполяции, усечения проекта (ITP)
Внешние ссылки
[ редактировать ]- Улучшенный метод деления пополам , автор: Kudos