The Reuters article Russia, U.S. duel at U.N. over whether North Korea fired long-range missile describes some ongoing United Nations Security Council discussion related to the classification of the recent test. I am not sure if it is the launch vehicle's potential capability or demonstrated capability that is used in order to distinguish between medium-range and long-range classifications, as well as unfamilliar what those classifications actually mean.
Can someone clarify these terms, and how they are applied in difficult-to-verify situations?
below: Simplistic simulation of a ballistic trajectory with initial velocities of 6,500 to 6,700 m/s at a small angle, with the dots representing location after 40 minutes (first plot) and 28 minutes (second plot). This is just to get a rough feeling for the scale of the trajectory and not an accurate representation of the real event, but it illustrates that the potential range of the launch is much much farther than the range of the test because the launch was nearly vertical
def deriv(X, t):
x, v = X.reshape(2, -1)
acc = -GMe * x * ((x**2).sum())**-1.5
return np.hstack((v, acc))
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
eightthpi, quarterpi, halfpi, pi, twopi = [2**n*np.pi for n in range(-3, 2)]
degs, rads = 180/pi, pi/180
GMe = 3.98600418E+14 # m^3 s^-2
re = 6378000.
kms = 1E-03
time = 60 * np.arange(0, 41)
answers = []
# v0s = np.linspace(6500, 6700, 5)
# for v0 in v0s:
v0 = 6600.
thetas = rads * np.arange(5, 61, 5)
for theta in thetas:
X0 = np.hstack(([0, re], [v0*f(theta) for f in [np.sin, np.cos]]))
answer, info = ODEint(deriv, X0, time, full_output=True)
answers.append(answer)
if 1 == 1:
plt.figure()
for answer in answers:
stop = np.argmax(np.sqrt((answer.T[:2]**2).sum(axis=0)) < re-1000)
x, y = kms*answer[:stop+1].T[:2]
print stop,
plt.plot(x, y-kms*re)
plt.plot(x[::28], y[::28]-kms*re, '.k')
theta = np.linspace(0, halfpi+eightthpi, 100)
x, y = [kms*re*f(theta) for f in [np.cos, np.sin]]
plt.plot(x, y-kms*re, '-k')
plt.xlim(-2000, 7999)
plt.show()