Aufgaben:Aufgabe 4.11Z: C-Programm „akf2”: Unterschied zwischen den Versionen
Aus LNTwww
Zeile 7: | Zeile 7: | ||
*Der an das Programm übergebene Long-Wert sei hier $l=10$. | *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 | + | *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 $H[10000 ]$, in das die $N = 10000$ Abtastwerte $x_\nu$ eingetragen werden (Zeile 9 und 10). | *Die Zufallsgröße $x( \ )$ ist als Float-Funktion in Zeile 4 definiert, ebenso ein Hilfsfeld $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 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. | *Die eigentliche AKF-Berechnung erfolgt ab Zeile 11. Dieser Programmteil ist im Programmcode rot gekennzeichnet. | ||
+ | |||
''Hinweise:'' | ''Hinweise:'' | ||
Zeile 21: | Zeile 22: | ||
<quiz display=simple> | <quiz display=simple> | ||
− | {Auf wie vielen Summanden ( | + | {Auf wie vielen Summanden ($S$) basiert die AKF-Berechnung für den Index $k=0$ bzw. für $k=10$? |
|type="{}"} | |type="{}"} | ||
− | $S_ | + | $S_{k=0} \ = $ { 10000 } |
− | $S_ | + | $S_{k=10} \ = $ { 9990 } |
{Welche der nachfolgenden Aussagen sind richtig? | {Welche der nachfolgenden Aussagen sind richtig? | ||
|type="[]"} | |type="[]"} | ||
− | + Die Rechenzeit steigt linear mit | + | + Die Rechenzeit steigt linear mit $l + 1$, also mit der Anzahl der zu berechnenden AKF-Werte. |
− | - Die Rechenzeit nimmt mit der Anzahl | + | - Die Rechenzeit nimmt mit der Anzahl $N$ der berücksichtigten Abtastwerte quadratisch zu. |
− | + Die Berechnung wird mit steigendem | + | + Die Berechnung wird mit steigendem $N$ genauer. |
− | + Wird eine Floatvariable mit 4 Byte dargestellt, so benötigt „akf2” mindestens 4 | + | + Wird eine Floatvariable mit $\rm 4 \ Byte$ dargestellt, so benötigt „akf2” mindestens $4 \cdot N$ Byte Speicherplatz. |
{Welche der nachfolgenden Aussagen sind zutreffend? | {Welche der nachfolgenden Aussagen sind zutreffend? | ||
|type="[]"} | |type="[]"} | ||
− | + Je stärker die inneren statistischen Bindungen des Prozesses sind, desto ungenauer ist bei gegebenem | + | + Je stärker die inneren statistischen Bindungen des Prozesses sind, desto <u>ungenauer</u> ist bei gegebenem $N$ das AKF-Ergebnis. |
− | - Je stärker die inneren statistischen Bindungen des Prozesses sind, desto genauer ist bei gegebenem | + | - Je stärker die inneren statistischen Bindungen des Prozesses sind, desto <u>genauer</u> ist bei gegebenem $N$ das AKF-Ergebnis. |
− | + Besitzt der Prozess statistische Bindungen, so sind die Fehler der numerischen AKF-Berechnung ebenfalls korreliert. | + | + Besitzt der Prozess statistische Bindungen, so sind die Fehler der numerischen AKF-Berechnung ebenfalls korreliert. <i>Beispiel:</i> |
+ | <br>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. | ||
Version vom 26. März 2017, 11:17 Uhr
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 $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:
- Die Aufgabe gehört zum Kapitel Autokorrelationsfunktion.
- Bezug genommen wird insbesondere auf die Seite Numerische AKF-Ermittlung.
- Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein.
Fragebogen
Musterlösung
- 1. Zur Berechnung des AKF-Wertes φx(0) wird über N = 10000 Summanden gemittelt, für φx(10) nur über N – l = 9990.
- 2. 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 A4.11 – allerdings auf Kosten des erforderlichen Speicherbedarfs. Da jede Float-Variable genau vier Byte beansprucht, benötigt alleine das Hilfsfeld H[10000] einen Speicher von 40 kByte. Richtig sind somit die Lösungsvorschläge 1, 3 und 4.
- 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 φx(k = 0).
- Bestehen jedoch statistische Bindungen zwischen xν und xν+1, nicht jedoch zwischen xν und xν+2, so liefern nur die Hälfte aller Abtastwerte die volle Information über φx(k = 0) und alle 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 im Kapitel 4.4 auf der Seite Genauigkeit der numerischen AKF-Berechnung im Theorieteil ausführlich erläutert wird. Richtig sind somit die Lösungsvorschläge 1 und 3.