Bonjour a tous.
Je viens chercher votre aide car j'ai un petit soucis et que je n'arrive pas a le résoudre.
Je vous explique :

Je travaille sur un projet d'analyse de fonction (relativement simple) et pour le moment, je désire dessiner le graphique d'une fonction donné. Pour lemoment, rien de très compliqué. En fait il n'y a rien de compliqué si ce n'est qu'il ne m'affiche pas les erreur qu'il devrait. Par exemple pour la fonction 1/x ou x vaudrait 0, python ne devrait pas le calculer. Cependant, il arrive a trouver une valeur. Je vous montre mon code ainsi que le résultat obtenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
def dessinerGraphique():
 
    CanvasGraphique =  Canvas(Fenetre, width = 400.0, height=400.0)
 
    domaineDeDessin=[-10.0,10.0]
    intervalle=abs(domaineDeDessin[0])+abs(domaineDeDessin[1])
    echelle =  400.0/intervalle
    x=0.0
    y=0.0
    #Partie qui dessine le graphique vide.
    CanvasGraphique.create_line(200.0,0.0,200.0,400.0)
    CanvasGraphique.create_line(0.0,200.0,400.0,200.0)
 
    for i in xrange(0.0,intervalle):
        x=i*echelle
        CanvasGraphique.create_line(x,200+5,x,200-5)
        CanvasGraphique.create_line(200+5,x,200-5,x)
 
    fonction = EntreeFonction.get()
    #######################
 
    i=domaineDeDessin[0]
    premierPoint=True
    while(i<domaineDeDessin[1]):
        x=float(i)
        #Calcul de la coordonnée des points.
        try:
            #print i
            #print i+1.0
            print x
            y=eval(fonction)*echelle
            x=x*echelle
 
            print "f(",x/echelle,") = ",y/echelle
            #Ajuste les coordonnées des points pour etre dessinner.
            x=200+x
            y=200-y
 
            #Trace les points du graphique relier par une droite.
            if(premierPoint):
                ancienPoint=[x,y]
            else:
                CanvasGraphique.create_line(ancienPoint[0],ancienPoint[1],x,y)
                ancienPoint=[x,y]
            premierPoint=False
        except:
            #print "zéro vaut bien zéro ni pus ni moins"
            CanvasGraphique.create_line((x*echelle)+200,0,(x*echelle)+200,400,fill='red')
i+=float(intervalle)/200.0
Résultat de l'analyse pour la fonction (f(x)=1/(x+1))

pour x = -1.0
i = -1.0
i+1.0 = -1.86517468137e-14
x = -1.0
f( -1.0 ) = -5.36142812782e+13

pour x = 0.0
i = -1.87905246918e-14
i+1 = 1.0
x = -1.87905246918e-14
f( -1.87905246918e-14 ) = 1.0

J'espere que vous pourrez m'aidez, et que j'ai été assez clair.
Merci d'avance.