Recherche d'un zero de la fonction cosinus par dichotomie - C++ - Programmation
Marsh Posté le 15-03-2013 à 22:31:44
Bonsoir !
A vue de nez, vous n'atteignez jamais exactement la valeur pi/2 et, donc, vous ne vous arrêtez jamais, donc vous empilez les fonctions jusqu'au dépassement de pile.
Dans ces cas là, on ne continue pas jusqu'à tomber sur 0, mais sur une valeur inférieure à un epsilon ou que l'écart entre la borne sup. et la borne inf. est inférieur à un epsilon, et on considère alors avoir trouvé la racine.
Bonne continuation !
Marsh Posté le 16-03-2013 à 01:16:36
Déja ça marche pas à cause de ceci:
Code :
|
qui devrait être
Code :
|
D'autre part, il faut un test d'arrêt un peu plus efficace, par exemple s’arrêter quand bornesup - borneinf ne diminue plus car on est en bout de précision.
ça donne ceci (réécrit pour essayer de faire de la tail récursion)
Code :
|
qui exécuté donne
La racine de la fonction cosinus qui est comprise entre 0 et 2 vaut 1.5707963267949
(calculé en 55 appels récursifs)
A+,
Marsh Posté le 16-03-2013 à 04:00:22
On peut aussi faire ça de manière non récursive:
Code :
|
> La racine de la fonction cosinus qui est comprise entre 0 et 2 vaut 1.570796326794897
A+,
Marsh Posté le 15-03-2013 à 20:36:34
Bonsoir tout le monde,
Dans le cadre de mon cours d'informatique, je suis sensé réaliser un programme codé en C++ qui recherche, par le biai d'une fonction et d'appels récursifs, la racine de la fonction cosinus entre 0 et 2 par dichotomie.
Je crois que j'ai compris le principe et pourtant, lorsque je lance le programme que j'ai écrit, Windows m'indique que le programme a cessé de fonctionner.
Voici ci-bas le code source de ce programme. Pourriez-vous m'aider à comprendre pourquoi il ne fonctionne pas s'il-vous plait?
En vous remerciant d'avance de votre patience,
Swordfish
Message édité par 52v0rdf15h le 15-03-2013 à 20:37:26