Mathématiques avec Python et Ruby/Suites en Python

Une suite est une fonction de formula_1 dans formula_2. Tout ce qui est dit dans le chapitre suivant peut donc être appliqué aux suites. On va donc essentiellement parler de suites récurrentes ici. Numériquement, les suites servent surtout à faire des calculs, selon la méthode suivante:
C'est ainsi par exemple, qu'on calcule 
Suites récurrentes.
Les suites récurrentes sont celles pour lesquelles formula_11 dépend de formula_4. Mais pour la suite de Fibonacci, la dépendance va plus loin, non seulement le dernier terme intervient, mais également le pénultième.
Suite logistique.
La suite est définie par formula_13. Son comportement dépend grandement de la valeur de formula_14 mais elle est souvent chaotique. Pour calculer ses 20 premiers termes, on peut écrire une simple boucle :
u=0.1
for n in range(20):
 u=4*u*(1-u)
 print(u)
En effet, une suite récurrente se représente, si "n" est le temps, par l'affectation d'une variable avec l'image de son ancienne valeur par une fonction (ici, formula_15). Si le premier terme de la suite est une fraction, il en est de même pour tous les termes suivants :
from fractions import *
u=Fraction(1,10)
for n in range(10):
 u=4*u*(1-u)
 print(u)
Suites arithmétiques et géométriques.
Une suite est arithmétique si on passe de chaque terme au suivant en additionnant le même nombre, appelé "raison" de la suite. L'objet "range" de "Python" est donc une suite arithmétique d'entiers.
Par exemple, si on place 2000 € avec des intérêts simples s'élevant à 3 % de 2000, soit 60 € par an, l'évolution du capital pendant 20 ans s'obtient avec ce script :
C=2000
I=2000*3/100
for n in range(1,20):
 C+=I
 print(C)
Une suite est géométrique si on passe de chaque terme au suivant en multipliant par un même nombre appelé également "raison". Par exemple, si on place 2000 € avec des intérêts composés au taux de 2 %, l'évolution du capital année après année est donnée par ce script :
C=2000
for n in range(1,20):
 C*=1.02
 print(round(C,2))
Le module "cmath" permet aussi d'étudier les suites géométriques complexes. On constate alors que si le module de la raison est plus petit que 1, la suite tend vers 0, et si le module de la raison est supérieur à 1, la suite tend vers l'infini. C'est bien entendu lorsque le module est égal à 1 qu'il se passe les choses les plus intéressantes...
Suite de Collatz.
Algorithmiquement, la suite de Collatz est intéressante parce que son calcul est basé sur un test de parité, et qu'elle utilise une boucle à condition de sortie :
u=65
while(u>1):
 if u%2:
 u=3*u+1
 else:
 u//=2
 print(u)
La division par 2 est une division euclidienne, en effet on souhaite que "u" reste entier (et non flottant) au cours de la boucle.
Suite de Fibonacci.
Calcul de la suite.
La récurrence de la suite de Fibonacci est double, avec formula_16. Son calcul pose donc un problème algorithmique, puisqu'il faut trois variables (les deux termes à calculer et une variable "tampon" pour stocker temporairement l'un des deux termes, afin qu'il ne soit pas écrasé par la somme). Ce problème n'existe pas en "Python" qui permet les affectations simultanées.
a=1
b=1
for n in range(20):
 a,b=b,a+b
 print(a)
Nombre d'Or.
Un problème numériquement intéressant (et c'était la motivation initiale de Fibonacci) est d'étudier le comportement du rapport entre deux termes successifs de la suite de Fibonacci :
a=1
b=1
for n in range(20):
 a,b=b,a+b
 print(b/a)
print((1+5**0.5)/2)
On constate la convergence vers le .
=Suites définies par des sommes=
Un exemple.
La suite définie par formula_17 tend vers 1, il est relativement aisé de le démontrer, et presque aussi facile de le vérifier avec "Python":
somme=0
for n in range(1,50):
 somme+=1/(n*(n+1))
 print(somme)
Un autre exemple.
La suite formula_18 converge aussi, bien que ce ne soit pas évident en voyant son expression algébrique.
for n in range(1,20):
 for k in range(1,n):
 somme+=n/(n**2+k)
 print(somme)
La constante d'Euler.
On peut la calculer (et vérifier la lenteur de la convergence) avec
from math import *
somme=0
for n in range(1,50):
 somme+=1/n
 print(somme-log(n))
=Calcul de racines carrées=
Méthode de Heron.
En constatant que
on a l'ébauche d'une suite récurrente qui tend vers formula_25:
Application.
u=1
while(abs(u**2-5)>1e-14):
 u=(u+5/u)/2
 print(u)
print(5**0.5)

Objectif macro
Photographie/Personnalités/D/Claude Doublet

Claude Doublet est un photographe français, né à Clichy-sous-Bois, correspondant pour la région de Brissac du journal Ouest France, intéressé par le reportage de rue et la représentation de la vie quotidienne.

Papillon
Photographie/Conditions particulières de prise de vues/Le plein soleil