Aufgabe 4.11: C-Programm „akf1”

Aus LNTwww
Wechseln zu:Navigation, Suche

C-Programm 1 zur AKF–Berechnung

Sie sehen nebenstehend das C–Programm „akf1” zur Berechnung der diskreten AKF-Werte $\varphi_x(k)$ mit dem Index $k = 0$, ... , $l$. Hierzu ist Folgendes zu bemerken:

  • Der an das Programm übergebene Long–Wert sei $l = 10$. Die AKF-Werte $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm AKF\big[ \ \big]$ an das aufrufende Programm zurückgegeben. In den Zeilen 7 und 8 des rechts anggebenen Programms wird dieses Feld mit Nullen vorbelegt.
  • Die zu analysierenden Zufallsgrößen $x_\nu$ werden mit der Float-Funktion $x( \ )$ erzeugt (siehe Zeile 4). Diese Funktion wird insgesamt $N + l + 1 = 10011$ mal aufgerufen (Zeile 9 und 18).
  • Im Gegensatz zu dem im Theoriteil angegebenen Algorithmus, der im Programm „akf2” von Aufgabe 4.11Z direkt umgesetzt ist, benötigt man hier ein Hilfsfeld $H\big[ \ \big]$ mit nur $l + 1 = 11$ Speicherelementen.
  • Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den elf Speicherzellen von $H\big[ \ \big]$ die Zufallswerte $x_1$, ... , $x_{11}$.
  • Die äußere Schleife mit der Laufvariablen $z$ (rot markiert) wird $N$-mal durchlaufen.
  • In der inneren Schleife (weiß markiert) werden mit dem Laufindex $k = 0$, ... , $l$ alle Speicherzellen des Feldes ${\rm AKF}\big[\hspace{0.03cm} k \hspace{0.03cm} \big]$ um den Betrag $x_\nu \cdot x_{\nu+k}$ erhöht.
  • In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl $N$ dividiert.



Hinweise:



Fragebogen

1

Welche Elemente $i$ und $j$ des Hilfsfeldes $H\big[ \ \big]$ werden beim ersten Durchlauf $(z=0)$ zur Berechnung des AKF–Wertes $\varphi(k=6)$ verwendet?
Welche Zufallswerte $x_\nu$ stehen in diesen Speicherzellen?

$i \ = \ $

$j \ = \ $

2

Welche Speicherzelle ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$ wird nach dem ersten Schleifendurchgang $(z=0)$ mit einer neuen Zufallsgröße $x_\nu$ belegt?
Welcher Index $\nu$ wird dabei eingetragen?

$i \ = \ $

$\nu\ =\ $

3

Welche Speicherelemente ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$ und ${\rm H}\big[\hspace{0.03cm} j \hspace{0.03cm} \big]$ werden beim Schleifendurchlauf $z=83$ zur Berechnung des AKF-Wertes $\varphi(k=6)$ verwendet?
Welche Zufallswerte stehen in diesen Speicherzellen?

$i \ = \ $

$j \ = \ $


Musterlösung

(1)  Mit $z= 0$ und $k=6$ ergibt sich gemäß dem Programm: $\underline{i= 0}$ und $\underline{j= 6}$.
Die entsprechenden Speicherinhalte sind ${\rm H}[ 0 ] = x_1$ und ${\rm H}[ 6 ] = x_7$.

(2)  In das Feld ${\rm H}[ 0 ]$ wird nun die Zufallsgröße $x_{12}$ eingetragen:

$$\text{Speicherzelle }\underline{i= 0},\hspace{1cm}\text{Folgenindex }\underline{\nu= 12}.$$

(3)  Das nachfolgende Bild zeigt die Belegung des Hilfsfeldes ${\rm H}[ 0 ]$ ... ${\rm H}[ 10 ]$ mit den Zufallswerten $x_\nu$.

Zur numerischen AKF-Berechnung

  • Jeweils grün hinterlegt ist die Speicherzelle ${\rm H}[ i ]$. In diesen Speicherplatz wird jeweils am Ende der Schleife (Zeile 18) die neue Zufallsgröße eingetragen.
  • Für $z= 83$ und $K=6$ ergibt sich $\underline{i= 83 \mod \ 11 = 6}$ und $\underline{j= (i+k) \mod \ 11 = 1}$ .
  • In diesen Speicherzellen liegen zu diesen Zeitpunkten die Zufallsgrößen $x_{84}$ und $x_{90}$.
  • Am Ende des Schleifendurchlaufs $z= 83$ wird in ${\rm H}[ 6 ]$ der Wert $x_{84}$ durch $x_{95}$ ersetzt.