Alguém me ajuda ? O programa entra em looping infinito quando coloco a função do Módulo
package metodosecante;
import javax.swing.*;
public class MetodoSecante {
public static void main (String [] args){
double a,b,c = -1, fa, fb, precisao;
int interacoes;
JOptionPane.showMessageDialog(null, "Função: F(x)= 2x - Cos(x) , Erro 0,001");
a = Double.parseDouble(JOptionPane.showInputDialog("Insira o valor de X0"));
b = Double.parseDouble(JOptionPane.showInputDialog("Insira o valor de X3"));
precisao = Float.parseFloat(JOptionPane.showInputDialog("Insira a precisão"));
fa = 2*a - Math.cos(a);
fb = 2*b - Math.cos(b);
if(fa < fb){
JOptionPane.showMessageDialog(null, "Valores inválidos");
}
interacoes = 1;
while (Math.abs(c) > precisao){
c = b - fb*(b-a)/fb-fa;
if (Math.abs(c) < precisao){
JOptionPane.showMessageDialog(null, "A raiz é:" + c);
}
else{
a = b;
b = c;
interacoes = interacoes + 1 ;
}
if (c < 0){
c = c*-1;
}
}
//JOptionPane.showMessageDialog(null, "A raiz é "+c+", obtida com "+interacoes+"interações" );
}
}