示例我hava an arraylist。 An = {2,1.5,1.51,1.4} 当我填写列。 Jtable给我看这样的: An = {1.4,1.51,1.5,2}
这是我已经完成的代码。
void VerDatos(){
String [] titulos= {"n","An","Bn","Pn","F(Pn)"};
tabla=new DefaultTableModel(null,titulos);
Object []object = new Object[6];
ArrayList iteraciones = new ArrayList();
iteraciones = Biseccion.getIteraciones();
ArrayList An = new ArrayList();
An = Biseccion.getAn();
ArrayList Bn = new ArrayList();
Bn = Biseccion.getBn();
ArrayList Fpn = new ArrayList();
Fpn = Biseccion.getFpn();
Collections.reverse(Fpn);
for (int i = 1; i < iteraciones.size(); i++) {
object[0] = i ;
object[1]= An.get(i);
object[2]= Bn.get(i);
object[3]= iteraciones.get(i);
object[4] = Fpn.get(i) ;
tabla.addRow(object);
}
jTblNumerica.setModel(tabla);
}
package metododebiseccion;
import java.util.ArrayList;
import javax.swing.JOptionPane;
/**
*
* @author Hector Guerrero
*/
public class Biseccion {
private static ArrayList<String> An = new ArrayList<String>();
private static ArrayList<String> Bn = new ArrayList<String>();
private static ArrayList<String> iteraciones = new ArrayList<String>();
private static ArrayList<String> Fpn = new ArrayList<String>();
public static ArrayList getAn(){
return An;
}
public static ArrayList getBn(){
return Bn;
}
public static ArrayList getFpn(){
return Fpn;
}
public static ArrayList getIteraciones() {
return iteraciones;
}
public double raiz(Funcion f, double a, double b, int nMAx, double tolerancia) {
double r = Double.NaN;// le damos un valor por defecto por siacaso no encontramos la raiz
double c = a;
int k = 0;
System.out.print(b);
iteraciones.add(0, Double.toString(c));// añade a la colecion la primera iteraion
An.add(0, Double.toString(a));
Bn.add(0, Double.toString(b));
Fpn.add(0, Double.toString(f.eval((a+b))/2));
if (f.eval(a) * f.eval(b) < 0) {
while (Math.abs(f.eval(c)) > tolerancia && k < nMAx) {
c = (a + b) / 2;
if (f.eval(a) * f.eval(c) < 0) {
b=c;
}else{
a=c;
}
iteraciones.add(Double.toString(c));// añade a la colecion la tietacion k
An.add(0, Double.toString(a));
Bn.add(0, Double.toString(b));
Fpn.add(0, Double.toString(f.eval(c)));
k++;
}
}
if (k < nMAx ) {
r = c;
}
if (f.eval(a) * f.eval(b) > 0) {
JOptionPane.showMessageDialog(null,"f(a)f(b)>0", "no hay cambio de signo",JOptionPane.ERROR_MESSAGE);
r = Double.NaN;
iteraciones.clear();
An.clear();
Bn.clear();
Fpn.clear();
}
return r;
}
public void borrarColeccion() {
iteraciones.clear();
An.clear();
Bn.clear();
Fpn.clear();
}
}
赫拉一张照片 enter link description here