Aufgaben:Aufgabe 4.11: C-Programm „akf1”: Unterschied zwischen den Versionen
Aus LNTwww
Zeile 60: | Zeile 60: | ||
[[Datei:P_ID417__Sto_A_4_11_b.png|right|frame|Zur numerischen AKF-Berechnung]] | [[Datei:P_ID417__Sto_A_4_11_b.png|right|frame|Zur numerischen AKF-Berechnung]] | ||
<br> | <br> | ||
− | '''(1)''' Mit z=0 und k=6 ergibt sich gemäß dem Programm: i=0_ und j=6_. | + | '''(1)''' Mit z=0 und k=6 ergibt sich gemäß dem Programm: i=0_ und j=6_. |
− | + | *Die entsprechenden Speicherinhalte sind H[0]=x1 und H[6]=x7. | |
− | '''(2)''' In das Feld H[0] wird nun die Zufallsgröße x12 eingetragen: | + | |
+ | |||
+ | '''(2)''' In das Feld H[0] wird nun die Zufallsgröße x12 eingetragen: | ||
:Speicherzelle i=0_,Folgenindex ν=12_. | :Speicherzelle i=0_,Folgenindex ν=12_. | ||
− | |||
− | *Jeweils grün hinterlegt ist die Speicherzelle H[i]. In diesen Speicherplatz wird jeweils am Ende der Schleife (Zeile 18) die neue Zufallsgröße eingetragen. | + | '''(3)''' Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten xν. |
− | *Für z=83 und K=6 ergibt sich | + | |
− | :\underline{i= 83 \mod \ 11 = 6},\hspace{1cm} \underline{j= (i+k) \mod \ 11 = 1}. | + | *Jeweils grün hinterlegt ist die Speicherzelle {\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm}\big]. 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 |
− | *Am Ende des Schleifendurchlaufs z= 83 wird in {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] der Inhalt x_{84} durch x_{95} ersetzt. | + | :$$\underline{i= 83 \hspace{-0.2cm}\mod \hspace{-0.15cm} \ 11 = 6},\hspace{1cm} \underline{j= (i+k)\hspace{-0.2cm}\mod \hspace{-0.15cm} \ 11 = 1}.$$ |
+ | *Schleifendurchlauf z= 83: In der Speicherzelle {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] steht die Zufallsgröße x_{84} und in der Speicherzelle {\rm H}\big[\hspace{0.03cm} 1 \hspace{0.03cm}\big] die Zufallsgröße x_{90}. | ||
+ | *Am Ende des Schleifendurchlaufs z= 83 wird in {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] der Inhalt x_{84} durch x_{95} ersetzt. | ||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Version vom 29. November 2019, 18:35 Uhr
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 Theorieteil angegebenen Algorithmus, der im Programm „akf2” von Aufgabe 4.11Z direkt umgesetzt ist, benötigt man hier ein Hilfsfeld {\rm H}\big[ \ \big] mit nur l + 1 = 11 Speicherelementen.
- Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den elf Speicherzellen von {\rm 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 Beitrag x_\nu \cdot x_{\nu+k} erhöht.
- In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl N der analysierten Daten dividiert.
Hinweise:
- Die Aufgabe gehört zum Kapitel Autokorrelationsfunktion.
- Bezug genommen wird insbesondere auf die Seite Numerische AKF-Ermittlung.
Fragebogen
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}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big] = x_1 und {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] = x_7.
(2) In das Feld {\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big] wird nun die Zufallsgröße x_{12} eingetragen:
- \text{Speicherzelle }\underline{i= 0},\hspace{1cm}\text{Folgenindex }\underline{\nu= 12}.
(3) Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten x_\nu.
- Jeweils grün hinterlegt ist die Speicherzelle {\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm}\big]. 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 \hspace{-0.2cm}\mod \hspace{-0.15cm} \ 11 = 6},\hspace{1cm} \underline{j= (i+k)\hspace{-0.2cm}\mod \hspace{-0.15cm} \ 11 = 1}.
- Schleifendurchlauf z= 83: In der Speicherzelle {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] steht die Zufallsgröße x_{84} und in der Speicherzelle {\rm H}\big[\hspace{0.03cm} 1 \hspace{0.03cm}\big] die Zufallsgröße x_{90}.
- Am Ende des Schleifendurchlaufs z= 83 wird in {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] der Inhalt x_{84} durch x_{95} ersetzt.