- Code: Select all
N <- 10000
lambda <- runif(N, 0, 360)
alpha <- 0
beta <- 45
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E11 <- mean(A * B)
lambda <- runif(N, 0, 360)
alpha <- 0
beta <- 135
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E12 <- mean(A * B)
lambda <- runif(N, 0, 360)
alpha <- 90
beta <- 45
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E21 <- mean(A * B)
lambda <- runif(N, 0, 360)
alpha <- 90
beta <- 135
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E22 <- mean(A * B)
E12 - E11 - E21 - E22
Experiment 2: copy and paste this code into your R console window 20 times, and report your results back here.
- Code: Select all
N <- 10000
lambda <- runif(N, 0, 360)
alpha <- 0
beta <- 45
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E11 <- mean(A * B)
# lambda <- runif(N, 0, 360)
alpha <- 0
beta <- 135
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E12 <- mean(A * B)
# lambda <- runif(N, 0, 360)
alpha <- 90
beta <- 45
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E21 <- mean(A * B)
# lambda <- runif(N, 0, 360)
alpha <- 90
beta <- 135
A <- sign(cos((alpha - lambda)*pi/180))
B <- - sign(cos((beta - lambda)*pi/180))
E22 <- mean(A * B)
E12 - E11 - E21 - E22
Discuss the difference between experiment 1 and experiment 2.
Hint 1: the "#" symbol indicates a comment. So lines which start with # have been commented out.
Hint 2: the command lambda <- runif(N, 0, 360) creates a vector of length N containing *real* numbers chosen uniformly at random between 0 and 360. Actually: pseudo random numbers. Every time the command is repeated, a new set of pseudo random numbers is created.
You may also like to investigate use of different parameters, e.g., different values of N; or you might like to repeat both experiments 1000 times and report histograms of the results.
You might like to learn about the function "set.seed()" which allows one to repeat a simulation experiment with the *same* random numbers as you used last time. This is very useful in debugging programs, etc. And in making your research reproducible: someone else who runs the same code on a different computer even under a different operating system will get identical results if they start with the same pseudo random seed.