// FourierFit.java // // approximate f(x) ~ a0 + a1 cos(x) + b1 sin(x) + a2 cos(2x) + b2 sin(2x) + ... // 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 package myjava; import java.awt.*; import java.awt.event.*; import java.text.*; class FourierFit extends Frame { FourierFit() { setTitle("FourierFit(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