// FejerFit.java // // approximate f(x) ~ a0 + a1 cos(x) + b1 sin(x) + // (k-1)/k a2 cos(2x) + (k-1)/k b2 sin(2x) +...+ // 1/k ak cos(kx) + 1/k bk sin(kx) // ai = 2/2pi int 0 to 2pi f(x) cos(i x) dx // bi = 2/2pi int 0 to 2pi f(x) sin(i x) dx // a0 = a0/2 import java.awt.*; import java.awt.event.*; import java.text.*; class FejerFit extends Frame { FejerFit() { setTitle("FejerFit(x) 0 to 2pi of step function"); setSize(450,500); setBackground(Color.white); setForeground(Color.black); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); setVisible(true); } double f(double x) // simple step function 0 to 2pi // poor for odd number of points { if(x