Vlw pela ajuda, funcionou perfeitamente aqui colocando direto no código a String recebendo o polinômio, no entanto quando eu tentei o mesmo no programa com Interface tive problemas, fiz diversos testes e notei que diferentemente do programa em texto, em que no momento do recebimento do polinômio, já na String o x é substituído por seu valor, com interface isso não ocorre.
private void metodoNewton(double x, int n){
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
String polifx = jTextFx.getText();
String polifderivada = jTextFderivado.getText();
polifderivada = (polifderivada.replace("x", (String.valueOf(x))));
polifx = polifx.replace("x", String.valueOf(x));
//Coloquei println aqui pra ver o valor dentro, e sem o replace o x continua sendo x, diferentemente de quando coloca a String
//pra receber diretamente o polinômio, colocando uma função como Math.exp() da forma que eu estou fazendo daria problema
System.out.println(polifx);
System.out.println(polifderivada);
double erro = Double.parseDouble(jTextErro.getText());
double fx = 0,fderivada = 0;
try{
fx = (Double) engine.eval(polifx);
fderivada = (Double) engine.eval(polifderivada);
} catch (ScriptException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
double fi = x - fx/fderivada;
double fabs = Math.abs(fx);
table.addRow(new Object[] {n,x,fi,fabs});
if (fabs>erro){
x = fi;
metodoNewton(x,n++);
}
}
Tentei de várias formas aqui mas só consegui resolver em partes usando .replace, mas em polinômios com função que possua x no nome como por exemplo Math.exp, o x dele também seria substituído o que causaria um problema. Tem alguma outra forma de resolver isso?