อัลกอริทึม Remez เป็นกิจวัตรซ้ำที่รู้จักกันดีเพื่อประมาณฟังก์ชั่นโดยพหุนามในบรรทัดฐาน minimax แต่อย่างที่ Nick Trefethen [1] พูดถึง:
ส่วนใหญ่ของ [การใช้งาน] ย้อนกลับไปหลายปีและในความเป็นจริงส่วนใหญ่ของพวกเขาไม่ได้แก้ปัญหาการประมาณทั่วไปที่ดีที่สุดตามที่ได้กล่าวไว้ข้างต้น แต่ตัวแปรที่เกี่ยวข้องกับตัวแปรแยกหรือการกรองดิจิทัล เราสามารถค้นหาโปรแกรมคอมพิวเตอร์อื่น ๆ ได้ไม่กี่โปรแกรม แต่โดยรวมแล้วดูเหมือนว่าไม่มีโปรแกรมที่ใช้กันอย่างแพร่หลายในปัจจุบันสำหรับการคำนวณที่ดีที่สุด
เราสามารถคำนวณวิธีการแก้ปัญหาแบบ minimax ได้เช่นกันโดยใช้การเพิ่มประสิทธิภาพกำลังสองน้อยที่สุดหรือการเพิ่มประสิทธิภาพนูนเช่นการใช้ Matlab และกล่องเครื่องมือ CVX ฟรีที่ใช้กับฟังก์ชัน Runge ใน [-1, 1]:
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
ค่าเดียวกันกับที่คำนวณด้วยอัลกอริทึม Remez ในchebfun
กล่องเครื่องมือMatlab
มีข้อได้เปรียบอะไรบ้างในการใช้อัลกอริธึม Remez ที่ซับซ้อนกว่านี้หากคุณสามารถคำนวณโซลูชัน minimax ได้เร็วขึ้นและแม่นยำยิ่งขึ้นด้วยตัวแก้ไขการเพิ่มประสิทธิภาพ มีรายงาน / บทความใดบ้างที่เปรียบเทียบทั้งสองแนวทางนี้ในปัญหาที่ยากหรือการทดสอบกรณี?
-
[1] R. Pachon และ LN Trefethen BIT เชิงตัวเลขคณิตศาสตร์ (2008) ฉบับที่ 46