Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Python

Posté par
fafa24
06-04-22 à 09:36

Bonjour, J'ai un souci et aurai besoin d'aide. Il s'agit de deux personnes le salaire de la 1ère est u, celui de la 2ème est v est je cherche quand v dépassera u. D'après le tableau je constate que c'est en 2027 soit n=6 (2021+6) mais quand je rentre les formules dans Python je trouve 2024.
Pour u il y a une augmentation de 2% par an donc suite géométrique 1600*1.02**n
Pour v l'augmentation est de 60€ par an donc suite arithmétique 1400+60*n
Pouvez-vous m'expliquez où est l'erreur et m'aider à retomber sur le bon résultat car j'ai dû mettre n+3 et non n+1 pour que ça marche.
Python: où je dois remplir les lignes n,u et v après while
u=1600
v=1450
n=0
while v<u:
        n = n+3           n=n+1
        u = u*1.02**n
        v= v+60*n
print("année:",2021+n)

réponse: 2027 vrai réponse: 2024 faux

Merci beaucoup pour votre aide.

Posté par
pgeod
re : Python 06-04-22 à 09:54

Dans la boucle, on calcule juste l'année suivante :
u = u * 1.02
v = v + 60
n = n + 1

Posté par
fafa24
re : Python 06-04-22 à 09:54

Pour compléter le sujet: n est compris entre 0 et 10

Posté par
fafa24
re : Python 06-04-22 à 09:56

ok donc je ne peux pas mettre n+3 mais n+1 alors que dois-je mettre sur u et v pour que ça marche?

Posté par
fafa24
re : Python 06-04-22 à 10:06

Je viens de faire le test sur Python, ça marche avec tes conseils:
u=1600
v=1450
n=0
while v<u:
        n = n+1        
        u = u*1.02
        v= v+60
print("année:",2021+n)
j'obtiens bien 2027
Un grand MERCI pgeod

Posté par
mathafou Moderateur
re : Python 06-04-22 à 10:22

Bonjour,
comprendre pourquoi c'est mieux ...

déja pourquoi v = 1450 alors que dans ton énoncé ici tu as écrit 1400 + 60*n ??

car j'ai dû mettre n+3 et non n+1 pour que ça marche.
on ne bidouille pas jusque ce que par hasard ça semble fonctionner (alors que en vrai c'est faux)

quand tu écrivais par exemple v = v+60*n
cela veut dire que pour la suite mathématique
Vn = Vn-1 + 60*n
(la valeur actuelle de v à ce moment, résultat de la boucle précédente, à laquelle on ajoute 60*n)
pas que Vn = 1400+60*n (V0 + 60*n)

soit on traduit Vn=Vn-1 + 60 en v= v+60
soit on traduit Vn = 1400 +60n en v = 1400 + 60*n
mais on ne mélange pas les deux façons de calculer.

idem pour l'autre

Posté par
fafa24
re : Python 06-04-22 à 10:33

Rebonjour, Pour finir sur cet exo, je dois résoudre l'inéquation suivante: 1450 +60n > 1600 x 〖1.02〗^n mais je bloque
60n>1600 x 〖1.02〗^n -1450
je n'arrive pas à mettre tous mes n d'un côté
Merci pour votre aide

Posté par
fafa24
re : Python 06-04-22 à 10:38

Oui Mathafou c'est plus clair comme ça et je me suis trompée dans l'énoncé v=1450 et non 1400 mais j'ai compris le principe maintenant.
Merci pour ces explications.

Posté par
flight
re : Python 06-04-22 à 10:52

salut

just eune remarque puisque tout a été dit : les salaires donnés sont normalement mensuels et les augmentations sont annuelles . ...non?

Posté par
mathafou Moderateur
re : Python 06-04-22 à 11:24

Bonjour flight
oui, et alors ??
pendant 12 mois le salaire mensuel est constant et à la fin de l'année il augmente de xx pour donner un nouveau salaire mensuel constant tout au long de l'année suivante
que l'on paye en 12 mensualités égales n'a aucune importance.

tout a été dit : non, voir fafa24 à 10:33
réponse à cette question :
on ne peut pas résoudre de façon exacte et algébrique une telle (in)équation
il n'existe que des méthodes d'approximations.
par exemple par balayage de n de 1 en 1, c'est à dire le programme Python précédent, complété pour trouver quand plus tard ça repasse en dessous.

en terminale on peut traduire l'écriture 1.02^n en exponentielle e^x et faire une étude de la fonction différence des deux salaires
(variations et limites) pour "séparer" R+ en intervalles dans lesquels il n'y a qu'une seule solution à l'_équation (par le TVI) et ensuite conclure pour l'inéquation.
mais ces solutions ne pourront de toute façon que s'obtenir par approximations numériques

Posté par
fafa24
résoudre une inéquation 07-04-22 à 14:45

Bonjour,
je dois résoudre l'inéquation suivante: 1000 > - 60n + 1600 x 〖1.02〗^n mais je n'arrive pas à trouver n

Merci pour votre aide

*** message déplacé ***

Posté par
carpediem
re : résoudre une inéquation 07-04-22 à 14:56

salut

on ne peut pas résoudre algébriquement cette inéquation ...

simplement résoudre numérique (avec le menu suite) ou avec un programme ou graphiquement en considérant la fonction f(x) = 1600 \times 1,02^x - 60x et résoudre graphiquement l'inéquation f(x) < 1000

*** message déplacé ***

Posté par
mathafou Moderateur
re : Python 07-04-22 à 15:17

manifestement la suite du même exo.

et donc DOIT être dans une seule et même discussion

attentionextrait de c_faq la FAQ du forum :

Q03 - Pourquoi ne faut-il pas faire du ''multi-post'' ?



(j'avais répondu d'ailleurs la même chose pour une inéquation semblable ...)



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