Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Limites de Fonction /Python

Posté par
91Soso91
31-12-20 à 14:29

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 !

Posté par
carita
re : Limites de Fonction /Python 31-12-20 à 15:41

bonjour

la fonction est  S(t) = \dfrac{a}{0.4 + 3.6 e^{-0.5t}}  --- 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 +

Posté par
carita
re : Limites de Fonction /Python 31-12-20 à 16:38

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

Posté par
91Soso91
re : Limites de Fonction /Python 31-12-20 à 18:36

Merci.

Je dois donc intégrées un « seuil » quelque part c'est bien ça ?

Posté par
carita
re : Limites de Fonction /Python 31-12-20 à 18:38

pas intégrer, juste à la fin, rajouter      seuil()

Posté par
mathafou Moderateur
re : Limites de Fonction /Python 31-12-20 à 19:40

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)

Posté par
carita
re : Limites de Fonction /Python 31-12-20 à 19:51

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  

Posté par
91Soso91
re : Limites de Fonction /Python 31-12-20 à 22:09

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 !

Posté par
carita
re : Limites de Fonction /Python 31-12-20 à 22:54

91Soso91 @ 31-12-2020 à 22:09

def S(t):
   return a ---- non

non, tu as mal compris mon message à ce sujet, ou alors je me suis mal exprimée.

carita @ 31-12-2020 à 16:38

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

==> je voulais dire :  c'est la valeur de "a" qu'il faut mettre à la place du S (en rouge)
puisque la fonction "def S(t)" permet de calculer une image, on doit bien sûr préciser l'expression de la fonction définie au début de l'énoncé,
après avoir calculé le paramètre a (question1).

----

je reviens à la question 1.

la fonction  S(t) = \dfrac{a}{0.4 + 3.6 e^{-0.5t}}  modélise le nombre d'oiseaux en fonction du temps

et si on traduit l'énoncé, on a S(0)=250  (oiseaux)

pour trouver la valeur de a, on résout l'équation   S(0)=250, soit  \dfrac{a}{0.4 + 3.6 e^{-0.5*0}} = 250
à toi !

Posté par
91Soso91
re : Limites de Fonction /Python 01-01-21 à 09:42

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

Citation :
Lim x -> + infinie x : (0,4+3,62-0,5x) = + infinie


Je trouve :
lim x-> + infinie e-0,5x = 0
lim x-> + infinie 0,4+3,6e-0,5x= 0,4
Et donc lim x->+ infinie x/0,4 + 3,6e-0,5x = + infinie

Q.4

from math import exp
def S(t):
   return 1000/(0.4+3,6*e**(-0,5*t))
def seuil(a):
   t=0
    while S(t)>2000
           t = t+1
   return t
print seuil(a)

Lorsque j'execute mon programme, Python m'indique une erreur à la ligne 6 ( while S(t)>2000) Je ne sais pas.

Posté par
carita
re : Limites de Fonction /Python 01-01-21 à 10:06

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.

Posté par
ZEDMAT
re : Limites de Fonction /Python 01-01-21 à 10:39

Bonjour à toutes et à tous (déjà présent(e)s sur le site,

Citation :
from math import exp
def S(t):
   return 1000/(0.4+3,6*e**(-0,5*t))
def seuil(a):
   t=0
    while S(t)>2000
           t = t+1
   return t
print seuil(a)

Quelques anomalies dans ce script :
ligne 3 : il y a encore des virgules décimales qui trainent (3,6 et 0,5)
                  La ligne 1 appelle la fonction exp donc il faut s'en servir
ligne 4 : la fonction seuil ne requiert aucun argument... seuil() suffit et donc modifier aussi la dernière ligne ; de plus print(....)
ligne 6 : l'inégalité n'est pas celle qui convient. On tourne dans la boucle tant que le nombre d'oiseaux est inférieur (ou égal) à 2000

Attention aussi aux problèmes d'indentation... pas toujours visibles sur une recopie du script. Un "copié/collé" du script serait plus adapté.

Posté par
91Soso91
re : Limites de Fonction /Python 01-01-21 à 11:16

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()


En relisant mon exercice, je viens de me rendre compte qu'à la Ligne 4, mettre
def seuil(S):
est obligatoire car c'est le programme qui donne.

Posté par
ZEDMAT
re : Limites de Fonction /Python 01-01-21 à 11:21

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

Posté par
ZEDMAT
re : Limites de Fonction /Python 01-01-21 à 11:27

Pour la question 3 :

Citation :
3. Faire le tableau de variation de S.

je trouve bien osé de le faire en utilisant seulement S(0) et la lim de S(t) quand t vers +oo !

On pourrait peut-être compléter (conforter) un peu en traçant la courbe représentative de la fonction S avec la calculatrice (ou Geogebra ou un tableur comme ci dessous)....


 Limites de Fonction /Python

Posté par
mathafou Moderateur
re : Limites de Fonction /Python 01-01-21 à 11:37

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

pour montrer la compréhension de travers des boucles tant que.

Posté par
91Soso91
re : Limites de Fonction /Python 01-01-21 à 11:54

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())



