# coordinates of group with excess horizontal
# variance due to cross-winds
xy1 <- cbind(x=c( 2.90, 2.08, 2.16, -1.54, -0.22, -0.03, -0.58,
1.32, -2.03, -2.47, 0.06, -0.53, 0.69, -1.51,
-0.35, 0.64, -0.57, 0.29, -1.15, -2.59),
y=c(-0.75, -0.96, -0.52, -0.90, -1.79, 1.05, 0.77,
0.67, 0.69, -0.01, -1.04, -0.36, 0.25, 0.16,
-0.04, -0.12, 1.08, -0.83, -0.70, -0.30))
# original variances
diag(cov(xy1))
# scale group
xy1_scl <- scaleGroup(xy1, varX=TRUE)
# check that horizontal variance = vertical variance
diag(cov(xy1_scl))
# coordinates of group with excess vertical variance
# due to variability in bullet velocity
xy2 <- cbind(x=c(2.18, -0.10, -0.17, -0.53, -0.94, -0.23, 0.42,
0.38, 0.78, 0.51, 0.19, -0.14, -0.23, -1.44,
-0.46, -0.43, 0.32, 0.77, -0.43, -0.48),
y=c(2.10, 1.39, 1.95, -0.16, 0.72, 1.33, 0.10,
1.05, -0.33, -0.73, 0.35, 1.04, 0.13, -1.25,
-1.65, -0.06, -1.90, -0.34, -2.01, -1.72))
# estimated drop from variability in bullet velocity
e_drop <- c( 0.00, -0.97, -0.57, -2.08, -1.44, -0.46, -1.79,
-1.15, -2.08, -2.73, -1.67, -0.97, -1.73, -2.85,
-2.97, -1.21, -2.85, -1.21, -2.20, -1.73)
# variance of velocity-related bullet drop
excess_varY <- var(e_drop)
# original variances
diag(cov(xy2))
# scale group
xy2_scl <- scaleGroup(xy2, varY=excess_varY)
# check new vertical variance
diag(cov(xy2_scl))
Run the code above in your browser using DataLab