Using the computer we can generate a large number of samples from
a random variable. We will explore some of the concepts from random
variables -- the density function, transformation of random variables,
and conditional density -- by examining relative frequencies of random
Please do the following and answer the questions:
Please include all histograms that you generated. Make them no more
than 1/4-page high. Please make your write-up as concise as possible while
answering all questions.
Before you do anything else in MATLAB, run the following commands (MATLAB 7.7 and higher):
s = RandStream.create('mt19937ar','seed',sum(100*clock));
This will set a unique starting point for the random number generator in MATLAB. This means that your specific results will be different from those of everyone else in the class.
For MATLAB 7.6 and lower, use the following command:
As we discussed in class, a density function is just a histogram with
infinitesimally wide bins and an infinite number of samples, scaled so that
the total area under the curve is one. Use
rand to generate 100 random numbers. From these numbers,
create a 10-bin histogram and display using hist.
What is the expected shape of the histogram? (Read the help on rand.) Why does the plot vary from
its expected shape? Run the experiment a couple more times with a new
set of random numbers. Describe what happens to the plot.
Rerun the experiment above with 1,000,000 random numbers. How does the bar
plot change from the exercise above? Why?
Run the experiment with randn, 1,000,000 random numbers, and 30 bins.
What is the shape of the histogram?
Generate 1,000,000 random numbers using randn and then multiply each
number by 4 and then add 3. Display a 30-bin histogram, and describe the change
compared to the exercise above. Explain any differences you observe.
What does multiplying by 4 do to the variance?
Some transformations of random variables are difficult to do analytically.
However, they are straightforward to simulate. Generate a set of 1,000,000
random values in the range [0,4) using rand and scaling by
4. Transform the variable by computing the square root of the input.
NOTE: You don't need to use loops. Just use:
y = sqrt(x);
where x is the scaled vector obtained from rand.
Look at the 100-bin histogram of the input and the transformed values.
Do they look the same or similar in shape? Submit a plot of the two
If your histograms look like several groups of bars with spaces between the groups, you messed up. Be sure that the random numbers you generated are in a vector, not a matrix. Check by running "whos".
Please submit your report to Canvas electronically before class on the due date in PDF format. Turn in a hard copy at class time.
NOTE: All out-of-class work is to be done independently. Sharing of programming tips and discussing general concepts is ok. Collaborating on experiments or code-writing is not. Any such collaboration on these assignments will be considered an act of academic dishonesty and will be treated accordingly.