Bonjour, excusez moi de vous déranger mais j'ai vraiment besoin d'aide.
mon exercice est le suivant:
1-compléter le programme suivant qui traduit en langage Python l'algorithme de recherche de maximum vu en classe
2-Entrer le programme complété dans edupython. Faites tourner le programme avec N=4. Vérifier le résultat. En cas de problème, vérifier que tout à été rentré précisement.
3- Faites tourner le programme pour des valeursde n de plus en plus importantes. A partir de quand le résultat est-il stable au millième près?
4- Faites un tableau donnant le résultat a 10-5 pour cinq différentes valeurs de N testées à la question précédente.
5-Combien vaut le maximum de cette fonction au millième près?
6- Conclure quant à la hauteur maximale atteinte lors du lancer.
Voici l'algorithme en question:
1 [i]#Algorithme de recherche de maximum
2 print("Programme de recherche de maximum de la fonction f(x)=0.15x2+x+1.5 sur [0;8]")
3 n=int(input("Entrez ")
4 pas=8
5 x=0
6 f=-0.15*x**2+x+1.5
7 max=f
8 for i in range (1,n+1)
9 x=x+
10 f=
11 if(f>=max):
12 max=
13 print("Le maximum de la fonction f(x)=-0.15x2+x+1.5 sur [0;8]vaut: ",max)
14
Bonjour ,
Où en es-tu ? Que ne comprends-tu pas ?
Je pense qu'il te faut modifier l'algorithme donné (à moins qu'il ait été mal recopié)
Cordialement
Bonjour,
idem
il faut comprendre ici la variable f comme devant contenir la valeur de la fonction pour une certaine valeur de la variable x
(à écrire explicitement à chaque fois, ce qui est un peu sot en Python, mais bon ...)
de même les espaces complètement farfelus et l'erreur de syntaxe en plus dans
3 n=int(input("Entrez ")
et appeler "pas" une variable qui n'a rien à voir avec un pas ...
bref cet exercice est un exemple de la pire façon d'apprendre Python ...
celui de savoir comment traduire l'algorithme (abstrait, vu en cours) en un programme en langage Python ...
différence entre "algorithme" et "programme" ...
Bonjour,
mon problème est que je n'arrive pas à compléter l'algorithme à partir du 4 sachant que ce qui est vu en classe n'a aucun rapport avec ceci.
merci bcp
mais comme on ne sait pas ce qui a été vu en classe ...
quoi qu'il en soit
fais une proposition ...
1 #Algorithme de recherche de maximum pour info, titre de l'algorithme
2 print("Programme de recherche de maximum de la fonction f(x)=0.15x2+x+1.5 sur [0;8]") impression d'un pur texte
3 n=int(input("Entrez ") affichage d'un messages "Entrez ..." (entrer quoi donc ?, c'est à compléter !)
et la réponse de l'utilisateur sera mise dans n
4 pas=8 c'est la largeur de l'intervalle d'étude (de 0 à 8)
5 x=0 on commence à chercher le maximum à partir de x = 0
6 f=-0.15*x**2+x+1.5 on calcule la valeur de f(x) pour cette valeur de x là
7 max=f on suppose que c'est déja ça le maximum
8 for i in range (1,n+1) on va balayer n valeurs de x, [i]indicées pour i de 1 à n inclus
9 x=x+ à compléter comment fait on progresser les valeurs de x ?
10 f= à compléter on va en faire quoi de cette nouvelle valeur de x ?
11 if(f>=max): si l'hypothèse que max calculé précédemment était le vrai max est fausse
12 max= à compléter donc on le remplace. Par quoi ?
13 print("Le maximum de la fonction f(x)=-0.15x2+x+1.5 sur [0;8]vaut: ",max) Résultat final
14
Bonsoir,
On ne peut donc savoir comment est décrit "l'algorithme vu en classe"
C'est justement ce qui devrait aider philiberte pour définir la valeur de la variable pas (pas=8/n) de façon à compléter x=x+pas dans la boucle for...
L'important est d'avoir compris ce que doit faire le programme et de l'inscrire comme commentaire en-tête du programme.
c'est vrai que compléter des trous quand on ne sait pas où sont les trous ...
il y a plusieurs solutions !
Bonjour.
Le sujet m'intéressant, je me permets d'y intervenir...
Résumons...
L'exercice demande de rechercher approximativement le sommet S d'une fonction parabolique prédéfinie dans un intervalle fixé [0;8].
L'algorithme proposé est un algorithme de recherche de la valeur maximale de l'ordonnée d'une série de points appartenant à la fonction prédéfinie. La série de points est obtenue en prenant des valeurs de f(x) à intervalle régulier (pas de calcul = 8 / N).
Algorithme proposé :
# Algorithme de recherche de maximum
print("Programme de recherche de maximum de la fonction f(x)=-0.15x2+x+1.5 sur [0;8]")
# saisie du nombre d'intervalles
n = int(input("Entrez le nombre d'intervalles N : "))
# calcul du pas
pas = 8 / n
# premier point suppose etre la valeur maximale courante de f(x) par defaut
x = 0
f = -0.15 * x**2 + x + 1.5
max = f
# calcul des points suivants
for i in range (1, n + 1) :
# abscisse suivante
x = x + pas
# calcul de f(x)
f = -0.15 * x**2 + x + 1.5
# f(x) superieure a la valeur maximale courante de f(x) ?
if f >= max :
# oui : f(x) devient la nouvelle valeur maximale courante
max = f
# affichage du résultat
print("Le maximum de la fonction f(x)=-0.15x2+x+1.5 sur [0;8] vaut : ", max)
ok juste une remarque:
"Le maximum de la fonction f(x)" est fautif.
Ecrire:"Le maximum de l'expression f(x)"
il a été donné par bbomaths dans sa correction complète
sinon ce que je voulais dire en parlant de "on ne sait pas où sont le trous" est que avec
pas = 8 tout court
et x = x+pas/n ça marche tout aussi bien.
même si le nom de la variable "pas" suggère plutôt la solution de bbomaths que celle là.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :