Bauforum-Logo

Forum Bauen und Umwelt

log in | registrieren

zurück zum Forum
  Mix-Ansicht

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

verfasst von Martin Vogel Homepage E-Mail, Dortmund / Bochum, 22.09.2016, 18:52 Uhr

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

antworten
 



gesamter Thread:

zurück zum Forum
  Mix-Ansicht
Forum Bauen und Umwelt | Kontakt | Impressum
8442 Postings in 4047 Threads, 1094 registrierte User, 31 User online (1 reg., 30 Gäste)
powered by my little forum  RSS-Feed  ^
map | new