NOMBRES - Curiosités, théorie et usages

 

Accueil                           DicoNombre            Rubriques           Nouveautés      Édition du: 20/10/2016

Orientation générale        DicoMot Math          Atlas                   Références                     M'écrire

Barre de recherche          DicoCulture              Index alphabétique                               

     

FRACTALES

 

Débutants

Fractales

Théorie et Pratique

 

Glossaire

Général

 

 

INDEX

Fractales

 

Propriétés

Aire

Programmation

 

 

Sommaire de cette page

>>> En pratique 

>>> La fougère

>>> Mandelbrot

 

 

 

 

 

 

FRACTALES en PRATIQUE

  

Comment construire soi-même des dessins fractals

 

 

 

EN PRATIQUE 

 

 

Plusieurs possibilités selon votre passion pour les fractales

 

Contemplatif

*         Consulter tout simplement les nombreux sites Internet pour de jolies images fractales, par n'importe quel moteur de recherche.

 

 Interactif

*         Se procurer le shareware FRACINT qui permet de construire toutes sortes de fractales en jouant sur les paramètres de définition (se télécharge sur Internet).

 

Actif

*         Faire le programme (en Pascal ou C++ ou …): ça vaut vraiment l'effort. Sous vos yeux vous appréciez l'aspect magique de ces êtres mathématiques.

 

Autant de "complexité esthétique"

avec une formule si simple !

 

Expert

*         Vous pouvez approfondir la théorie concernant les fractales de tout type, et voir comment construire de belles images dans le livre célèbre: " the science of fractal images de Barnsley, Devaney, Mandelbrot, Peitgen, Saupe, Voss - Éditions Springer Verlag.

 

Voir Réflexion sur les Fractales

 

 

 

LA FOUGÈRE  

 

 

Si vous vous lancer dans un peu de programmation

 

*         Je vous conseille de construire d'abord la fougère par percolation.

En quelques instructions simples, on obtient un effet saisissant.
Cette expérience montre comment les lois de la nature agissent à l'échelle microscopique pour donner des objets macroscopiques qui semblent aléatoires, chaotiques et pourtant émanent de lois simples.

 

*         Cette construction aide à percevoir pourquoi les fractales sont utilisées pour modéliser les phénomènes naturels comme les montagnes ou les fonds marins, entre autres exemples.

 

 

 

Méthode 

 

*         Dessiner une barre horizontale en rouge en bas de l'écran.

C'est la barre sur laquelle va se construire la fougère.

 

*         Un pixel rouge va tomber du haut de l'écran et se déposer sur cette barre.

 

Pour cela

*         Vous le mettez en X aléatoire en haut de l'écran:

Y = Max ; X = Xmoy + DeltaXaléatoire.

*         Faire une boucle qui place le prochain pixel sur la ligne suivante:

Y := Y - 1 ; X := X ± 1 aléatoire.

*         Critère d'arrêt de la boucle: le pixel qui descend touche un autre pixel de même couleur rouge: il y a percolation.

Sur l'écran, il faut lire la couleur des 3 pixels

qui se trouvent juste en dessous du pixel considéré.

 

*         On relance la boucle de descente du pixel, toujours avec une position de départ en haut de l'écran au hasard.

Le nouveau pixel va tomber sur la barre du fond

ou s'arrêter sur un pixel déjà déposé.

*         Limiter le nombre de ce genre de boucles à un nombre raisonnable:

100 pour commencer et

vous ajusterez dès que votre programme sera au point.

 

*         Ne pas oublier d'éteindre le pixel au fur et à mesure de sa descente, sinon on barbouille l'écran de toutes ces trajectoires de descente.

 

*         Mettre un critère d'arrêt final du type:

Arrêt si le pixel déposé est au dessus d'une certaine hauteur en Y

 

Commentaire

*         Une fois le programme au point, vous pouvez enjoliver.

 

*         À chaque percolation (pixel qui se fixe), écrire les pixels symétriques en X et en Y. De la fougère, on passe au flocon de neige complexe

 

*         Au lieu de la ligne de barrage en bas de l'écran, faire des mailles de toutes natures. Très amusant!

 

Je n'ai malheureusement plus les innombrables dessins que j'avais pu faire il y a une vingtaine d'années.

 

 

 

 

MANDELBROT en pratique

 

*         Maîtrisant le langage de programmation et surtout les instructions graphiques, vous pouvez vous lancer dans la programmation des fractales de Mandelbrot. C'est à peine plus compliqué que la fougère.

 

*         Un simple calcul du carré des nombres complexes en module et angle et conversion en X et Y.

Voir Algorithmes 

 

Balayage du plan en X et en Y 

*         Vous pouvez chercher dans

–2,4 <  X  < 2,4

–1,5 <  Y  < 1,5

avec une profondeur d'itération de 16 (Quantité de calculs de la formule pour déterminer si le résultat tend vers l'infini ou se stabilise sur une valeur fixe.

*         Si vous rétrécissez l'intervalle en XY, il faudra une profondeur plus grande (100, 200…).

 

Boucle de test de la convergence 

 

*         Pour un point donné

Z0     =   0

ZN+1  =   ZN² + C

 

*         À chaque calcul (itération numéro i), on teste si cette valeur est bornée; c'est-à-dire si module (ou longueur) de ZN < K.

 

*         Dans le cas où la suite est bornée, on affiche un pixel de couleur témoignant de cette borne. Si elle diverge, on affiche le point en noir.

 

Calcul de ZN+1

 

ZN+1 =

ZN²

+ C

(XN + i YN

+ XC + i YC

XN² YN² + 2i XnYn

+ XC + i YC

XN+1 =

 

YN+1 =

XN² YN² + XC

 

   i ( 2XNYN + YC))

Module ZN+1 =

  

 

 

 

 

Exemple de programme

 

Les instructions sont simples et sont donc très facilement adaptables au langage de programmation que vous possédez.

Le petit effort en vaut la peine. C'est purement magique.

 

minX := -2,4

maxX:=  2,4

minY := -1,5

maxY:=  1,5

# Ce symbole annonce un commentaire.

# Bornes d'exploration en X et Y.

FOR X = 0 TO 319

# 320 points en horizontal

FOR Y = 0 TO 199

# 200 points en vertical

 

 

 

 

 

RC := minX + (maxX - minX)/320 * X

# RC est la partie réelle de C; elle est égale à la valeur de X courante; de -2,4 au départ à 2,4 à l'arrivée.

IC   := minY + (maxY - minY)/200 * Y

# IC est la partie imaginaire de C; elle est égale à la valeur courante de Y.

RZ := 0

IZ := 0

# Le nombre complexe Z est initialisé à 0.

FOR a = 0 TO 15

 # Profondeur d'itération 16. Le pointeur a commence par 0 puis est incrémenté à chaque bouche jusqu'à un maximum de 15.

 

 

 

 

 

R := RZ

# RZ est la partie réelle de Z mémorisée (n); R est la valeur en cours de calcul (n+1).

I := IZ

RZ := R*R - I*I + RC

IZ := 2* R*I + IC

# Calcul des parties réelles et imaginaires selon les formules trouvées plus haut.

   FIN SI RZ*RZ + IZ*IR  4

# Arrêt si le module de Z dépasse 4. Même si le pointeur d'exploration a n'a pas atteint la valeur 15.

 

 

 

NEXT a

# Le pointeur est incrémenté (+1) et la boucle de calcul recommence; sauf si le pointeur a vaut 15 ou si le critère d'arrêt a été atteint, auxquels cas, le programme passe à l'instruction suivante (ci-dessous).

COULEUR := a

# Valeur de la couleur égale au pointeur d'exploration au moment de l'arrêt.

PLOTPIXEL (X, Y)

# Dessin d'un point sur l'écran en position XY et avec la couleur a

NEXT Y

NEXT X

 # Y prend la valeur suivante jusqu'à atteindre le maximum, auquel cas, le programme passe à l'instruction suivante qui consiste à incrémenter la valeur de X. Lorsque X a atteint sa valeur maximum, le programme s'arrête.

 

En savoir plus, voir le site Fractal de Jean-Christophe MICHEL

  

 

Expériences

Dans le cadre des loisirs, nous étions très nombreux dans les années 1980 à découvrir à la fois:

*       les possibilités des ordinateurs personnels (IBM ou Apple);

*       ces nouveaux objets que sont les fractals; et

*       la programmation avec des langages plus abordables* comme Pascal, Visual Basic ou encore C++.

Pour mon compte, je n'ai pas gardé trace de ces images et encore moins des programmes qui ont disparus avec l'obsolescence de ces ordinateurs de l'époque.

Comme beaucoup de personnes de ma génération dans le début des années 1970, j'avais essentiellement codé en assembleur, Algol et Fortran dans le cadre scolaire et professionnel.

Voir Informatique et programmation

 

 

 

 

Suite

*    Objets fractals – Ensemble de Cantor

*    FractalesIndex

Voir

*    Chaîne d'Or

*    Chaos

*    Complexité

*    Crises en maths

*    Géométrie

*    Jeux

*      Lunules en fractales

*    Paradoxes

*    Points

*    ProgrammationIndex

*    Sauts de grenouille

*    Symétries

*      Transformation du Boulanger

*      Vie et troisième dimension

 

Sites

*      Sites sur les fractals

*      Les Fractales

*      Fractals unleashed

Cette page

http://villemin.gerard.free.fr/Wwwgvmm/Suite/FracPrat.htm