Bonjour puis-je avoir de l?aide pour mon exercice ? Merci !
Des biologistes diagnostiquent des populations d?oiseaux. Le 1er jour ils en diagnostiquent 250.
On modélise le nombre d?oiseaux par la fonction S définit S(t)= a : ( 0,4 + 3,6e-0,5t
a signifie un réel
t désigne le temps écoulé (en année, depuis le 1er jour)
1. Trouver la valeur du réel a grâce aux données de l?énoncé .
2. Trouver la limite de S en + l?infini, interpréter le résultat selon l?exercice.
3. Faire le tableau de variation de S.
4. Recopier le programme Python pour savoir en quelle année la population d?oiseaux dépassera pour la 1ère fois 2000 oiseaux.
from math import exp
def S(t):
return ...
def seuil(S):
t=0
while ... :
t=t+1
return t
Alors voici mes résultats :
1. a=250
2. Lim x -> + infinie x : (0,4+3,62-0,5x) = + infinie
Donc la population d?oiseaux se multiplient avec le temps.
3. lorsque x = 0 , f(x)= 250
Lorsque x -> + infinie, f(x) -> + infinie
(Dans mon tableau f(x) est croissante)
4.
from math import exp
def S(t):
return S/0,4+3,6*e**-0,5*t
def seuil(S):
t=0
while S<2000 :
t=t+1
return t
Je ne comprends pas pourquoi il ne marche pas !
bonjour
la fonction est --- tu confirmes ?
définie sur R+
t désigne le temps écoulé (en année, depuis le 1er jour)
donc S(0)=250 (le 1er jour, t=0) et donc a 250 -- revois ton calcul
et la limite n'est pas +
concernant ton programme
from math import exp --- je mettrai plutôt * (à confirmer...)
def S(t):
return S/(0,4+3,6*e**(-0,5*t)) ---- c'est la valeur de "a" qu'il faut mettre, et toutes les ( ) sont obligatoires
def seuil(S): --- pourquoi ce S ici ?
t=0
while S(t)<2000 :
t=t+1
return t
ensuite, pour que "ça tourne", il faut penser à appeler la fonction seuil
(pour le moment, tu n'as fait que la définir).
Bonjour,
(juste en passant, je te laisse continuer)
ne pas oublier que partout en informatique et Python y compris on utilise un point décimal et jamais une virgule décimale
0.4 et pas 0,4
la virgule décimale c'est de l'hexagonal
mettre seuil() à la fin ne donnerait rien du tout car on ne ferait rien de la valeur retournée par cette fonction (en particulier on ne l'afficherait pas)
soit c'est print(seuil(...))
soit on tape seuil(..) en ligne de commande après avoir lancé le programme (qui ne fait que définir les fonction)
bonsoir mathafou,
merci pour la remarque.
en effet, avec le logiciel que j'utilise, seuil() - tout seul - marche si je fais tourner en mode console.
je viens d'essayer avec print(seuil()) et là ça marche sans mode console.
j'utilise un logiciel "simplifié" (Trinket) pour mes débuts...
je te laisserai poursuivre pour la partie python si 91Soso91 a d'autres questions.
belle soirée
Merci pour vos réponses,
Je viens d'ajuster mon programme selon vos remarques, et j'ai obtenu ça :
from math import exp
def S(t):
return a
def seuil(a):
t=0
while S(t)>2000
t = t+1
return t
print seuil(a)
Je ne sais pas où placer ma « formule ».
J'ai aussi une autre question si je peut me permettre : je ne comprend pas pourquoi a ≠ 250 ? Je pensais que c'était 250 car dans l'énoncé on nous expliquer que le 1er jour il y avait 250 oiseaux. Mais ducoup mon raisonnement est faux, et je n'arrive pas à comprendre votre réponse pour la Q.1 et Q.2.
Merci en tous cas de votre aide, je vous suis très reconnaissant !
Merci, voici mes résultats :
Q1. 250 = a/0.4+3,6x1 = a/4 donc a = 1000
Q2. Je trouve toujours ce résultat pour la limite de S, et je sais que ce n'est pas ça..
bonjour 91Soso91
1) oui a = 1000
2) normal que tu ne trouves pas la bonne limite, tu ne prends pas la bonne fonction !
au numérateur, ce n'est pas x, mais a.
tu dois trouver une limite finie
par ailleurs, la variable est t, et non pas x (d'accord, là ça ne change rien).
3) tu as étudié la fonction S ? quel tableau de variation tu trouves ?
4) à la fin d'une instruction while, il doit obligatoirement y avoir les " : ".
et (à mon avis) inutile de mettre a dans la définition et l'appel de la fonction seuil.
je passerai la main à mathafou pour python s'il passe par là, il maitrise mieux que moi.
Bonjour à toutes et à tous (déjà présent(e)s sur le site,
Merci de vos réponses , voici :
2.
lim x1000 e-0,5x = -
lim x1000 0,4 + 3,6e-0,5x = -
donc lim x1000 x/ 0,4 + 3,6e-0,5x = "+
-
" donc FI (que je n'arrive pas a déterminer?)
x>1000
lim x1000 x/ 0,4 + 3,6e-0,5x = 0
x>1000
3. Lorsque x = 0, f(x) = 1000
Lorsque x+
, f(x) = +
Du moins je sais que la Q3. et Q4. sont fausses...
4.
from math import exp
def S(t):
return 1000/(0.4+3.6*exp-0.5*t)
def seuil():
t=0
while S(t)>=2000
t = t+1
return t
print seuil()
def seuil(S):
est obligatoire car c'est le programme qui donne. from math import exp
def S(t):
return 1000/(0.4+3.6*exp-0.5*t) exp(....)
def seuil():
t=0
while S(t)>=2000 toujours faux relire mon message
t = t+1
return t
print seuil() la syntaxe de "print" est print(.......)
Pour la question 3 :
Bonjour, (et bonne année)
une remarque :
l'énoncé dit bien
def seuil(S):
mais !
on a déja un S qui représente une fonction (S(x))
il n'est pas de bonne pratique de définir une variable qui s'appellerait elle aussi S !
un de ces deux "S" doit impérativement être renommé.
disons seuil(M)
et on utilisera cette fonction par l'appel : seuil(2000) par exemple,
et donc quel serait l'usage de cette variable M au sein de la fonction seuil ?
pour la remarque 6 de ZEDMAT j'aime bien cet exemple de truc faux
fonction attendre le beau temps :
tant qu'il fait beau
rester à la maison
Merci beaucoup, je vous le souhaite aussi et à tous ceux qui sont ici !
Je viens de modifier mon programme Q.4 :
from math import exp
def S(t):
return 1000/(0.4+3.6*exp(-0.5*t))
def seuil():
t=0
while S(t)<=2000
t = t+1
return t
print (seuil())
A la ligne du "while", il manque toujours les : (déjà signalé par Carita)
Pour la limite de S quand t tend vers +oo.
tu as montré dans un de tes messages que exp(-0,5t) tend vers 0+ donc la suite est élémentaire.... (et tu peux VERIFIER sur la courbe).
bonjour à tous et à chacun
91Soso91
pourquoi perdu pour la question 3 ) ?
tu fais comme d'habitude : calcul de la dérivée et étude de son signe, tableau de variation.
je dois quitter le topic pour la suite...
bonne journée !
Merci à vous.
J'ai compris pour la Q.3, merci.
J'ai executer mon programme selon les derniers détails :
from math import exp
def S(t):
return 1000/(0.4+3.6*exp(-0.5*t))
def seuil():
t=0
while S(t)<=2000:
t = t+1
return t
print seuil()
Bonjour !
Alors j'obtiens une erreur :
File "main.py", line 6
while S(t)<=2000:
^
IndentationError: unexpected indent
D'après le message d'erreur, c'est tout simplement une indentation (un décalage) non conforme.
Supprime cette indentation non conforme puis recrée la avec la touche de tabulation.
Par ailleurs : sélectionne tout ton script, copie le (CTRL+C) puis reviens dans ton message sur le site de l'île aux maths. Comme te l'a expliqué Mathafou pose des balises de "code" grâce à l'outil </> et entre les 2 balises tu colles (CTRL+V) ton script. On pourra ainsi récupérer ton script (indentations comprises) et le tester sans avoir à le retaper.
lis d'abord mon précédent message.....
Les explications de Mathafou auxquelles je fais référence se trouvent dans un autre fil
Citation partielle :
Merci, voici :
from math import exp
def S(t):
return 1000/(0.4+3.6*exp(-0.5*t))
def seuil():
t=0
while S(t)<=2000:
t = t+1
return t
print(seuil())
.....
Bonjour (et meilleurs voeux)
je persiste à penser que l'énoncé qui était
def seuil(S):
a pour but de calculer le temps pour dépasser n'importe quel seuil et pas seulement 2000
from math import exp
def S(t):
return 1000/(0.4+3.6*exp(-0.5*t))
def seuil(S):
t=0
while S(t)<=S:
t = t+1
return t
print(seuil(2000))
from math import exp
def S(t):
return 1000/(0.4+3.6*exp(-0.5*t))
def seuil(M):
t=0
while S(t)<=M:
t = t+1
return t
print(seuil(2000))
while S(t)<=M and t < 10000 :
PS
en fait avec la variable S écrite S ça ne marche pas
TypeError: 'int' object is not callable
en écrivant S(x) au sein de la fonction seuil(S) il prend le S de S(x) comme étant la variable S locale à la fonction seuil
et râle de cette façon
le renommage du paramètre en M est obligatoire et l'énoncé d'origine FAUX
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :