Difference between revisions of "Aufgaben:Exercise 4.11Z: C Program "acf2""
From LNTwww
(3 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
}} | }} | ||
− | [[File: | + | [[File:EN_Sto_Z_4_11_neu.png|right|frame|C program $2$ for ACF–calculation]] |
You can see on the right the C program "acf2" for calculating the discrete ACF values $\varphi_x(k)$ with index $k = 0$, ... , $l$. | You can see on the right the C program "acf2" for calculating the discrete ACF values $\varphi_x(k)$ with index $k = 0$, ... , $l$. | ||
Line 45: | Line 45: | ||
+ The stronger the internal statistical bindings of the process are, the more <u>inexact</u> is the ACF result for a given $N$. | + The stronger the internal statistical bindings of the process are, the more <u>inexact</u> is the ACF result for a given $N$. | ||
- The stronger the internal statistical bindings of the process are, the more <u>accurate</u> is the ACF result for a given $N$. | - The stronger the internal statistical bindings of the process are, the more <u>accurate</u> is the ACF result for a given $N$. | ||
− | + If the process has statistical bindings, the errors of the numerical ACF calculation are also correlated. <br> < | + | + If the process has statistical bindings, the errors of the numerical ACF calculation are also correlated. <br> <u>Example:</u> If the value $\varphi_x(k=5)$ is too large, it is very likely that $\varphi_x(k=4)$ and $\varphi_x(k=6)$ will also be too large. |
Line 53: | Line 53: | ||
===Solution=== | ===Solution=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' To calculate the ACF value $\varphi_x(0)$ | + | '''(1)''' To calculate the ACF value $\varphi_x(0)$ you have to average over $\underline{N =10000}$ summands, for $\varphi_x(10)$ only over $\underline{N = 9990}$. |
− | '''(2)''' Correct are <u>the proposed solutions 1, 3 and 4</u>: | + | '''(2)''' Correct are <u>the proposed solutions 1, 3 and 4</u>: |
*The computation time increases approximately linearly with $N$ and $l + 1$ as can be seen from the ACF calculation highlighted in red. | *The computation time increases approximately linearly with $N$ and $l + 1$ as can be seen from the ACF calculation highlighted in red. | ||
− | * In contrast, the computation time for the other parts of the program can be neglected. | + | * In contrast, the computation time for the other parts of the program can be neglected. |
− | *Naturally, the calculation also becomes more accurate with increasing $N$ | + | *Naturally, the calculation also becomes more accurate with increasing $N$. |
− | *This goes here – in contrast to the program "acf1" of | + | *This goes here – in contrast to the program "acf1" of Exercise 4.11 – however at the expense of the necessary memory requirement. |
*Since each float variable takes up exactly four bytes, the auxiliary field ${\rm H}[10000 ]$ alone requires a memory of 40 kByte. | *Since each float variable takes up exactly four bytes, the auxiliary field ${\rm H}[10000 ]$ alone requires a memory of 40 kByte. | ||
− | '''(3)''' Correct are <u>suggested solutions 1 and 3</u>: | + | '''(3)''' Correct are the <u>suggested solutions 1 and 3</u>: |
− | *The stronger the statistical bindings within the random process, the less accurate is the ACF calculation for a given $N$ | + | *The stronger the statistical bindings within the random process, the less accurate is the ACF calculation for a given $N$. |
*This fact can be illustrated for example by the power calculation $($ACF value at $k=0)$ : | *This fact can be illustrated for example by the power calculation $($ACF value at $k=0)$ : | ||
− | **If all $N$ samples are statistically independent, then all contributions provide the maximum information about the ACF | + | **If all $N$ samples are statistically independent, then all contributions provide the maximum information about the ACF value $\varphi_x(k=0)$. |
− | **However, if there are statistical bindings between $x_\nu$ and $x_{\nu+1}$, but not between $x_\nu$ and $x_{\nu+2}$, only half of all samples provide the full information about $\varphi_x(k=0)$ and the others provide only limited information. | + | **However, if there are statistical bindings between $x_\nu$ and $x_{\nu+1}$, but not between $x_\nu$ and $x_{\nu+2}$, only half of all samples provide the full information about $\varphi_x(k=0)$ and the others provide only limited information. |
*This loss of information based on correlations can only be compensated in this example by doubling $N$ . | *This loss of information based on correlations can only be compensated in this example by doubling $N$ . | ||
− | *The last statement is also true, as explained in detail on the page "Accuracy of the numerical ACF calculation" in the theory section. | + | *The last statement is also true, as explained in detail on the page "Accuracy of the numerical ACF calculation" in the theory section. |
{{ML-Fuß}} | {{ML-Fuß}} | ||
Latest revision as of 16:27, 28 April 2022
You can see on the right the C program "acf2" for calculating the discrete ACF values $\varphi_x(k)$ with index $k = 0$, ... , $l$.
In contrast to the program "acf1" from Exercise 4.11, here the algorithm described in the theory part is applied directly. It should be noted:
- Let the long value passed to the program be $l=10$.
- The calculated ACF values $\varphi_x(0)$, ... , $\varphi_x(10)$ are returned to the main program with the float field $\rm ACF[ \ ]$. In lines 7 and 8, this field is prefilled with zeros.
- The random variable $x( \ )$ is defined as a float function in line 4, as is an auxiliary field ${\rm H}[10000 ]$, into which the $N = 10000$ samples $x_\nu$ are entered (lines 9 and 10).
- The names of the control variables in line 6 are adapted to the given algorithm.
- The actual ACF calculation is done from line 11. This program part is marked red in the program code.
Hints:
- This exercise belongs to the chapter Auto-Correlation Function.
- In particular, reference is made to the pages
Questions
Solution
(1) To calculate the ACF value $\varphi_x(0)$ you have to average over $\underline{N =10000}$ summands, for $\varphi_x(10)$ only over $\underline{N = 9990}$.
(2) Correct are the proposed solutions 1, 3 and 4:
- The computation time increases approximately linearly with $N$ and $l + 1$ as can be seen from the ACF calculation highlighted in red.
- In contrast, the computation time for the other parts of the program can be neglected.
- Naturally, the calculation also becomes more accurate with increasing $N$.
- This goes here – in contrast to the program "acf1" of Exercise 4.11 – however at the expense of the necessary memory requirement.
- Since each float variable takes up exactly four bytes, the auxiliary field ${\rm H}[10000 ]$ alone requires a memory of 40 kByte.
(3) Correct are the suggested solutions 1 and 3:
- The stronger the statistical bindings within the random process, the less accurate is the ACF calculation for a given $N$.
- This fact can be illustrated for example by the power calculation $($ACF value at $k=0)$ :
- If all $N$ samples are statistically independent, then all contributions provide the maximum information about the ACF value $\varphi_x(k=0)$.
- However, if there are statistical bindings between $x_\nu$ and $x_{\nu+1}$, but not between $x_\nu$ and $x_{\nu+2}$, only half of all samples provide the full information about $\varphi_x(k=0)$ and the others provide only limited information.
- This loss of information based on correlations can only be compensated in this example by doubling $N$ .
- The last statement is also true, as explained in detail on the page "Accuracy of the numerical ACF calculation" in the theory section.