Bonjour,
ci dessous l'énoncé de mon problème :
On lance une balle du haut d'un mur. soit (x;y) les coordonnées du point représentant cette balle dans un repère orthonormée (x et y sont des longueur en mètre)
On modélise l'équation de la courbe fx=-0.25x²+1.9x+7.28
Le script Python doit permettre d'estimer le maxi de f.
Compléter les ligne 7 et 11 sachant que qu'en exécutant le script on obtient comme sortie : 10.89 atteint en 3.799999
Le script :
1 def f(x) :
2 return +0.25*x**2+1.9*x+7.28
3 x=2
4 xatteint=x
5 max=f(2)
6 while x<5
7 if f(x) .................
8 max=f(x)
9 xatteint=x
10 x=x+0.01
11 print (..............,"atteint en",...........)
Expliquer les choix des valeurs 2 et 5 dans les lignes 3 et 6 du script.
Je n'arrive pas à completer ce script et je ne comprend pas le choix des 2 valeurs 2 et 5.
Merci pour votre aide.
bonjour
n'y a-t-il pas d'autres questions avant ?
par exemple, concernant la variation de la fonction f ?
que ne comprends-tu pas de ce programme ?
quelles lignes te posent difficultés ?
avec les bonnes indentations :
def f(x) :
return -0.25*x**2+1.9*x+7.28
x=2
xatteint=x
max=f(2)
while x<5:
if f(x).......:
max=f(x)
xatteint=x
x=x+0.01
print (....., "atteint en",.......)
Merci pour ce retour.
Il y a effectivement un courbe associé. Il s'agit d'un parabole orienté vers le bas qui schématise le lancer de la balle.
Ligne 7 je dois compléter les ....
J'ai bien compris que l'on crée une boucle (while) et que l'on met un critère si (if) qui précise que si f(x) décroit ou dimunue alors la max a été atteint et que l'on donne le résultat en ligne 11 : print xatteint atteint en , f(x)max.
Mais je nage un peu de ces fonctions !
De plus je ne sais pas justifier les chois des nombre 2 et 5 sauf de penser que sur la courbe que l'on a taper sur la calculatrice (demandé en première question) on voit bien que le sommet de la parabole se situe grossièrement entre é et 5.
on y va dans l'ordre :
"...courbe associé. Il s'agit d'un parabole orienté vers le bas qui schématise le lancer de la balle."
à partir de ce graphique, "à la louche",
tu peux faire une estimation d'entre quelle et quelle valeurs des abscisses la parabole atteint son maximum.
qu'en penses-tu ?
(tu peux insérer le graphique ici si tu veux)
bonjour carita
bonjour Dav33
pur mettre ton graphique :
ok
imaginons que tu ne connaisses pas les coordonnées du sommet.
on peut estimer, sans prendre de risque, que l'abscisse de ce sommet est compris entre 2 et 5,
même si on très très myope et sans lunette
d'accord ?
c'est cet intervalle [2;5] qui va servir dans le programme.
on part de x=2, on calcule son image f(2)
puis prendre la valeur suivante, calculer son image...
puis la suivante, calculer son image...
répéter cette opération jusqu'à ce que - comme tu l'as bien décrit - f(x) diminue !
on saura alors que l'on a atteint (et même dépassé...) le max de f (i.e. l'ordonnée du sommet)
je rédige la suite et je reviens.
J'ai bien compris que l'on crée une boucle (while)
et que l'on met un critère si (if) qui précise que si f(x) décroit ou dimunue
alors la max a été atteint et
que l'on donne le résultat en ligne 11 : print xatteint atteint en , f(x)max.
tout ça c'est bien, sauf ce qui est en rouge (pb de vacabulaire)
le max de f est l'ordonnée du sommet
et il est atteint en xatteint (l'abscisse du sommet).
---
la fonction
def f(x) :
return -0.25*x**2+1.9*x+7.28
est ici toute simple : elle permet de calculer l'image d'un x passé en paramètre.
à chaque fois, dans le programme, que tu souhaiteras calculer l'image d'une valeur x,
l'instruction f(x) appellera automatiquement la fonction
et te retournera l'image (=la valeur calculée)
----
question : quel est le pas choisi par le programme pour passer d'une valeur de x à la suivante ?
---
reprends le programme dans l'ordre et dis à présent quelles lignes précisément tu ne comprends pas.
Le pas choisi pour passer d'une valeur de x a la suivante est x=x+0.01 non ?
Je pense avoir compris :
ligne 7 je dois compléter (en rouge) : if f(x)<f(xatteint)
et ligne 11 :
print ( f(xatteint) "atteint en" xatteint"
Est-ce juste ?
oui, le pas est de 0.01
cela signifie que le programme va calculer (et tester) séquentiellement les images de :
2
2.01
2.02
2.03
etc..... théoriquement jusqu'à 5
mais il s'arrêtera en fait dès que la condition du if sera remplie
la conséquence du choix de ce pas, c'est que la précision des coordonnées du sommet ne sera qu'à 1/100ème près.
---
ligne 7 if f(x)<f(xatteint) --- oui... mais non
ligne 11 : print ( f(xatteint) "atteint en" xatteint" --- idem
dans les 2 cas, ce n'est pas f(xatteint) qu'il faut mettre....
à ton avis, à quoi sert la ligne 8 ?
La ligne 8 sert à donner le maximun de f(x)
donc ligne 7, on doit juste donner la condition si max atteint alors on arrête le compteur et on imprime les données.
Donc ligne 7 if f(x)=max
ligne 8 print (f(x)=max atteint en" x"
?? je nage ou je coule ?
La ligne 8 sert à donner le maximun de f(x) --- pas à donner, mais à stocker le dernier 'max' calculé
x=2
xatteint=x
max=f(2)
while x<5:
if f(x) > max: # si la condition est remplie, alors
max=f(x) # on conserve dans max l'image du dernier x calculée
xatteint=x # et on stocke la valeur de x correspondant dans xatteint
x=x+0.01
je viens de voir une étourderie de ma part... :/
que tu as sans doute rectifiée, mais je corrige :
OK je comprend mieux.
Du coup pour la ligne 11, il suffit de noter :
ligne 11 : print ( f(x) "atteint en" x"
il va automatiquement restituer les valeurs stockées (x et et son image fx ?
En tout cas merci beaucoup de m'avoir aider car le prof passe tres vite sur Python et je n'arrive pas à suivre.
non, ce n'est pas x, ni f(x) en ligne 11, mais x atteint et max .
le programme calcule les images des x sur tout l'intervalle [2;5], avec un pas de 0.01, mais, à la fin,
dans max , on aura conservé l'ordonnée maximale.
et dans x atteint, on aura conservé l'abscisse qui lui correspond.
donc en affichage :
11 print (max, "atteint en", xatteint)
bonne continuation !
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :