Алгоритм Ремеза (также алгоритм замены Ремеза), итеративный алгоритм равномерного аппроксимирования функций f ∊ C[a,b], основанный на теореме П. Л. Чебышёва об альтернансе. Предложен Е. Я. Ремезом в 1934 году.
А.Р. применяется при проектировании КИХ-фильтров.
Теорема Чебышёва
Теоретической основой алгоритма Ремеза является следующая теорема.
Для того, чтобы некоторый многочлен P*(x) степени не выше n был многочленом, наименее уклоняющимся от f ∊ C[a,b], необходимо и достаточно, чтобы на [a,b] нашлась по крайней мере одна система из n + 2 точек xi, a ≤ x0 < x1 < … < xn+1 ≤ b, в которых разность f(x) - P*(x):
Такая система точек называется чебышёвским альтернансом. П. Л. Чебышёв, 1854 |
Пусть En — величина наилучшего приближения функции f(x) многочленами степени n. Оценку En снизу даёт следующая теорема:
Если для функции f ∊ C[a,b] некоторый многочлен P(x) степени n обладает тем свойством, что разность f(x) - P(x) на некоторой системе из n + 2 упорядоченных точек xi принимает значения с чередующимися знаками, то
Ш.-Ж. Валле-Пуссен, 1919 |
Рассмотрим систему n + 1 функций Φ = {φ0,…,φn}, последовательность n + 2 точек X = a ≤ x0 < x1 < … < xn+1 ≤ b и будем искать аппроксимирующий многочлен .
Решаем систему линейных уравнений относительно aj и d:
Находим точку ξ такую, что D = |f(ξ) — P(ξ)| = max.
Заменяем в X одну из точек на ξ таким образом, чтобы знак f — P чередовался в точках новой последовательности. На практике следят только за тем, чтобы точки xi были упорядочены на каждой итерации.
Повторяем все шаги с начала до тех пор, пока не будет |d| = D.
На втором шаге мы можем искать не одну точку ξ, а множество Ξ точек, в которых достигаются локальные максимумы |f — P|. Если все ошибки в точках множества Ξ одинаковы по модулю и чередуются по знаку, то P — минимаксный многочлен. Иначе заменяем точки из X на точки из Ξ и повторяем процедуру заново.
В качестве начальной последовательности X можно выбирать точки, равномерно распределённые на [a,b]. Целесообразно также брать точки:
Если аппроксимирующая функция ищется в виде многочлена, то вместо решения системы на первом шаге алгоритма, можно воспользоваться следующим методом:
Находим многочлен q(x) степени n такой, что q(xi) = f(xi) (задача интерполяции).
Находим также многочлен q*(x) степени n такой, что q*(xi) = (-1)i.
Выбирая d так, чтобы многочлен P(x) ≡ q(x) — d q*(x) имел степень n-1, получаем P(xi) + (-1)id = f(xi).
Дальше повторяются шаги по основной схеме.
Так как по теореме Валле-Пуссена |d| ≤ En(f) ≤ D, то условием остановки алгоритма может быть D — |d| ≤ ε для некоторого наперёд заданного ε.
А.Р. сходится со скоростью геометрической прогрессии в следующем смысле:
Для любой функции f ∊ C[a,b] найдутся числа A > 0 и 0 < q < 1 такие, что максимальные уклонения от функции f(x) полиномов , построенных по этому алгоритму, будут удовлетворять неравенствам
где En(f) — величина наилучшего приближения на [a,b] функции f(x) при помощи полиномов Pn(x). Е. Я. Ремез, 1957 |
f(x) = ex, n = 1, P(x) = a x+b.
Шаг 1.
|
|
|||||||||
Решение
системы даёт P = 1.175x + 1.272, d =
0.272. |
||||||||||
Шаг 2.
|
|
|||||||||
Решение
системы даёт P = 1.175x + 1.265, d =
0.279. |
Так как в пределах данной точности получили ту же самую точку, то найденный многочлен следует рассматривать как наилучшее приближение первой степени функции ex.
DeVore R. A., Lorentz G. G. Constructive Approximation — 1993.
Бронштейн И. Н., Семендяев К. А. Справочник по математике для инженеров и учащихся ВТУЗов — 1980.
Дзядык В. К. Введение в теорию равномерного приближения функций полиномами — 1977.
Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов — 1978.