| |
|
|
p.specht
| Zufallsgeneratoren für Normalverteilung (Stichwort "Gaußsche Glockenkurve") gibt es einige. Ein langsameres, aber dafür qualitativ recht gutes Verfahren haben Box und Muller 1958 vorgestellt:
WindowTitle "Box-Muller: Normalverteilte Zufallszahlen, zB. mit µ=0, "+chr$(240)+"=1"
'(CL) Jan. 2012 by P.Specht, Demoware ohne jegliche Gewähr!
'{ Win7 Printbereich einrichten. Wer kein Win7 hat: CLS reicht!
Font 2:randomize:cls rnd(8^8)
var xr%=(%WinRight- %WinLeft-width(%Hwnd))+1
var yr%=(%WinBottom-%WinTop-height(%Hwnd))+1
var u%=640:var v%=480:var xf!=0.797:var yf!=0.72
Window (u%-xr%)*xf!+xr%,(v%-yr%)*yf!+yr%
SetWindowPos %HWnd=(%maxx-u%)/2,((%maxy-v%)/2) - u%,v%
'}
set("decimals",16)
var pi2!= 6.283185307179586476925286766559
var fa! = 1/sqrt(pi2!)
declare r1!,r2!,z1!,z2!,s2!,s3!,n&
declare mw!,vz!,sa!,my$,my!,si5!,sigma!,s$
print " Wieviele Testzahlen werden benötigt?: ";:input n&:case n&=0:n&=10000
print " Wo liegt der reale Mittelwert?: ";:input my$:my!=val(my$)
print "\n In die sog. Sigmagrenzen fallen die folg.%-Sätze der Werte:"
print " 1"+chr$(240)+":68.27% 2:95.45% 3:99.73% 4:99.9937% 5:99.9999%"
print "\n Differenz Mittelpunkt zum Wert, der am weitesten weg liegt,"
print " [kein unplausibler Ausreisser!] (5"+chr$(240)+") ?: ";
input si5!
sigma!=abs(si5!)/5
s$="":clearclip
r1!=rnd()' gleichverteilt
Whileloop n&
r2!=rnd()
S2!=sqrt(-2*ln(r1!))
's3!=pi2!*r2!
z1! = S2! * cos(pi2!*r2!)'..cos(S3!) ' Standard-normalverteilt
'z2! = S2! * sin(S3!)
s$=s$+str$(z1!*sigma!+my!)
casenot &Loop=n&:s$=s$+","
mw!=mw!+z1!
vz!=vz!+sqr(z1!)
r1!=r2!
EndWhile
beep
putclip s$
print "\n Sie haben nun "+str$(n&)+" Testwerte in der Ablage!"
mw!=mw!/n&
vz!=(vz!-mw!*mw!)/(n&-1)
sa!=sqrt(vz!)
print "\n Kontrolle: "
print " Mittelwert: ";mw!*sigma!+my!
'print " SP-Varianz: ";vz!
print " SP-Varianz: ";(sa!*sigma!)^2
print " Stand.Abw.: ";sa!*sigma!
WaitInput
End
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 25.04.2021 ▲ |
|
|
|