"""
""" #! /usr/bin/python3 # -*- coding: utf-8 -*- # lettres accentuées interdites (sauf dans les commentaires et les chaînes de caractères) # objet : résoudre pn = p0 a^n > b p0 pour l'inconnue n entière # Application aux suites géométriques : # population initiale : p0 # population première année : p1 = a p0 # population finale : pn = p0 a^n # # Exemple : Soit une population qui croît au taux de 5% (suite géométrique de raison a=1,05) # Après combien d'années aura-t-elle été multipliée par 2 (b=2) ? # Résultat attendu : # La population croît du facteur 2.0 en 14.206699082890461 années réelles # La population croît d'un facteur > 2.0 après 15 années entières # # résoudre pn > b p0 # soit : p0 a^n > b p0 # soit : a^n > b # la solution en n de a^n = b n'est pas entière : # on appelle la solution réelle x : a^x = b from math import log def equation_log(a, b) : """ résoud l'équation a^x = b ln(a^x) = ln(b) (ok car ln() est monotone) x ln(a) = ln(b) x = ln(b) / ln(a) """ print(f"equation_log() : résoud {a}^x = {b}") # contrôle des données # pour que log(a) soit défini : assert( a > 0 ) # pour que x soit positif : assert( log(b) * log(a) > 0 ) x = log(b) / log(a) print(f" La population atteint {b} en {x:9.5f} années réelles") print(f" {a}^{x:9.5f} = {a**(x):9.5f} ≈ {b} ") # solution entière if a > 1 : # la population croît n = int(x) + 1 print(" La population dépasse", b, "après", n, "années entières") print(f" {a}^{n-1} = {a**(n-1):9.5f} < {b} < {a}^{n} = {a**(n):9.5f}") else : # 0 < a < 1 # la population décroît n = int(x) print(" La population passe au-dessous de", b, "après", n, "années entières") print(f" {a}^{n-1} = {a**(n-1):9.5f} > {b} > {a}^{n} = {a**(n):9.5f}") print() return (x, n) help(equation_log) # données du problème : a = 1.05 # coefficient multiplicateur annuel b = 2. # facteur multiplicateur pour x années print("# données : facteur de croissance annuel : a =", a) print("# question : quand la population dépassera-t-elle b =", b, "?") print() x, n = equation_log(a, b) # données du problème : a = 0.9 # coefficient multiplicateur annuel b = 1/10 # facteur multiplicateur pour x années print("# données : facteur de croissance annuel : a =", a) print("# question : quand la population passera-t-elle au-dessous de b =", b, "?") print() x, n = equation_log(a, b) print("fin") """"""