Jugend forscht 2003

Formeln und Bilder aus der Arbeit

Beim diesjährigen Regionalwettbewerb von Jugend forscht habe ich zusammen mit Andrej Machno eine Arbeit zur Chaosphysik über "Nichtlineare rückgekoppelte Systeme" präsentiert. Damit belegten wir den 2. Platz im Bereich Physik und bekamen sogar noch einen Sonderpreis in Form eines Jahresabbonements der "Bild der Wissenschaft"!

Im ersten Teil der Arbeit haben wir uns mit den chaotischen Aspekten der Populationsdynamik beschäftigt. Bei welcher Zahl Nachkommen einer Tierart lässt sich die Populationsgröße für das nächste Jahr noch gut voraussagen? Im zweiten Teil haben wir einen Schwingkreis betrachtet, in dem statt einer Spule eine Diode eingebaut ist. Die Diode hat eine nichtlineare Induktivität. Bei bestimmten Parametern des Schwinkgreises wird aus der Kennlinie der Diode im Phasenraum ein merkwürdiges Gebilde... Beide Schwerpunkte nähern sich der Thematik des deterministischen Chaos von unterschiedlichen Seiten, offenbaren dabei jedoch einige Gemeinsamkeiten.

Für den ersten Teil habe ich mit DarkBasic ein Simulationsprogramm geschrieben, mit dem ein so genanntes Feigenbaum-Senario der Verhulstschen Populationsdynamik interaktiv darstellbar ist. Der Quelltext ist unten angehängt. Eine ausführlichere Version (mit Kommentaren) kann hier heruntergeladen werden.

