Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Dm maths 2nde Python

Posté par
Mama23456
15-12-19 à 16:25

Le maire s'intéresse à l'évolution de la population de sa ville. Une étude a permis d'établir que la population de l'année 2019+n peut être estimée par la formule:
P(n)=2n3-132n2+2898n+9412
1. Vérifier que selon ce modèle la population 2022 sera de 16 972 habitants.
On considère la fonction P définie sur l'intervalle [0;23] par:
P(x)=2x3-132x2+2898x+9412
2.On admet que la fonction P admet un maximum M sur [0;23] en une valeur entière n de x
a. Écrire et compléter le programme si-desous à fin que la fonction pop retourne la valeur de n et celle de M.
Pièce jointe
b.Interpréter les valeurs retournées par le programme.

Pour le 1 j'ai trouvé :
P(3)=16972
Mais pour le reste je ne comprends pas du tout, si vous pouvez m aider j'en voir remercie profondément

Dm maths 2nde Python

Posté par
ZEDMAT
re : Dm maths 2nde Python 15-12-19 à 19:37

Bonsoir,

Es tu sûr que la phrase "On considère la fonction p..." n'est pas dans l'énoncé officiel AVANT la question 1 : "1. Vérifier que.." ?

Si tu regardes un peu comment se comporte la fonction P(x) soit avec le mode Graph ou le mode Tab de ta calculatrice ou encore avec GEOGEBRA ou un tableur...,
tu devrais constater (d'ailleurs l'énoncé te le dit !!) que cette fonction est croissante jusqu'à la valeur x entière n = 21 et qu'après P(x) décroit !!

Donc pour x = 21, la fonction est maximale et prend pour valeur M= P(21) = ????

