Data of measurements of the speed of light in R can be found all over the place in R but it is a mess.
The data set names are not clearly choosen
The name of Newcomb is used twice
The Morley data has nothing to do with Michelson and Morley
The units of data vary between datasets
No careful account for historical truth
No respect of original data
Some dataset keeps only part of the data (one experiment)
No modern data set is available
No description of the physics is available!
This results in a poor exploitation of a truely rich topics.
In this document, we try to sort this mess out.
morley From datasets v3.6.2 by R-core R-core@R-project.org 99.99th Percentile
Michelson Speed Of Light Data A classical data of Michelson (but not this one with Morley) on measurements done in 1879 on the speed of light. The data consists of five experiments, each consisting of 20 consecutive ‘runs’. The response is the speed of light measurement, suitably coded (km/sec, with 299000 subtracted).
morley
## Expt Run Speed
## 001 1 1 850
## 002 1 2 740
## 003 1 3 900
## 004 1 4 1070
## 005 1 5 930
## 006 1 6 850
## 007 1 7 950
## 008 1 8 980
## 009 1 9 980
## 010 1 10 880
## 011 1 11 1000
## 012 1 12 980
## 013 1 13 930
## 014 1 14 650
## 015 1 15 760
## 016 1 16 810
## 017 1 17 1000
## 018 1 18 1000
## 019 1 19 960
## 020 1 20 960
## 021 2 1 960
## 022 2 2 940
## 023 2 3 960
## 024 2 4 940
## 025 2 5 880
## 026 2 6 800
## 027 2 7 850
## 028 2 8 880
## 029 2 9 900
## 030 2 10 840
## 031 2 11 830
## 032 2 12 790
## 033 2 13 810
## 034 2 14 880
## 035 2 15 880
## 036 2 16 830
## 037 2 17 800
## 038 2 18 790
## 039 2 19 760
## 040 2 20 800
## 041 3 1 880
## 042 3 2 880
## 043 3 3 880
## 044 3 4 860
## 045 3 5 720
## 046 3 6 720
## 047 3 7 620
## 048 3 8 860
## 049 3 9 970
## 050 3 10 950
## 051 3 11 880
## 052 3 12 910
## 053 3 13 850
## 054 3 14 870
## 055 3 15 840
## 056 3 16 840
## 057 3 17 850
## 058 3 18 840
## 059 3 19 840
## 060 3 20 840
## 061 4 1 890
## 062 4 2 810
## 063 4 3 810
## 064 4 4 820
## 065 4 5 800
## 066 4 6 770
## 067 4 7 760
## 068 4 8 740
## 069 4 9 750
## 070 4 10 760
## 071 4 11 910
## 072 4 12 920
## 073 4 13 890
## 074 4 14 860
## 075 4 15 880
## 076 4 16 720
## 077 4 17 840
## 078 4 18 850
## 079 4 19 850
## 080 4 20 780
## 081 5 1 890
## 082 5 2 840
## 083 5 3 780
## 084 5 4 810
## 085 5 5 760
## 086 5 6 810
## 087 5 7 790
## 088 5 8 810
## 089 5 9 820
## 090 5 10 850
## 091 5 11 870
## 092 5 12 870
## 093 5 13 810
## 094 5 14 740
## 095 5 15 810
## 096 5 16 940
## 097 5 17 950
## 098 5 18 800
## 099 5 19 810
## 100 5 20 870
how about Newcomb
http://media.news.health.ufl.edu/misc/bolt/Software_R/docs/02_Datasets_in_R.pdf
Warning, there is another Newcomb data set or social networks!
Simon Newcomb’s measurements (1882) to measure the speed of light. The data are recorded as deviations from 24800 nanoseconds.
The format is: atomic [1:66] 28 26 33 24 34 -44 27 16 40 -2 … - attr(*, “comment”)= chr “Units: deviations from 24800 nanoseconds”
Details The currently accepted value for the speed of light on this scale is 33.0.
A numeric vector giving the ‘Third Series’ of measurements of the passage time of light recorded by Newcomb in 1882. The given values divided by 1000 plus 24 give the time in millionths of a second for light to traverse a known distance. The ‘true’ value is now considered to be 33.02.
#library(MASS)
#newwcomb
library(BayesDA)
data(light)
light
## [1] 28 26 33 24 34 -44 27 16 40 -2 29 22 24 21 25 30 23 29 31
## [20] 19 24 20 36 32 36 28 25 21 28 29 37 25 28 26 30 32 36 26
## [39] 30 22 36 23 27 27 28 27 31 27 26 33 26 32 32 24 39 28 24
## [58] 25 32 25 29 27 28 29 16 23
comment(light)
## [1] "Units: deviations from 24800 nanoseconds"
hist(light, breaks=40)
abline(v=33.0, col="red")
Dont trust this??
go to
http://people.reed.edu/~jones/141/Newcomb.html
Newcomb’s Data Simon Newcomb’s 1882 data on the speed of light; more precisely, the time it takes light to travel 7442 meters at sea level. The currently accepted estimate of the speed of light under these conditions corresponds to a measurement of .00002483302.
"myNewcomb" <-
structure(list(Time = c(2.4828e-05, 2.4826e-05, 2.4833e-05, 2.4824e-05,
2.4834e-05, 2.4756e-05, 2.4827e-05, 2.4816e-05, 2.484e-05, 2.4798e-05,
2.4829e-05, 2.4822e-05, 2.4824e-05, 2.4821e-05, 2.4825e-05, 2.483e-05,
2.4823e-05, 2.4829e-05, 2.4831e-05, 2.4819e-05, 2.4824e-05, 2.482e-05,
2.4836e-05, 2.4832e-05, 2.4836e-05, 2.4828e-05, 2.4825e-05, 2.4821e-05,
2.4828e-05, 2.4829e-05, 2.4837e-05, 2.4825e-05, 2.4828e-05, 2.4826e-05,
2.483e-05, 2.4832e-05, 2.4836e-05, 2.4826e-05, 2.483e-05, 2.4822e-05,
2.4836e-05, 2.4823e-05, 2.4827e-05, 2.4827e-05, 2.4828e-05, 2.4827e-05,
2.4831e-05, 2.4827e-05, 2.4826e-05, 2.4833e-05, 2.4826e-05, 2.4832e-05,
2.4832e-05, 2.4824e-05, 2.4839e-05, 2.4828e-05, 2.4824e-05, 2.4825e-05,
2.4832e-05, 2.4825e-05, 2.4829e-05, 2.4827e-05, 2.4828e-05, 2.4829e-05,
2.4816e-05, 2.4823e-05), Series = as.integer(c(1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3))), .Names = c("Time", "Series"), class = "data.frame", row.names = c("1", "2", "3",
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26",
"27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37",
"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48",
"49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59",
"60", "61", "62", "63", "64", "65", "66"))
myNewcomb
## Time Series
## 1 2.4828e-05 1
## 2 2.4826e-05 1
## 3 2.4833e-05 1
## 4 2.4824e-05 1
## 5 2.4834e-05 1
## 6 2.4756e-05 1
## 7 2.4827e-05 1
## 8 2.4816e-05 1
## 9 2.4840e-05 1
## 10 2.4798e-05 1
## 11 2.4829e-05 1
## 12 2.4822e-05 1
## 13 2.4824e-05 1
## 14 2.4821e-05 1
## 15 2.4825e-05 1
## 16 2.4830e-05 1
## 17 2.4823e-05 1
## 18 2.4829e-05 1
## 19 2.4831e-05 1
## 20 2.4819e-05 1
## 21 2.4824e-05 2
## 22 2.4820e-05 2
## 23 2.4836e-05 2
## 24 2.4832e-05 2
## 25 2.4836e-05 2
## 26 2.4828e-05 2
## 27 2.4825e-05 2
## 28 2.4821e-05 2
## 29 2.4828e-05 2
## 30 2.4829e-05 2
## 31 2.4837e-05 2
## 32 2.4825e-05 2
## 33 2.4828e-05 2
## 34 2.4826e-05 2
## 35 2.4830e-05 2
## 36 2.4832e-05 2
## 37 2.4836e-05 2
## 38 2.4826e-05 2
## 39 2.4830e-05 2
## 40 2.4822e-05 2
## 41 2.4836e-05 3
## 42 2.4823e-05 3
## 43 2.4827e-05 3
## 44 2.4827e-05 3
## 45 2.4828e-05 3
## 46 2.4827e-05 3
## 47 2.4831e-05 3
## 48 2.4827e-05 3
## 49 2.4826e-05 3
## 50 2.4833e-05 3
## 51 2.4826e-05 3
## 52 2.4832e-05 3
## 53 2.4832e-05 3
## 54 2.4824e-05 3
## 55 2.4839e-05 3
## 56 2.4828e-05 3
## 57 2.4824e-05 3
## 58 2.4825e-05 3
## 59 2.4832e-05 3
## 60 2.4825e-05 3
## 61 2.4829e-05 3
## 62 2.4827e-05 3
## 63 2.4828e-05 3
## 64 2.4829e-05 3
## 65 2.4816e-05 3
## 66 2.4823e-05 3
What single value of the speed of light would you infer from these experiments?
boxplot(morley$Speed ~ morley$Expt,
col='light grey', xlab='Experiment #',
ylab="speed (km/s minus 299,000)",
main="Michelson?Morley experiment")
mtext("speed of light data")
#abline(h=sol, col='red')
What is the real value? what do you conclude?
library(evidence)
## Loading required package: rstan
## Loading required package: StanHeaders
## Loading required package: ggplot2
## rstan (Version 2.19.2, GitRev: 2e1f913d3ca3)
## For execution on a local, multicore CPU with excess RAM we recommend calling
## options(mc.cores = parallel::detectCores()).
## To avoid recompilation of unchanged Stan programs, we recommend calling
## rstan_options(auto_write = TRUE)
## For improved execution time, we recommend calling
## Sys.setenv(LOCAL_CPPFLAGS = '-march=native')
## although this causes Stan to throw an error on a few processors.
## Loading required package: rstanarm
## Loading required package: Rcpp
## Registered S3 method overwritten by 'xts':
## method from
## as.zoo.xts zoo
## rstanarm (Version 2.19.2, packaged: 2019-10-01 20:20:33 UTC)
## - Do not expect the default priors to remain the same in future rstanarm versions.
## Thus, R scripts should specify priors explicitly, even if they are just the defaults.
## - For execution on a local, multicore CPU with excess RAM we recommend calling
## options(mc.cores = parallel::detectCores())
## - bayesplot theme set to bayesplot::theme_default()
## * Does _not_ affect other ggplot2 plots
## * See ?bayesplot_theme_set for details on theme setting
##
## Attaching package: 'rstanarm'
## The following object is masked from 'package:rstan':
##
## loo
## Loading required package: loo
## This is loo version 2.2.0
## - Online documentation and vignettes at mc-stan.org/loo
## - As of v2.0.0 loo defaults to 1 core but we recommend using as many as possible. Use the 'cores' argument or set options(mc.cores = NUM_CORES) for an entire session.
## - Windows 10 users: loo may be very slow if 'mc.cores' is set in your .Rprofile file (see https://github.com/stan-dev/loo/issues/94).
##
## Attaching package: 'loo'
## The following object is masked from 'package:rstan':
##
## loo
## Loading required package: lattice
data(lightspeed)
qqnorm(lightspeed)
qqline(lightspeed)
Michelson participated in the Washington D.C. observations until September 1880, when he was granted a leave of absence by the Navy to study in Europe. Newcomb continued the experiments for two more years. In his final report [Newcomb, 1883] he gave two values for the velocity of light in vacuum. First, a value of 299,860 km/sec based only on observations made in 1882, which he preferred because he thought that they were less affected by systematic errors. Second, 299,810 km/sec based on a weighted combination of all the observations, which proved to be the more accurate value.
http://vigo.ime.unicamp.br/~fismat/newcomb.pdf
The rotating mirror had eight faces, and was made of steel to withstand the centrifugal force at 528 rev/sec. Michelson obtained a value of for the velocity of light in vacuum of 299,798 ± 4 k/sec, compared to the value of 299,792.458 k/sec accepted today
#Michelson <- read.table("../Data/Michelson.R",header=TRUE)
#head(Michelson)
#summary(Michelson)
#boxplot(Speed ~ Run,data=Michelson,col="gold")
#title("Michelson's Data: Speed of Light",col.main=rgb(.1,.4,.6))
myNewcomb
boxplot(7442./Time ~ Series,data=myNewcomb,col="blue")
title("Newcomb's Data: Speed of Light",col.main=rgb(.3,.4,.6))
Questions:
are the measurements normal?
Superpose Newcomb and Michelson measurements on one single plot
Do Michelson and Newcomb agree on the value of c?
Why did Newcomb give two values for c?
What are the sources of systematic errors in each experiment?
What if the distance travelled was not accurate?
How would you repeat the Newcomb measurement here in Halifax?
Who has made the most precise measurement of c ever?
How should we proceed to considerably improve (say multiply by 100) the current accuracy of measurement of c?
The width of the Potomac: a problem? (Take 1!)
Problems with the width of the Potomac, … and many other sources of uncertainties (see Essen, or Dorsey 1944)
With the help of … Alan Turing !
Seul face au monde.
|
|
|
In 1947 he published his first determination of it, which was 16 kilometers per second higher than the accepted value, causing a great deal of controversy in the scientific community.
src:https://www.gsjournal.net/Science-Journals/Journal%20Reprints-Relativity%20Theory/Download/3295
The width of the Potomac: a problem? (Take 2!)
What reflexion do the following diagram inspire you?
(src:https://www.cairn-int.info/article-E_ANSO_132_0359--determining-the-speed-of-light.htm)
Best (?)measurements according to Froome and Essen
Date | Author |
---|---|
1676 | Olaus Roemer |
1726 | James Bradley |
1849 | Armand Fizeau |
1862 | Leon Foucault |
1879 | Albert Michelson |
1907 | Rosa, Dorsay |
1926 | Albert Michelson |
1947 | Essen, Gorden-Smith |
1958 | K. D. Froome |
1973 | Evanson et al |
1983 |
Which method is best?
(src: Essen)
Most precise test of Lorentz invariance ever
Far more precise than the original Michelson-Morley experiment
As far as we can tell, c is indeed constant.