Remez 알고리즘은 미니 맥스 표준에서 다항식으로 함수를 근사화하는 잘 알려진 반복 루틴입니다. 그러나 Nick Trefethen [1]은 다음과 같이 말합니다.
이러한 [구현]의 대부분은 수년 전으로 거슬러 올라갑니다. 사실, 대부분은 위에서 언급 한 일반적인 최상의 근사 문제를 해결하지 못하지만 이산 변수 또는 디지털 필터링과 관련된 변형을 해결합니다. 순환 할 수있는 다른 컴퓨터 프로그램이 몇 개 있지만 전체적으로 현재 근사값을 계산하는 데 널리 사용되는 프로그램이없는 것 같습니다.
예를 들어 Matlab과 [-1, 1]의 Runge 기능에 적용된 무료 CVX 도구 상자를 사용하여 최소 제곱 또는 볼록 최적화를 적용하여 minimax 솔루션을 계산할 수도 있습니다.
m = 101; n = 11; % 101 points, polynomial of degree 10
xi = linspace(-1, 1, m); % equidistant points in [-1, 1]
ri = 1 ./ (1+(5*xi).^2); % Runge function
tic % p is the polynomial of degree (n-1)
cvx_begin % minimize the distance in all points
variable p(n);
minimize( max(abs(polyval(p, xi) - ri)) );
cvx_end
toc % 0.17 sec for Matlab, CVX and SeDuMi
Chebyshev 다항식을 사용한 근사값 0.1090
은 최소값이지만,이 방법 0.0654
은 Matlab chebfun
도구 상자 의 Remez 알고리즘으로 계산되는 값과 같은 최소값에 도달합니다 .
최적화 솔버로 minimax 솔루션을 더 빠르고 정확하게 계산할 수 있다면 더 복잡한 Remez 알고리즘을 적용 할 때 어떤 이점이 있습니까? 어려운 문제 나 테스트 사례에 대해이 두 가지 접근 방식을 비교 한 보고서 / 문서가 있습니까?
-
[1] R. Pachon과 LN Trefethen. BIT Numerical Mathematics (2008) Vol. 46.