Dessinez Riapnov Fractal avec Python, matplotlib

introduction

Depuis le 22 août 2016, je suis en voyage d'affaires en Malaisie depuis deux mois. Comme je vis dans un hôtel et que j'ai du temps libre en vacances, j'ai décidé de créer un programme de loisirs pour la première fois depuis longtemps.

En ce qui concerne les relations fractales, j'ai dessiné Mandelbrot, Buddhabro, Julia set, etc., mais tous ont calculé la couleur des coordonnées avec Fortran et l'ont sortie avec GMT, mais cette fois j'ai décidé de tout essayer avec Python. fait.

En tant que fonction de dessin, la fonction de dessin de carte thermique (pcolor) de Python-matplotlib est utilisée. Il est nécessaire de préparer la coordonnée x, la coordonnée y et la valeur z (valeurs indiquant les couleurs sur le dessin) dans un tableau à deux dimensions, mais le codage pour le dessin peut être rendu très simple et pratique pour un tel dessin.

Exemple de programme

Le programme suivant est une réécriture du programme BASIC décrit dans le site de référence (1) vers Python. Je l'ai changé à mon goût.

Les variables à modifier sont les suivantes

ab Créez la chaîne de caractères de base (tableau unidimensionnel dans le programme) que vous souhaitez dessiner avec a = 0, b = 1
nm Nombre d'itérations du tableau unidimensionnel * ab *
a0, a1 plage de l'axe des x
b0, b1 plage de l'axe y
irx, iry divisions de la plage de l'axe des x et de la plage de l'axe des y

py_lyapunov0.py


import numpy as np
import matplotlib.pyplot as plt

ab=np.array([0,1])
nab=len(ab)
nm=10
a0=2
a1=4
b0=2
b1=4
irx=800
iry=600

x = np.linspace(a0,a1,irx+1)
y = np.linspace(b0,b1,iry+1)
X, Y = np.meshgrid(x, y)

z=np.empty((iry+1,irx+1))
for i in range(0,irx+1):
    a=a0+(a1-a0)/(irx)*i
    for j in range(0,iry+1):
        b=b0+(b1-b0)/(iry)*j
        s=0
        xx=0.5
        for n in range(0,nm):
            for m in range(0,nab):
                if ab[m]==0:
                    rr=a
                else:
                    rr=b
                xx=rr*xx*(1-xx)
                v=np.abs(rr*(1-2*xx))
                if 0<v: s=s+np.log(v)
        s=s/(nm*nab)
        if 2<s:
            z[j,i]=2
        elif s<-5:
            z[j,i]=-5
        else:
            z[j,i]=s

print(np.max(z))
print(np.min(z))

z=-1.0*z
plt.xlim(a0,a1)
plt.ylim(b0,b1)
plt.pcolor(X, Y, z, cmap=plt.cm.spectral)
plt.colorbar()
plt.show()

Exemple de dessin

Un exemple de dessin avec les variables décrites dans le programme ci-dessus est illustré ci-dessous.

figure_1.png

Site de référence

(1) Exemple de programme de dessin Lyapunov Fractal http://www.rowan.edu/colleges/csm/departments/math/facultystaff/osler/15.%20A%20quick%20look%20at%20Lyapunov%20space.pdf

(2) Exemple de carte thermique http://yoshihikomuto.hatenablog.jp/entry/2015/04/10/105615

(3) Principes de base de la carte thermique http://d.hatena.ne.jp/y_n_c/20091122/1258904025

(4) Fractale de Riapnov (Wikipédia) [https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A2%E3%83%97%E3%83%8E%E3%83%95%E3%83%BB%E3%83%95%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%AB] (https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A2%E3%83%97%E3%83%8E%E3%83%95%E3%83%BB%E3%83%95%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%AB)

c'est tout

Recommended Posts

Dessinez Riapnov Fractal avec Python, matplotlib
[Python] Comment dessiner plusieurs graphiques avec Matplotlib
Dessiner un fichier netCDF avec python
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Dessinez de force quelque chose comme un organigramme avec Python, matplotlib
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Étudier les mathématiques avec Python: dessiner un graphe sympy (scipy) avec matplotlib
Créer une animation de tracé avec Python + Matplotlib
Manuel de graphisme Python avec Matplotlib.
Dessinez le japonais avec matplotlib sur Ubuntu
Dessinez un graphique lâche avec matplotlib
Dessinez une courbe Koch avec Python Turtle
Heatmap avec dendrogramme en Python + matplotlib
Dessinez une illustration avec Python + OpenCV
Dessinez facilement des graphiques avec matplotlib
Quand matplotlib ne fonctionne pas avec python2.7
Effectuer un tracé de probabilité normale logarithmique avec Python, matplotlib
Dessinez une flèche (vecteur) avec opencv / python
[Python] Définissez la plage du graphique avec matplotlib
Dessinez Nozomi Sasaki dans Excel avec python
Fractal pour faire et jouer avec Python
Dessinez une étiquette d'axe hiérarchique avec matplotlib + pandas
[Python] Rendons matplotlib compatible avec le japonais
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Les bases de #Python (#matplotlib)
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
Animation avec matplotlib
avec syntaxe (Python)
Mon matplotlib (Python)
Japonais avec matplotlib
Zundokokiyoshi avec python
Animation avec matplotlib
histogramme avec matplotlib
Faire une animation avec matplotlib
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Dessinez une surface plane avec un graphique 3D matplotlib
[Python] axe limite du graphe 3D avec Matplotlib
[Python] Dessinez un graphe orienté avec Dash Cytoscape
Essayez de dessiner une courbe de vie avec python
[Python] Dessinez un Mickey Mouse avec une tortue [Débutant]
Créer un diagramme de dispersion 3D avec SciPy + matplotlib (Python)
Visualiser grib2 sur une carte avec python (matplotlib)
Créer une figure fractale avec python part1 (joint de Shelpinsky)
[Python] Personnalisez la palette de couleurs lors du dessin de graphiques avec matplotlib
Dessinez une ligne de pliage / diagramme de dispersion avec python matplotlib pour fichier CSV (2 colonnes)
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6