// Simpson則による数値積分 sqrt(4.0-x^2) x=0〜2.0 /* */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ex060923c extends JApplet implements ActionListener{ JLabel lb1,lb2; JTextField tf ; Ex060923c_Simpson intg; public void init(){ Container cp = getContentPane(); JPanel pl = new JPanel(); int num; // 分割数 lb1 = new JLabel("分割数="); lb2 = new JLabel("計算値="); tf = new JTextField(20); tf.addActionListener(this); pl.add(lb1); pl.add(tf); pl.add(lb2); cp.add(pl); } public void actionPerformed(ActionEvent event){ int num = Integer.valueOf(tf.getText()).intValue(); intg = new Ex060923c_Simpson(0,2.0,num); lb2.setText("計算値= "+intg.calc()); } } // Simpson則による数値積分 class Ex060923c_Simpson{ double xf; // 積分開始値 double xl; // 積分終了値 int num ; // 分割数 double h; Ex060923c_Simpson(double x0, double x1){ xf=x0; xl=x1; num = 100; h = (x1-x0)/(double)num; } Ex060923c_Simpson(double x0, double x1, int num){ xf=x0; xl=x1; this.num=num; h = (x1-x0)/(double)num; } double calc(){ double f0,f1,f2; double x0,x1,x2; double val=0.0; x0=xf; f0=func(x0); for(x1=h;x1