Q3. Après vérification, lorsque x=0, f(x)=1000
Lorsque x+, f(x)=2500

Q2. Toujours perdu pour le "prouver" pour la Q3.  

Merci !

Posté par
ZEDMAT
re : Limites de Fonction /Python 01-01-21 à 12:37

A la ligne du "while", il manque toujours les : (déjà signalé par Carita)

Pour la limite de S quand t tend vers +oo.

S(t) = \dfrac{1000}{0.4 + 3.6 e^{-0.5t}}

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

Posté par
carita
re : Limites de Fonction /Python 01-01-21 à 12:53

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 !

Posté par
91Soso91
re : Limites de Fonction /Python 01-01-21 à 15:08

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()


Bonne journée à toi aussi carita

Posté par
91Soso91
re : Limites de Fonction /Python 01-01-21 à 15:10

Je reprends ce détail :

Citation :
print seuil()


c'est bien
print(seuil())
!

Posté par
ZEDMAT
re : Limites de Fonction /Python 01-01-21 à 16:24

Oui !
Et tu obtiens quel résultat ?

Posté par
91Soso91
re : Limites de Fonction /Python 02-01-21 à 09:24

Bonjour !

Alors j'obtiens une erreur :


  File "main.py", line 6
    while S(t)<=2000:
    ^
IndentationError: unexpected indent


Je ne comprends pas...

Posté par
ZEDMAT
re : Limites de Fonction /Python 02-01-21 à 09:43

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.

Posté par
ZEDMAT
re : Limites de Fonction /Python 02-01-21 à 10:00

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 :

 Limites de Fonction /Python

Posté par
91Soso91
re : Limites de Fonction /Python 02-01-21 à 10:02

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())


Il me renvoie à mon nombre de départ, si je mets 7 il me renvoie 7. Alors que je devrais trouver 26.

Posté par
91Soso91
re : Limites de Fonction /Python 02-01-21 à 10:05

Citation :
Il me renvoie à mon nombre de départ, si je mets 7 il me renvoie 7. Alors que je devrais trouver 26.

C'est faux !

Je viens de comprendre que l'on a pas besoin de tapper un nombre, il m'indique directement "8", donc le 8ème rang ?

Posté par
ZEDMAT
re : Limites de Fonction /Python 02-01-21 à 10:14

91Soso91 @ 02-01-2021 à 10:02

Merci, voici :

.....


Il me renvoie à mon nombre de départ,
C'est quoi ce "nombre de départ"

si je mets 7 il me renvoie 7
Tu mets 7 où ?????

Alors que je devrais trouver 26
D'où sors tu cette valeur 26 ?

J'ai pris ton script tel quel et je l'ai exécuté :
voilà ce que j'ai obtenu
Bizarre que tu n'obtiennes pas la même chose....



 Limites de Fonction /Python

Posté par
91Soso91
re : Limites de Fonction /Python 02-01-21 à 10:31

Citation :
Je viens de comprendre que l'on a pas besoin de tapper un nombre, il m'indique directement "8", donc le 8ème rang ?


Oui je viens de comprendre qu'il suffisait juste "d'executer" le programme ! Je vous remercie de votre aide !!

Merci encore, passez une bonne journée et prenez soin de vous !!

Posté par
mathafou Moderateur
re : Limites de Fonction /Python 02-01-21 à 11:30

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

ce qui fonctionne pareil
mais permettrait de l'utiliser pour trouver avec d'autres valeurs que 2000
en tapant juste dans la console seuil(2400) par exemple
(tel quel ne pas essayer seuil(2600) !! )

le fait d'avoir une variable S qui porte le même nom qu'une fonction S(t) ne gène pas Python car ce sont des "espaces de noms" différents

ça ne fait que perturber le lecteur !
plus compréhensible serait comme je l'ai déja dit :

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


quant au problème de demander un seuil > la limite de la suite (!) qui provoquerait un bouclage infini du programme, on peut limiter la recherche sur t

    while S(t)<=M and t < 10000 :

en estimant que au bout de 10000 ans ce n'est plus la peine de continuer.
on ne sort pas du cadre rigide du programme à trou de l'énoncé : while ...
laissant toute liberté pour y mettre ce qu'on estime nécessaire comme condition.

Posté par
mathafou Moderateur
re : Limites de Fonction /Python 02-01-21 à 19:49

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

Posté par
91Soso91
re : Limites de Fonction /Python 03-01-21 à 10:35

Bonjour !

Je vous remercie pour ces différentes (et précises) informations que je n'avais pas remarquer ! Merci beaucoup.

Passez un bon dimanche et une bonne fin de semaine à tous !



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