Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Algorithmen & Lehrreiches

Algorithmen & Lehrreiches Algorithmen & Lehrreiches...

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag [Windows XP-32 bit] Ihr Konto wird gesperrt...
Aufrufe: 0, Antworten: 3
Gehe zum ersten neuen Beitrag Serienempfehlung gewünscht :)
Aufrufe: 1929, Antworten: 27
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26421, Antworten: 4179
Gehe zum ersten neuen Beitrag [Verkaufe] HTC Desire "S"
Aufrufe: 14, Antworten: 0
Gehe zum ersten neuen Beitrag Probleme mit Internet...
Aufrufe: 297, Antworten: 11
Gehe zum ersten neuen Beitrag Schnäppchen Thread ... von...
Aufrufe: 7358, Antworten: 36
Gehe zum ersten neuen Beitrag Vier Jahre Haft für...
Aufrufe: 33, Antworten: 0
Gehe zum ersten neuen Beitrag Wie öffnet man mehrere...
Aufrufe: 200, Antworten: 13
Gehe zum ersten neuen Beitrag Soundprobleme
Aufrufe: 31, Antworten: 1
Gehe zum ersten neuen Beitrag Fußkrank
Aufrufe: 491, Antworten: 25
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01.01.2012, 16:13   #1 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.078
Standard Box-Muller Verfahren zur Erzeugung Gaußverteilter Zufallswerte

Abt. Box-Muller Verfahren zur Erzeugung Gaußverteilter Zufallswerte
------------------------------------------------------------------------------
Zufallsgeneratoren für Normalverteilung (Stichwort "Gaußsche Glockenkurve") gibts einige. Ein langsameres, aber dafür qualitativ recht gutes Verfahren haben Box und Muller 1958 vorgestellt.
Code:
WindowTitle "Box-Muller: Normalverteilte Zufallszahlen, zB. mit µ=0, "+chr$(240)+"=1"
'(D)Jan.2012 P.Specht für Paule´s PC-Forum, 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
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 01.01.2012, 16:35   #2 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.078
Standard

Eine Variante davon ist die von G. Marsaglia, der 1968 eine Art Wurfpfeil-Methode vorstellte. Nicht unbedingt schneller, aber simpler:
Code:
WindowTitle "Marsaglia: Normalverteilte Zufallszahlen"
' Keine Gewähr! (D) Demoware 2012 P.Specht für Paule´s PC Forum.
' Normalverteilte Zufallszahlen mit "Methode von Marsaglia"
' aka "Polarmethode": Erspart Auswertung trigonometrischer
' Funktionen, da bereits in Polarkoordinaten gerechnet wird:
CLS
set("decimals",16)
Randomize
Declare z1!,z2!
Whileloop 1000
NVZZ
Print z1!,z2!,
case %csrlin>22:cls
Endwhile
WaitInput
End

proc NVZZ
declare q!,p!,a1!,a2!
Repeat ' Hier der "Wurf":
  a1! = 2 * rnd() - 1
  a2! = 2 * rnd() - 1
  q! = a1!*a1! + a2!*a2! ' solange bis es im Kreis mit r=1 liegt
Until between(q!,0.000000000000001,1) ' Treffer!
  p! = Sqrt(-2 * ln(q!) / q!)
  z1! = a1! * p!  ' Global definierte Zufallsvariablen
  z2! = a2! * p!
endproc
P.S.: Das mit den Sigma-Grenzen (1 Sigma = Standardabweichung) kann man auch umkehren (ist vielleicht sogar plausibler): 50 % aller Messwerte haben eine Abweichung von höchstens 0,675 σ vom Mittelwert,
90 % von höchstens 1,645 σ, 95 % höchstens von 1,960 σ und 99 % höchstens von 2,575 σ vom Mittelwert.
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Algorithmen & Lehrreiches

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hardware-Garantie...wie verfahren?! Error Hardware - Problemlösungen 4 23.10.2011 22:20
Warnung v. 3-D-Secure-Verfahren WhiteKnight Aktuelle Meldungen 0 05.01.2010 10:57
Bubblesort verfahren Safi Visual Basic, Visual Basic.NET 0 06.05.2008 20:09
Erzeugung eines Visio-Shapes aus einer MySQL Datenbank Blue Bird PHP/MySQL 0 07.03.2007 11:39
Treiber wie Verfahren?? Steven23 Treiber-Forum 2 12.05.2005 13:17



Alle Zeitangaben in WEZ +2. Es ist jetzt 15:53 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2