gracias por la respuesta
te comento: return me suena de algo a recursividad, y no lo hemos dado en clase, por tanto no sé si me conviene utilizarlo para resolverlo
por otro lado he montado un código pero, evidentemente, no me entra en el bucle que deseo y la verdad no encuentro manera de solucionarlo
import java.util.*;
public class p6ej2 {
public static void main(String[] args) {
// Declaro variables
double m,f1,f2,f3,E,pi,b,a;
int i,nIt;
//Se crea el objeto 'teclado' de clase Scanner
Scanner teclado = new Scanner(System.in);
//Se invoca al método println() del objeto System.out para
//mostrar en pantalla un mensaje informativo sobre el programa
System.out.println ("Raíz de la ecuación trascendenteal"
+ "x-cos(x)");
//Pido al usuario que introduzca desde teclado el número máximo
//de iteraciones a realizar y el error
System.out.println("Introducir número máximo de iteraciones:");
nIt = teclado.nextInt();
System.out.println ("Introducir error:");
E = teclado.nextDouble();
//Inicializo
a = 0;
pi = 3.1416;
b = pi/2;
i = 0;
m = (a+b)/2;
f1 = m - Math.cos (m);
//Estructura para resolver el problema
while ((i< nIt) && (Math.abs(f1)>E)){
f2 = a - Math.cos (a);
f3 = b - Math.cos (b);
if((f1>0 && f2<0)||(f2>0 && f1<0)) {
//La raíz se encuentra en (a,m)
b = m;
}else {
//La raíz se encuentra en (m,b)
a = m;
}
i = i +1;
}
//Escribo la aproximación a la raíz de x-cos(x)
System.out.println("La aproximación a la raíz de x-cos(x) es:"
+ m);
}
}
simplemente se me queda en la primera aproximación..
te comento: return me suena de algo a recursividad, y no lo hemos dado en clase, por tanto no sé si me conviene utilizarlo para resolverlo
por otro lado he montado un código pero, evidentemente, no me entra en el bucle que deseo y la verdad no encuentro manera de solucionarlo
import java.util.*;
public class p6ej2 {
public static void main(String[] args) {
// Declaro variables
double m,f1,f2,f3,E,pi,b,a;
int i,nIt;
//Se crea el objeto 'teclado' de clase Scanner
Scanner teclado = new Scanner(System.in);
//Se invoca al método println() del objeto System.out para
//mostrar en pantalla un mensaje informativo sobre el programa
System.out.println ("Raíz de la ecuación trascendenteal"
+ "x-cos(x)");
//Pido al usuario que introduzca desde teclado el número máximo
//de iteraciones a realizar y el error
System.out.println("Introducir número máximo de iteraciones:");
nIt = teclado.nextInt();
System.out.println ("Introducir error:");
E = teclado.nextDouble();
//Inicializo
a = 0;
pi = 3.1416;
b = pi/2;
i = 0;
m = (a+b)/2;
f1 = m - Math.cos (m);
//Estructura para resolver el problema
while ((i< nIt) && (Math.abs(f1)>E)){
f2 = a - Math.cos (a);
f3 = b - Math.cos (b);
if((f1>0 && f2<0)||(f2>0 && f1<0)) {
//La raíz se encuentra en (a,m)
b = m;
}else {
//La raíz se encuentra en (m,b)
a = m;
}
i = i +1;
}
//Escribo la aproximación a la raíz de x-cos(x)
System.out.println("La aproximación a la raíz de x-cos(x) es:"
+ m);
}
}
simplemente se me queda en la primera aproximación..