Алгоритм Ремеза

редактировать
Алгоритм аппроксимации функций

Алгоритм Ремеза или Алгоритм обмена Ремеза, опубликованный Евгением Яковлевичем Ремезом в 1934 году, представляет собой итерационный алгоритм, используемый для поиска простых приближений к функциям, в частности, приближений функциями в пространстве Чебышева, которые являются лучшими в равномерная норма L∞смысл.

Типичным примером пространства Чебышева является подпространство многочленов Чебышева порядка n в пространстве вещественных непрерывные функции на интервале, C [a, b]. Полином наилучшего приближения в данном подпространстве определяется как тот, который минимизирует максимальную абсолютную разницу между полиномом и функцией. В этом случае форма решения уточняется теоремой об эквиосколебаниях.

Содержание
  • 1 Процедура
    • 1.1 Выбор инициализации
  • 2 Подробное обсуждение
  • 3 Варианты
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Процедура

Алгоритм Ремеза начинается с функции f {\ displaystyle f}f для аппроксимации и набор X {\ displaystyle X}Xиз n + 2 {\ displaystyle n + 2}n + 2 точек выборки x 1, x 2,..., xn + 2 {\ displaystyle x_ {1}, x_ {2},..., x_ {n + 2}}x_ {1}, x_ { 2},..., x _ {{n + 2}} в интервале аппроксимации, обычно это экстремумы полинома Чебышева, линейно отображаемые на интервал. Шаги следующие:

  • Решите линейную систему уравнений
b 0 + b 1 x i +... + bnxin + (- 1) я E = е (xi) {\ displaystyle b_ {0} + b_ {1} x_ {i} +... + b_ {n} x_ {i} ^ {n} + (- 1) ^ {i} E = f (x_ {i})}b_0 + b_1 x_i +... + b_n x_i ^ n + (-1) ^ i E = f (x_i) (где i = 1, 2,... n + 2 {\ displaystyle i = 1,2,...n + 2}i=1,2,...n+2),
для неизвестных b 0, b 1... bn {\ displaystyle b_ {0}, b_ {1}... b_ {n}}b_ {0}, b_ {1}... b_ {n} и E.
  • Используйте bi {\ displaystyle b_ {i}}b_i в качестве коэффициентов, чтобы сформировать многочлен P n {\ displaystyle P_ {n}}P_ {n} .
  • Найдите множество M {\ displaystyle M}M точек локальной максимальной ошибки | P n (x) - f (x) | {\ displaystyle | P_ {n} (x) -f ( x) |}| P_ {n} (x) -f (x) | .
  • Если ошибки на каждом m ∈ M {\ displaystyle m \ in M}m \ in M ​​имеют одинаковую величину и чередуются по знаку, то P n {\ displaystyle P_ {n}}P_ {n} - полином минимаксного приближения. Если нет, замените X {\ displaystyle X}Xна M {\ displaystyle M}M и повторите шаги, указанные выше.

Результат называется полиномом наилучшего приближения или алгоритмом минимаксного приближения..

Технический обзор s при реализации алгоритма Ремеза дано В. Фрейзером.

О выборе инициализации

Узлы Чебышева являются обычным выбором для начального приближения из-за их роли в теории полиномов. интерполяция. Для инициализации задачи оптимизации для функции f интерполянтом Лагранжа L n (f) можно показать, что это начальное приближение ограничено

‖ f - L n (f) ‖ ∞ ≤ (1 + ‖ L N ‖ ∞) inf p ∈ п N ‖ е - п ‖ {\ displaystyle \ lVert f-L_ {n} (f) \ rVert _ {\ infty} \ leq (1+ \ lVert L_ { n} \ rVert _ {\ infty}) \ inf _ {p \ in P_ {n}} \ lVert fp \ rVert}\ lVert f-L_ {n} (f) \ rVert _ {\ infty} \ leq (1+ \ lVert L_ {n} \ rVert _ {\ infty}) \ inf _ {{p \ in P_ {n}}} \ lVert fp \ rVert

с нормой или константа Лебега оператора интерполяции Лагранжа L n узлов (t 1,..., t n + 1) равны

‖ L n ‖ ∞ = Λ ¯ n (T) знак равно макс - 1 ≤ Икс ≤ 1 λ N (T; Икс), {\ Displaystyle \ lVert L_ {n} \ rVert _ {\ infty} = {\ overline {\ Lambda}} _ {n} (T) = \ max _ {- 1 \ leq x \ leq 1} \ lambda _ {n} (T; x),}\ lVert L_ {n} \ rVert _ {\ infty} = \ overline {\ Lambda} _ {n} (T) = \ max _ {{- 1 \ leq x \ leq 1}} \ lambda _ {n} (T ; x),

T - нули полиномов Чебышева, а функции Лебега

λ n (T; x) = ∑ j = 1 n + 1 | l j (x) |, l j (x) знак равно ∏ i ≠ j i знак равно 1 n + 1 (x - t i) (t j - t i). {\ displaystyle \ lambda _ {n} (T; x) = \ sum _ {j = 1} ^ {n + 1} \ left | l_ {j} (x) \ right |, \ quad l_ {j} ( x) = \ prod _ {\ stackrel {i = 1} {i \ neq j}} ^ {n + 1} {\ frac {(x-t_ {i})} {(t_ {j} -t_ {i })}}.}\ lambda _ {n} (T; x) = \ sum _ {{j = 1}} ^ {{n + 1}} \ left | l_ {j} (x) \ right |, \ quad l_ {j} (x) = \ prod _ {{{\ stackrel {i = 1} {i \ neq j}}}} ^ {{n + 1}} {\ frac {(x-t_ {i})} {(t_ {j} -t_ {i})}}.

Теодор А. Килгор, Карл де Бур и Аллан Пинкус доказали, что существует уникальный t i для каждого L n, хотя явно не известен для (обычных) многочленов. Аналогичным образом Λ _ N (T) = min - 1 ≤ x ≤ 1 λ n (T; x) {\ displaystyle {\ underline {\ Lambda}} _ {n} (T) = \ min _ {- 1 \ leq x \ leq 1} \ lambda _ {n} (T; x)}\ underline {\ Lambda} _n (T) = \ min _ {- 1 \ le x \ le 1} \ lambda_n (Т; x) , а оптимальность выбора узлов может быть выражена как Λ ¯ n - Λ _ n ≥ 0. {\ displaystyle {\ overline {\ Lambda}} _ {n} - {\ underline {\ Lambda}} _ {n} \ geq 0.}\ overline {\ Lambda} _n - \ underline {\ Lambda} _n \ ge 0.

Для узлов Чебышева, что обеспечивает неоптимальный, но аналитически явный выбора, асимптотика известна как

Λ ¯ n (T) = 2 π log ⁡ (n + 1) + 2 π (γ + log ⁡ 8 π) + α n + 1 {\ displaystyle {\ overline { \ Lambda}} _ {n} (T) = {\ frac {2} {\ pi}} \ log (n + 1) + {\ frac {2} {\ pi}} \ left (\ gamma + \ log {\ frac {8} {\ pi}} \ right) + \ alpha _ {n + 1}}\ overline {\ Lambda} _ {n } (T) = {\ frac {2} {\ pi}} \ log (n + 1) + {\ frac {2} {\ pi}} \ left (\ gamma + \ log {\ frac {8} { \ pi}} \ right) + \ alpha _ {{n + 1}}

(γ - константа Эйлера – Маскерони ) с

0 < α n < π 72 n 2 {\displaystyle 0<\alpha _{n}<{\frac {\pi }{72n^{2}}}}0 <\ alpha _ {n} <{\ frac {\ pi} {72n ^ {2}}} для n ≥ 1, {\ displaystyle n \ geq 1,}n \ geq 1,

и верхняя граница

Λ ¯ n (T) ≤ 2 π log ⁡ (n + 1) + 1 {\ displaystyle {\ overline {\ Lambda} } _ {n} (T) \ leq {\ frac {2} {\ pi}} \ log (n + 1) +1}\ overline {\ Lambda} _ {n} (T) \ leq {\ frac {2} {\ pi}} \ log (n + 1) +1

Лев Брутман получил оценку для n ≥ 3 {\ displaystyle n \ geq 3}n \ geq 3 , a nd T ^ {\ displaystyle {\ hat {T}}}\ hat {T} - нули развернутых полиномов Чебышева:

