Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

algorithme de recherche de maximum

Posté par
philiberte
02-01-18 à 14:47

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

Posté par
fm_31
re : algorithme de recherche de maximum 02-01-18 à 15:50

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

Posté par
alb12
re : algorithme de recherche de maximum 02-01-18 à 16:53

salut,
je n'interviens pas mais le sujet m'interesse.

Posté par
mathafou Moderateur
re : algorithme de recherche de maximum 02-01-18 à 17:01

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 ...

Posté par
alb12
re : algorithme de recherche de maximum 02-01-18 à 17:24

@philiberte
si l'algo a ete vu en classe, quel est le probleme ?

Posté par
mathafou Moderateur
re : algorithme de recherche de maximum 02-01-18 à 17:30

celui de savoir comment traduire l'algorithme (abstrait, vu en cours) en un programme en langage Python ...
différence entre "algorithme" et "programme" ...

Posté par
vham
re : algorithme de recherche de maximum 02-01-18 à 18:15

Bonjour,

philiberte 02-01-18 à 14:47

qui traduit en langage Python l'algorithme de recherche de maximum vu  en classe


Recopiez cet algorithme pour comparer avec le programme Python qu'il faut compléter

Posté par
alb12
re : algorithme de recherche de maximum 02-01-18 à 18:45

si l'algo a ete vu il suffit de boucher les trous en python

Posté par
alb12
re : algorithme de recherche de maximum 02-01-18 à 19:04

@philiberte fais une proposition !

Posté par
vham
re : algorithme de recherche de maximum 02-01-18 à 19:22

il est très intéressant de voir comment est décrit "l'algorithme vu  en classe"

Posté par
philiberte
re : algorithme de recherche de maximum 02-01-18 à 20:06

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

Posté par
philiberte
re : algorithme de recherche de maximum 02-01-18 à 20:11

@alb12

justement je n'arrive pas à les compléter sachant qu'il y a tout dans l'énoncé

Posté par
mathafou Moderateur
re : algorithme de recherche de maximum 02-01-18 à 20:23

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

Posté par
vham
re : algorithme de recherche de maximum 02-01-18 à 20:51

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.

Posté par
mathafou Moderateur
re : algorithme de recherche de maximum 02-01-18 à 20:56

c'est vrai que compléter des trous quand on ne sait pas où sont les trous ...
il y a plusieurs solutions !

Posté par
bbomaths
re : algorithme de recherche de maximum 03-01-18 à 06:42

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 f(x) = -0,15x^2 + x + 1,5 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 de recherche de maximum

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)

Posté par
alb12
re : algorithme de recherche de maximum 03-01-18 à 09:10

ok juste une remarque:
"Le maximum de la fonction f(x)" est fautif.
Ecrire:"Le maximum de l'expression f(x)"

Posté par
philiberte
re : algorithme de recherche de maximum 03-01-18 à 13:57

Mon programme est complet il me manque juste    x=x+  qui est faux
merci e votre aide

Posté par
mathafou Moderateur
re : algorithme de recherche de maximum 03-01-18 à 14:18

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à.

Posté par
bbomaths
re : algorithme de recherche de maximum 03-01-18 à 17:23

Bonsoir.

Avez-vous continué exercice ?

Posté par
philiberte
re : algorithme de recherche de maximum 04-01-18 à 10:40

bonjour,
j'ai reussi mon exercice il me manque juste 3 questions a terminer mais je devrais y arriver
je vous remercie
a bientot



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !