BOINC et Asimov, ou comment passer une bonne fin de vacances

Tout d’abord, un peu de publicité pour le projet BOINC. Il s’agit d’un projet de calcul distribué. La recherche scientifique moderne a besoin d’une énorme capacité de calcul, que ce soit en climatologie, en mathématiques, en chimie, etc… L’une des solutions est de construire des supercalculateurs, des ordinateurs très puissants. L’autre solution consiste à utiliser les ressources déjà disponibles : nos ordinateurs. En effet, la puissance de nos ordinateurs est rarement utilisée à fond tout le temps. L’université de Berkeley a donc créé un programme spécifique pour exploiter cette ressource : le programme BOINC. En le téléchargeant et en l’installant, votre ordinateur effectuera des bouts de calcul, et couplé avec des milliers d’autres permettra de grandes choses. Pas de panique, le logiciel est conçu pour calculer uniquement lorsque l’ordinateur est inutilisé. Parmi les nombreux projets, on trouve le célèbre SETI@home qui travaille sur la vie intelligente extraterrestre; mais également des projets travaillant sur des sujets variés comme la conjecture ABC, les nombres premiers, les ondes gravitationnelles, les protéines, le SIDA, etc… Bref je vous invite à y jeter un coup d’oeil! Pour plus d’infos : le site officiel et la page wikipédia du projet. Et n’hésitez-pas à faire tourner l’information!

Sinon je vous conseille comme lecture de fin d’été le célèbre cycle de Fondation d’Isaac Asimov, également connu pour ses écrits sur les robots et les lois de la robotique. C’est vraiment LE classique de la science fiction. C’est un peu ce qu’est le Seigneur des Anneaux à la fantasy. Pour résumer rapidement l’histoire — sans spoilers bien sûr — dans l’empire galactique, un mathématicien — Hari Seldon — invente la psychohistoire, une théorie mathématique qui prédit le comportement humain à grande échelle. Il s’agit d’une sorte de thermodynamique de l’humanité, qui étudie le comportement des grandes populations (plusieurs millions d’individus). Et là grâce à sa théorie, Hari Seldon découvre avec horreur que l’empire galactique, garant de la paix dans l’univers, va s’effondrer dans les siècles à venir. Il invente donc un plan, le plan Seldon, afin de réduire fortement la période de chaos qui va suivre l’effondrement de l’empire. Les cinq romans du cycle décrivent l’histoire de la Fondation, un état créé par Seldon afin d’atténuer les effets de la chute de l’empire. Il y a également deux romans qui ont été écrits après coup et qui décrivent la vie de Seldon. Le style est fluide, au niveau scientifique c’est très crédible (Asimov était un scientifique reconnu), les intrigues sont passionnantes. Bref c’est du tout bon!

Comment calculer la dérivée de la fonction sinus?

Le programme des classes scientifiques au lycée — en tout cas ce qu’il en reste — étudie la notion de dérivation d’une fonction f définie sur un intervalle ouvert I \subset \mathbb R. Le nombre dérivé f'(a) de f au point a\in I — s’il existe — est défini par

\displaystyle f'(a)=\lim_{h \to 0} \frac{f(a+h)-f(a)}{h}.

Par exemple, si f(x)=x^2 pour x \in \mathbb R, on a d’après une identité remarquable bien connue

\displaystyle \frac{f(a+h)-f(a)}{h}=\frac{(a+h)^2-a^2}{h}=\frac{a^2+h^2+2ah-a^2}{h}=h+2a

d’où

\displaystyle f'(a)=\lim_{h \to 0} \frac{f(a+h)-f(a)}{h}=\lim_{h \to 0}h+2a=2a.

On admet au lycée que la fonction sinus est dérivable sur \mathbb R tout entier et que \sin'(a)=\cos(a) pour tout a \in \mathbb R.  On le démontre ensuite dans les classes supérieures, bien souvent à l’aide des séries entières. Je propose ici de le montrer par des moyens géométriques. Certes le raisonnement suivant est loin d’être inattaquable sur le plan de la rigueur pure, mais je le trouve tout de même intéressant.

Tout d’abord en utilisant une formule trigonométrique, on a

\displaystyle \frac{\sin(a+h)-\sin(a)}{h}=\frac{\sin(a)\cos(h)+\sin(h)\cos(a)-\sin(a)}{h}

d’où

\displaystyle \frac{\sin(a+h)-\sin(a)}{h}=\sin(a)\frac{\cos(h)-1}{h}+\frac{\sin(h)}{h}\cos(a).

On trouvera une preuve géométrique de cette formule trigonométrique dans ce lien. Il nous reste donc montrer que

\displaystyle\lim_{h \to 0}\frac{\sin(h)}{h}=1\quad\text{et}\quad\lim_{h \to 0}\frac{\cos(h)-1}{h}=0.

Considérons la figure ci-dessous, où le cercle est de centre O et de rayon égal à 1 :

Figure

On a OA=\cos(h), OB=\sin(h) et IC=\tan(h). On observe alors que le triangle OIM d’aire \sin(h)/2 est strictement inclus dans le secteur angulaire délimité par O, I et M d’aire h/2, qui est lui-même strictement inclus dans le triangle OIT d’aire \tan(h)/2. On en déduit donc que pour tout h\in]0,\pi/2[

\displaystyle\sin(h)<h<\tan(h).

En passant à l’inverse et en divisant par \sin(h), on obtient

\displaystyle\cos(h)<\frac{\sin(h)}{h}<1

d’où par le théorème des gendarmes

\displaystyle\lim_{h \to 0^+}\frac{\sin(h)}{h}=1.

Comme la fonction h\in\mathbb{R}-\{0\}\mapsto\sin(h)/h est paire, on a bien

\displaystyle\lim_{h \to 0}\frac{\sin(h)}{h}=1.

On essaye pour la deuxième limite de se ramener à la première. Le théorème de Pythagore nous donne un lien entre le sinus et le cosinus : \sin^2(h)+\cos^2(h)=1. On a alors

\displaystyle\frac{\cos(h)-1}{h}=\frac{\cos(h)-1}{h}\frac{\cos(h)+1}{\cos(h)+1}=\frac{\cos^2(h)-1}{h(\cos(h)+1)}=\frac{-\sin^2(h)}{h(\cos(h)+1)}

d’où

\displaystyle\frac{\cos(h)-1}{h}=-\frac{\sin(h)}{h} \frac{\sin(h)}{\cos(h)+1}.

On fait alors tendre h vers 0 et on obtient bien

\displaystyle\lim_{h \to 0}\frac{\cos(h)-1}{h}=0.

Comment calcule une calculatrice ?

Naïvement, je pensais qu’une calculatrice (ou tout logiciel de calcul scientifique) utilisait les développements en série pour calculer les fonctions usuelles : trigonométriques (sinus, cosinus, tangente), exponentielle, logarithme, etc. En fait, il n’en est rien et on utilise des astuces bien précises qui diminuent fortement la complexité des calculs.

Par exemple, on utilise l’algorithme CORDIC (COordinate Rotation DIgital Computer) inventé en 1959 par Jack E. Volder. Détaillons-le sommairement.

On se donne un angle en radian \alpha (que l’on suppose compris entre 0 et \pi/2, on peut toujours s’y ramener par des formules trigonométriques du genre \sin(x+\pi/2)=\cos(x), etc…). On va calculer par itération un vecteur v_n qui représente un point sur le cercle unité. Pour cela, on lui fait subir des rotations d’angles \gamma_n choisis judicieusement, par exemple tels que \tan \gamma_n= 2^{-n}. L’avantage est qu’en binaire la multiplication par 2^{-n} revient à un simple décalage de virgule. Le vecteur v_n, d’angle correspondant \alpha_n, convergera alors vers la valeur exacte v, d’angle correspondant \alpha.

On a donc une relation de récurrence du type

\displaystyle v_{n+1}=\begin{pmatrix} \cos \gamma_{n} & -\sin \gamma_{n} \\ \sin \gamma_{n} & \cos \gamma _{n}\end{pmatrix}v_n

d’où en factorisant par \cos \gamma_n

\displaystyle v_{n+1}=\cos(\arctan(2^{-n}))\begin{pmatrix} 1 & -\sigma_{n} 2^{-n} \\ \sigma_{n} 2^{-n} & 1 \end{pmatrix}v_n

\sigma_n = \pm 1 (sens de la rotation). On le calcule en regardant le signe de l’angle actuel \alpha_{n+1}=\alpha_n-\sigma_n \arctan2^{-n}.

Il suffit alors d’avoir en mémoire les différentes valeurs de \arctan2^{-n} (on peut même utiliser l’approximation \arctan2^{-n} \sim 2^{-n} pour n un peu grand) pour se retrouver avec un algorithme qui n’utilise que des additions, des décalages de virgules et une seule multiplication finale par

\displaystyle\prod_{n=0}^{N-1} \cos(\arctan(2^{-n})) = \prod_{n=0}^{N-1} \frac{1}{\sqrt{1 + 2^{-2n}}},

valeurs que l’on peut aussi stocker à l’avance. Malin, non?

On peut généraliser ce genre de procédés. Pour plus d’informations : http://en.wikipedia.org/wiki/CORDIC

Sujets polémiques en mathématiques

Même si les mathématiques ont l’air d’une science exacte, où la Vérité est figée à tout jamais, il existe quelques sujets qui poussent aux débats sans fin. J’en connais quelques uns :

  • l’entier 1 est-il premier ?
  • doit-on considérer les ensembles finis comme dénombrables ?
  • pour ou contre l’axiome du choix ?
  • qui a inventé le calcul différentiel? Newton ou Leibniz ?
  • les statistiques font-elles parties des mathématiques ?
  • est-ce que la façon d’aborder les mathématiques de Bourbaki est LA bonne façon de procéder ?

En connaissez-vous d’autres ?

Voici quelques propositions des commentaires :

  • Dans Bourbaki, un espace quasi-compact est un espace topologique vérifiant la propriété de Borel-Lebesgue. Un espace compact est un espace quasi-compact séparé. Par contre, dans les textes mathématiques écrits en anglais, un espace est compact n’est pas nécessairement séparé. Quid ?
  • La définition de \pi est erronée, et l’erreur s’est perpétuée depuis l’antiquité.
  • Une forme sesquilinéaire est-elle linéaire à gauche ou à droite?
  • Dans les coordonnées sphériques, que désignent \theta, \varphi, r et \rho?
  • Combien vaut 0^0 ?
  • Est-ce que les notions d’ « application » et de « fonction » sont identiques ?
  • L’espace topologique vide est-il connexe ?
  • Quelle est la dimension de Krull de l’anneau nul ?
  • La suite (n)_{n\in\mathbb N} « converge-t-elle » ou « diverge-t-elle » vers l’infini ?

Preuve topologique de l’infinitude des nombres premiers

Voilà un titre qui en jette un maximum! J’ai lu dans l’excellent livre Raisonnements divins (chez Springer) une démonstration étonnante du fait qu’il existe une infinité de nombres premiers. Elle est d’un niveau élevé car elle fait appel à des notions de topologie générale, mais elle est assez élémentaire pour qui connait cette théorie. Je la livre donc ici.

On définit une topologie sur \mathbb Z en disant que les ouverts sont le vide et les O \subset \mathbb Z vérifiant que pour tout entier a\in O, il existe un entier b>0 tel que a+b\mathbb Z\subset O. Il est clair que la réunion quelconque d’ouverts est un ouvert. De plus, si O_1,O_2 sont des ouverts, ou bien l’intersection est vide et O_1 \cap O_2 est un ouvert, ou bien pour a \in O_1 \cap O_2, on a a+b_1b_2\mathbb Z \subset O_1 \cap O_2, avec  des entiers b_1,b_2>0 tels que a+b_1\mathbb Z\subset O_1 et a+b_2\mathbb Z\subset O_2. Finalement,  O_1 \cap O_2 est un ouvert. On a donc bien une topologie sur \mathbb Z.

On remarque d’une part que tout ouvert non vide est infini (car par définition il contient un ensemble infini), et d’autre part que tout ensemble du type a+b\mathbb Z, avec a,b des entiers (b>0), est un fermé. En effet, on a

\displaystyle a+b\mathbb Z=\mathbb Z-\left(\bigcup_{k=1}^{b-1} [a+k+b\mathbb Z]\right),

c’est donc le complémentaire d’un ouvert.

Comme tout entier différent de 1 et -1 admet un diviseur premier, on a

\displaystyle \mathbb Z-\{-1,1\}=\bigcup_p 0+p\mathbb Z

où la réunion se fait sur tous les nombres premiers p. S’ils étaient en nombre fini, \bigcup_p 0+p\mathbb Z serait fermé comme réunion finie d’ensembles fermés. Par passage au complémentaire, \{-1,1\} serait ouvert, ce qui est absurde car c’est un ensemble fini non vide. Il existe donc une infinité de nombres premiers.

Joli, non?