Das Deutsche Casio-Taschenrechner Forum wurde zum 31.12.2013 geschlossen und kann weiterhin als Nachschlagewerk verwendet werden.
Wer mehr erfahren möchte: Ein sehr guter Beitrag von Elias

Programme für das Studium

Hilfe beim Programmieren in Casio Basic.

Programme für das Studium

Beitragvon flo0012 » Di 10. Apr 2012, 15:00

Hi, ich suche jemmand der mir Programme schreiben kann.

Als erstes gehts um die Momente einer Veteilung (Beschreibene Statistik):

xk=[x1,x2,x3,x4,x5,....xk]

xq=Mittelwert

m3(xq)=:1/n*summe aller (xk-xq)³ von k=1 bis n

das wars erstmal hoffe ihr wisst was ich meine.

hier mal ein bsp zu überprüfung:

xk=[0.5,0.3,0.5,2.1,2.2,2.3,2.4,2.5,3.0]

xq=1.75555555

m3(xq)=-0,427

danke für die hilfe
flo0012
 
Beiträge: 12
Registriert: Di 10. Apr 2012, 14:49
Taschenrechner: CFX-9850GC PLUS, fx-115WA

Re: Programme für das Studium

Beitragvon Anderesio » Mi 11. Apr 2012, 08:20

Ich habe hier mal schnell ein Programm gemacht:
Den Programm-Namen musst du dir ausdenken^^

Code: Alles auswählen
"ELEMENTE EINGEBEN"
" "
"ANZAHL DER ELEMENTE"
?\->\Dim \List 1
\For 1\->I \To \Dim \List 1
\ClrText
\Locate 1,5,"ELEMENT"
\Locate 9,5,I
\Locate 12,5,"VON"
\Locate 18,5,\Dim \List 1
?\->\List 1[I]
\Next
(\Sum \List 1)/(\Dim List 1)\->B
(1/\Dim \List 1)*Σ((\List 1[J]-B)^3,J,1,\Dim \List 1)\->C
\ClrText
"XQ:"
B /Disp
"M3(XQ):"
C /Disp


Das "\" zeigt an, dass nun ein zusammengesetzter Befehl folgt, diese Notation wird man öfters finden ( \Disp meint [DISP] ).
Bist du dir sicher, dass dein errechnetes m3(xq) richtig ist?
Ich habe da etwas anderes raus.
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner: .
fx-9750GA PLUS
fx-9860G SD
ClassPad 300

Re: Programme für das Studium

Beitragvon flo0012 » Mi 11. Apr 2012, 08:31

für n = 9

es kann auch sein das ich die formel nicht richtig angegeben habe, also m3(xq)=1/9 mal Summenzeichen und dann (xk-xq)^3
Zuletzt geändert von flo0012 am Mi 11. Apr 2012, 08:34, insgesamt 1-mal geändert.
flo0012
 
Beiträge: 12
Registriert: Di 10. Apr 2012, 14:49
Taschenrechner: CFX-9850GC PLUS, fx-115WA

Re: Programme für das Studium

Beitragvon Anderesio » Mi 11. Apr 2012, 08:34

Genau
n ist in dem Falle die Anzahl der Elemente (\Dim \List 1)

und das m3(xq) wird bei mir immer -0,460...

Ich habe das Programm schon mit anderen Werten getestet, es klappt.
Ich denke mal, dein Ergebnis war falsch
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner: .
fx-9750GA PLUS
fx-9860G SD
ClassPad 300

Re: Programme für das Studium

Beitragvon flo0012 » Mi 11. Apr 2012, 08:35

kann auch sein, das ergebnis stammt aus mathcad oder so wer weis ich hab es selber nicht nachgerechnet.

bin gerade am eintippen, mache das zum ersten mal, komme mit den zusammengesetzten befehlen nicht klar.
flo0012
 
Beiträge: 12
Registriert: Di 10. Apr 2012, 14:49
Taschenrechner: CFX-9850GC PLUS, fx-115WA

Re: Programme für das Studium

Beitragvon flo0012 » Mi 11. Apr 2012, 11:09

