Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Initial Value Problems - Project\n",
"\n",
"![Initial condition of firework with FBD and sum of momentum](../images/firework.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to end this module with a __bang__ by looking at the flight path of a firework. Shown above is the initial condition of a firework, the _Freedom Flyer_ in (a), its final height where it detonates in (b), the applied forces in the __Free Body Diagram (FBD)__ in (c), and the __momentum__ of the firework $m\\mathbf{v}$ and the propellent $dm \\mathbf{u}$ in (d). \n",
"\n",
"The resulting equation of motion is that the acceleration is proportional to the speed of the propellent and the mass rate change $\\frac{dm}{dt}$ as such\n",
"\n",
"$$\\begin{equation}\n",
"m\\frac{dv}{dt} = u\\frac{dm}{dt} -mg - cv^2.~~~~~~~~(1)\n",
"\\end{equation}$$\n",
"\n",
"If we assume that the acceleration and the propellent momentum are much greater than the forces of gravity and drag, then the equation is simplified to the conservation of momentum. A further simplification is that the speed of the propellant is constant, $u=constant$, then the equation can be integrated to obtain an analytical rocket equation solution of [Tsiolkovsky](https://www.math24.net/rocket-motion/) [1,2], \n",
"\n",
"$$\\begin{equation}\n",
"m\\frac{dv}{dt} = u\\frac{dm}{dt}~~~~~(2.a)\n",
"\\end{equation}$$\n",
"\n",
"$$\\begin{equation}\n",
"\\frac{m_{f}}{m_{0}}=e^{-\\Delta v / u},~~~~~(2.b) \n",
"\\end{equation}$$\n",
"\n",
"where $m_f$ and $m_0$ are the mass at beginning and end of flight, $u$ is the speed of the propellent, and $\\Delta v=v_{final}-v_{initial}$ is the change in speed of the rocket from beginning to end of flight. Equation 2.b only relates the final velocity to the change in mass and propellent speed. When you integrate Eqn 2.a, you will have to compare the velocity as a function of mass loss. \n",
"\n",
"Your first objective is to integrate a numerical model that converges to equation (2.b), the Tsiolkovsky equation. Next, you will add drag and gravity and compare the results _between equations (1) and (2)_. Finally, you will vary the mass change rate to achieve the desired detonation height. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Create a `simplerocket` function that returns the velocity, $v$, the acceleration, $a$, and the mass rate change $\\frac{dm}{dt}$, as a function of the $state = [position,~velocity,~mass] = [y,~v,~m]$ using eqn (2.a). Where the mass rate change $\\frac{dm}{dt}$ and the propellent speed $u$ are constants. The average velocity of gun powder propellent used in firework rockets is $u=250$ m/s [3,4]. \n",
"\n",
"$\\frac{d~state}{dt} = f(state)$\n",
"\n",
"$\\left[\\begin{array}{c} v\\\\a\\\\ \\frac{dm}{dt} \\end{array}\\right] = \\left[\\begin{array}{c} v\\\\ \\frac{u}{m}\\frac{dm}{dt} \\\\ \\frac{dm}{dt} \\end{array}\\right]$\n",
"\n",
"Use [two integration methods](../notebooks/03_Get_Oscillations.ipynb) to integrate the `simplerocket` function, one explicit method and one implicit method. Demonstrate that the solutions converge to equation (2.b) the Tsiolkovsky equation. Use an initial state of y=0 m, v=0 m/s, and m=0.25 kg. \n",
"\n",
"Integrate the function until mass, $m_{f}=0.05~kg$, using a mass rate change of $\\frac{dm}{dt}=0.05$ kg/s. \n",
"\n",
"_Hint: your integrated solution will have a current mass that you can use to create $\\frac{m_{f}}{m_{0}}$ by dividing state[2]/(initial mass), then your plot of velocity(t) vs mass(t)/mass(0) should match Tsiolkovsky's_"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.rcParams.update({'font.size': 22})\n",
"plt.rcParams['lines.linewidth'] = 3"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def simplerocket(state,dmdt=0.05, u=250):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the acceleration of a rocket, without drag or gravity, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of three dependent variables [y v m]^T\n",
" dmdt : mass rate change of rocket in kilograms/s default set to 0.05 kg/s\n",
" u : speed of propellent expelled (default is 250 m/s)\n",
" \n",
" Returns\n",
" -------\n",
" derivs: array of three derivatives [v (u/m)*dmdt -dmdt]^T\n",
" '''\n",
" dstate = np.array([state[1], (u/state[2])*dmdt, -dmdt])\n",
" return dstate"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"#explicit\n",
"def rk2_step(state, rhs, dt):\n",
" '''Update a state to the next time increment using modified Euler's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" \n",
" mid_state = state + rhs(state) * dt*0.5 \n",
" next_state = state + rhs(mid_state)*dt\n",
" \n",
" return next_state"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"#implicit\n",
"def heun_step(state,rhs,dt,etol=0.000001,maxiters = 100):\n",
" '''Update a state to the next time increment using the implicit Heun's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" etol : tolerance in error for each time step corrector\n",
" maxiters: maximum number of iterations each time step can take\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" e=1\n",
" eps=np.finfo('float64').eps\n",
" next_state = state + rhs(state)*dt\n",
" ################### New iterative correction #########################\n",
" for n in range(0,maxiters):\n",
" next_state_old = next_state\n",
" next_state = state + (rhs(state)+rhs(next_state))/2*dt\n",
" e=np.sum(np.abs(next_state-next_state_old)/np.abs(next_state+eps))\n",
" if e<etol:\n",
" break\n",
" ############### end of iterative correction #########################\n",
" return next_state"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"y0 = 0 \n",
"v0 = 0 \n",
"m0 = 0.25 \n",
"mf= .05\n",
"dmdt = 0.05 \n",
"\n",
"t=np.linspace(0,((m0-mf)/dmdt),N)\n",
"dt=t[1]-t[0]\n",
"N =int(((m0-mf)/dmdt)/dt)\n",
"mflimit = np.linspace(m0, mf, N)\n",
"\n",
"#initialize solution array\n",
"num_heun = np.zeros([N,3])\n",
"num_rk2 = np.zeros([N,3])\n",
"\n",
"#Set intial conditions: implicit\n",
"num_heun[0,0] = y0\n",
"num_heun[0,1] = v0\n",
"num_heun[0,2] = m0\n",
"\n",
"#Set intial conditions: explicit\n",
"num_rk2[0,0] = y0\n",
"num_rk2[0,1] = v0\n",
"num_rk2[0,2] = m0\n",
"\n",
"#T eqn\n",
"m=mflimit/m0\n",
"v=-250*np.log(m)\n",
"\n",
"for i in range(N-1):\n",
" num_heun[i+1] = heun_step(num_heun[i], simplerocket, dt)\n",
" num_rk2[i+1] = rk2_step(num_rk2[i], simplerocket, dt)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Convergence of methods to T eqn')"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(num_heun[:,2]/m0,num_heun[:,1],'o-',label='implicit Heun')\n",
"plt.plot(num_rk2[:,2]/m0,num_rk2[:,1],'s-',label='explicit RK2')\n",
"plt.plot(m,v,'--',label='T eqn')\n",
"plt.legend();\n",
"plt.xlabel('m(t)/m0')\n",
"plt.ylabel('velocity(t)')\n",
"plt.title('Convergence of methods to T eqn')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. You should have a converged solution for integrating `simplerocket`. Now, create a more relastic function, `rocket` that incorporates gravity and drag and returns the velocity, $v$, the acceleration, $a$, and the mass rate change $\\frac{dm}{dt}$, as a function of the $state = [position,~velocity,~mass] = [y,~v,~m]$ using eqn (1). Where the mass rate change $\\frac{dm}{dt}$ and the propellent speed $u$ are constants. The average velocity of gun powder propellent used in firework rockets is $u=250$ m/s [3,4]. \n",
"\n",
"$\\frac{d~state}{dt} = f(state)$\n",
"\n",
"$\\left[\\begin{array}{c} v\\\\a\\\\ \\frac{dm}{dt} \\end{array}\\right] = \n",
"\\left[\\begin{array}{c} v\\\\ \\frac{u}{m}\\frac{dm}{dt}-g-\\frac{c}{m}v^2 \\\\ \\frac{dm}{dt} \\end{array}\\right]$\n",
"\n",
"Use [two integration methods](../notebooks/03_Get_Oscillations.ipynb) to integrate the `rocket` function, one explicit method and one implicit method. Demonstrate that the solutions converge to equation (2.b) the Tsiolkovsky equation. Use an initial state of y=0 m, v=0 m/s, and m=0.25 kg. \n",
"\n",
"Integrate the function until mass, $m_{f}=0.05~kg$, using a mass rate change of $\\frac{dm}{dt}=0.05$ kg/s, . \n",
"\n",
"Compare solutions between the `simplerocket` and `rocket` integration, what is the height reached when the mass reaches $m_{f} = 0.05~kg?$\n",
"__A: The rocket integration does not converge to the explicit Rk2 and implicit Heun because, rocket accounts for drag and gravity.__"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [],
"source": [
"def rocket(state,dmdt=0.05, u=250,c=0.18e-3):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the acceleration of a rocket, with drag, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of three dependent variables [y v m]^T\n",
" dmdt : mass rate change of rocket in kilograms/s default set to 0.05 kg/s\n",
" u : speed of propellent expelled (default is 250 m/s)\n",
" c : drag constant for a rocket set to 0.18e-3 kg/m\n",
" Returns\n",
" -------\n",
" derivs: array of three derivatives [v (u/m*dmdt-g-c/mv^2) -dmdt]^T\n",
" '''\n",
" g = 9.81\n",
" dstate = np.array([state[1], (u/state[2])*dmdt-g-(c/state[2])*state[1]**2, -dmdt])\n",
" return dstate"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [],
"source": [
"#initialize solution array\n",
"num_heun2 = np.zeros([N,3])\n",
"num_rk22 = np.zeros([N,3])\n",
"\n",
"#Set intial conditions: implicit\n",
"num_heun2[0,0] = y0\n",
"num_heun2[0,1] = v0\n",
"num_heun2[0,2] = m0\n",
"\n",
"#Set intial conditions: explicit\n",
"num_rk22[0,0] = y0\n",
"num_rk22[0,1] = v0\n",
"num_rk22[0,2] = m0\n",
"\n",
"#T eqn\n",
"m=mflimit/m0\n",
"v=-250*np.log(m)\n",
"\n",
"for i in range(N-1):\n",
" num_heun2[i+1] = heun_step(num_heun2[i], rocket, dt)\n",
" num_rk22[i+1] = rk2_step(num_rk22[i], rocket, dt)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Convergence of methods to T eqn')"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(num_heun2[:,2]/m0,num_heun2[:,1],'o-',label='implicit Heun')\n",
"plt.plot(num_rk22[:,2]/m0,num_rk22[:,1],'s-',label='explicit RK2')\n",
"plt.plot(m,v,'--',label='T eqn')\n",
"plt.legend();\n",
"plt.xlabel('m(t)/m0')\n",
"plt.ylabel('velocity(t)')\n",
"plt.title('Convergence of methods to T eqn')"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Rocket height vs. Simple rocket height')"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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fzwzZswYFi5cyDfffMP5559P6dKlOf300+natStXXXWVz5eSP/x9JbuWRA8Wn5GR4TPepVx4k5KSAsC2bdt8xnuyYYPtGl61alVQw789e/YUCKtRowZly/pemMilEPiTs0yZMtSuXZvt27ezfft26tSpw+bNmwGoX78+5coVbi7/lClTyM7OplatWixcuNDvDJiiHrNSfOw6lMFTX67J27+xa2Oa1KgQQ4mUaKDKg1JiKFeuHF9//TVLlixh9uzZfP/99yxevJglS5bw1FNP8eCDD/LAAw+EVFZcXOBOuWDx4RLKLADXbI86derQs2fPgGm9u/cBv4oDWGPKYHK40kSCLl26sHHjRjZt2sQ999zDSy+95LPuoh6zUjwYY7h/5u95C181rFaem7oXHA5TSh6qPCgljo4dO9KxY0fAzpp4//33ue666xg3bhyXX345p5xySsxk27RpE6eddprPcIDatWsHLaNePTuWXKtWrYgbAbp6VFxf+t5kZGSwY8cOwL7IwQ7xgJ26euTIkYDKiTf169dn8uTJ9OjRg1deeYUjR44wceLEAspZcR6zEj5f/r6TuX/sytt/fEArypTSha9OBNTmQSnRJCYmMnz4cDp16oQxht9++y2m8rz33nsBw4NNZQRr21G1alV++eUX1q9fH0nx8uwGPvjgA7KzswvEv/322xhjaNKkSZ7yULNmTVq3bk1mZiaTJ08udJ1169blu+++o2XLlkyaNIkhQ4YUqLsox+yy3fB1PEr4HEzPyufT4coO9dWnwwmEKg9KieHll19m7dq1BcI3bNjAqlW2kXN9JceKadOm5XNWBTBhwgTmz59PUlISI0eODFpGqVKluP/++8nJyaFfv3789NNPBdKkpaXxwQcfsHr16kLJN2jQIOrVq8fGjRu55557yM3NzYv7448/GDt2LACjR4/Ol88VPmbMGL744osC5S5btiygPcdJJ53E/Pnzadu2LVOmTGHQoEFkZmZG5JhdSk5hz4USmEe/+IO9h61Rco0Kpbmntw4XnUjosIVSYpgwYQI333wzjRo1omXLliQlJbFz504WLVpEZmYmV1xxRd6MjFhx2223cemll9KpUycaNmzImjVr+OWXX4iLi+P1118P6gvBxe23387mzZt59tln6dixI61bt6Zx48bk5uaydetW1qxZQ3p6Ol9++aXPWSP+KFOm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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"plt.plot(t[0:-1], num_heun[:,0], label = 'simplerocket')\n",
"plt.plot(t[0:-1], num_heun2[:,0], label = 'rocket')\n",
"plt.legend();\n",
"plt.xlabel('Time')\n",
"plt.ylabel('Height(m)')\n",
"plt.title('Rocket height vs. Simple rocket height')"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Simple rocket height: 581.3063505168159\n",
"Rocket height: 416.1064629681987\n"
]
}
],
"source": [
"simplerocketh = num_heun[-1,0] \n",
"rocketh = num_heun2[-1,0] \n",
"\n",
"print('Simple rocket height:',simplerocketh)\n",
"print('Rocket height:',rocketh)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Solve for the mass change rate that results in detonation at a height of 300 meters. Create a function `f_dm` that returns the final height of the firework when it reaches $m_{f}=0.05~kg$. The inputs should be \n",
"\n",
"$f_{m}= f_{m}(\\frac{dm}{dt},~parameters)$\n",
"\n",
"where $\\frac{dm}{dt}$ is the variable we are using to find a root and $parameters$ are the known values, `m0=0.25, c=0.18e-3, u=250`. When $f_{m}(\\frac{dm}{dt}) = 0$, we have found the correct root. \n",
"\n",
"Plot the height as a function of time and use a star to denote detonation at the correct height with a `'*'`-marker\n",
"\n",
"Approach the solution in two steps, use the incremental search [`incsearch`](../notebooks/04_Getting_to_the_root.ipynb) with 5-10 sub-intervals _we want to limit the number of times we call the function_. Then, use the modified secant method to find the true root of the function.\n",
"\n",
"a. Use the incremental search to find the two closest mass change rates within the interval $\\frac{dm}{dt}=0.05-0.4~kg/s.$\n",
"\n",
"b. Use the modified secant method to find the root of the function $f_{m}$.\n",
"\n",
"c. Plot your solution for the height as a function of time and indicate the detonation with a `*`-marker."
]
},
{
"cell_type": "code",
"execution_count": 160,
"metadata": {},
"outputs": [],
"source": [
"def f_m(dmdt,m0=0.25, c=0.18e-3, u=250):\n",
" ''' define a function f_m(dmdt) that returns \n",
" height_desired-height_predicted[-1]\n",
" here, the time span is based upon the value of dmdt\n",
" \n",
" arguments:\n",
" ---------\n",
" dmdt: the unknown mass change rate\n",
" m0: the known initial mass\n",
" c: the known drag in kg/m\n",
" u: the known speed of the propellent\n",
" \n",
" returns:\n",
" --------\n",
" error: the difference between height_desired and height_predicted[-1]\n",
" when f_m(dmdt)= 0, the correct mass change rate was chosen\n",
" '''\n",
" y0 = 0 \n",
" v0 = 0 \n",
" mf= .05\n",
" desired_height=300\n",
" q=(m0-mf)/dmdt\n",
" t=np.linspace(0,q,1000)\n",
" dt=t[1]-t[0]\n",
" N =int(q/dt)\n",
" \n",
" height=np.zeros([N,3])\n",
" \n",
" height[0,0] = y0\n",
" height[0,1] = v0\n",
" height[0,2] = m0\n",
" \n",
" for i in range(N-1):\n",
" height[i+1] = rk2_step(height[i], lambda state: rocket(state, dmdt=dmdt, u=250, c=0.18e-3), dt)\n",
" predicted_height=height[:,0]\n",
" error = desired_height-predicted_height[-1] \n",
" return error"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [],
"source": [
"def incsearch(func,xmin,xmax,ns=50):\n",
" '''incsearch: incremental search root locator\n",
" xb = incsearch(func,xmin,xmax,ns):\n",
" finds brackets of x that contain sign changes\n",
" of a function on an interval\n",
" arguments:\n",
" ---------\n",
" func = name of function\n",
" xmin, xmax = endpoints of interval\n",
" ns = number of subintervals (default = 50)\n",
" returns:\n",
" ---------\n",
" xb(k,1) is the lower bound of the kth sign change\n",
" xb(k,2) is the upper bound of the kth sign change\n",
" If no brackets found, xb = [].'''\n",
" x = np.linspace(xmin,xmax,ns)\n",
" f = np.zeros(ns)\n",
" for i in range(ns):\n",
" f[i] = func(x[i])\n",
" sign_f = np.sign(f)\n",
" delta_sign_f = sign_f[1:]-sign_f[0:-1]\n",
" i_zeros = np.nonzero(delta_sign_f!=0)\n",
" nb = len(i_zeros[0])\n",
" xb = np.block([[ x[i_zeros[0]+1]],[x[i_zeros[0]] ]] )\n",
"\n",
" \n",
" if nb==0:\n",
" print('no brackets found\\n')\n",
" print('check interval or increase ns\\n')\n",
" else:\n",
" print('number of brackets: {}\\n'.format(nb))\n",
" return xb"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of brackets: 1\n",
"\n",
"The upper bound is [0.1375]\n",
"The lower bound is [0.05]\n"
]
}
],
"source": [
"masschange = incsearch(f_m, 0.05, 0.4, 5)\n",
"print('The upper bound is', masschange[0])\n",
"print('The lower bound is', masschange[1])"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [],
"source": [
"def mod_secant(func,dx,x0,es=0.0001,maxit=50):\n",
" '''mod_secant: Modified secant root location zeroes\n",
" root,[fx,ea,iter]=mod_secant(func,dfunc,xr,es,maxit,p1,p2,...):\n",
" uses modified secant method to find the root of func\n",
" arguments:\n",
" ----------\n",
" func = name of function\n",
" dx = perturbation fraction\n",
" xr = initial guess\n",
" es = desired relative error (default = 0.0001 )\n",
" maxit = maximum allowable iterations (default = 50)\n",
" p1,p2,... = additional parameters used by function\n",
" returns:\n",
" --------\n",
" root = real root\n",
" fx = func evaluated at root\n",
" ea = approximate relative error ( )\n",
" iter = number of iterations'''\n",
"\n",
" iter = 0;\n",
" xr=x0\n",
" for iter in range(0,maxit):\n",
" xrold = xr;\n",
" dfunc=(func(xr+dx)-func(xr))/dx;\n",
" xr = xr - func(xr)/dfunc;\n",
" if xr != 0:\n",
" ea = abs((xr - xrold)/xr) * 100;\n",
" else:\n",
" ea = abs((xr - xrold)/1) * 100;\n",
" if ea <= es:\n",
" break\n",
" return xr,[func(xr),ea,iter]\n"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The root of the function is 0.07890352693388984\n"
]
}
],
"source": [
"root = mod_secant(f_m, 0.001,0.1)\n",
"print('The root of the function is',root[0])"
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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jbMbdO9e3aLFFalrhozqHgCX1fGmrsuEz549mw8//JABAwbw0EMPkZqaSvv27d1XM126dGHPnj3VvmddNPbnM8HlX2k7+WTdHvf+Q5cNpnObqtZNbXyWmEKNewoijy8VCYPwaGc8k3uJKY+VJoNkip+y38rT09O9lm/btu24Y8nJyQBMmjSJ2267zW+xJCUlAeVXZNXFU/lqwhdvv/02AG+99RaDBg2qUJabm0tmZma938NTTZ8vPz+fPXucLy5/fD4TPLbsO8qcD8t7uE4+uRvnDaq5F2djsl97Qo3nFERQ3sGhgVaa9KexY8cC8Oabb7qvhDy99tprxx07//zzgfIv9toqe2jvbSySZywfffSR1+c6n3/+OXv27KFVq1akpKTU6b29KRunVJZoPb3++utVXr3U9DmqUvb53njjDa9tX3rpJVSVPn36WGIKIflFJfz2zTXuWcNP6NiKP144IMBRHc8SU6gpm4JIwpwVJRt4pUl/mjhxIp07d2bLli3MmTOnwpfxkiVLePrpp49rc+mll5KSksLixYu55ZZbvA5e3bp1K0899VSFY2Vfths3bvQay+mnn86IESPIycnhtttuo6CgwF2WkZHB7373OwBmzpxZoceer8o6DVSOMy0tjdmzZ1fZrqbPUZVJkyaRnJzMtm3bmD17doUVZDds2MC9994LwJ133lmn85rg9sCnG1m/OxuAqIgw/n71MGKignBV7ar6kdurCY1j8vSPsc7YpKdHq+7f4r3O/i2qT5/m1PvHuIaPqQ6++uorbdGihQLar18/vfrqq3XcuHEaFhamd9xxx3HjmFRVd+7cqSeddJICGhcXp6NHj9arrrpKzzrrLPd4o06dOlVok5+fr4mJiQpoSkqKXnfddTp9+nR94YUX3HU2b96sSUlJCmiXLl30iiuu0IsuukhbtmypgJ555pman59f4bw1jY9auHChAjp27NgKx99++233ZxsyZIheddVVOmbMGA0LC9PJkydr9+7dFdBt27ZVaPfBBx8ooNHR0XrxxRfr9OnTdfr06bpp0yZVrXock6rqsmXLND4+XgHt3bu3XnXVVXrOOedoVFSUAnrttddWGEumWj6O6d577/X6+WozPswbG8fU8D5Zu9s9Xqn7rI91/tJtAY2HasYxBfyLvam/gi4xvTapdoNlywblvjap4WOqo++//14vueQS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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"y0 = 0 \n",
"v0 = 0 \n",
"mf= .05\n",
"m0= .25\n",
"dmdt=root[0]\n",
"desired_height=300\n",
"q=(m0-mf)/dmdt\n",
"t=np.linspace(0,q,1000)\n",
"dt=t[1]-t[0]\n",
"N =int(q/dt)\n",
" \n",
"height=np.zeros([N,3])\n",
" \n",
"height[0,0] = y0\n",
"height[0,1] = v0\n",
"height[0,2] = m0\n",
" \n",
"for i in range(N-1):\n",
" height[i+1] = rk2_step(height[i], lambda state: rocket(state, dmdt=dmdt, u=250, c=0.18e-3), dt)\n",
" predicted_height=height[:,0]\n",
" \n",
"plt.plot(t[:-1], predicted_height)\n",
"plt.plot(t[-1], predicted_height[-1], '*', label = 'detonation',markersize = 20)\n",
"plt.xlabel('time(s)')\n",
"plt.ylabel('height(m)')\n",
"plt.legend();\n",
"\n",
"\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"\n",
"1. Math 24 _Rocket Motion_. <https://www.math24.net/rocket-motion/\\>\n",
"\n",
"2. Kasdin and Paley. _Engineering Dynamics_. [ch 6-Linear Momentum of a Multiparticle System pp234-235](https://www.jstor.org/stable/j.ctvcm4ggj.9) Princeton University Press \n",
"\n",
"3. <https://en.wikipedia.org/wiki/Specific_impulse>\n",
"\n",
"4. <https://www.apogeerockets.com/Rocket_Motors/Estes_Motors/13mm_Motors/Estes_13mm_1_4A3-3T>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}