j'après la provocation:algorithme pour trouver un point zéro
implémenter une fonction qui recherche un point nul de la fonction de sinus dans un intervalle entre a et b. L'intervalle de recherche [limite inférieure, limite supérieure] doit être réduit de moitié jusqu'à ce que la limite inférieure et la limite supérieure soient à moins de 0,0001 l'une de l'autre.
Trouvez une condition pour décider dans quel intervalle divisé par deux la recherche doit être poursuivie. Donc, après avoir coupé l'intervalle en deux intervalles, nous devons en choisir un pour poursuivre notre recherche.
Nous supposons qu'il y a juste un point zéro dans l'intervalle entre a et b.
Je me bats avec le point 1. J'avais déjà quelques questions sur ce sujet qui m'a beaucoup aidé, mais maintenant je dois la mettre en œuvre en Java, mais il ne fonctionne pas encore.
Voici mon code à ce jour:
private static double nullstelle(double a, double b){
double middle = (a + b)/2;
double result = middle;
if(Math.abs(a-b) > 0.0001){
double sin = Math.sin(middle);
if(sin > 0){
result = nullstelle(a, middle);
}else{
result = nullstelle(middle, b);
}
}
return result;
}
J'ai essayé de mettre en œuvre à l'aide récursion, mais peut-être une autre façon serait mieux, je ne sais pas. Des idées?
est-ce pas exactement la même question que vous avez posté ici: http://stackoverflow.com/questions/4086385/find-zero-points-with -recursion – Grodriguez
Oh, et aussi ici: http://stackoverflow.com/questions/4085115/find-null-points-of-sinus-function – Grodriguez
Si x1 et x2 sur le graphique sont les valeurs que vous utilisez pour 'un 'et' b', vos données de test violent l'hypothèse de 2). – Simon