Sagot :
Réponse :
Bjr,
Erreur dans l'énoncé à propos de k :
- les variables k et n des
entiers naturels
- k allant de -n à n
1. Les éventuelles valeurs de L sont solution de l'équation :
a x² + b x + c = 0
Et une solution de l'équation a x² + b x + c = 0 est une racine du polynôme a x² + b x + c.
Un polynôme de degré 2 possède 0, 1 ou 2 racines réelles.
La liste L peut rester vide ou avoir un ou deux éléments.
2.a. 2 (-2)² - 3(-2) + 1 = 8 + 6 + 1 = 15
2 (-1)² - 3(-1) + 1 = 2 + 3 + 1 = 6
2 (0)² - 3(0) + 1 = 1
2 (1)² - 3(1) + 1 = 2 - 3 + 1 = 0
2 (2)² - 3(2) + 1 = 8 - 6 + 1 = 3
Dans la liste L, on a un seul élément, le nombre 1.
b. 2 (-2)² + 7(-2) - 15 = 8 - 14 - 15 = -21
2 (-1)² + 7(-1) - 15 = 2 - 7 - 15 = -20
2 (0)² + 7(0) - 15 = -15
2 (1)² + 7(1) - 15 = 2 + 7 - 15 = -6
2 (2)² + 7(2) - 15 = 8 + 14 - 15 = 7
La liste L reste vide dans cet exemple.
3. >>> racine1(2,2,-3,1)
[1]
>>> racine1(2,2,7,-15)
[ ]
Modification de n :
>>> racine1(100,2,-3,1)
[1]
>>> racine1(100,2,7,-15)
[-5]
En changeant la valeur de n, une racine a été trouvée pour le polynôme 2 x² + 7 x - 15.
4. Cet algorithme a pour rôle d'afficher d'éventuelles racines réelles d'un polynôme de degré deux.
Limites :
- le programme teste des valeurs dans un intervalle lié à n. Les racines peuvent se situer hors intervalle.
- dans l'intervalle, le programme utilise seulement des nombres entiers. Les racines sont souvent des nombres non entiers.
- les capacités de calcul de Python dans certains cas :
On a déterminé que -5 est racine du polynôme 2 x² + 7 x - 15 et donc que -5 est solution de l'équation :
2 x² + 7 x - 15 = 0
2 x² + 7 x - 15 = 0 est équivalent à (2 x² + 7 x - 15)/3 = 0/3
On obtient le polynôme a x² + b x + c avec :
a = 2/3
b = 7/3
c = -5
-5 est aussi racine de ce polynôme.
>>> racine1(100,2/3,7/3,-5)
[ ]
Pourtant la liste L reste vide !
>>> 2/3*(-5)**2+7/3*(-5)
4.9999999999999964
Calcul qui est égal à 5 au lieu de 4,9999999999999964.
Exemple de programme Python corrigé :
def racine1 (n, a, b, c) :
L = [ ]
for k in range (-n, n + 1) :
if a*k**2+b*k+c==0 :
L.append (k)
else:
if abs(a*k**2+b*k+c)<10**-6 :
print("Attention, valeur à vérifier :",k)
return L
Et exécuté :
>>> racine1(100,2/3,7/3,-5)
Attention, valeur à vérifier : -5
[ ]
>>>