In Gedenken an Benoît Mandelbrot (1924-2010) (Allgemeines)

Martin Vogel ⌂ @, Dortmund / Bochum, Donnerstag, 22.09.2016, 18:52 (vor 808 Tagen)

[image]In der Natur begegnen uns immer wieder Formen, in deren kleinsten Strukturen sich die Gesamtheit eines Wesens wiederfinden kann. Ein Farnblatt beispielsweise besteht aus Elementen, die jedes für sich wiederum genauso aussehen wie das ganze Blatt. Benoît Mandelbrot erforschte dieses Phänomen der Selbstähnlichkeit und stellte fest, dass es nicht nur mathematisch erfassbar ist, sondern auch mit einfachsten Mitteln erzeugt werden kann. Das unten stehende Python-3-Programm soll eine kleine Erinnerung an einen der großen Denker unserer Zeit sein. Mandelbrot starb gestern im Alter von 85 Jahren in Cambridge.

#!/usr/bin/python3
print("""
In Gedenken an Benoît Mandelbrot (1924-2010).

Der Mathematiker Benoît Mandelbrot erforschte die von ihm benannten Fraktale.
Dies sind selbstähnliche Graphen scheinbar simpler mathematischer Funktionen.
Das berühmte Apfelmännchen entsteht, wenn man auf einer x-y-Ebene mittels
unterschiedlich farbiger Punkten die Häufigkeit abträgt, mit der man das
Ergebnis einer Funktion f(z) = z²+c wieder als deren Eingangswert einsetzen
kann, ohne dass dabei ein festgelegter Grenzwert überschritten wird. Im inneren
(schwarzen) Bereich, der Mandelbrotmenge, wäre dies unendlich oft möglich. Das
Python-Programm bricht deshalb nach einer festgelegten Zahl von
Schleifendurchläufen ab, um den Graphen in endlicher Zeit darstellen zu können.
""")

from tkinter import *

def Benoît():

  lim = 2.0
  mxi = 200

  minr = -2.25
  maxr =  0.75
  mini = -1.5
  maxi =  1.5

  w = 800
  h = 800

  cv=Canvas(grafik,width=w,height=h,bg="black")
  cv.pack()

  for x in range(w):
    cr = minr+x*(maxr-minr)/w
    for y in range(h):
      ci = mini+y*(maxi-mini)/h
      c = complex(cr,ci)
      z = complex(0,0)
      for i in range(mxi):
        if abs(z) > lim:
          break
        z = (z**2) + c
      if i < (mxi - 1):
        farbe="#%02x%02x%02x"%(i%256,(2*i)%256,(3*i)%256)
        cv.create_line(x, y, x+1, y,fill=farbe)
    grafik.update()

grafik = Tk()
grafik.title("Apfelmännchen")
Benoît()
grafik.mainloop()

--
Dipl.-Ing. Martin Vogel
Leiter des Bauforums

Heute schon programmiert? Einführung in Python 3 (PDF)



gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum