Remezのアルゴリズム

Remezのアルゴリズム（英: Remez algorithm）、Remez法またはRemezの交換アルゴリズム（英: Remez exchange algorithm）とはEvgeny Yakovlevich Remez（英語版）によって1934年に発表された、関数に簡単な近似関数を見つけるために使用される反復アルゴリズムであり、具体的には、関数をチェビシェフ空間で一様ノルム L∞を最適化することで求める。 チェビシェフ空間の典型的な例は、 区間 C = [ a , b ] {\displaystyle C=[a,b]} 上の実連続関数空間における次数 n {\displaystyle n} の チェビシェフ多項式の部分空間であり、与えられた部分空間内の最良近似の多項式は、多項式と関数の間の最大絶対差を最小にするものと定義される。 この場合、解の形式は等振動定理（英語版）によって正確性が保証される。 まず近似する関数fに対し、近似区間中の n + 2 {\displaystyle n+2} のサンプル点の集合 X = { x 1 , x 2 , . . . , x n + 2 } {\displaystyle X=\{x_{1},x_{2},...,x_{n+2}\}} を考える。 X {\displaystyle X} は通常、区間中に線形に射影されたチェビシェフ多項式の極値を用いる。 未知数 b 0 , b 1 . . . b n {\displaystyle b_{0},b_{1}...b_{n}} および E {\displaystyle E} について以下の線形連立方程式を解く b 0 + b 1 x i + . . . + b n x i n + ( − 1 ) i E = f ( x i ) {\displaystyle 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} ） b i {\displaystyle b_{i}} を多項式 P n ( x ) = ∑ b i x i {\displaystyle P_{n}(x)=\sum b_{i}x^{i}} を形成する係数とする。 絶対誤差 | P n ( x ) − f ( x ) | {\displaystyle |P_{n}(x)-f(x)|} が極大となる点 m {\displaystyle m} の集合 M {\displaystyle M} を見つける。 誤差がすべての m {\displaystyle m} について大きさが等しく、符号が交互である場合、 P n {\displaystyle P_{n}} は、最大誤差最小の近似多項式となる。 そうでない場合は、 X {\displaystyle X} を M {\displaystyle M} に置き換え、上記の手順を繰り返す。 上記の手順を繰り返す。 結果は、最良近似多項式またはミニマックス近似（英語版）と呼ばれる。 Remezアルゴリズムの実装における技術のレビューはW. Fraserによってなされた。 多項式補間の理論における役割のため、近似の初期値としてチェビシェフノードが一般的に使用される。 ラグランジュ補間 L n ( f ) {\displaystyle L_{n}(f)} を用いた関数 f {\displaystyle f} の最適化問題の初期化では、この近似の初期値が次の範囲にあることが示される。 ‖ f − L n ( f ) ‖ ∞ ≤ ( 1 + ‖ L n ‖ ∞ ) inf p ∈ P n ‖ f − p ‖ {\displaystyle \lVert f-L_{n}(f)\rVert _{\infty }\leq (1+\lVert L_{n}\rVert _{\infty })\inf _{p\in P_{n}}\lVert f-p\rVert } ここで、ノード（ t 1 , … , t n + 1 {\displaystyle t_{1},\ldots ,t_{n+1}} ）のラグランジュ補間演算子 L n {\displaystyle L_{n}} のノルム（ルベーグ定数（英語版））は ‖ L n ‖ ∞ = Λ ¯ n ( T ) = max − 1 ≤ x ≤ 1 λ n ( T ; x ) {\displaystyle \lVert L_{n}\rVert _{\infty }={\overline {\Lambda }}_{n}(T)=\max _{-1\leq x\leq 1}\lambda _{n}(T;x)} と表される。 T {\displaystyle 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})}}} となる。 Theodore A. Kilgore、 Carl de Boor、およびAllan Pinkus は、各 L n {\displaystyle L_{n}} に一意の t i {\displaystyle t_{i}} が存在することを証明したが、（通常の）多項式については明示的に知られていない。 同様に、 Λ _ n ( T ) = min − 1 ≤ x ≤ 1 λ n ( T ; x ) {\displaystyle {\underline {\Lambda }}_{n}(T)=\min _{-1\leq x\leq 1}\lambda _{n}(T;x)} 、およびノードの選択の最適性は Λ ¯ n − Λ _ n ≥ 0 {\displaystyle {\overline {\Lambda }}_{n}-{\underline {\Lambda }}_{n}\geq 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}} （ γはオイラー・マスケローニ定数 ） ここで、 0 < α n < π 72 n 2 {\displaystyle 0<\alpha _{n}<{\frac {\pi }{72n^{2}}}} for n ≥ 1 , {\displaystyle n\geq 1,} であり、および上限 Λ ¯ n ( T ) ≤ 2 π log ⁡ ( n + 1 ) + 1 {\displaystyle {\overline {\Lambda }}_{n}(T)\leq {\frac {2}{\pi }}\log(n+1)+1} があたえられる。 Lev Brutman は n ≥ 3 {\displaystyle n\geq 3} かつ T ^ {\displaystyle {\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} また、Rüdiger Günttner は、 n ≥ 40 {\displaystyle n\geq 40} について Λ ¯ n ( T ^ ) − Λ _ n ( T ^ ) < 0.0196 {\displaystyle {\overline {\Lambda }}_{n}({\hat {T}})-{\underline {\Lambda }}_{n}({\hat {T}})<0.0196} を示した。 この節では、上記の手順の詳細について説明する。 i {\displaystyle i} は 0 ≤ i ≤ n + 1 {\displaystyle 0\leq i\leq n+1} である。 ステップ1 与えられた x 0 , x 1 , . . . x n + 1 {\displaystyle x_{0},x_{1},...x_{n+1}} に対して 、以下の線形連立方程式を未知数 b 0 , b 1 . . . b n {\displaystyle b_{0},b_{1}...b_{n}} および E {\displaystyle E} について解く b 0 + b 1 x i + . . . + b n x i n + ( − 1 ) i E = f ( x i ) {\displaystyle b_{0}+b_{1}x_{i}+...+b_{n}x_{i}^{n}+(-1)^{i}E=f(x_{i})} ( − 1 ) i E {\displaystyle (-1)^{i}E} の項が存在しているためノード x 0 , . . . , x n + 1 {\displaystyle x_{0},...,x_{n+1}} は整列（単調増加もしくは単調減少）している必要があることがわかる。 このとき、この線形方程式には一意の解が存在する。また、標準的なライブラリのソルバーで線形方程式を解く場合は O ( n 3 ) {\displaystyle O(n^{3})} の計算量となるが、この処理は O ( n 2 ) {\displaystyle O(n^{2})} の計算量で得られることがわかっている。 以下に簡単な証明を次に示す。 f ( x ) {\displaystyle f(x)} に対して n {\displaystyle n} 次補間関数 p 1 ( x ) {\displaystyle p_{1}(x)} を、 ( − 1 ) i {\displaystyle (-1)^{i}} について n {\displaystyle n} 次補間関数 p 2 ( x ) {\displaystyle p_{2}(x)} を最初の n + 1 {\displaystyle n+1} ノード（ x 0 , . . . , x n {\displaystyle x_{0},...,x_{n}} ）について計算する。 p 1 ( x i ) = f ( x i ) , p 2 ( x i ) = ( − 1 ) i , i = 0 , . . . , n . {\displaystyle p_{1}(x_{i})=f(x_{i}),p_{2}(x_{i})=(-1)^{i},i=0,...,n.} この計算のため、各補間関数の計算において 0 , . . . , n {\displaystyle 0,...,n} 階の差商を使用したニュートン補間を用いるとそれぞれ O ( n 2 ) {\displaystyle O(n^{2})} の計算量となる。 多項式 p 2 ( x ) {\displaystyle p_{2}(x)} の x i − 1 {\displaystyle x_{i-1}} と x i {\displaystyle x_{i}} の間に i {\displaystyle i} 番目の零点がある（ i = 1 , … , n {\displaystyle i=1,\ldots ,n} ）。したがって、 x n {\displaystyle x_{n}} と x n + 1 {\displaystyle x_{n+1}} の間に零点はなく、 p 2 ( x n ) {\displaystyle p_{2}(x_{n})} と p 2 ( x n + 1 ) {\displaystyle p_{2}(x_{n+1})} は ( − 1 ) n {\displaystyle (-1)^{n}} と同符号である。 線形結合 p ( x ) := p 1 ( x ) − p 2 ( x ) ⋅ E {\displaystyle p(x):=p_{1}(x)-p_{2}(x)\!\cdot \!E} は、 n {\displaystyle n} 次の多項式であり、 p ( x i ) = p 1 ( x i ) − p 2 ( x i ) ⋅ E   =   f ( x i ) − ( − 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.} と変形できる。 これは任意の E {\displaystyle E} に対して、 i = 0 , … , n {\displaystyle i=0,\ldots ,n} において式 b 0 + b 1 x i + . . . + b n x i n + ( − 1 ) i E {\displaystyle b_{0}+b_{1}x_{i}+...+b_{n}x_{i}^{n}+(-1)^{i}E} と同じである。 i = n + 1 {\displaystyle i=n+1} とのときは p ( x n + 1 )   =   p 1 ( x n + 1 ) − p 2 ( x n + 1 ) ⋅ E   =   f ( x n + 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} となり、 E {\displaystyle E} について以下の式を得ることができる。 E   :=   p 1 ( x n + 1 ) − f ( x n + 1 ) p 2 ( x n + 1 ) + ( − 1 ) n . {\displaystyle E\ :=\ {\frac {p_{1}(x_{n+1})-f(x_{n+1})}{p_{2}(x_{n+1})+(-1)^{n}}}.} 上述の通り、分母の2項は同じ符号を持つため、 E {\displaystyle E} 及び p ( x ) ≡ b 0 + b 1 x + … + b n x n {\displaystyle p(x)\equiv b_{0}+b_{1}x+\ldots +b_{n}x^{n}} 常に一意に定まる。 与えられた n + 2 {\displaystyle n+2} の整列したノードでの誤差は、以下の通り正負の交互の順になる。 p ( x i ) − f ( x i )   =   − ( − 1 ) i E ,     i = 0 , . . . , n + 1. {\displaystyle p(x_{i})-f(x_{i})\ =\ -(-1)^{i}E,\ \ i=0,...,n\!+\!1.} de La Vallée Poussinの定理によれば、この条件下では誤差が E {\displaystyle E} より小さい n {\displaystyle n} 次の多項式は存在しない。もしそのような多項式 p ~ ( x ) {\displaystyle {\tilde {p}}(x)} が存在した場合、 p ( x ) − p ~ ( x ) = ( p ( x ) − f ( x ) ) − ( p ~ ( x ) − f ( x ) ) {\displaystyle p(x)-{\tilde {p}}(x)=(p(x)-f(x))-({\tilde {p}}(x)-f(x))} はノード x i {\displaystyle x_{i}} において正負交互のままであり n + 1 {\displaystyle n+1} 個の零点を有することになるが、次数 n {\displaystyle n} の多項式ではありえない。 したがって、この E {\displaystyle E} は、次数 n {\displaystyle n} の多項式におけるで達成できる誤差の下限となる。 ステップ2 p ( x ) {\displaystyle p(x)} を b 0 + b 1 x + . . . + b n x n {\displaystyle b_{0}+b_{1}x+...+b_{n}x^{n}} とする。 ステップ3 次のように入力ノード x 0 , . . . , x n + 1 {\displaystyle x_{0},...,x_{n+1}} とそのエラー ± E {\displaystyle \pm E} を更新する。 p ( x ) − f ( x ) {\displaystyle p(x)-f(x)} について、零点によって区切られる正負の領域にそれぞれついて、正の領域で x i {\displaystyle x_{i}} を極大値 x ¯ i {\displaystyle {\bar {x}}_{i}} に置き換え、負の領域では x i {\displaystyle x_{i}} 極小値 x ¯ i {\displaystyle {\bar {x}}_{i}} に置き換える。 （期待する x ¯ 0 {\displaystyle {\bar {x}}_{0}} Aで x ¯ i {\displaystyle {\bar {x}}_{i}} 近く x i {\displaystyle x_{i}} 、そして x ¯ n + 1 {\displaystyle {\bar {x}}_{n+1}} Bで 。）このステップでは高い精度は必要なく2つの2次近似を使用した直線探索で十分である。 （ ） ここで z i := p ( x ¯ i ) − f ( x ¯ i ) {\displaystyle z_{i}:=p({\bar {x}}_{i})-f({\bar {x}}_{i})} とする。 各 z i {\displaystyle z_{i}} に対して絶対値 | z i | {\displaystyle |z_{i}|} はE以上となる。 de La Vallée Poussinの定理とその証明は、 z 0 , . . . , z n + 1 {\displaystyle z_{0},...,z_{n+1}} についての min { | z i | } ≥ E {\displaystyle \min\{|z_{i}|\}\geq E} についても適用可能で、次数 n {\displaystyle n} の最良多項式近似の最大誤差の下限と考えることができる。 また、 max { | z i | } {\displaystyle \max\{|z_{i}|\}} は最大誤差の上限となる。 ステップ4 min { | z i | } {\displaystyle \min \,\{|z_{i}|\}} と max { | z i | } {\displaystyle \max \,\{|z_{i}|\}} を最良多項式近似の最大誤差の下限と上限として、十分な精度、すなわち max { | z i | } − min { | z i | } {\displaystyle \max\{|z_{i}|\}-\min\{|z_{i}|\}} 十分に小さいか、減少しなくなったら繰り返しを終了する。 これらの上下限は反復処理の収束状況を示していると考えられる。 以下のような派生が有る。 複数のサンプル点を、同時に最大絶対差の近くの場所に置き換える。 すべてのサンプル点を、すべての位置、交互の符号、最大差となるよう単一の反復で置き換える。 浮動小数点演算を使用するコンピューターで関数を計算するために近似を使用する場合は、 相対誤差を使用して近似と関数の差を定義することがある。 修正されたRemez交換アルゴリズムには、無誤差点制約が含まれることがある。 近似法 ^ E. Ya. Remez, "Sur la détermination des polynômes d'approximation de degré donnée", Comm. Soc. Math. Kharkov 10, 41 (1934); "Sur un procédé convergent d'approximations successives pour déterminer les polynômes d'approximation, Compt. Rend. Acad. Sc. 198, 2063 (1934); "Sur le calcul effectiv des polynômes d'approximation des Tschebyscheff", Compt. Rend. Acade. Sc. 199, 337 (1934). ^ Fraser, W. (1965). “A Survey of Methods of Computing Minimax and Near-Minimax Polynomial Approximations for Functions of a Single Independent Variable”. J. ACM 12: 295. doi:10.1145/321281.321282.  ^ Kilgore, T. A. (1978). “A characterization of the Lagrange interpolating projection with minimal Tchebycheff norm”. J. Approx. Theory 24: 273. doi:10.1016/0021-9045(78)90013-8.  ^ de Boor, C.; Pinkus, A. (1978). “Proof of the conjectures of Bernstein and Erdös concerning the optimal nodes for polynomial interpolation”. Journal of Approximation Theory 24: 289. doi:10.1016/0021-9045(78)90014-X.  ^ Luttmann, F. W.; Rivlin, T. J. (1965). “Some numerical experiments in the theory of polynomial interpolation”. IBM J. Res. Dev. 9: 187. doi:10.1147/rd.93.0187.  ^ T. Rivlin, "The Lebesgue constants for polynomial interpolation", in Proceedings of the Int. Conf. on Functional Analysis and Its Application, edited by H. G. Garnier et al. (Springer-Verlag, Berlin, 1974), p. 422; The Chebyshev polynomials (Wiley-Interscience, New York, 1974). ^ Brutman, L. (1978). “On the Lebesgue Function for Polynomial Interpolation”. SIAM J. Numer. Anal. 15: 694. doi:10.1137/0715046.  ^ Günttner, R. (1980). “Evaluation of Lebesgue Constants”. SIAM J. Numer. Anal. 17: 512. doi:10.1137/0717043.  ^ David G. Luenberger: Introduction to Linear and Nonlinear Programming, Addison-Wesley Publishing Company 1973. ^ a b 2/73 "The Optimization of Bandlimited Systems" – G. C. Temes, F. C. Marshall and V. Barcilon. Proceedings IEEE.