Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 Re : Programmation » Programme Python (identifier une racine d'un trinôme) » 04-10-2021 20:17:09

En rentrant a=-5;b=3;c=2;f(-.4) sur la dernière ligne, il n'y a toujours rien qui s'affiche...

#2 Re : Programmation » Programme Python (identifier une racine d'un trinôme) » 04-10-2021 18:55:24

Voilà ce que la console m'affiche quand je rentre sur une ligne
print(f(-.4))

File "C:/Users/Alex/.spyder-py3/racine.py", line 14, in <module>
    print(f(-.4))

  File "C:/Users/Alex/.spyder-py3/equ_droite.py", line 5, in f
    while i<=end:

NameError: name 'a' is not defined


Le 'a' ne fait pas référence au a de mon trinôme car j'ai remplacé le caractère par z :

def solution(z,b,c,start,end):
  def f(x):
    return z*x**2+b*x+c

mais il m'affiche la même réponse...



Tu penses que ce que je veux faire est aberrant ?

#3 Re : Programmation » Programme Python (identifier une racine d'un trinôme) » 04-10-2021 18:02:57

Bonsoir Paco,

J'ai modifié mon trinôme pour avoir x² (donc a=, b= et c=0) avec un incrément i=i+1 au lieu de i=1+0.1
Je m'attend à ce qu'il m'affiche "0 est une racine évidente" mais en fait le résultat est toujours le même, rien ne s'affiche.

Je crois savoir qu'il peut y avoir des problèmes avec les virgules flottantes à cause du comptage en binaire. C'est ce que tu sous-entends ?

Désolé mais je suis vraiment un grand débutant Python et je n'ai pas réussi à demander le résultat de f(-0.4)... Quelle ligne faudrait-il que je rajoute ?


Merci.
Alex

#4 Programmation » Programme Python (identifier une racine d'un trinôme) » 04-10-2021 16:43:25

alexp02
Réponses : 12

Bonjour à tous,

Je suis un grand néophyte de Python, mais j'essaie de créer un petit programme pour des élèves de Lycée pro.
Le but de ce programme est de déterminer une racine évidente d'un trinôme par tâtonnement.
Voici ce que j'ai créé :

def solution(a,b,c,start,end):
  def f(x):
    return a*x**2+b*x+c
    i=start
    while i<=end:
      if f(i)==0:
        print(i,"est une racine évidente")
        break
      else:
        i=i+0.1
solution(-5,3,2,-10,10)


Ici je cherche à déterminer la plus petite des deux racines du trinôme -5x²+3x+2 dans l'intervalle [-10;10].
Les deux racines sont x1=-0,4 et x2=1
Je m'attends donc à ce que la console écrive "-0,4 est une racine évidente"
Malheureusement, rien n'apparait lorsque je lance le programme.

Quelqu'un saurait-il me dire ce qui ne va pas avec mon code ?

Je vous remercie par avance.

Alex.

Pied de page des forums