CASIO-Taschenrechner CFX-9970G


Growing dandelions (Zufallsaussaat und Wachstum von Löwenzahn ("Pusteblumen"))

Programm-Variante zu "Growing dandelions", vgl. Internet-Page:
MathsNet: Growing dandelions on an EL-9600
MathsNet: Growing dandelions on a TI-83


Wichtiger Hinweis: Das Programm endet nicht ordnungsgemäß, wenn ein Speicherüberlauf eintritt. Deshalb wird empfohlen, jedesmal vor dem Programmstart die speicherintensiven Grafiken zu löschen (Draw Memory und Picture)!

Die Bildübertragung (Hardcopy) vom Taschenrechner zum PC erfolgte mit dem FX-INTERFACE der Firma Yellow (Version 1.5.0).
Bei der Programmübertragung mit dem FX-Interface zum PC wurden einige Programmbefehle (z.B. H_start oder H_pitch) nicht korrekt wiedergegeben.
Umgekehrt enthält der Programm-Editor des PC (FX-Interface Version 1.5.0) noch nicht alle Programmbefehle des Taschenrechners (z.B. ViewWindow), so daß bei der Programmierung des Taschenrechners mit dem PC-Editor und anschließender Übertragung zum Taschenrechner eine gewisse Nacharbeit per Hand notwendig wird. Insbesondere führten auch unnötige Leerzeichen in einer Programmzeile zum Programmabsturz.
Mit dem neuen FX-INTERFACE der Firma Cynox (Version 3.1) treten nach einem Internet-Update (FX-Link-KIT CD-Version) die oben genannten Programmübertragungsfehler nicht mehr auf.

PS:
Der CFX-9970G erkennt sowohl den List-Befehl "List1" als auch "List 1" (mit Leerzeichen),
wenn man bei der Programmierung (im Programm-Modus) das Kommando wie folgt auswäht:
MENU(F4) -> STAT(F1) -> LIST(F3) -> List1
oder
OPTN-Taste -> LIST(F1) -> List (mit Leerzeichen) -> 1-Taste -> List 1


cfx9970a.gif
cfx9970b.gif

Eingangsbildschirm: im MAIN-MENU ist PRGM (Programm-Menü) auszuwählen.
Im Untermenü (Program List) ist F3 (NEW) auszuwählen
und der Programm-Name (Program Name) einzugeben (z.B. BLUMEN01)
Mit EXE wird die Programm-Eingabe aktiviert.


Liegt bereits das fertige Programm vor, erfolgt mit F1 (EXE) der Programmstart.
Das hier vorgestellte Programm enthät durch zusätzliche
Texteinfügungen bedingt nunmehr 868 Zeichen.

S-WindMan	
ClrGraph:BG-None
S-Gph1 DrawOff
S-Gph2 DrawOff
S-Gph3 DrawOff
CoordOff:AxesOn
LabelOff
ViewWindow 0,10,10,0,8,8

(Wichtige Voreinstellungen (Setup))

"START"
"T=":?->T	
"A MOMENT, PLEASE"
Seq(X,X,1,80,1)->List 1	 
Seq(0,X,1,81,1)->List 2

(Eingabe von T und Erzeugung der Zufallsaussaat)

cfx9970c.gif

0->M
Lbl M
M+1->M
10*Ran#->A
8*Ran#->B
Plot A,B
(10*Int (B)+Int (A)+1)->N
List 2[N]+1->List 2[N]
If M< T
Then Goto M
IfEnd
StoPict 1:RclPict 1 /Disp	


cfx9970d.gif

(Bild 1: mit den Zufallspunkten)

0->N
Lbl P
N+1->N
F-Line 0,N,10,N
If N<8
Then Goto P
IfEnd
0->N
Lbl Q
N+1->N
F-Line N,0,N,8
If N<10
Then Goto Q
IfEnd
StoPict 1:RclPict 1 /Disp	



cfx9970e.gif


(Bild 1: im Rasterfeld)

ClrGraph	
Max(List 2)+1->P
Seq(X-1,X,1,P,1)->List 3
Seq(0,X,1,P,1)->List 4
0->N
Lbl S
N+1->N
List 2[N]+1->Q
List 4[Q]+1->List 4[Q]
If N<80
Then Goto S
IfEnd

