Polaris A3 story
Alexander Levakov, Senior Research Fellow, Ph.D
May 28, 2021
Figure 1: Polaris
Polaris
The UGM-27 Polaris missile was a two-stage solid-fueled nuclear-armed submarine-launched ballistic missile
(SLBM). As the United States Navy’s first SLBM, it served from 1961 to 1996. For more see:
1. https://en.wikipedia.org/wiki/UGM-27_Polaris
2. http://www.astronautix.com/p/polarisa3.html
1
Table 1: SLBM data
S
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
2
2
2
3
3
2
2
2
2
2
M
5400
13700
19650
14200
14200
14200
33300
33300
26900
35300
35300
35300
90000
40300
40800
36800
13600
16200
29485
32000
57500
20000
19500
19950
14700
23000
L
10.40
11.80
14.20
8.89
8.89
9.65
13.00
13.00
10.60
14.10
14.10
14.10
16.00
14.80
14.80
11.50
9.45
9.86
10.36
10.36
13.42
10.70
10.70
10.40
10.70
13.00
D
0.58
1.30
1.30
1.50
1.50
1.50
1.80
1.80
1.54
1.80
1.80
1.80
2.40
1.90
1.90
2.00
1.37
1.37
1.88
1.88
2.11
1.50
1.50
1.50
1.40
2.00
R
150
650
1420
2400
3000
3000
7800
9100
3900
6500
8000
6500
8300
8300
8300
9300
2800
4630
5600
7400
11000
3000
3200
3200
2500
8000
P
975
1597
1179
650
650
650
1100
1100
450
1600
1600
1600
2550
2300
2800
1150
500
760
2000
1360
2880
1360
1360
1000
600
700
W
1
1
1
1
1
2
1
1
1
2
1
2
2
2
2
2
1
2
2
2
2
1
1
1
1
2
3. https://web.archive.org/web/20170123163450/http://www.designation-systems.net/dusrm/m-27.html
SLBM data
load("slbm.dat")
#library(DT)
library(knitr)
#datatable(slbm)
kable(slbm,format="latex", caption = "SLBM data")
Correlations
library(ggplot2)
library(GGally)
#Here we use function from https://www.r-bloggers.com/multiple-regression-lines-in-ggpairs/
my_fn <- function(data, mapping, ...){
p <- ggplot(data = data, mapping = mapping) +
geom_point() +
geom_smooth(method=loess, fill="red", color="red", ...) +
2
}
p
geom_smooth(method=lm, fill="blue", color="blue", ...)
g = ggpairs(slbm,columns = 2:6, lower = list(continuous = my_fn))
g
R
P
Corr:
0.728***
Corr:
0.831***
Corr:
0.751***
Corr:
0.740***
Corr:
0.569**
Corr:
0.604**
Corr:
0.699***
Corr:
0.869***
Corr:
0.571**
D
Corr:
0.567**
R
1e−05
D
L
2e−05
L
M
M
0e+00
20
15
10
3
2
1
15000
10000
5000
0
P
4000
3000
2000
1000
0
250005000075000
10
12
14
160.5 1.0 1.5 2.0
heatmap(cor(slbm))
3
0 300060009000
1000 2000 3000
R
D
S
M
P
L
R
D
S
M
P
L
W
W
Bayesian Linear Regression Model
library(rstan)
library(rstanarm)
library(bayesplot)
options(mc.cores = parallel::detectCores())
load("slbm.dat")
fit.slbm.bs<-stan_glm(sqrt(R)~S+D+L+W+log(M)+log(P),
data=slbm,chains=4,iter=10000,seed=12345)
fit.slbm.bs
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
stan_glm
family:
gaussian [identity]
formula:
sqrt(R) ~ S + D + L + W + log(M) + log(P)
observations: 26
predictors:
7
-----Median MAD_SD
(Intercept) -41.1 107.2
S
9.4
5.2
D
37.3
19.6
L
0.8
1.7
W
3.3
5.6
log(M)
6.7
15.0
log(P)
-7.3
6.0
4
##
##
##
##
##
##
##
Auxiliary parameter(s):
Median MAD_SD
sigma 10.2
1.7
-----* For help interpreting the printed output see ?print.stanreg
* For info on the priors used see ?prior_summary.stanreg
plot(fit.slbm.bs)
(Intercept)
S
D
L
W
log(M)
log(P)
sigma
−200
−100
0
posterior_vs_prior(fit.slbm.bs)
5
100
Posterior
Prior
2000
parameter
D
(Intercept)
L
log(M)
log(P)
S
sigma
W
1000
0
−1000
−2000
D
(In L log log S
ter
(M (P)
cep
)
t)
sig W
ma
D
(In L log log S
ter
(M (P)
cep
)
t)
Parameter
fit.slbm.bs2<-as.array(fit.slbm.bs)
mcmc_hist(fit.slbm.bs2)
6
sig W
ma
(Intercept)
−500 −250
0
S
250
500
−20
0
L
−5
0
5
−20
20
−50
0
W
10
−20
0
log(P)
−40
D
0
50
100
log(M)
20
−50
0
50
sigma
20
5
10
15
20
25
mcmc_trace(fit.slbm.bs2)
(Intercept)
500
250
0
−250
−500
S
D
100
50
0
−50
20
0
−20
0 10002000300040005000
0 10002000300040005000
L
0 10002000300040005000
W
log(M)
10
5
20
50
0
0
0
−5
−20
−50
0 10002000300040005000
0 10002000300040005000
log(P)
sigma
25
20
15
10
20
0
−20
−40
0 10002000300040005000
0 10002000300040005000
7
0 10002000300040005000
Chain
1
2
3
4
summary(fit.slbm.bs)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Model Info:
function:
family:
formula:
algorithm:
sample:
priors:
observations:
predictors:
Estimates:
(Intercept)
S
D
L
W
log(M)
log(P)
sigma
stan_glm
gaussian [identity]
sqrt(R) ~ S + D + L + W + log(M) + log(P)
sampling
20000 (posterior sample size)
see help('prior_summary')
26
7
mean
-41.4
9.4
37.2
0.8
3.2
6.7
-7.3
10.4
sd
10%
110.0 -178.1
5.3
2.7
20.5
11.7
1.8
-1.4
5.8
-4.1
15.8 -13.0
6.2 -15.2
1.8
8.3
50%
-41.1
9.4
37.3
0.8
3.3
6.7
-7.3
10.2
90%
96.4
16.1
62.6
3.1
10.5
26.2
0.5
12.8
Fit Diagnostics:
mean
sd
10%
50%
90%
mean_PPD 69.0
2.9 65.3 69.0 72.7
The mean_ppd is the sample average posterior predictive distribution of the outcome variable (for det
MCMC diagnostics
mcse
(Intercept)
1.1
S
0.0
D
0.2
L
0.0
W
0.1
log(M)
0.2
log(P)
0.1
sigma
0.0
mean_PPD
0.0
log-posterior 0.0
Rhat
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
n_eff
9162
13466
9822
12332
13064
8766
15290
11985
19056
6342
For each parameter, mcse is Monte Carlo standard error, n_eff is a crude measure of effective sample
Polaris A3 Operational Range
slbm.pp <- posterior_predict(fit.slbm.bs,
newdata = data.frame(L=9.86,D=1.37,S=2,W=2,
M=16200,P=760),seed=12345)
#Note. Input parameters for the model
#http://www.astronautix.com/p/polarisa3.html
8
Figure 2: Polaris SLBM
9
Range.km <- slbm.pp^2
Range.km <- Range.km[1:10000,]
quantile(Range.km,probs = c(0.05,0.5,0.95))
##
5%
50%
95%
## 1553.025 3478.665 6211.902
library(grid)
Range.km <- slbm.pp^2
Range.km <- Range.km[1:10000,]
ggplot(data=as.data.frame(Range.km), aes(Range.km)) +
geom_histogram(bins = 30,col="black",fill="green") +
geom_vline(xintercept = mean(Range.km), color = "red") +
geom_errorbarh(aes(y=-5, xmin=quantile(Range.km,0.05),
xmax=quantile(Range.km,0.95)),
data=as.data.frame(Range.km), col="#0094EA", size=3) +
ggtitle(label="Probability density of Polaris A3 range")
Probability density of Polaris A3 range
count
1000
500
0
0
4000
8000
12000
Range.km
A3 Flight Test Program
Source: https://fas.org/nuke/guide/usa/slbm/a-3.htm
The first A3 flight test was conducted at Cape Canaveral on 7 August 1962. Considering the challenge and
redesign involved in the development of the A3 missile, it was not until the seventh development flight that
complete success was achieved. It was during the A3 development program that the concept of incorporating
production components/processing was first introduced into the development phase of a program (A3X- 18) .
(This approach was later to be called “production disciplines.”) During June 1963, the A3X was successfully
10
tested for the first time in a tube-launched firing at sea from the USS Observation Island (EAG-154). The
first launching of a POLARIS A3 missile from a submerged submarine, the USS Andrew Jackson (SSBN-619),
took place on 26 October 1963. The A3X flight test program started on 7 August 1962 and was completed
on 2 July 1964. There were a total of 38 flights, of which 20 were successful, 16 partially successful, and 2
failures. Of the 20 successes, only 15 had successful reentry vehicle operation and ejection. It was only until
the 15 A3X flights that the program began to have a continuous series of success.
Reentry Vehicle Reliability Estimation
Frequentist Case
library(binom)
library(pwr)
binom.test(x = 15,n = 20,p = 0.85,alternative = "less")
##
##
##
##
##
##
##
##
##
##
##
Exact binomial test
data: 15 and 20
number of successes = 15, number of trials = 20, p-value = 0.1702
alternative hypothesis: true probability of success is less than 0.85
95 percent confidence interval:
0.0000000 0.8959192
sample estimates:
probability of success
0.75
pwr.p.test(h = ES.h(15/20,0.95),n=20,alternative = "less")
##
##
##
##
##
##
##
##
proportion power calculation for binomial distribution (arcsine transformation)
h
n
sig.level
power
alternative
=
=
=
=
=
-0.5961707
20
0.05
0.8464445
less
Bayesian Case
bs <- binom.bayes(x = 15,n = 20)
bs
##
method x n shape1 shape2
mean
lower
upper
sig
## 1 bayes 15 20
15.5
5.5 0.7380952 0.5534553 0.9100745 0.05000001
binom.bayes.densityplot(bs,npoints = 500,alpha = 0.5)
11
x = 15, n = 20, conf.level = 0.95
4
Beta Density
3
2
1
0
0.00
0.25
0.50
0.75
1.00
Conclusions
1. Polaris A3 was the first SLBM with 4500 km range. Bayesian linear regression model proves this
estimation based on historical data.
2. Polaris A3 reliability proved by test flight program made the Soviet Union to count US strategic nuclear
power as deterreent factor after Cuban missile crisis in 1962.
12