Hab es zum Laufen gebracht. ich könnte mir noch ein paar Verbesserungen vorstellen:

Das die Werte direkt in eine Liste eingegeben werden, der Taschenrechner hat dann schon den Mitelwert und die Anzahl der Werte. Die dann in der Formel verarbeitet werden....
flo0012
 
Beiträge: 12
Registriert: Di 10. Apr 2012, 14:49
Taschenrechner: CFX-9850GC PLUS, fx-115WA

Re: Programme für das Studium

Beitragvon flo0012 » Do 12. Apr 2012, 11:18

Ginikoeffizient und Lorenzkurve:

Ich brauche ein Programm das den Ginikoeffizient errechnet und die Lorenzkurve darstellt.
flo0012
 
Beiträge: 12
Registriert: Di 10. Apr 2012, 14:49
Taschenrechner: CFX-9850GC PLUS, fx-115WA

Re: Programme für das Studium

Beitragvon Anderesio » So 15. Apr 2012, 13:39

Ich habe mal das Gini- und Lorenz-Programm geschrieben, mit der Eingabe über Listen.

Code: Alles auswählen
\Lbl 0
"==GINI-KOEFFIZIENT==="
\Locate 1,4,"[1]DISKRETE VERTEIL."
\Locate 1,5,"[2]QUANTILE VERTEIL."
\Do
\Getkey\->\theta
\LpWhile \theta \!=72 \ And \theta\!=62
\ClrText
\theta=72\=>\Goto 1
\theta=62\=>\Goto 2
\Lbl 1
\ClrText
\Locate 3,4,"LISTE 1 IST LEER"
\Dim \List 1\->A
\ClrText
\Sum \List 1\->B
\For 1\->I \To A
\List 1[I]/B\->\List 1[I]
\Next
Σ((\List 1[I])²,I,1,A\->C
"GINI-KOEFFIZIENT:"
C\Disp
\Goto 0
\Lbl 2
\Locate 3,3,"LISTE 1 WIRD AUF"
\Locate 3,4,"LISTE 2 VERTEILT"
\Locate 6,5,"LISTE LEER"
\Dim \List 1\->A
\Dim \List 2\->B
\Locate 6,5,"RECHNET..."
\ClrText
\If A\!=B
\Then "DIMENSIONEN UNGLEICH":\Break
\IfEnd
\Sum \List 1\->C
\Sum \List 2\->D
A\->\Dim \List 3
A\->\Dim \List 4
A\->\Dim \List 5
A\->\Dim \List 6
\For 1\-> \To A
\List 1[I]/C\->\List 1[I]
\List 2[I]/D\->\List 2[I]
\List 1[I]/\List 2[I]\->\List 3[I]
\Next
\List 3\->\List 4
\SortA(\List 4)
\For 1\->J \To A
1\->I
\While \List 3[J]\!=\List 4[I]\ Or \List 5[I]\!=0
I+1\->I
\WhileEnd
\List 1[J]\->\List 5[I]
\List 2[J]\->\List 6[I]
\Next
\For 1\->I \To A
Σ(\List 6[J],J,1,I)\->\List 1[I]
Σ(\List 5[J],J,1,I)\->\List 2[I]
\Next
\For 1\->I \To A
(\List 2[I]-0.5*\List 5[I])*\List 6[I]\->\List 3[I]
\Next
1-2*\Sum \List 3\->E
\ViewWindow 0,1,0.25,0,1,0.25
\F-Line 0,0,\List 1[1],\List 2[1]
\For 1\-> \To A-1
\F-Line \List 1[I],\List 2[I],\List 1[I+1],\List 2[I+1]
\Next
\Do
\Getkey\->\theta
\LpWhile \theta\!=31
\ClrText
"GUK:"
E\Disp
\Goto 0


Es sollten am Ende 852 Byte werden und versuche bitte, den Code so genau wie nur möglich abzutippeln.^^
Bei mir funktionniert er wunderbar.
Das \!= bedeutet "ungleich" und das \Disp ist wieder das " [DISP] "


zur Benutzung:

diskrete Verteilung:
Vor den Start des Programmes trägst du deine Werte in der Liste 1 ein.
Es können vom "Typ" Prozent, Dezimalbruch, Ganzzahl-Verteilung, etc. sein. Es darf ledigilich nur ein "Typ" verwendet werden.
Danach spuckt er auch schon das Ergebnis aus.

quantile Verteilung:
Vor den Start des Programmes trägst du die Werte in den Listen 1 und 2 ein, wobei die Werte der Liste 1[i] auf die Werte der Liste 2 [i] verteilt werden.
Es können vom "Typ" Prozent, Dezimalbruch, Ganzzahl-Verteilung, etc. sein. Es darf ledigilich nur ein "Typ" verwendet werden.
Danach rechnet er eine Weile und spuckt die Lorenz-Kurve aus.
Nach dem Drücken von [EXE] zeigt er nun auch den Gini-Ungleich-Koeffizienten (GUK) an.

Nicht wundern, wenn in den Listen dann etwas anderes steht.
In der Liste 1 sind die x-Koordinaten
In der Liste 2 sind die y-Koordinaten
In der Liste 3 sind die Zwischenwerte für die untere Fläche
In der Liste 4 sind die Quotienten der beiden Verteilungen nach Größe sortiert
In der Liste 5 sind deine ausgangswerte aus Liste 1 in Dezimalbrüchen nach Liste 4 sortiert
In der Liste 6 sind deine ausgangswerte aus Liste 2 in Dezimalbrüchen nach Liste 4 sortiert

Quelle:http://de.wikipedia.org/wiki/Gini-Koeffizient

Ich hoffe, das kann die weiterhelfen.
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner: .
fx-9750GA PLUS
fx-9860G SD
ClassPad 300

Re: Programme für das Studium

Beitragvon flo0012 » Mo 16. Apr 2012, 16:44

Vielen Dank, bei mir sind es nur 815 Byte es scheint aber zu gehen. Werd es morgen mal testen.

Wie bist du darauf gekommen? Welche Formel steht mathematisch dahinter?
flo0012
 
Beiträge: 12
Registriert: Di 10. Apr 2012, 14:49
Taschenrechner: CFX-9850GC PLUS, fx-115WA

Re: Programme für das Studium

Beitragvon Anderesio » Mo 16. Apr 2012, 17:21

Ich habe im Grunde genommen das implementiert, was im Wikipedia-Link
von "Berechnung (diskrete Verteilung)" bis "GUK = A-B/A ... " steht. ;)

