584 lines
53 KiB
Plaintext
584 lines
53 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4e03a27d",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Examples of solution of kinematics 2D problems"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "cefbefb9",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Problem\n",
|
|
"\n",
|
|
"Determine formulas for the height, range and time of flight for symmetric projectile motion.\n",
|
|
"\n",
|
|
"Determine the height, $H$, the range, $R$, and the time of flight, $T$, for projectile motion. Assume that the initial and final heights are identical and that the initial velocity is given by the speed, $v$, and the angle, $\\theta$. We need three equations to determine the three unknowns. We can formulate the three equations.\n",
|
|
"The first equation is the range, the second is the impact point with the ground, and the third is the height.\n",
|
|
"\n",
|
|
"$$v\\cos(\\theta)T=R$$\n",
|
|
"\n",
|
|
"$$v\\sin(\\theta)T-\\frac{1}{2}gT^2=0$$\n",
|
|
"\n",
|
|
"$$v\\sin(\\theta)\\frac{T}{2}-\\frac{1}{2}g\\left(\\frac{T}{2}\\right)^2=H$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "101699b3",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Equations:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle T v \\cos{\\left(\\theta \\right)} = R$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(T*v*cos(theta), R)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle - \\frac{T^{2} g}{2} + T v \\sin{\\left(\\theta \\right)} = 0$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(-T**2*g/2 + T*v*sin(theta), 0)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle - \\frac{T^{2} g}{8} + \\frac{T v \\sin{\\left(\\theta \\right)}}{2} = H$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(-T**2*g/8 + T*v*sin(theta)/2, H)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Solution:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[(0, 0, 0), (v**2*sin(theta)**2/(2*g), v**2*sin(2*theta)/g, 2*v*sin(theta)/g)]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Finale solution:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(v**2*sin(theta)**2/(2*g), v**2*sin(2*theta)/g, 2*v*sin(theta)/g)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle \\frac{v^{2} \\sin^{2}{\\left(\\theta \\right)}}{2 g}$"
|
|
],
|
|
"text/plain": [
|
|
"v**2*sin(theta)**2/(2*g)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle \\frac{v^{2} \\sin{\\left(2 \\theta \\right)}}{g}$"
|
|
],
|
|
"text/plain": [
|
|
"v**2*sin(2*theta)/g"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle \\frac{2 v \\sin{\\left(\\theta \\right)}}{g}$"
|
|
],
|
|
"text/plain": [
|
|
"2*v*sin(theta)/g"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sympy import symbols,solve,Eq,sin,cos,Rational\n",
|
|
"H,R,g,theta,v,T = symbols('H,R,g,theta,v,T')\n",
|
|
"eq1 = Eq(v*cos(theta)*T,R)\n",
|
|
"eq2 = Eq(v*sin(theta)*T-Rational(1,2)*g*T**2,0)\n",
|
|
"eq3 = Eq(v*sin(theta)*T/2-Rational(1,2)*g*(T/2)**2,H)\n",
|
|
"print('Equations:')\n",
|
|
"display(eq1)\n",
|
|
"display(eq2)\n",
|
|
"display(eq3)\n",
|
|
"sol = solve([eq1,eq2,eq3],[H,R,T])\n",
|
|
"print('Solution:')\n",
|
|
"display(sol)\n",
|
|
"print('Final solution:')\n",
|
|
"display(sol[1])\n",
|
|
"for expr in sol[1]:\n",
|
|
" display(expr)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3f6a311b",
|
|
"metadata": {},
|
|
"source": [
|
|
"Note that there are two solutions, the first one being the trivial solution, and the second being the solution we are looking for.\n",
|
|
"\n",
|
|
"$$H=\\frac{v^2\\sin^2(\\theta)}{2g}$$\n",
|
|
"\n",
|
|
"$$R=\\frac{v^2\\sin(2\\theta)}{g}$$\n",
|
|
"\n",
|
|
"$$T=\\frac{2v\\sin(\\theta)}{g}$$\n",
|
|
"\n",
|
|
"It can be an advantage to refer to the solutions by their symbol. The parameter *dict=True* returns dictionaries instead of arrays.\n",
|
|
"The previous example is repeated."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Equations:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle T v \\cos{\\left(\\theta \\right)} = R$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(T*v*cos(theta), R)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle - \\frac{T^{2} g}{2} + T v \\sin{\\left(\\theta \\right)} = 0$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(-T**2*g/2 + T*v*sin(theta), 0)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle - \\frac{T^{2} g}{8} + \\frac{T v \\sin{\\left(\\theta \\right)}}{2} = H$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(-T**2*g/8 + T*v*sin(theta)/2, H)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Solution:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[{H: 0, R: 0, T: 0},\n",
|
|
" {H: v**2*sin(theta)**2/(2*g), R: v**2*sin(2*theta)/g, T: 2*v*sin(theta)/g}]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Final solution:\n",
|
|
"H\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle \\frac{v^{2} \\sin^{2}{\\left(\\theta \\right)}}{2 g}$"
|
|
],
|
|
"text/plain": [
|
|
"v**2*sin(theta)**2/(2*g)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"R\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle \\frac{v^{2} \\sin{\\left(2 \\theta \\right)}}{g}$"
|
|
],
|
|
"text/plain": [
|
|
"v**2*sin(2*theta)/g"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"T\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle \\frac{2 v \\sin{\\left(\\theta \\right)}}{g}$"
|
|
],
|
|
"text/plain": [
|
|
"2*v*sin(theta)/g"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from sympy import symbols,solve,Eq,sin,cos,Rational\n",
|
|
"H,R,g,theta,v,T = symbols('H,R,g,theta,v,T')\n",
|
|
"eq1 = Eq(v*cos(theta)*T,R)\n",
|
|
"eq2 = Eq(v*sin(theta)*T-Rational(1,2)*g*T**2,0)\n",
|
|
"eq3 = Eq(v*sin(theta)*T/2-Rational(1,2)*g*(T/2)**2,H)\n",
|
|
"print('Equations:')\n",
|
|
"display(eq1)\n",
|
|
"display(eq2)\n",
|
|
"display(eq3)\n",
|
|
"sol = solve([eq1,eq2,eq3],[H,R,T],dict=True)\n",
|
|
"print('Solution:')\n",
|
|
"display(sol)\n",
|
|
"print('Final solution:')\n",
|
|
"sol = sol[1]\n",
|
|
"for x in [H,R,T]:\n",
|
|
" print(x)\n",
|
|
" display(sol[x])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b011f47a",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Problem\n",
|
|
"\n",
|
|
"A projectile is launched from the origin of a coordinate system. The projectile impacts 2.35 seconds later with an object 40 meters to the right, and 5 meters up. \n",
|
|
"\n",
|
|
">a) What is the initial speed and angle of the projectile?\n",
|
|
"\n",
|
|
"The equations describing the given information is:\n",
|
|
"\n",
|
|
"$$v\\cos(\\theta)T=40$$\n",
|
|
"\n",
|
|
"$$v\\sin(\\theta)T-\\frac{1}{2}gT^2=5$$\n",
|
|
"\n",
|
|
"$$T=2.35$$\n",
|
|
"\n",
|
|
"We show the solution in two different ways."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"id": "6810e9b6",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Equations:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle T v \\cos{\\left(\\theta \\right)} = 40.0$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(T*v*cos(theta), 40.0)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle - \\frac{T^{2} g}{2} + T v \\sin{\\left(\\theta \\right)} = H$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(-T**2*g/2 + T*v*sin(theta), H)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle g = 9.82$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(g, 9.82)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle T = 2.35$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(T, 2.35)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle R = 40$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(R, 40)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle H = 5$"
|
|
],
|
|
"text/plain": [
|
|
"Eq(H, 5)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Solution:\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"([H, R, g, T, v, theta],\n",
|
|
" {(5.00000000000000,\n",
|
|
" 40.0000000000000,\n",
|
|
" 9.82000000000000,\n",
|
|
" 2.35000000000000,\n",
|
|
" 21.8285999199140,\n",
|
|
" 0.676498754637480)})"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1 solution(s).\n",
|
|
"v=21.83, theta=0.6765\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from sympy import symbols,solve,Eq,sin,cos,Rational\n",
|
|
"H,L,g,theta,v,T = symbols('H,R,g,theta,v,T')\n",
|
|
"eq1 = Eq(v*cos(theta)*T,40.0)\n",
|
|
"eq2 = Eq(v*sin(theta)*T-Rational(1,2)*g*T**2,H)\n",
|
|
"eq3 = Eq(g,9.82)\n",
|
|
"eq4 = Eq(T,2.35)\n",
|
|
"eq5 = Eq(L,40)\n",
|
|
"eq6 = Eq(H,5)\n",
|
|
"print('Equations:')\n",
|
|
"display(eq1)\n",
|
|
"display(eq2)\n",
|
|
"display(eq3)\n",
|
|
"display(eq4)\n",
|
|
"display(eq5)\n",
|
|
"display(eq6)\n",
|
|
"print('Solution:')\n",
|
|
"sol = solve([eq1,eq2,eq3,eq4,eq5,eq6],[H,L,g,T,v,theta],set=True)\n",
|
|
"display(sol)\n",
|
|
"sol = solve([Eq(v*cos(theta)*T,40.0),Eq(v*sin(theta)*T-Rational(1,2)*g*T**2,H),Eq(g,9.82),Eq(T,2.35),Eq(L,40),Eq(H,5)],[H,L,g,T,v,theta],dict=True)\n",
|
|
"print(len(sol),'solution(s).') # how many solutions are returned?\n",
|
|
"for i in range(len(sol)):\n",
|
|
" print('v={:.2f}, theta={:.4f}'.format(sol[i][v],sol[i][theta]))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"id": "16d9ff6b",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGyCAYAAADDBk96AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB0kUlEQVR4nO3deVxVdf7H8ddlR0FBUVRERVxRXDOtfhOVprbYalmjZo1Z5tJky2Q1ZZu2TJqVjTW2WFqWTZmtVmPqVFoZaIIoomIiLrixySp8f3+c4er1orLcyznny+f5ePDwer9w+Lw918OHc8/3exxKKYUQQgghhA34mF2AEEIIIUR1SeMihBBCCNuQxkUIIYQQtiGNixBCCCFsQxoXIYQQQtiGNC5CCCGEsA1pXIQQQghhG35mF+BJFRUV7N27l9DQUBwOh9nlCCGEEKIalFLk5+fTpk0bfHzOfE5Fq8Zl7969REdHm12GEEIIIWohMzOTtm3bnvFztGpcQkNDASN4kyZNPLrtjRs3kpCQwJo1a+jTp49Ht20Fks/+dM+oez7QP6Pksz9vZczLyyM6Otr5c/xMtGpcKt8eatKkiccbl65duzJ79my6du3q8W1bgeSzP90z6p4P9M8o+ezP2xmrc5mHQ6d7FeXl5dG0aVNyc3O1fdEIIYQQuqnJz2+ZVVRNR48e5aOPPuLo0aNml+IVks/+dM+oez7QP6Pksz8rZJTGpZoyMjK48cYbycjIMLsUr5B89qd7Rt3zgf4ZJZ/9WSGjVte4VFd5eTllZWU1+hqlFO3bt0cpRXFxsZcqM4/kM4e/vz++vr5mlyGEELbRoBoXpRT79+8nJyenxl/r5+fHa6+9hp+fn5bdtOQzT1hYGK1atZK1h4QQohoaVONS2bS0bNmSRo0a1egHRWFhIWVlZURHR9OoUSMvVmkOyVf/lFIUFhaSnZ0NQOvWrU2uSAghrK/BNC7l5eXOpqV58+Y1/nqlFI0aNSI4OJigoCAvVGguyWeO4OBgALKzs2nZsmWd3jYKDg6mb9++zm3qRvd8oH9GyWd/VsjYYKZDFxcXk5GRQYcOHbR+UQn7KSoqYteuXcTExFiqqRJCiPoi06HPQK4jEFYjr0khhKi+Bte41FZhYSGJiYkUFhaaXYpXSD7727BhA4GBgWzYsMHsUrxC93ygf0bJZ39WyCiNSzUppZwfunj88ced95rwZj6Hw8Gnn34KwK5du3A4HGzcuNHj3+dM6pKvQ4cOzJ071/NFeZhSitLSUq1eoyfTPR/on1Hy2Z8VMkrjYgO33norDocDh8NBQEAAnTp14sknn+T48eN12u7999/PypUrPVSlayN0sn379nHZZZd57Pt4y8KFCwkLC3N7fv369dxxxx31X5AQQgg3DWZWkd0NHz6ct99+m5KSEr766ismT56Mv78/Dz30kNvnlpaWEhAQcNZthoSEEBIS4o1yXbRq1crr38ObWrRoYXYJwsJKSqCwEMrLT3xUVICvLwQHGx8BASCXMgnhGXLGxSYCAwNp1aoV7du356677mLIkCF89tlngHFG5pprrmHmzJm0adOGrl27ApCcnMwll1xCcHAwzZs354477qCgoMC5zarOkCxcuJDu3bsTFBREt27d+Oc//+kyvmfPHm6++WaaNWtG48aNOeecc/jll19YuHAhTzzxBL///rvz7NDChQsB17eKqpKSksJll11GSEgIkZGRjB07lkOHDp328yvPjHzxxRd07dqVRo0aMXLkSAoLC3nnnXfo0KED4eHh3H333ZSXlzu/Li8vjwkTJhAeHk6jRo247LLLSE9PB2D16tXcdttt5ObmOut//PHHAfe3inbv3s3VV19NSEgITZo04cYbb+TAgQNu/66LFi2iQ4cONG3alJtuuon8/PzTZhLWUlwMmzfDF1/A66/DjBlw++1w2WVwzjnQuTO0bAmBgRAUBM2aQYsW0KoVREVBdDS0aQPh4ca4ry80bmw817s3DBkCN98Md98Nzz0HS5fC+vVw9KisoizE2TToMy5KGb8pVUdFRTAdOvSgoiKQY8fq9n0bNar7b1/BwcEcPnzY+feVK1fSpEkTvvvuOwCOHTvGsGHDOO+881i/fj3Z2dncfvvtTJkyxdlQnLq95ORkZs6cybx58+jbty8bNmxgwoQJNG7cmHHjxlFQUEBCQgJRUVF89tlntGrViqSkJCoqKhg1ahQpKSmsWLGC//znPwA0bdr0rDlycnK45JJLuP3223nxxRcpKiriwQcf5MYbb+T7778/7dcVFhby8ssv88EHH5Cfn891113HtddeS1hYGF999RU7d+7k+uuv54ILLmDUqFEEBwczZ84cdu7cyWeffUaTJk148MEHufzyy0lNTeX8889n7ty5PPbYY6Sl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GcnJyZyqd+/e+Pr6kp6eTv4pvyJFR0fTokULjhw5wq5du1zGGjduTNeuXQFISkpy225cXBxBQUFkZGRw9OhRl7HWrVvTunVr8vLy2L59u8tYYGAgPXr0AGDTpk0cP37cZbxLly6EhISwZ88esrOzXcYiIiJo164dhYWFbN261WXMx8eHPn36AJCamkrxKW/E//ZbV+66qzEVFXDttYd4+OHdzumdYWFhdOzYkdLSUlJSUtyy9unTBx8fH7Zt20bBKUfqdu3aERERwaFDh9i9e7fLWEhICF26dKGiooKNVdwEpmfPngQEBLBz505ycnJcxtq0aUOrVq3Iyclh586dLmNBQUHExcUBsHHjRioqXK/N6datG40aNWL37t0cOnTIZaxly5a0bduWgoICtm3b5jLm5+dHr169ANi8ebPLsQGgU6dONGnShH379rFv3z6XMTlGGBrCMSI1tRF33dWJggI/LrzQOBOTlmb/Y0THjh0JCwtj//797N2712XMDseIgoICEhISqreciUcvC66jmTNnqvbt26u0tDSllFIbN25ULVu2VIsXL67y82fMmKGAs36MHj1aKaVUenp6leOVBg0a5Da2aNEipZRSL730ktvY0KFDlVInroY+9SM7O1sppdSIESPcxmbPnq2UUmrp0qVuY3379nXWFBAQ4DaekpKilFJq/PjxbmPTp09XSim1atUqt7GoqCjndqOiotzGly1bpkpLS9X06dPdxsaPH6+UUiolJcVtLCAgwLndvn37uo0vXbpUKaXU7Nmz3cZGjBihlFIqOzu7yn/DyivMhw4d6jY2b948pZRSixYtchsbNGiQs6aqtpuenq6UUmr06NFuYzNmzFBKKbVixQq3sdjYWOd2IyIi3MbXrl2rlFJq2rRpbmOTJk1SSp24Kv/kj9DQUOd24+LiThkfrXx8KhQoNWBAkgKHy/jIkSOVUkrt3LmzyqzFxcVKKaUSEhLcxhYsWKCUUmrBggVuYwkJCUoppYqLi6vcbmZmplJKqZEjR7qNzZo1Syml1PLly93G4uLinFlDQ0PdxitnK0yaNMlt7M4771SlpaVq7dq1bmMRERHO7cbGxrqNr1ixQilV9XHDE8eIefPmuY3pdoxYtWqVUkrV+hhRWlqq4uPj3cbr/xhxjvL1zVeg1MUXKwXBbl9b22NEhw4dVOn/pi/V3zECtXz5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w8Gnn37qMq6U4rHHHqN169YEBwczZMgQ0tPTzSm2ls6W8dZbb3Xbp8OHDzen2Bp65plnGDBgAKGhobRs2ZJrrrmGtLQ0l88pLi5m8uTJNG/enJCQEK6//noOHDhgUsU1V52MF110kds+nDhxokkV18z8+fPp1auXc4Gy8847j6+//to5bvf9B2fPaOf9V5Vnn30Wh8PBPffc43zOzP0ojctZfPjhh9x7773MmDGDpKQkevfuzbBhw8jOzja7NI/p0aMH+/btc378+OOPZpdUa8eOHaN37968+uqrVY4///zzvPzyy7z22mv88ssvNG7cmGHDhlFcXFzPldbe2TICDB8+3GWfLlmypB4rrL01a9YwefJkfv75Z7777jvKysoYOnQox44dc37OtGnT+Pzzz/noo49Ys2YNe/fu5brrrjOx6pqpTkaACRMmuOzD559/3qSKa6Zt27Y8++yzJCYm8ttvv3HJJZdw9dVXs3nzZsD++w/OnhHsu/9OtX79el5//XV69erl8ryp+1GJMzr33HPV5MmTnX8vLy9Xbdq0Uc8884yJVXnOjBkzVO/evc0uwysAtWzZMuffKyoqVKtWrdQ//vEP53M5OTkqMDBQLVmyxIQK6+7UjEopNW7cOHX11VebUo+nZWdnK0CtWbNGKWXsL39/f/XRRx85P2fLli0KUOvWrTOrzDo5NaNSSiUkJKi//vWv5hXlYeHh4eqNN97Qcv9VqsyolD77Lz8/X3Xu3Fl99913LpnM3o9yxuUMSktLSUxMZMiQIc7nfHx8GDJkCOvWrTOxMs9KT0+nTZs2dOzYkdGjR7N7926zS/KKjIwM9u/f77I/mzZtysCBA7XanwCrV6+mZcuWdO3albvuuovDhw+bXVKt5ObmAtCsWTMAEhMTKSsrc9mH3bp1o127drbdh6dmrPTee+8RERFBz549eeihhygsLDSjvDopLy/ngw8+4NixY5x33nla7r9TM1bSYf9NnjyZK664wmV/gfn/D7W6yaKnHTp0iPLyciIjI12ej4yMZOvWrSZV5VkDBw5k4cKFdO3alX379vHEE0/wpz/9iZSUFEJDQ80uz6P2798PUOX+rBzTwfDhw7nuuuuIiYlhx44dPPzww1x22WWsW7cOX19fs8urtoqKCu655x4uuOACevbsCRj7MCAggLCwMJfPtes+rCojwJ///Gfa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",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import scipy as sc\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"t = np.linspace(0,2.35,1001)\n",
|
|
"v = 21.8285999199140\n",
|
|
"theta = 0.676498754637480\n",
|
|
"g = 9.82\n",
|
|
"x = v*cos(theta)*t\n",
|
|
"y = v*sin(theta)*t-1/2*g*t**2\n",
|
|
"plt.plot(x,y,'b',label='Projectile motion')\n",
|
|
"plt.plot(40,5,marker=\"o\", markersize=10,markerfacecolor='black',markeredgecolor='black')\n",
|
|
"plt.xlabel('$x$ (m)')\n",
|
|
"plt.ylabel('$y$ (m)')\n",
|
|
"plt.grid(color='k', linestyle='--', linewidth=1)\n",
|
|
"plt.legend()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "746db158",
|
|
"metadata": {},
|
|
"source": [
|
|
"It is also possible to solve for the speed and angle with a purely numerical solution. Note that we provide an initial guess for the solution."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "097796ce",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"21.828599919902775 0.6764987546376694\n",
|
|
"(-2.673772314665257e-11, -8.988365607365267e-12)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from scipy.optimize import fsolve\n",
|
|
"from math import cos,sin\n",
|
|
"def equations(x):\n",
|
|
" v, theta = x\n",
|
|
" return (v*cos(theta)*2.35-40.0,v*sin(theta)*2.35-0.5*9.82*2.35**2-5.0)\n",
|
|
"v, theta = fsolve(equations, (10, 1))\n",
|
|
"print(v, theta) # the solution (speed and angle)\n",
|
|
"print(equations((v,theta))) # how close are we to zero?"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"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.11.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|