Aufgabe 4.11Z: C-Programm „akf2”

From LNTwww

C-Programm  $2$  zur AKF–Berechnung

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 folgenden 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 folgenden 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:     Ist der Wert  $\varphi_x(k=5)$  zu groß, so werden mit großer Wahrscheinlichkeit auch  $\varphi_x(k=4)$  und  $\varphi_x(k=6)$  zu groß sein.


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 bei  $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.