E ai galera..td bom???...gostaria de saber o q ta errado na hora de eu fazer o calculo...to fazendo um programa para a materia de Calculo Numerico e to tentando fazer 3/8 de simpson...quanto a conta ta certo, eu to errando erro de logica...valeu galera
//Implementação de 3/8 Simpson
import javax.swing.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
class Janela extends JFrame{
private JTextField campoResp = new JTextField(10);
private JTextField campoN = new JTextField(10);
private JTextField campoB = new JTextField(10);
private JTextField campoA = new JTextField(10);
private JButton calc = new JButton("CALCULAR");
//Metodo Construtor
public Janela()
{
super("3/8Simpson");
setSize(200, 200);
Container quadro = getContentPane();
quadro.setLayout(new FlowLayout());
quadro.add(campoA);
quadro.add(campoB);
quadro.add(campoN);
quadro.add(calc);
quadro.add(campoResp);
calc.addActionListener(new Evento());
}//Fim do metodo construtor
public void setCampo(double resp)
{
campoResp.setText(""+ resp);
}
class Evento implements ActionListener{
public void actionPerformed(ActionEvent evento)
{
String ev = evento.getActionCommand();
if(ev.equals("CALCULAR"))
{
campoResp.setText(" " + new Simpson_3_8().func(campoA.getText(), campoB.getText(), campoN.getText()));
}
}
}//Fim da classe interna Evento
}
public class Simpson_3_8{
Simpson_3_8 simpson = new Simpson_3_8();
public double f(double x)
{
return Math.exp(-x * x);
}
public double func(String auxA, String auxB, String auxN)
{
double a = Double.parseDouble(auxA);
double b = Double.parseDouble(auxB);
double n = Double.parseDouble(auxN);
double sn = 0;
double s3 = 0;
double h = (b - a) / n;
double x = 0;
for(int i = 1; i < n; i++)
{
if(i % 3 == 0)
{
x = a + i * h;
s3 = s3 + simpson.f(x);
}
else
{
sn = a + i *h;
sn = sn + simpson.f(x);
}
}
double resp = (3 * h) / 8 + (simpson.f(a) + 3 * sn + 2 * s3 + simpson.f(b));
return resp;
}
public static void main(String[] args)
{ Janela Jn = new Janela();
Jn.show();
}
}