Mean Values and the Standard Deviation¶
This worksheet is designed to study mean values for a given system, to see how many “experiments” you need to run for the experimental mean value to match what we would expect theoretically. Recall that if you have $n_r$ possible outcomes for a given outcome labeled $r$ when there are $N$ total possible outcomes, then the mean value of an observable $y$ is
$$ \bar y = \frac{1}{N}\sum_r y_r n_r = \sum_r y_r P_r. $$In the second equality we wrote this in terms of the probability,
$$ P_r = \frac{n_r}{N}. $$Additionally, we have the standard deviation, given by the square root of the variance, which is defined as
$$ \overline{\left(\Delta y\right)^2} \equiv \sum_r \left(y_r – \bar y\right)^2 P_r, $$which is a useful method to understand how much our results “spread” around the mean value.
In reality, however, if you perform an event $M$ times (say flip a coin, roll a die, etc.), then you’ll obtain each outcome $m_r$ times, where this could be any value, even zero, regardless of what you would expect probabilistically. The mean value experimentally is the same as above but with $m_r$ and $M$ instead of $n_r$ and $N$, respectively. When $M\to\infty$, then the two should be the same.
In this worksheet, you can decide how many outcomes there are (flipping a coin = 2 outcomes, rolling a six-sided die = 6 outcomes, etc.), and then decide how many total times you will choose a result (that is, how many coins will you flip, dice you will roll, and so forth).
Skip down to the “Run calculations” section if you just wish to test the code. In that case, you can just click “Run all” in the Cell menu above (if you are using CoLab, this is in the Runtime menu). This will run the line that states
run_experiments( )
and then you’ll be prompted to enter $n$, the number of outcomes, and then $M$, the number of times you’ll choose those outcomes (e.g., how many coins flipped or dice rolled).
You can also change what you see in the input line to look like
run_experiments(n=4,M=10)
where the number after $n=$ is the number of outcomes and that after $M=$ is the number of times they are chosen. This particular choice would give a simulation of rolling a four-sided die 10 times. After you have run the notebook once, you can then add lines below and hit “shift-enter” to run other experiments.
Things to try out:
Run the “experiments” for a fixed $n$ and increasing $N$. Tabulate the results for both mean values (and the standard deviation) and see how they approach each other.
Go to the the “Functions” section and determine how to make each outcome occur with a different probability. Currently all outcomes are equally likely.
Functions¶
In this section, we have imported libraries that we need in order to simulate these outcomes. If you’re only interested in playing around with the results, just “run” the entire notebook and move to the next section. If you’re interested in coding and wish to modify this, have at it!
Run calculations¶
Type
run_experiments( )
and hit shift-enter to test this out. If you do this, you’ll be asked for the number of outcomes ($n$) and the number of total “flips” ($M$). Alternatively you could type
run_experiments(n = 2, M = 100)
to simulate flipping 100 coins (so there are two outcomes) or say
run_experiments(n = 6, M = 100)
to roll 100 six-sided dice.
You will then see the results in the form:
After $M$ runs, the average value is XX
Theoretically the mean value is XX
for each outcome. The first result is the average obtained from the $M$ experiments and the second is what we would get theoretically. Note in all cases, we consider all individual outcomes equally likely.
Test out the same setup (same number of outcomes) for larger and larger values of $N$, to see that the experimental and theoretical results agree.