20.06.2014 Aufrufe

Vorlesung Simulation technischer Systeme - ByteLABS

Vorlesung Simulation technischer Systeme - ByteLABS

Vorlesung Simulation technischer Systeme - ByteLABS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Die Subroutine RANDU:<br />

Wie bestimmt man den Startwert? (multiplikative kongruentelle Methode). Auf „Binär-Computern“<br />

wähle m = 2 b größtmögliche Zahlen in interner Darstellung (mit b = Anzahl der<br />

Bits pro Wort)<br />

Die Zahlentheorie sagt dann, dass:<br />

max. Periode = 2 b-2 = m/4<br />

Der günstigste Wert für a soll bei 2 b/2 ± 3 liegen. Für eine 16-Bit Maschine wäre a = 2 8 ± 3 =<br />

256 + 3 = 259.<br />

Bei einer 32-Bit Maschine wäre a = 2 16 ± 3 = 65536 + 3 = 65539.<br />

Mit<br />

IX ... nicht normierte ganze Zufallszahl v k (Eingabe)<br />

IY ... nicht normierte ganze Zufallszahl v k+1 (Ausgabe)<br />

YFL ... normierte Zufallszahl (0,1) (Ausgabe)<br />

schreibt sich die Subroutine RANDU(IX, IY, YFL) für eine 32 Bit Maschine wie folgt:<br />

SUBROUTINE RANDU(IX, IY, YFL)<br />

IY = IX*65539<br />

IF(IY) 5,6,6<br />

5 IY = IY*(-1)<br />

6 YFL = IY<br />

YFL = YFL / größte ganze Zahl<br />

RETURN<br />

END<br />

3.4 Mid-Sqare Methode<br />

Sehr bekannt ist die Mid-Square-Methode. Hier wird eine Zahl von mindestens vier Dezimalstellen<br />

quadriert. Von dem Ergebnis bilden die vier mittleren Stellen die Pseudo-Zufallszahl,<br />

die zur Berechnung der nächsten Zufallszahl wieder quadriert wird. Beispielsweise ist 3123 2 =<br />

09753129. Die vier mittleren Stellen sind 7531. Aus ihnen erhält man 7531 2 = 56715961 und<br />

damit die nächste Zufallszahl 7159 2 = 51251281 usw. Dieses Verfahren muss für die praktische<br />

Anwendung durch Störgrößen beeinflusst werden, da es sonst leicht zu kurzen Zyklen<br />

führt.<br />

Beispiel:<br />

3600 12 9600 00<br />

9600 92 1600 00<br />

1600 02 5600 00<br />

5600 31 3600 00<br />

3600 .<br />

bzw. 2500 06 2500 00<br />

2500 06 2500 00<br />

2500 06 2500 00<br />

.<br />

9

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!