REM * Title  : Feigenbaumszenario REM * Author : Thomas Efer REM * Date   : 15. 12. 2002 New: ENABLE Escapekey SET DISPLAY MODE 800,600,16 HIDE MOUSE SET TEXT FONT "Tahoma" SET TEXT SIZE 32 SET TEXT TO BOLD INK rgb(255,0,0), rgb(0,0,0) TEXT 1,1, "Darstellung eines FEIGENBAUM-Szenarios durch mehrfache" TEXT 1,35,"Iteration einer logistischen Parabel: I = A*I*(1-I)" SET TEXT TO NORMAL PRINT " " PRINT " " INK rgb(64,255,64), rgb(0,0,0) PRINT "Geben Sie bitte die gewünschten Parameter an:" PRINT " " INK rgb(255,255,255), rgb(0,0,0) INPUT "Anzahl der Iterationsstartwerte I pro A: ", Ianz PRINT " " INPUT "Anzahl der Iterationen pro A-I-Kombination: ", nmax PRINT " " INPUT "Soll jeweils der vorletzte Iterationswert mit ausgegeben werden? (1=Ja;0=Nein): ", Janz PRINT " " PRINT "Bildschirmmodus:" PRINT " Wünschen sie eine Auflösung von" PRINT "  1 - 800 x 600, " PRINT "  2 - 1024 x 768 oder " PRINT "  3 - 1600 x 1200" INPUT " Bildpunkten? ", Disp PRINT " " INK rgb(255,00,00), rgb(0,0,0) PRINT "Die Darstellung beginnt im Bereich von 1 bis 3 (waagerecht) für A, sowie 0 bis 1 (senkrecht) für I." PRINT " " PRINT "Das drücken der Leertaste führt zur Ausgabe der Koordinaten des aktuellen Darstellungsfensters." PRINT " " PRINT "Die Pfeil-nach-oben-Taste setzt die Anzeige auf den oben genannten Startbereich zurück." PRINT "Die Pfeil-nach-unten-Taste bringt sie zur Parametereingabe zurück." PRINT "Die Pfeil-nach-rechts-Taste speichert ein Abbild des Bildschirms als 'Feige.bmp' im Startverzeichnis des Programms." PRINT "Die Pfeil-nach-links-Taste wechselt zwischen den letzen beiden Ansichten (Neuberechnung)" PRINT " " PRINT "Die [Esc]ape-Taste beendet das Programm" PRINT " " PRINT "Mit zwei Mausklicks legen sie den Bereich für eine vergrößerte Darstellung fest." PRINT " " INK rgb(64,255,64), rgb(0,0,0) PRINT "[...zum Fortfahren Maustaste drücken!]" SHOW MOUSE SUSPEND FOR MOUSE IF Disp = 1  THEN SET DISPLAY MODE 800, 600, 16 IF Disp = 2  THEN SET DISPLAY MODE 1024, 768, 16 IF Disp = 3  THEN SET DISPLAY MODE 1600, 1200, 16 SYNC RATE 0 CLS Reset: Amin# = 1 Amax# = 4 Imax# = 1 Imin# = 0 AminALT# =Amin#:AmaxALT#=Amax#:IminALT#=Imin#:ImaxALT#=Imax# Start: SYNC OFF HIDE MOUSE ink rgb(0,0,0),rgb(0,0,0) BOX 1,1,SCREEN WIDTH() - 2, 35 ink rgb(255,0,0),rgb(0,0,0) TEXT 2,2, "Bitte haben Sie etwas Geduld. Das Bild wird berechnet..." SYNC ON INK rgb(255,255,255), rgb(0,0,0) BOX 0,0,SCREEN WIDTH() - 1,SCREEN HEIGHT() - 1 INK rgb(0,0,0), rgb(0,0,0) BOX 1,1,SCREEN WIDTH() - 2,SCREEN HEIGHT() - 2 INK rgb(255,255,255), rgb(0,0,0) A# = Amin# FOR Aakt = 1 TO SCREEN WIDTH()  A# = A# + ((Amax# - Amin#) / SCREEN WIDTH())  Ialt# = 0  FOR Iakt = 2 TO Ianz + 2   Ialt# = Ialt# + (1.0 / (Ianz + 2))   I# = Ialt#   FOR n = 1 TO nmax    J# = I#    I# = A# * I# - A# * I# * I#   NEXT n  DOT Aakt , (Imax# - I#) * SCREEN Height() / (Imax# - Imin#)  IF Janz = 1 AND nmax > 2 THEN DOT Aakt , (Imax# - J#) * SCREEN Height() / (Imax# - Imin#)  NEXT Iakt NEXT Aakt SYNC OFF SHOW MOUSE WHILE mouseclick() = 0  IF spacekey() = 1   INK rgb(64,255,64), rgb(0,0,0)   TEXT 2,2, "X-Koordinaten (A-Werte): von " + STR$(Amin#) + " (links) bis " + STR$(Amax#) + " (rechts)"   TEXT 2,36,"Y-Koordinaten (I-Werte): von " + STR$(Imin#) + " (unten) bis " + STR$(Imax#) + " (oben)"   INK rgb(255,255,255), rgb(0,0,0)  ENDIF  IF downkey() = 1 THEN GOTO New  IF upkey() = 1   AminALT# =Amin#:AmaxALT#=Amax#:IminALT#=Imin#:ImaxALT#=Imax#   GOTO Reset  ENDIF  IF rightkey() = 1   HIDE MOUSE   SAVE BITMAP "Feige.bmp"   SHOW MOUSE  ENDIF  IF leftkey() = 1   AminDummy#=Amin#:AmaxDummy#=Amax#:IminDummy#=Imin#:ImaxDummy#=Imax#   Amin#=AminALT#:Amax#=AmaxALT#:Imin#=IminALT#:Imax#=ImaxALT#   AminALT# =AminDummy#:AmaxALT#=AmaxDummy#:IminALT#=IminDummy#:ImaxALT#=ImaxDummy#   GOTO Start  ENDIF ENDWHILE AminALT# =Amin#:AmaxALT#=Amax#:IminALT#=Imin#:ImaxALT#=Imax# SUSPEND FOR MOUSE INK rgb(255,0,0), rgb(0,0,0) LINE 0,MouseY(),SCREEN WIDTH(),MouseY() LINE MouseX(),0,MouseX(),SCREEN HEIGHT() I1# = (Imax# - Imin#) / Screen Height() * (Screen Height() - MouseY()) + Imin# A1# = (Amax# - Amin#) / Screen Width() *  MouseX() + Amin# SUSPEND FOR MOUSE INK rgb(255,0,0), rgb(0,0,0) LINE 0,MouseY(),SCREEN WIDTH(),MouseY() LINE MouseX(),0,MouseX(),SCREEN HEIGHT() I2# = (Imax# - Imin#) / Screen Height() * (Screen Height() - MouseY()) + Imin# A2# = (Amax# - Amin#) / Screen Width() * MouseX() + Amin# IF A1# < A2#: Amin# = A1# : Amax# = A2#:ENDIF IF A2# < A1#: Amin# = A2# : Amax# = A1#:ENDIF IF I1# < I2#: Imin# = I1# : Imax# = I2#:ENDIF IF I2# < I1#: Imin# = I2# : Imax# = I1#:ENDIF GOTO Start
Trackback URI: http://thomasefer.de/trackback/5

Kommentar erstellen


Bitte hier den korrekten Code eingeben:

Kommentar XML-Feeds: RSS | Atom

Galerie

Picasa Web Albums DeviantART

Kategorien

Artikel-Feeds

RSS-Feed Atom-Feed

Aufrufstatistik

1
57
529977

Werbung

Das Schwarze BRett im Internet: Kostenlose Kleinanzeigen von Studenten für Studenten!

21. August 2017