Zeichne Riapnov Fractal mit Python, matplotlib

Einführung

Seit dem 22. August 2016 bin ich seit zwei Monaten auf Geschäftsreise nach Malaysia. Da ich in einem Hotel wohne und im Urlaub Freizeit habe, habe ich mich zum ersten Mal seit einiger Zeit entschlossen, ein Hobbyprogramm zu machen.

In Bezug auf fraktale Beziehungen habe ich Mandelbrot, Buddhabro, Julia usw. gezeichnet, aber alle haben die Farbe der Koordinaten mit Fortran berechnet und mit GMT ausgegeben, aber diesmal habe ich beschlossen, alles mit Python zu versuchen. tat.

Als Zeichenfunktion wird die Heatmap-Zeichenfunktion (pcolor) von Python-matplotlib verwendet. Es ist notwendig, x-Koordinaten, y-Koordinaten und z-Werte (Werte, die Farben beim Zeichnen anzeigen) in einem zweidimensionalen Array vorzubereiten, aber die Codierung für das Zeichnen kann für ein solches Zeichnen sehr einfach und bequem sein.

Programmbeispiel

Das folgende Programm ist eine Umschreibung des auf der Referenzseite (1) beschriebenen BASIC-Programms in Python. Ich habe es nach meinem Geschmack geändert.

Die zu ändernden Variablen sind wie folgt

ab Erstellen Sie die grundlegende Zeichenfolge (eindimensionales Array im Programm), die Sie mit a = 0, b = 1 zeichnen möchten
nm Anzahl der Iterationen eines eindimensionalen Arrays * ab *
a0, a1 x-Achsenbereich
b0, b1 Bereich der y-Achse
irx, iry Aufteilung des x-Achsenbereichs und des y-Achsenbereichs

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()

Zeichenbeispiel

Ein Beispiel für das Zeichnen mit den im obigen Programm beschriebenen Variablen ist unten dargestellt.

figure_1.png

Referenzseite

(1) Beispiel eines Lyapunov-Fraktal-Zeichenprogramms http://www.rowan.edu/colleges/csm/departments/math/facultystaff/osler/15.%20A%20quick%20look%20at%20Lyapunov%20space.pdf

(2) Beispiel einer Wärmekarte http://yoshihikomuto.hatenablog.jp/entry/2015/04/10/105615

(3) Grundlagen der Heatmap http://d.hatena.ne.jp/y_n_c/20091122/1258904025

(4) Riapnov Fractal (Wikipedia) [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)

das ist alles

Recommended Posts

Zeichne Riapnov Fractal mit Python, matplotlib
[Python] Zeichnen mehrerer Diagramme mit Matplotlib
Zeichnen Sie eine netCDF-Datei mit Python
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
Zeichnen Sie gewaltsam so etwas wie ein Flussdiagramm mit Python, matplotlib
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Mathematik mit Python studieren: Zeichnen Sie mit matplotlib ein Sympy-Diagramm (Scipy-Diagramm)
Erstellen Sie eine Plotanimation mit Python + Matplotlib
Python-Grafikhandbuch mit Matplotlib.
Zeichne Japanisch mit matplotlib auf Ubuntu
Zeichnen Sie mit matplotlib ein loses Diagramm
Zeichnen Sie mit Python Turtle eine Koch-Kurve
Heatmap mit Dendrogramm in Python + Matplotlib
Zeichnen Sie eine Illustration mit Python + OpenCV
Zeichnen Sie einfach Diagramme mit matplotlib
Wenn matplotlib nicht mit python2.7 funktioniert
Führen Sie mit Python, matplotlib, einen logarithmischen Normalwahrscheinlichkeitsplot durch
Zeichnen Sie einen Pfeil (Vektor) mit opencv / python
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Zeichnen Sie Nozomi Sasaki in Excel mit Python
Fraktal zum Erstellen und Spielen mit Python
Zeichnen Sie eine hierarchische Achsenbeschriftung mit matplotlib + pandas
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
# Python-Grundlagen (#matplotlib)
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
Animation mit matplotlib
mit Syntax (Python)
Meine Matplotlib (Python)
Japanisch mit Matplotlib
Zundokokiyoshi mit Python
Animation mit matplotlib
Histogramm mit Matplotlib
Erstellen Sie eine Animation mit matplotlib
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Zeichnen Sie eine flache Oberfläche mit einem Matplotlib-3D-Diagramm
[Python] Grenzachse des 3D-Graphen mit Matplotlib
[Python] Zeichnen Sie mit Dash Cytoscape ein gerichtetes Diagramm
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
[Python] Zeichne eine Mickey Mouse mit Turtle [Anfänger]
Erstellen Sie ein 3D-Streudiagramm mit SciPy + matplotlib (Python)
Visualisiere grib2 auf einer Karte mit Python (matplotlib)
Erstellen Sie eine fraktale Figur mit Python Teil1 (Shelpinsky's Gasket)
[Python] Passen Sie Colormap an, wenn Sie Diagramme mit matplotlib zeichnen
Zeichnen Sie ein Faltlinien- / Streudiagramm mit Python Matplotlib für die CSV-Datei (2 Spalten).
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet