Exercise 4.11Z: C Program "acf2"

From LNTwww
Revision as of 13:19, 26 March 2017 by Guenter (talk | contribs)

P ID395 Sto Z 4 11.png

Sie sehen rechts das C-Programm „akf2” zur Berechnung der diskreten AKF-Werte $\varphi_x(k)$ mit Index $k = 0$, ... , $l$. Im Gegensatz zum Programm „akf1” aus Aufgabe 4.11 wird hier der im Theorieteil beschriebene Algorithmus direkt angewendet. Dabei ist zu beachten:

  • Der an das Programm übergebene Long-Wert sei hier $l=10$.
  • Die berechneten AKF-Werte $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm AKF[ \ ]$ an das Hauptprogramm zurückgegeben. In den Zeilen 7 und 8 wird dieses Feld mit Nullen vorbelegt.
  • Die Zufallsgröße $x( \ )$ ist als Float-Funktion in Zeile 4 definiert, ebenso ein Hilfsfeld ${\rm H}[10000 ]$, in das die $N = 10000$ Abtastwerte $x_\nu$ eingetragen werden (Zeile 9 und 10).
  • Die Bezeichnungen der Laufvariablen in Zeile 6 sind an den angegebenen Algorithmus angepasst.
  • Die eigentliche AKF-Berechnung erfolgt ab Zeile 11. Dieser Programmteil ist im Programmcode rot gekennzeichnet.


Hinweise:


Fragebogen

1

Auf wie vielen Summanden ($S$) basiert die AKF-Berechnung für den Index $k=0$ bzw. für $k=10$?

$S_{k=0} \ = $

$S_{k=10} \ = $

2

Welche der nachfolgenden Aussagen sind richtig?

Die Rechenzeit steigt linear mit $l + 1$, also mit der Anzahl der zu berechnenden AKF-Werte.
Die Rechenzeit nimmt mit der Anzahl $N$ der berücksichtigten Abtastwerte quadratisch zu.
Die Berechnung wird mit steigendem $N$ genauer.
Wird eine Floatvariable mit $\rm 4 \ Byte$ dargestellt, so benötigt „akf2” mindestens $4 \cdot N$ Byte Speicherplatz.

3

Welche der nachfolgenden Aussagen sind zutreffend?

Je stärker die inneren statistischen Bindungen des Prozesses sind, desto ungenauer ist bei gegebenem $N$ das AKF-Ergebnis.
Je stärker die inneren statistischen Bindungen des Prozesses sind, desto genauer ist bei gegebenem $N$ das AKF-Ergebnis.
Besitzt der Prozess statistische Bindungen, so sind die Fehler der numerischen AKF-Berechnung ebenfalls korreliert. Beispiel:


Musterlösung

(1)  Zur Berechnung des AKF-Wertes $\varphi_x(0)$ wird über $\underline{N =10000}$ Summanden gemittelt, für $\varphi_x(10)$ nur über $\underline{N = 9990}$.

(2)  Richtig sind die Lösungsvorschläge 1, 3 und 4:

  • Die Rechenzeit steigt mit $N$ und $l + 1$ näherungsweise linear an, wie aus der rot hervorgehobenen AKF-Berechnung hervorgeht. Die Rechenzeit für die weiteren Programmteile kann demgegenüber vernachlässigt werden.
  • Natürlich wird die Berechnung mit steigendem $N$ auch genauer. Dies geht hier – im Gegensatz zum Programm „akf1” von Aufgabe 4.11 – allerdings auf Kosten des erforderlichen Speicherbedarfs. Da jede Float-Variable genau vier Byte beansprucht, benötigt alleine das Hilfsfeld ${\rm H}[10000 ]$ einen Speicher von 40 kByte.

(3)  Richtig sind die Lösungsvorschläge 1 und 3:

  • Je stärker die statistischen Bindungen innerhalb des Zufallsprozesses sind, desto ungenauer ist bei gegebenem $N$ die AKF-Berechnung.
  • Diesen Sachverhalt kann man sich beispielsweise anhand der Leistungsberechnung (AKF-Wert an der Stelle $k=0$) verdeutlichen:

Sind alle N Abtastwerte statistisch unabhängig, so liefern alle Beiträge die maximale Information über den AKF–Wert $\varphi_x(k=0)$.

  • Bestehen jedoch statistische Bindungen zwischen $x_\nu$ und $x_{\nu+1}$, nicht jedoch zwischen $x_\nu$ und $x_{\nu+2}$, so liefern nur die Hälfte aller Abtastwerte die volle Information über $\varphi_x(k=0)$ und die anderen nur eingeschränkte Informationen.

Dieser auf Korrelationen beruhende Informationsverlust kann in diesem Beispiel nur durch eine Verdopplung von $N$ ausgeglichen werden.

  • Die letzte Aussage trifft ebenfalls zu, wie auf der Seite „Genauigkeit der numerischen AKF-Berechnung” im Theorieteil ausführlich erläutert wird.