Obligement - L'Amiga au maximum

Vendredi 23 mai 2025 - 21:21  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : Tracer l'ensemble de Mandelbrot
(Article écrit par Peter B. Schroeder et extrait de Byte - décembre 1986)


Plus l'affichage est intéressant, plus il faut de temps pour le générer

Certaines personnes peuvent lire une partition de musique et, dans leur esprit, entendre la musique rendue de manière plus glorieuse que par n'importe quel orchestre. D'autres peuvent voir, dans leur esprit, la grande beauté et la structure de certaines fonctions mathématiques et de certains systèmes numériques. Les personnes moins expérimentées, comme moi, ont besoin d'entendre de la musique et de voir des nombres rendus pour apprécier leurs structures.

L'ensemble de Mandelbrot est l'une des structures mathématiques intrigantes que vous pouvez explorer avec le Commodore Amiga. Dans The Fractal Geometry Of Nature (voir référence 1), Benoit Mandelbrot définit une fractale comme "un ensemble pour lequel la dimension de Hausdorff Besicovitch [dimension fractionnelle] dépasse strictement la dimension topologique".

Vous pouvez utiliser les fractales pour décrire les aspects fragmentaires de la nature. Les fractales aléatoires peuvent simuler des paysages et des objets dans la nature, tels que des arbres et des montagnes. Les modélisateurs mathématiques peuvent les utiliser pour simuler la dégradation du littoral et ses effets sur la pêche. Les biochimistes peuvent utiliser les fractales pour caractériser l'irrégularité des surfaces des protéines et son influence sur les interactions moléculaires. Vous pouvez les utiliser pour modéliser le climat et prévoir d'autres événements apparemment aléatoires et chaotiques (voir référence 2). Vous pouvez les utiliser pour découvrir l'ordre là où l'on croyait qu'il n'y en avait pas. Même les processus de l'ontogenèse, c'est-à-dire le développement d'un organisme individuel, qui se sont révélés insaisissables, pourraient être explorés à l'aide de la géométrie fractale.

Pour commencer, vous devez connaître les définitions des nombres complexes, réels et imaginaires. Un nombre complexe est un nombre de la forme a+bi, où "a" et "b" sont des nombres réels, et i=√-1. Un nombre réel est un nombre dans lequel il n'y a pas de partie imaginaire, et un nombre imaginaire est un nombre complexe dont "b" n'est pas égal à zéro  ; certaines définitions exigent également que a=0.

Les ingénieurs et autres personnes s'occupant de mathématiques vectorielles trouvent les nombres imaginaires utiles. Par exemple, si le vecteur "b" peut être tourné de 180 degrés pour pointer dans la direction opposée en le multipliant par -1, de sorte que "b" est égal au vecteur "-b", et qu'il existe un nombre, "a", qui fait tourner le vecteur de 90 degrés, alors a2 fera tourner le vecteur de 180 degrés et sera égal à -1 . Ainsi, a=√-1.

Qu'est-ce que l'ensemble de Mandelbrot ?

L'ensemble de Mandelbrot est un ensemble de nombres z=c2+c où "c" est un nombre complexe de la forme a+bi et où "z" élevé au carré de manière itérative ne produit jamais une racine carrée de a2+b2 supérieure à 2. Notez que, puisque i2 est égal à -1, (a+bi)2 est égal à a2+2abi-b2, et que l'élévation au carré itérative de ces nombres produit un résultat en dents de scie, non différentiable. Si la somme des carrés dépasse 4 après un grand nombre d'itérations, elle finira par approcher l'infini et, par définition, ne fera pas partie de l'ensemble de Mandelbrot.

Si l'on prend une matrice, "a" par "b", et que l'on élève itérativement au carré chaque élément de cette matrice jusqu'à ce que la somme de leurs carrés dépasse 4 ou que l'on atteigne 1000 itérations, on peut déterminer un compte du nombre d'itérations que chaque élément du tableau nécessite. Les éléments dont le nombre d'itérations est égal à 1000 font partie de l'ensemble de Mandelbrot  ; les éléments dont le nombre d'itérations est très élevé mais toujours inférieur à 1000 sont proches de l'ensemble de Mandelbrot  ; et ceux dont le nombre d'itérations est faible en sont loin. Si vous attribuez des couleurs à chaque compte ou plage de comptes et que vous coloriez chaque pixel de l'affichage matriciel en conséquence, vous pouvez représenter graphiquement l'ensemble de Mandelbrot et ses nombres voisins. En un sens, les différentes couleurs représentent la distance de la dimension fractale de l'ensemble de Mandelbrot pour des éléments particuliers de la matrice.

Plus c'est petit, plus c'est grand

Les nombres fractals ont de drôles de qualités. Si vous agrandissez des zones proches de l'ensemble de Mandelbrot, vous trouverez de minuscules répliques imparfaites de l'ensemble de Mandelbrot plus grand. Si vous augmentez encore le grossissement, vous trouvez encore plus de répliques minuscules associées, et ainsi de suite à l'infini. Ces composants sont d'une grande beauté et présentent des structures exotiques, toutes différentes mais toujours partiellement répliquées à un niveau plus petit.

