La série harmonique

  On étudie la série harmonique, dont le terme général est S n = Σ k = 1 n 1 k .
    • Mathématiquement on démontre facilement que la suite ( S n ) diverge vers l'infini et  plus précisément que S n n + ln ( n ) .
    •• Informatiquement (à cause d'erreurs d'absorption) comme toutes les séries à termes positifs dont le terme général (ici S n + 1 - S n = 1 n + 1 ) tend vers zéro, la suite ( S n ) est constante à partir d'un certain rang et donc est informatiquement convergente.  

Q1) On programme le calcul de S n à partir des relations S 1 = 1 et S k + 1 = S k + 1 k + 1 .

def s1(n):
    """ Somme de la série harmonique"""
    tot = 0
    for k in range(1, n + 1):
        tot += 1/k
    return tot

  Montrer théoriquement qu'ainsi calculée, la suite ( S n ) est constante à partir d'un certain rang N pour l'ordinateur, et donc que ( S n ) est convergente (pour l'ordinateur) vers un réel L .

Q2) Montrer en exploitant le fait que S n n + ln ( n ) que N est à peu près solution de l'équation     x ln ( x ) = 2 53 .

Q3) Ecrire une fonction calcul_N() calculant N par dichotomie et donnant une valeur approchée de L

On veut estimer le temps nécéssaire au calcul de L = S N = 1 + 1 2 + ... + 1 N sur votre ordinateur

Q4) Ecrire une fonction s(n) calculant S n   à partir des relations S 1 = 1 et S k + 1 = S k + 1 k + 1 ainsi que le temps le calcul nécessaire et le nombre d'additions effectuées par seconde. Utiliser la fonction perf_counter() du module time.

Par exemple, sur mon PC:

s(10000000) = 16.695311365857272 ; Durée = 0.9237 s
Nombre d'additions par seconde = 10825513

Q5) En déduire le nombre de jours nécessaires à votre ordinateur pour calculer L. Est-ce raisonnable ?

© 2014 - Eric Obermeyer      Powered by      Corrigé