Bonjour à tous ^^
Je dois réaliser une fonction "racines" qui rend les racines réelles et complexes d'un polynôme du second degré.
J'ai déjà une fonction "racines_réelles" qui calcule les racines réelles que je voudrais modifier pour qu'elle gère aussi les racines complexes.
Voilà un exemple de réponse attendue :
Voilà ma fonction racines_réelles:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # racines (1.,2.,3.) ;; les deux racines de x²+2x+3 = 0 sont -1.0 + i * 1.41421356237 et -1.0 - i * 1.41421356237
Mon problème pour l'instant c'est que je n'arrive pas à intégrer i dans la réponse lorsque le discriminant est négatif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 let racines_reelles = function (a,b,c) -> (* "racines_reeles" calcule les racines réelles,lorsqu'elles existent, d'une équation du second degré. *) let d = (b*.b-.4.*.a*.c) in if a = 0. then failwith "racines reelles : a = 0" else if d = 0. then (-.b/.(2./.a),-.b/.(2.*.a)) else if d > 0. then ((-.b-.(sqrt(d)))/.(2.*.a),(-.b+.(sqrt(d)))/.(2.*.a)) else failwith "il n'existe pas de racines reelles pour cette equation" ;;
J'ai essayé avec la concaténation et int_of_char sans succès.
Quelqu'un a une piste?
Partager