(Auszählung der Einzelparzellen)

Max(List 4)+5->Ymax	
Max(List 3)+1->Xmax	 
ViewWindow -0.5,Xmax,1,0,Ymax,5
StoV-Win 1
RclV-Win 1
-0.5->H start
1->H pitch
S-Gph1 DrawOn,Hist,List3,List4,Blue
DrawStat /Disp	
StoPict 2

(Einrichtung des Windows für das Histogramm)

cfx9970f.gif
(Bild 2: Histogrammdarstellung statt Stabdiagramm.
Wegen der Säulenbreite 1 entspricht die Säulenfläche
einer Säule der Höhe im Stabdiagramm.
Es wurde damit eine sogenannte Stetigkeitskorrektur
vorgenommen.)

S-Gph1 DrawOff
T÷80->Q
Sum ((List 3-Q)2*List 4)÷79->S
S^0.5->S
"80*e(-(X-Q)2÷(2*S2))
÷(S*(2*pi)^0.5)"->Y1
BG-Pict 2
Graph Y=Y1
StoPict 5 /Disp

cfx9970g.gif
(Bild 3: Histogramm mit einer angepaßten
Gaußschen Glockenkurve (Normalapproximation mit empirischem Mittelwert Q und empirischer Standardabweichung S))

FuncOff
Max(List 3)->N	 
Q÷N->P	 
Dim List 3->Dim List 5	 
-1->K
Lbl K
K+1->K
80*(N C K)*P^K*(1-P)^(N-K)->List 5[K+1]
If K< N
Then Goto K
IfEnd
S-Gph1 DrawOff
RclV-Win 1
S-Gph2 DrawOn,xyLine,List 3,List 5,1,Square,Green
DrawStat
StoPict 3	
ClrGraph	 
AxesOff
RclPict 2
RclPict 3 /Disp	
StoPict 3







(elementare Berechnung der Binomialverteilung,
da im Programm-Modus das Untermenü DIST mit
BINM nicht aufrufbar ist (Nachteil!))


(Zwischenspeicherung des Binomial-Polygons)


cfx9970h.gif
(Bild 4: Histogramm mit Binomial-Polygon)

Dim List 3->Dim List 6
-1->L	 
Lbl L	 
L+1->L
80*e(-Q)*Q^L÷L!->List 6[L+1]
If L< N
Then Goto L
IfEnd
AxesOn
S-Gph2 DrawOff
RclV-Win 1
S-Gph3 DrawOn,xyLine,List3,List6,1,Cross,Orange
DrawStat
StoPict 4	
ClrGraph	 

(elementare Berechnung der POISSON-Verteilung,
da im Programm-Modus das Untermenü DIST mit
POISN nicht aufrufbar ist (Nachteil!))












(Zwischenspeicherung des POISSON-Polygons)

AxesOff
RclPict 3
RclPict 4 /Disp	

cfx9970i.gif
(Bild 5: Histogramm mit beiden Polygonen,
Binomial- und POISSON-Polygon)

RclPict 5 /Disp	
Stop	 

cfx9970j.gif
(Bild 6: Histogramm mit allen Wahrscheinlichkeitsmodellen)
Hinweis:
Im oben betrachteten Beispiel wurden T=400 Zufallspunkte (Pusteblumen) simuliert. d.h. im Mittel erhält jedes der 80 Rasterfelder Q=400/80=5 Pusteblumen (empirischer Mittelwert der betrachteten Wahrscheinlichkeitsmodelle). Der Parameter N der Binomialverteilung ist die maximale Besetzungszahl eines Rasterfeldes (hier N=11).

Damit gilt für die benutzten Wahrscheinlichkeitsmodelle:
Normalapproximation mit den Parametern my=N*P=Q=5 und sigma2=S2= sum( ( List 3 - Q )2 * List 4 ) / 79 (Listenarithmetik beachten!)
Binomialapproximation mit den Parametern N und P
POISSON-Approximation mit dem Parameter N*P=Q.

Mit einem Chi^2-Anpassungstest könnte überprüft werden, welches theoretische Modell am besten zum simulierten Histogramm paßt.


Ludwig Paditz, 22. November 2001


fx_cynox.gif