Tu as ainsi les réponses qui te permettent de comprendre (je l'espère) comment évolue la population si on PREND COMME MODÉLE la restriction de P aux valeurs entières.

Après ce n'est pas ce qui est demandé

On te donne un programme PYTHON pour "explorer la fonction P sur l'intervalle [0;23] et trouver les valeurs n = 21 et M = le maximum.

As tu essayé de comprendre comment "fonctionne" ce programme ?

Posté par
Mama23456
re : Dm maths 2nde Python 15-12-19 à 23:48

Merci pour votre réactivité, oui j'en suis sûr je viens de vérifier,

Pour ce qui est du programme, voilà ce que j ai compris :
- en premier on calcule l'évolution logique de la population
-ensuite on défini une fonction pour M le maximum et n je ne sais pas, sur l intetvalle [0;23],
- après je ne comprends plus a commencer par savoir qu'est ce que p(i)

Posté par
lafol Moderateur
re : Dm maths 2nde Python 15-12-19 à 23:51

Bonjour
pour savoir ce qu'est p(i), il suffit de remplacer k par i dans les lignes 1 à 3 ...

Posté par
Mama23456
re : Dm maths 2nde Python 16-12-19 à 00:34

Ah d'accord ! Mais pourquoi changer les lettres ? Juste pour nous embrouiller ?

Donc si j ai bien compris, le programme se complète ainsi :

Citation :
def pop(i ou k ?):
....
....
...
If M<y



??

Posté par
lafol Moderateur
re : Dm maths 2nde Python 16-12-19 à 07:44

Y n'existe pas en dehors de la définition de la fonction p

Posté par
Mama23456
re : Dm maths 2nde Python 16-12-19 à 08:43

Donc

If M<p(k)


Mais ducoup pour la ligne d au dessus, c'est « def pop (i) » ou alors « def pop (k) »

Posté par
mathafou Moderateur
re : Dm maths 2nde Python 16-12-19 à 13:06

Bonjour,

tu as des idées fausses au départ sur la signification générale de la syntaxe Python
et de la programmation en général.
def pop () définit (def) une fonction que l'on a choisi de nommer pop
une fonction prend généralement des paramètres en entrées
ces paramètres sont ce que l'on met entre les parenthèses
chaque fois qu'on appellera (utilisera) la fonction, elle fera ses opérations à partir des valeurs des paramètres qu'on lui a donné à ce moment là (au moment de l'appel)

ici cette fonction n'a aucune entrée donc on ne met rien dans les parenthèses
tout ce dont elle a besoin pour fonctionner est fabriqué de toute pièces par la fonction elle même dans le "corps" de la fonction

avec d'autres langages (en C par exemple) le corps de la fonction est matérialisé par des accolades, voire dans d'autres langages encore par des mots clés "debut" "fin" explicites

en Python, c'est défini par les deux point qui suivent le def pop() et par le jeu de l'indentation (les espaces en début de ligne) :
def pop():
     bla
     bla
     bla
     dernière opération de la fonction
ce qui suit (sans espaces devant) est en dehors de la définition de la fonction

que fait cette fonction (que fera-t-elle chaque fois qu'on l'appellera)
ell définit et met des valeurs dans ses propres variables à elle :
n = 0
M = 0
elle exécute une boucle (for= pour) dans laquelle elle va répéter des opérations effectuées successivement avec autant de valeurs qu'il faut de la variable qu'elle crée qui a été appelée i (choix de celui qui a décidé de l'appeler comme ça, i comme "indice" dans la boucle)
pour chacune de ces valeurs de i dans l'intervalle (range) de 0 à 24
donc successivement avec i valant 0, puis 1, puis 2 etc
on va effectuer ce qui suit, qui là encore est "délimité" par le jeu de l'indentation
donc des espaces supplémentaires

def pop():
     n=0
     M=0
     for .. :
          if ....
          etc
     en dehors du for
ce qui suit (sans espaces devant) est en dehors de la définition de la fonction

et de même pour le "if " (si) :
ce qui doit être fait si la condition est vraie à cet instant (rappelons que c'est répété pour chacune des valeurs de i !)
est encore une fois délimité par une indentation supplémentaire
etc

parmi les calculs effectués par la fonction pop(), se trouve un ou des appels à la fonction P(k)
celle là elle prend un paramètre d'appel, une valeur d'entrée qui est ce qu'on mettra à la place de k lors de l'appel
bien comprendre la différence fondamentale entre la définition d'une fonction et l'appel de cette fonction, son utilisation

et quand on appelle P(i) la fonction P(k) calculera ce qu'elle doit calculer avec comme valeur de sa variable k la valeur de i à cet instant
donc successivement 0, 1, 2 etc au fur et à mesure des appels successifs
elle fait son calcul dans une variable y qui lui est propre
et renvoie comme résultat (return) la valeur de cette varoable y à cet instant
bref P(i) est cette valeur

en espérant avoir clarifié certains points, ceux qui ont amené à des erreurs fondamentales comme la simple idée de vouloir écrire pop(i) ou y à l'extérieur de la fonction P(x) et la codufos entre i (variable interne de la fonction pop() et k (désignation du paramètre d'entrée de la fonction P(k))

nota :
tel quel ce programme ne fait donc rien du tout : il se contente de définir des fonctions, ce qu'il faudra faire.
pour en faire quelque chose il faut donc appeler (invoquer, exécuter) la fonction pop()
en tapant pop() en ligne de commande de la console Python

Posté par
mathafou Moderateur
re : Dm maths 2nde Python 16-12-19 à 13:12

quelques fautes de frappe résiduelles :
...de vouloir écrire pop(i),
ou y à l'extérieur de la fonction P(x)
et la confusion entre ...
les autres fautes de frappe sont interprétables sans difficulté.

Posté par
Mama23456
re : Dm maths 2nde Python 16-12-19 à 18:33

Mais contrairement nous devons compléter uniquement le « if ...... »

Posté par
mathafou Moderateur
re : Dm maths 2nde Python 16-12-19 à 18:58

contrairement ???

nous devons compléter uniquement le « if ...... »
exactement

il n'y a aucune raison de modifier le "pop()" comme tu le dis, ça n'a aucun sens

et faire intervenir un "k" dans la fonction pop() (dans son "if") n'a aucun sens non plus vu que cette variable là n'existe pas au sein de la fonction pop()
c'est i qui prend des valeurs successives de la variable mathématique x "muette" du polynome mathématique P(x)

Posté par
Mama23456
re : Dm maths 2nde Python 16-12-19 à 22:09

D'accord oui excusez moi je voulais mettre concraitement, et pour le if
C'est if M<P(k) ?

Posté par
mathafou Moderateur
re : Dm maths 2nde Python 16-12-19 à 23:06

c'est vrai que avec en plus une faute d'orthographe, deviner ce qui devait être tapé au lieu de "concrètement" était difficile

pour le if :
il faut le dire combien de fois que k n'existe pas dans la fonction pop() ???
k est une variable interne de la fonction P(k) (comment est nommé son paramètre d'appel dans cette fonction P(k), dans sa définition)

les valeurs de la variable c'est i dans pop()
if M < P(i)

c'est le même principe que en maths pures quand on définit une fonction f(x)
et qu'on veut en calculer la valeur pour x = 3 (en le point 3), on écrit f(3),
pour x = a on écrit f(a) pour x = 7b+3 on écrit f(7b+3) etc
c'est pareil !!

on définit la fonction P(k) (k joue le même role que "x" )
puis quand on veut en calculer une valeur je l'appelle avec la valeur voulue à la place de "k"
si je veux calculer sa valeur pour k =3, j'appelle P(3)
si je veux calculer sa valeur pour k = i je l'appelle par P(i) etc

Posté par
Mama23456
re : Dm maths 2nde Python 17-12-19 à 00:01

Ah d'accord merci beaucoup, j ai compris:
Donc c'est seulement si avec le nombre i (qui prend les valeurs de 0 à 24) qu'on regarde si la fonction est supérieure au maximum M.

Donc pour le 3.b , on constate que après le maximum à P(21), la population diminue

Posté par
mathafou Moderateur
re : Dm maths 2nde Python 17-12-19 à 00:45

nota : M est variable
c'est seulement à la fin de l'exécution du programme, quand on aura testé toutes les valeurs, que M pourra être appelé "maximum"
en cours de route c'est juste un candidat à être le maximum.

il n'y a pas de question 3b
la 2b ??
le résultat de l'exécution effective sur machine de ce programme Python donne l'affichage de : ????
(que donne-t-il vraiment avec une vraie exécution du programme ?)

et la question :
ce qui veut dire que le maximum est ... pour n = ... (et donc en quelle année ?)
et évidemment comme c'est un maximum, après ça décroit

ou peut être que ça recommence à croitre après avoir décru mais sans dépasser le maximum trouvé.... va savoir.

on ne s'est intéressé que dans l'intervalle [0; 23]
en Python range(0, 24) veut dire de 0 à 24, 0 inclus et 24 exclus
i prend les valeurs de 0 à 23 incluses
conformément à l'énoncé : P admet un maximum M sur [0;23]
on ne sait rien de ce qu'il se passe ensuite.

Posté par
Mama23456
re : Dm maths 2nde Python 17-12-19 à 08:46

Oui 2.b  (21,30580)


Ce qui veut dire que le maximum est de 30 580 personnes en n+2019 année, donc en 21+2019 =2040.

Oui je voulais dire qu'après 21 la variable décroît sur l intervalle [0;23]

Posté par
mathafou Moderateur
re : Dm maths 2nde Python 17-12-19 à 09:48

ce que je voulais dire c'est que ce n'est pas le programme tel qu'il est qui permet de le dire !

on pourrait parfaitement avoir cela :
Dm maths 2nde Python
après 21 elle décroit et apres 22 elle recommence à croitre sans atteindre le max

Posté par
Mama23456
re : Dm maths 2nde Python 17-12-19 à 13:04

Ah oui je vois merci



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 1742 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 !