Bonjour à tous,
Je dois créer un programme python pour calculer le taux d'accroissement d'une fonction en h appelée taux_variation(f,a,h) puis à partir de cette fonction créer une fonction nombre_derive(f,a) qui calcule le taux de variation pour h=0.000001
Pour cela, on a d'abord crée
Qui fonctionne sans soucis mais quand je veux l'utiliser dans taux_variation cela ne fonctionne pas quand je lance par exemple taux_variation (x*x; 5 , 1) il y a un message d'erreur
def taux_variation(f,a,h):
xA=a
xB=a+h
yA=f(a)
yB=f(a+h)
c=coefficient_directeur(xA,yA,xB,yB)
return c
Pour le message d'erreur [ATTACH=CONFIG]472602[/ATTACH]
Pour ce qui est de definir une fonction celle se fait dans avant la création de la fonction taux ?
Non, mais pour appliquer taux à une fonction f, il faut que f soit une fonction.
N'ayant jamais pratiqué Python, je laisse d'autres conseiller. mais je remarque que tu confonds la fonction (f) avec l'image d'un x inconnu (f(x), ici x*x ou 3x+2). 3x+2 est une expression, comme xB-xA, et comme x n'a pas été défini, Python ne sait pas quoi en faire.
Il calcule le taux de variation d'une fonction f(x) = Ax² + Bx + C
Il permet d'entrer les valeurs de A, B et C ainsi que la valeur de x et de h ...
Ce n'est probablement ce que tu veux, mais en comprenant comment cela fonctionne, tu pourras comprendre ce qui ne va pas dans ce que tu as écrit et tu pourras essayer de l'adapter.
def coefficient_directeur(xA,yA,xB ,yB):
deltax=xB-xA
deltay=yB-yA
return deltay/deltax
def taux_variation(f,a,h):
xA=a
xB=a+h
if(f==fonc) :
print("La fonction est Ax² + Bx + C : ")
print("Entrez A :")
A=float(input())
print("Entrez B :")
B=float(input())
print("Entrez C :")
C=float(input())
yA=fonc(A,B,C,xA)
yB=fonc(A,B,C,xB)
c=coefficient_directeur(xA,yA, xB,yB)
return c
def fonc(a,b,c,x):
return (a*x*x + b*x + c)
print("Entrez x :")
x=float(input())
print("Entrez h :")
h=float(input())
print(taux_variation(fonc,x,h))
D'accord je comprend l'idée.
En définissant une fonction avant cela fonctionne sans problème
mais est-il possible de modifier ce programme pour qu'il demande à l'utilisateur l'expression de la fonction ?
Dans def f(x) peut on rajouter un input ? Je n'ai pas réussi à le faire
[ATTACH=CONFIG]472658[/ATTACH]
C'est dommage de donner une réponse toute cuite.
Ce n'est vraiment pas l'esprit du forum ni la charte d'ailleurs.
C'est encore plus dommage quand c'est du code pas top qui notamment met un input dans une fonction alors qu'il aurait du être fait dans le main et son résultat passé en argument.
Je n'ai pas d'ordi sous la main mais au fait le x local est bien passé à eval ?
Je n'ai pas d'ordi sous la main mais au fait le x local est bien passé à eval ?
J'ai vérifié et ça marche, pas besoin de passer par le dict optionnel. Il y a des cas où ça ne marche pas tout seul mais je n'ai plus les détails en tête.