Le grossissement que vous pouvez atteindre n'est limité que par la précision de votre ordinateur. En C, l'Amiga stocke les nombres à virgule flottante en double précision sur 64 bits avec une précision, par conséquent, d'environ 263. Il effectue tous ses calculs en virgule flottante double précision, et sa plage pour les entiers longs est de -2 147 483 648 à 2 147 483 647 et pour les nombres en virgule flottante double précision de ±10,0-307 à ±10,0308 avec 15 à 16 chiffres décimaux de précision. Cette précision permet d'examiner l'ensemble de Mandelbrot de manière plus détaillée qu'un microscope électronique ne peut examiner la matière. Un microscope électronique peut produire une photo d'un objet agrandi environ 1 000 000 fois. Il faut un grossissement de 300 000 à 400 000 fois pour résoudre les facettes de la surface du virus de la poliomyélite. Si l'Amiga était un microscope, son grossissement vous permettrait d'examiner les atomes qui composent ces facettes.

Les zones dignes d'intérêt sont celles qui sont étroitement associées au grand ensemble de Mandelbrot de la photo 1, qui représente les nombres de -2,0 à 0,5 sur l'axe des x et de -1,25 à 1,25 sur l'axe des y. Son étendue est donc de 2,5 sur les deux axes.

ensemble de Mandelbrot
Photo 1 : une instance de l'ensemble de Mandelbrot représentant les nombres de -2,0 à 0,5
sur l'axe des x et de -1,25 à 1,25 sur l'axe des y.


Les photos 2 et 3 sont des agrandissements successifs de la petite zone délimitée de la photo 1, chacune ayant une portée égale à 1/20 de celle de la photo précédente. La zone rectangulaire délimitée sur toutes les photos montre la zone agrandie sur la photo suivante.

ensemble de Mandelbrot
Photo 2 : agrandissement du détail de la petite case de la photo.

ensemble de Mandelbrot
Photo 3 : agrandissement du détail de la petite case de la photo 2.

Les programmes

A. K. Dewdney a fourni l'algorithme permettant de décrire graphiquement l'ensemble de Mandelbrot dans Scientific American (voir référence 3). Mes programmes mettant en oeuvre cet algorithme sont écrits en Lattice C  ; ils ont produit les photos 1 à 3. Bien qu'ils prennent un certain temps à s'exécuter, ils semblent rapides par rapport à une implémentation BASIC que j'ai d'abord essayée.

DOSET.C (listing 1) vous permet de choisir les axes x,y où vous voulez commencer l'affichage et de fournir la distance que vous voulez couvrir. Plus cette distance est petite, plus le grossissement est important. Ces programmes peuvent prendre beaucoup de temps - des heures, voire des jours - pour générer un affichage. Plus vous êtes proche de l'ensemble de Mandelbrot, plus cela prend du temps.

ensemble de Mandelbrot
Listing 1 : DOSET.C qui calcul l'ensemble de Mandelbrot. Vous aurez besoin de la
translator.library, de l'intuition.library, de la graphics.library et du narrator.device, ainsi que
du compilateur Lattice C pour exécuter ces programmes.


Vous devriez choisir un axe x,y près du bord de l'ensemble de Mandelbrot (coloré en rouge sur les photos) pour une exploration plus approfondie. Si vous choisissez un point totalement à l'intérieur de l'ensemble, l'affichage semblera prendre une éternité - pas littéralement, puisque les programmes arrêtent de compter après 1000 itérations à chaque pixel - et l'affichage sera d'une couleur unie. Si vous choisissez un endroit où chaque pixel prend les 1000 itérations complètes (c'est-à-dire à l'intérieur du jeu proprement dit) et que vous générez un affichage de 200x200 pixels, l'Amiga doit effectuer 40 millions d'itérations. Si une itération effectue environ 20 opérations en virgule flottante en double précision, cela fait 800 millions d'opérations en double précision (64 bits). Et si chaque opération nécessite la manipulation de tous les bits, cela représente 51 milliards d'opérations sur les bits. En revanche, si vous commencez loin de l'ensemble de Mandelbrot, vous finirez beaucoup plus vite, mais vous vous retrouverez avec un affichage inintéressant. Choisissez donc un affichage qui inclut une zone à côté de l'ensemble proprement dit, et peut-être même un peu de celui-ci.

VIEWSET.C crée un affichage graphique de 200x200 pixels à partir du fichier de données créé par DOSET.C. Si vous voulez aller plus loin, essayez de modifier la séparation des couleurs dans le programme. Avec la bonne séparation des couleurs, vous pouvez trouver toutes sortes d'objets intéressants  : des arbres, des oiseaux, peut-être même un autoportrait ou des millions d'entre eux. Comme l'Amiga peut afficher jusqu'à 640x400 pixels, vous pouvez également créer des affichages à haute résolution. Cependant, ces affichages prennent encore plus de temps à générer.

Nouveaux horizons

Si vous vous intéressez à l'ensemble de Mandelbrot, bonne exploration. La progression est peut-être lente, mais la région est immense et restera toujours largement inexplorée. En raison du temps que cela implique, si vous souhaitez simplement regarder les affichages que j'ai déjà générés, je vous enverrai une disquette pleine à mes frais (10 $). Vous pouvez la partager comme vous le souhaitez.

Références
  1. Mandelbrot, Benoit B. "The Fractal Geometry of Nature". New York  : W. H. Freeman and Company, 1983.
  2. Nicolis, C, et G. Nicolis. "Is There a Climatic Attractor? Nature, octobre 1984. pages 529-532.
  3. Dewdney, A. K. "Computer Recreations: A Computer Microscope Zooms in For a Look at the Most Complex Object in Mathematics". Scientific American. Août 1985. pages 16-24.
L'auteur de cet article

Peter B. Schroeder est président de Biosystems Research Inc (11 550 Southwest 108 Court, Miami, FL 33176). Il est un consultant biologique spécialisé dans les zones humides et les estuaires. Il est titulaire d'un doctorat en biologie de l'Université de Miami à Coral Gables.

[Retour en haut] / [Retour aux articles]