Es sind halt mehrere Schritte, die durchzuführen sind, ähnlich eines Algorithmus.

Mir ist noch eine kleine Verbesserung eingefallen.
Man kann zur besseren Übersicht die Punkte auf der Lorenz-Kurve einblenden.
Dazu muss man weit am Ende des Codes noch eine Kleinigkeit einfügen:

Zwischen
Code: Alles auswählen
\For 1\-> \To A-1
\F-Line \List 1[I],\List 2[I],\List 1[I+1],\List 2[I+1]


und
Code: Alles auswählen
\Next
\Do
\Getkey\->\theta


müsste dann folgendes eingefügt werden:
Code: Alles auswählen
\Text \Int (63-(64*\List 2[I])),\Int (128*\List 1[I])-1,"°"


Dann werden an jeden Punkt ein ° angezeigt.
Am letzten Punkt (1|1) wird auf solch eine Markierung verzichtet, da hier das Ende und somit der letzte Punkt klar ist.

Einfügen kannst du mit der Insert-Funktion [SHIFT] [DEL] (INS)
Zuletzt geändert von Anderesio am Mo 16. Apr 2012, 20:52, insgesamt 1-mal geändert.
Genieße den heutigen Tag,
denn mit dem heutigen Tag,
beginnt der Rest deines Lebens
Benutzeravatar
Anderesio
 
Beiträge: 158
Registriert: Di 30. Nov 2010, 20:41
Taschenrechner: .
fx-9750GA PLUS
fx-9860G SD
ClassPad 300

Nächste

Zurück zu Casio Basic (Alle Modelle, die dies unterstützen)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste