Mathematisches Experimentieren mit „ipython notebook“

Forschendes Lernen in der Sek II

Dr. Martin Guggisberg
Pädagogische Hochschule FHNW
Basel, Schweiz

50. GDM-Jahrestagung Heidelberg 2016

Gliederung

  • Mathematisches Experimentieren mit elektronischen Laborjournale
  • Exemplarisches Beispiel zum arithmetisch-musikalischem Gruppenspiel Ping-Pong

Experimentieren

Durch Hypothesen geleitetes, planvolles und kontrolliertes Handeln mit Objekten zum Zweck der Erkenntnisgewinnung durch Beobachtung

( Ludwig & Oldenburg 2007)

Experimentieren in der Mathematik

  • Mathematik zum Anfassen (Mathematikum in Gießen, Beutelspacher)
  • Lernen durch Experimentieren (Ludwig & Oldenburg)
  • Mathematics by experiment (Borwein & Bailey)

Mathematisches Experimentieren mit dem PC

A. Engel,Stuttgart : Klett, 1991 Inhalt: Zahlentheoretische Algorithmen, Wahrscheinlichkeit,Statistik, Kombinatorische Algorithmen

Mit dem Computer experimentieren $\to$ Wissenschaftliches Rechnen

Neue Studiengänge Computational Sciences in XXX

Laborjournal

Systematische Aufzeichnung aller inneren und äusseren Paramter, geometrische Konfiguration, sowie die experimentel ermittelten Ergebnisse.

lab

Elektronische Laborjournale

  • Automatisierte elektronische Erfassung aller Parameter
  • Möglichkeit für interaktive, manuelle Ergänzungen (Figuren, math. Formeln, Texte) $$ \int_0^\infty x^2-x^3-x^4 dx$$
  • Werkzeuge zur Datenvisualisierung

Elektronische Laborjournale


direktes Arbeiten in der Cloud


nahtlose Verteilung

Voraussetzungen für mathematische Experimente

Einsatz von elektronischen Laborjournalen an der Hochschule

 Ping-Pong Aktivität

ping-pong

Das Ping-Pong Spiel behandelt eine koordinative, kooperative, rhythmische AufgabensteIlung, welche mit Gruppen von 4 bis 26 Schülerinnen und Schülern durchgeführt werden kann.

Math_Science_Night_2015_36.JPG

Cslovjecsek, M., Guggisberg, M. & Linneweber-Lammerskitten H. (2011). Mathe macht Musik Ping-Pong, PM Praxis der Mathematik 42 (pp. 13 – 18).

Spielregeln:

  • Die ganze Klasse sitzt im Kreis.
  • Dazu wird der Reihe nach fortlaufend gezählt (1,2, 3, 4 ...).
  • In einem ersten Schritt werden alle Dreier-Zahlen (3, 6, 9, 12, 15 ...) mit dem Wort "Ping" ersetzt.
  • Analog werden dann die Vierer-Zahlen (4, 8, 12, 16 .. .) mit ,,Pong" ersetzt.
  • Nach einigem Üben kann versucht werden, die Dreier- und Vierer-Zahlen gleichzeitig zu ersetzen (12, 24 ... heißt dann Ping-Pong ).
  • Viel Übung ist erforderlich, wenn bei Ping und Pong als zusätzliche Regel ein Richtungswechsel vorgenommen wird

Spiel mit Ping = 3 und Pong = 4

pinpongspiel

Was muss ich sagen, wenn ich an die Reihe komme ?


Welche Zähl-Zahlen treten bei meiner Spielposition auf ?


Gibt es eine Partitur für dieses Spiel ?


Durch Abzählung zur Lösung

$\mathbb{N} \times \mathbb{N} \times \mathbb{N} \to \mathbb{Z}$

$(n, \mbox{Ping-Zahl}, \mbox{Pong-Zahl}) \mapsto \mbox{Spielposition}$

Verschiedene Darstellungen des Spielverlaufs

für ping = 3 und pong = 4

pingpongkreis

Durch Abzählen zur Lösung (Python Programm)

In [21]:
def pingpong(n, ping=3, pong=4):
    p = 0
    # Zählschritt (1 oder -1)
    step = 1
    # Zählen von 1 bis n
    for i in range(1,n+1):
        p = p + step
        # Vergleiche Zähl-Zahl mit ping und pong 
        # falls genau eine Bedingung zutrifft (xor) 
        # -> ändere die Richtung (XOR) 
        if bool(i%ping)^bool(i%pong):
            step *= (-1)
    return p

pingpong(4)
Out[21]:
2

Pseudo-Code Ping-Pong zur Berechnung der Spielposition

p = 0
step = 1
for i : 1 .. N do
    p = p + step
    if (i mod ping) xor (i mod pong)
        step = (-1)* step
return p

Spielpositionen für die ersten 30 Zähl-Zahlen

In [45]:
y = [pingpong(n) for n in range(1,31)]
print y
[1, 2, 3, 2, 3, 4, 3, 2, 3, 2, 1, 0, -1, -2, -3, -2, -3, -4, -3, -2, -3, -2, -1, 0, 1, 2, 3, 2, 3, 4]

Visualisierung des Spielverlaufs mithilfe eines Zähl-Zahl-Position-Diagramms

In [46]:
init_plot()
xticks(np.arange(0,len(y),5),np.arange(1,len(y),5),size=16)
plot(y)
'Spielverlauf ping=3 , pong=4'
Out[46]:
'Spielverlauf ping=3 , pong=4'
In [25]:
## Abhängigkeit von Ping und Pong
ping = 3
pong = 5
y = [pingpong(n,ping,pong) for n in range(1,600)]
init_plot()
plot(y)
'Spielverlauf ping=%d , pong=%d' %(ping,pong)
Out[25]:
'Spielverlauf ping=3 , pong=5'

Weitere divergente Konfigurationen

In [53]:
y = [[pingpong(n,3,pong) for pong in range(5,12,2)] \
     for n in range(1,200) ]
init_plot()
plot(y)
#legend(('ping=3,pong=5','ping=3,pong=7','ping=3,pong=9','ping=3,pong=11'))
'Spiele (ping=3,pong=5),(ping=3,pong=7),(ping=3,pong=9),(ping=3,pong=11)'
Out[53]:
'Spiele (ping=3,pong=5),(ping=3,pong=7),(ping=3,pong=9),(ping=3,pong=11)'

6 Perioden

In [56]:
ping=4
pong=16
init_plot()
y = [pingpong(n,ping,pong) for n in range(1,6*ping*pong)]
plot(y)
'Spielverlauf ping=%d , pong=%d' %(ping,pong)
Out[56]:
'Spielverlauf ping=4 , pong=16'

Ping-Pong Parameter Karte / Spielposition in Abhängigkeit von Ping und Pong

In [29]:
plot_maps(0,1200)
In [31]:
plot_map_n_12347(0,11000)

divergente Fälle: (2,6);(3,9);(4,12);(5,15)
(2,10);(3,15);(4,20)

Wertebereiche auf -500 .. 500 einschränken

In [32]:
plot_map_n_12347(-500,500)

Betrachtung von Fälle ping > 35, pong > 36, nahe bei der Diagonalen

(39,40) , (39,38) , (39,36) (37,40) , (37,38) , (37,36) (35,40) , (37,38) , (37,36)

In [33]:
init_plot()
legend((('p33:40', 'p35:40', 'p37:40', 'p39:40')))
y = [[pingpong(n,ping,pong) for ping in range(35,41,2) for pong in range(36,41,2)] for n in range(1,2800) ]
leg= [str(str(ping)+':'+str(pong)) for ping in range(35,41,2) for pong in range(36,41,2)]
plot(y)
legend(tuple(leg))
'Spielverlauf (35,36) , (35,38) , (35,40) , (37,36) , (37,38) , (37,40), (39,36) , (39,38) , (39,40)'
Out[33]:
'Spielverlauf (35,36) , (35,38) , (35,40) , (37,36) , (37,38) , (37,40), (39,36) , (39,38) , (39,40)'

Kombinationen von ungeraden und geraden teilerfremden Paare scheinen periodisch zu sein

Mit einer Periodizität von $2 \cdot ping \cdot pong $

Und einer Amplitude von $ \approx \frac{32}{125} \cdot ping \cdot pong $

In [34]:
ping = 41
pong = 42 #Torsten
init_plot()
y = [pingpong(n,ping,pong) for n in range(1,4*ping*pong) ]
plot(y)

'Spielverlauf ping=%d , pong=%d' %(ping,pong)
Out[34]:
'Spielverlauf ping=41 , pong=42'

Vergleich einer normalisierten Ping-Pong Kurve mit einer Sinus Funktion

In [36]:
x,y,y2 = fitPingPong(41,42)
init_plot()
plot(x,y,'-',x,y2,'-')
legend(('Spielverlauf','f(x)=sin(x)'))
'Approximation von sin(x) durch normalisierten Spielverlauf (41,42)'
Out[36]:
'Approximation von sin(x) durch normalisierten Spielverlauf (41,42)'

Potenzial von elektronischen Laborjournalen

  • Abzählung von Möglichkeiten
  • Numerischen Berechnungen
  • Visualisierung von Phasenräumen
  • interaktiv - direkt im Browser lauffähig
  • Kann als Präsentationswerkzeug verwendet werden
  • 100% Open Source

Mögliche Themenfelder

  • Numerik
  • Mechanik
  • Thermodynamik
  • Populationsdynamik
  • Informatik

Mathematiker wie z.B. Fermat, Gauß, Euler oder Riemann haben viele Stunden ihres Lebens damit verbrachten, Rechnungen im Kopf durchzuführen, um „mögliche Wahrheiten“ zu erkunden.

Mögliche Themen für Schuluntericht (Sekundarstufe II):

  • Entdecken durch Abzählen

    • Konvergenz von Folgen und Reihen
    • Berechnung von Wahrscheinlichkeiten
    • Approximation spezieller Zahlen
  • Entdeckung durch Visualisierung

    • Verhalten von Funktionen
    • Symmetrien in der Ebene
  • Experimentelle Untersuchung von Daten

    • Suche nach Gesetzmässigkeiten (Regression, Methode der kleinsten Quadrate)
    • Untersuchung von Korrelationen

Vielen Dank !


Alle Materialien sind auf github

Dieses elektronische Laborjournal finden Sie auf

https://github.com/mgje/PIUMP


Vortrag: Sounding Ways into Mathematics

Do 10.3. 8:15-9:00 Uhr Ort: A125

Musikalische Zugänge zur Mathematik – Sounding Ways into Mathematics

Andreas Richard, Markus Cslovjecsek