Λ ¯ n (T ^) - Λ _ n (T ^) < Λ ¯ 3 − 1 6 cot ⁡ π 8 + π 64 1 sin 2 ⁡ ( 3 π / 16) − 2 π ( γ − log ⁡ π) ≈ 0.201. {\displaystyle {\overline {\Lambda }}_{n}({\hat {T}})-{\underline {\Lambda }}_{n}({\hat {T}})<{\overline {\Lambda }}_{3}-{\frac {1}{6}}\cot {\frac {\pi }{8}}+{\frac {\pi }{64}}{\frac {1}{\sin ^{2}(3\pi /16)}}-{\frac {2}{\pi }}(\gamma -\log \pi)\approx 0.201.}\ overline {\ Lambda} _n (\ hat {T}) - \ underline {\ Lambda} _n (\ hat {T}) <\ overline {\ Lambda} _3 - \ frac {1} {6} \ cot \ frac {\ pi} {8} + \ frac {\ pi} {64} \ frac {1} {\ sin ^ 2 (3 \ pi / 16)} - \ frac {2} {\ pi} (\ gamma - \ log \ pi) \ приблизительно 0,201.

Рюдигер Гюнтнер получен из более точной оценки для n ≥ 40 {\ displaystyle n \ geq 40}n \ geq 40

Λ ¯ n (T ^) - Λ _ n (T ^) < 0.0196. {\displaystyle {\overline {\Lambda }}_{n}({\hat {T}})-{\underline {\Lambda }}_{n}({\hat {T}})<0.0196.}\ overline { \ Lambda} _n (\ hat {T}) - \ underline {\ Lambda} _n (\ hat {T}) <0,0196.
Подробное обсуждение

В этом разделе представлена ​​дополнительная информация о шагах, описанных выше. В этом разделе индекс i изменяется от 0 до n + 1.

Шаг 1: Дано x 0, x 1,... xn + 1 {\ displaystyle x_ {0}, x_ {1},... x_ {n + 1}}x_ {0}, x_ {1},... x _ {{n + 1}} , решить линейную систему из n + 2 уравнений

b 0 + b 1 xi +... + bnxin + (- 1) я E = е (xi) {\ displaystyle b_ {0} + b_ {1} x_ {i} +... + b_ {n} x_ {i} ^ {n} + (- 1) ^ {i} E = f (x_ {i})}b_ {0} + b_ {1 } x_ {i} +... + b_ {n} x_ {i} ^ {n} + (- 1) ^ {i} E = f (x_ {i}) (где i = 0, 1,... n + 1 {\ displaystyle i = 0,1,...n + 1}i = 0,1,... n + 1 ),
для неизвестных b 0, b 1,... bn {\ displaystyle b_ {0}, b_ {1},... b_ {n}}b_ {0}, b_ {1},... b_ {n} и E.

Должно быть ясно, что (- 1) i E {\ displaystyle (-1) ^ {i} E}(-1) ^ {i} E в этом уравнении имеет смысл, только если узлы x 0,..., Xn + 1 {\ displaystyle x_ {0},..., x_ {n + 1}}x_ {0},..., x _ {{n + 1 }} упорядочены, либо строго возрастающие, либо строго убывающие. Тогда это линейное система имеет единственное решение. (Как известно, не каждая линейная система имеет решение.) Кроме того, решение может быть получено только с O (n 2) {\ displaystyle O (n ^ {2})}O (n ^ {2}) арифметические операции, в то время как стандартный решатель из библиотеки потребует операций O (n 3) {\ displaystyle O (n ^ {3})}O (n ^ {3}) . Вот простое доказательство :

Вычислить стандартный интерполянт n-й степени p 1 (x) {\ displaystyle p_ {1} (x)}p_{1}(x)- f (x) {\ displaystyle f (x)}f (x) в первых n + 1 узлах, а также стандартный интерполянт n-й степени p 2 ( x) {\ displaystyle p_ {2} (x)}p_{2}(x)до ординат (- 1) i {\ displaystyle (-1) ^ {i}}(-1)^{i}

p 1 (xi) = f (xi), p 2 (xi) = (- 1) i, i = 0,..., п. {\ displaystyle p_ {1} (x_ {i}) = f (x_ {i}), p_ {2} (x_ {i}) = (- 1) ^ {i}, i = 0,..., n.}p_ {1} (x_ {i}) = f (x_ {i}), p_ {2} (x_ {i}) = (- 1) ^ {i}, i = 0,..., n.

Для этого используйте каждый раз формулу интерполяции Ньютона с разделенными разностями порядка 0,..., n {\ displaystyle 0,..., n}0,...,nи O (n 2) {\ displaystyle O (n ^ {2})}O (n ^ {2}) арифметические операции.

Многочлен p 2 (x) {\ displaystyle p_ {2} (x)}p_{2}(x)имеет i-й ноль между xi - 1 {\ displaystyle x_ {i-1}}x_ {i- 1} и xi, i = 1,..., n {\ displaystyle x_ {i}, \ i = 1,..., n}x_ {i}, \ i = 1,..., n , и, следовательно, больше никаких нулей между xn {\ displaystyle x_ {n}}x_ {n} и xn + 1 {\ displaystyle x_ {n + 1}}x_ {n + 1} : p 2 (xn) {\ displaystyle p_ {2} (x_ {n})}p_{2}(x_{n})и p 2 (xn + 1) {\ displaystyle p_ {2} (x_ {n + 1})}p_ {2} (x _ {{n + 1}}) имеют одинаковый знак (- 1) n {\ displaystyle (-1) ^ {n}}(-1) ^ {n} .

Линейная комбинация p (x): = p 1 (x) - p 2 (x) ⋅ E {\ displaystyle p (x): = p_ {1} (x) -p_ {2} (x) \! \ Cdot \! E}p (x): = p_ {1} (x) -p_ {2} ( x) \! \ cdot \! E также является многочленом степени n и

p (xi) = p 1 (xi) - p 2 (xi) ⋅ E = f (xi) - (- 1) i E, i = 0,…, n. {\ Displaystyle p (x_ {i}) = p_ {1} (x_ {i}) - p_ {2} (x_ {i}) \! \ cdot \! E \ = \ f (x_ {i}) - (-1) ^ {i} E, \ \ \ \ i = 0, \ ldots, n.}p (x_ {i}) = p_ {1} ( x_ {i}) - p_ {2} (x_ {i}) \! \ cdot \! E \ = \ f (x_ {i}) - (- 1) ^ {i} E, \ \ \ \ i = 0, \ ldots, n.

Это то же самое, что и уравнение выше для i = 0,..., n {\ displaystyle i = 0,..., n}i = 0,..., n и для любого выбора E. То же уравнение для i = n + 1:

p (xn + 1) = p 1 (xn + 1) - п 2 (xn + 1) ⋅ E = е (xn + 1) - (- 1) n + 1 E {\ displaystyle p (x_ {n + 1}) \ = \ p_ {1} (x_ {n + 1}) - p_ {2} (x_ {n + 1}) \! \ cdot \! E \ = \ f (x_ {n + 1}) - (- 1) ^ {n + 1 } E}p (x _ {{n + 1}}) \ = \ p_ {1} (x _ {{ n + 1}}) - p_ {2} (x _ {{n + 1}}) \! \ cdot \! E \ = \ f (x _ {{n + 1}}) - (- 1) ^ {{ n + 1}} E и требует специального рассуждения: решено для переменной E, это определение E:
E: = p 1 (xn + 1) - f (xn + 1) p 2 ( хп + 1) + (- 1) п. {\ displaystyle E \: = \ {\ frac {p_ {1} (x_ {n + 1}) - f (x_ {n + 1})} {p_ {2} (x_ {n + 1}) + ( -1) ^ {n}}}.}E \: = \ {\ frac {p_ {1} (x _ {{n + 1}}) - f (x _ {{n + 1}})} {p_ {2} (x _ {{n + 1}}) + (- 1) ^ {n}}}.

Как упоминалось выше, два члена в знаменателе имеют одинаковый знак: E и, следовательно, p (x) ≡ b 0 + b 1 x +… + bnxn { \ Displaystyle p (x) \ Equiv b_ {0} + b_ {1} x + \ ldots + b_ {n} x ^ {n}}p (x) \ Equiv b_ {0} + b_ {1} x + \ ldots + b_ {n} x ^ {n} всегда четко определены.

Ошибка в заданных n + 2 упорядоченных узлах, в свою очередь, положительная и отрицательная, потому что

p (x i) - f (x i) = - (- 1) i E, i = 0,..., п + 1. {\ Displaystyle р (х_ {я}) - е (х_ {я}) \ = \ - (- 1) ^ {я} Е, \ \ я = 0,..., п \! + \! 1.}p (x_ {i}) - f (x_ {i}) \ = \ - (- 1) ^ {i } E, \ \ i = 0,..., n \! + \! 1.

Теорема де Ла Валле Пуссена утверждает, что при этом условии не существует многочлена степени n с ошибкой меньше E. В самом деле, если такой многочлен существовал, назовите его p ~ (x) {\ displaystyle {\ tilde {p}} (x)}{\ тильда p} (x) , тогда разница p (x) - p ~ (x) = (p (x) - f (x)) - (п ~ (х) - е (х)) {\ Displaystyle р (х) - {\ тильда {р}} (х) = (р (х) -f (х)) - ({\ тильда {р }} (x) -f (x))}p (x) - {\ tilde p} (x) = (p (x) -f (x)) - ({\ tilde p} (x) - f (x)) все равно будет положительным / отрицательным в n + 2 узлах xi {\ displaystyle x_ {i}}x_ {i} и, следовательно, иметь не менее n + 1 нулей, что невозможно для многочлена степени n. Таким образом, этот E является нижней границей минимальной ошибки, которая может быть достигнута с полиномами степени n.

Шаг 2 изменяет обозначение с b 0 + b 1 x +... + bnxn {\ displaystyle b_ {0} + b_ {1} x +... + b_ {n} x ^ {n}}b_ {0} + b_ {1} x +... + b_ {n} x ^ {n} to p (x) {\ displaystyle p (x) }p (x) .

Шаг 3 улучшает входные узлы x 0,..., xn + 1 {\ displaystyle x_ {0},..., x_ {n + 1}}x_ {0},..., x _ {{n + 1 }} и их ошибки ± E {\ displaystyle \ pm E}\ pm E следующим образом.

В каждой P-области текущий узел xi {\ displaystyle x_ {i}}x_ {i} заменяется локальным максимизатором x ¯ i {\ displaystyle {\ bar {x}} _ {i}}{\ bar {x}} _ {i} и в каждой N-области xi {\ displaystyle x_ {i}}x_ {i} заменяется локальным минимизатором. (Ожидайте x ¯ 0 {\ displaystyle {\ bar {x}} _ {0}}{\ bar {x}} _ {0} в точке A, x ¯ i {\ displaystyle {\ bar {x}} _ {i}}{\ bar {x}} _ {i} рядом с xi {\ displaystyle x_ {i}}x_ {i} и x ¯ n + 1 {\ displaystyle {\ bar {x}} _ {n + 1}}{\ bar {x}} _ {{n + 1}} в B.) Никакой высокой точности здесь не требуется, стандартный поиск строки с парой квадратичных соответствий должен быть достаточным. (См.)

Пусть zi: = p (x ¯ i) - f (x ¯ i) {\ displaystyle z_ {i}: = p ({\ bar {x}} _ {i }) - f ({\ bar {x}} _ {i})}z_ {i}: = p ({\ bar {x}} _ {i}) - f ({\ bar {x}} _ {i}) . Каждая амплитуда | z i | {\ displaystyle | z_ {i} |}| z_ {i} | больше или равно E. Теорема де Ла Валле Пуссена и ее доказательство также применимы к z 0,..., z n + 1 {\ displaystyle z_ {0},..., z_ {n + 1}}z_ {0},..., z _ {{n + 1}} с мин {| z i | } ≥ E {\ displaystyle \ min \ {| z_ {i} | \} \ geq E}\ min \ {| z_ {i} | \} \ geq E как новая нижняя граница для наилучшей возможной ошибки с полиномами степени n.

Кроме того, max {| z i | } {\ displaystyle \ max \ {| z_ {i} | \}}\ max \ {| z_ {i} | \} пригодится как очевидная верхняя граница для этой наилучшей возможной ошибки.

Шаг 4: С мин {| z i | } {\ displaystyle \ min \, \ {| z_ {i} | \}}\ min \, \ {| z_ {i} | \} и max {| z i | } {\ displaystyle \ max \, \ {| z_ {i} | \}}\ макс \, \ {| z_ {i} | \} в качестве нижней и верхней границы для наилучшей возможной ошибки приближения, у каждого есть надежный критерий остановки: повторяйте шаги до макс {| z i | } - min {| z i | } {\ displaystyle \ max \ {| z_ {i} | \} - \ min \ {| z_ {i} | \}}\ max \ {| z_ {i} | \} - \ min \ {| z_ {i} | \} достаточно мало или больше не уменьшается. Эти границы указывают на прогресс.

Варианты

Иногда несколько точек выборки заменяются одновременно местоположениями ближайших максимальных абсолютных различий.

Иногда все точки выборки заменяются за одну итерацию на расположение всех, чередующийся знак, максимальные различия.

Иногда относительная погрешность используется для измерения разница между приближением и функцией, особенно если приближение будет использоваться для вычисления функции на компьютере, который использует арифметику с плавающей запятой и.

Иногда ограничения точки нулевой ошибки включаются в модифицированный алгоритм обмена Ремеза.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-03 12:32:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте