Permalink
Cannot retrieve contributors at this time
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?
compmech-project02/02_Analyze-data_project.ipynb
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
682 lines (682 sloc)
139 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Computational Mechanics Project #02 - Create specifications for a projectile robot\n", | |
"\n", | |
"On the first day of class, we threw $2\"\\times~2\"$ dampened paper (spitballs) at a target on the whiteboard. Now, we are going to analyze the accuracy of the class with some cool Python tools and design a robot that has the same accuracy and precision as the class, but we will have the robot move farther away from the target and use a simpler projectile i.e. a tennis ball so we don't need to worry about knuckle-ball physics. \n", | |
"\n", | |
"The goal of this project is to determine the precision of necessary components for a robot that can reproduce the class throwing distibution. We have generated pseudo random numbers using `numpy.random`, but the class target practice is an example of truly random distributions. If we repeated the exercise, there is a vanishingly small probability that we would hit the same points on the target, and there are no deterministic models that could take into account all of the factors that affected each hit on the board. \n", | |
"\n", | |
"<img src=\"../images/robot_design.png\" style=\"height: 250px;\"/>\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now, we ask ourselves some questions:\n", | |
"\n", | |
"1. How do we quantify the class accuracy and precision?\n", | |
"\n", | |
"2. If we design a robot, what design components can we control?\n", | |
"\n", | |
"3. How can we relate the controlled components to the class accuracy, and specify the component precision?\n", | |
"\n", | |
"The first question, we have some experience from our work in [02_Seeing_Stats](../notebooks/02_Seeing_Stats.ipynb). We can define the mean, standard deviation, measure the first, second, and third quartiles, etc. \n", | |
"\n", | |
"The second question is a physical question. We cannot control the placement of the robot or the target those are chosen for us. We cannot control temperature, mechanical vibrations, etc. We *can* control the desired initial velocity. The initial velocity will have some speed and direction, and both will be subject to random noise. Once the speed and direction are set, the location on the target is determined by kinematic equations for an object in freefall, as such\n", | |
"\n", | |
"$x_{impact} = \\frac{v_x}{v_y}d + x(0)~~~~~~~~~~~~~~~~~~~~(1.a)$\n", | |
"\n", | |
"$z_{impact} = d\\left(\\frac{v_z(0)}{v_y}-\\frac{g}{2v_y^2}d\\right)+ z(0)~~~~~(1.b)$.\n", | |
"\n", | |
"Where the location of impact is at a $y$-distance of $d$ at a point on the target with coordinates $(x_{impact},~z_{impact})$, and the initial velocity is $\\bar{v}=v_x\\hat{i}+v_y\\hat{j}+v_z(0)\\hat{k}$, the object is released at an initial location $\\bar{r}(0)=x(0)\\hat{i}+0\\hat{j}+z(0)\\hat{k}$, and the only acceleration is due to gravity, $\\bar{a}=-g\\hat{k}$. Equation (1) becomes much easier to evaluate if we assume that $v_x=0$, resulting in an evalution of the accuracy of the height of the impact, $z_{impact}$, as such\n", | |
"\n", | |
"$x_{impact} = x(0)~~~~~~~~~~~~~~~~~~~~(2.a)$\n", | |
"\n", | |
"$z_{impact} = \\frac{d}{\\cos{\\theta}}\\left(\\sin{\\theta}-\\frac{g}{2v_0^2\\cos{\\theta}}d\\right)+ z(0)~~~~~(2.b)$.\n", | |
"\n", | |
"Where $\\theta$ is the angle of the initial velocity and $v_0$ is the initial speed. Equation (2) restricts the analysis to height accuracy. You can incorporate the 2D impact analysis if you finish the 1D analysis. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The third question, is how we can relate equation (2) to the measured points of impact? For this, we can use Monte Carlo methods *(There are other methods, but Monte Carlo is one of the most straight-forward)*. Our Monte Carlo approach is as such, if we have a desired initial speed, $v_0$, and desired angle, $\\theta$, we can propagate the uncertainty of our actual speeds and angles into the $z_{impact}$ locations. Then, we can choose distributions in speed and angles that match the distributions in $z_{impact}$ locations. Here are the steps:\n", | |
"\n", | |
"1. Generate random $\\theta_i$ and $v_{0~i}$ variables\n", | |
"\n", | |
"2. Plug into eqn 2 for random $z_{impact~i}$ locations\n", | |
"\n", | |
"3. Compare to our measured $z_{impact}$ location statistics\n", | |
"\n", | |
"4. Repeat 1-3 until the predicted uncertainty matches the desired uncertainty, we can use a number of comparison metrics:\n", | |
" \n", | |
" - standard deviation\n", | |
" \n", | |
" - first, second, and third quartiles\n", | |
" \n", | |
" - visually, with box plots and histograms" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Project Deliverables\n", | |
"\n", | |
"1. Statistical analysis of class accuracy and precision (x- and z-locations) data is in the csv file [../data/target_data.csv](../data/target_data.csv) _Note: if you want to see how I turned the images into data check out the jupyter notebook [process_target_practice](./process_target_practice.ipynb)\n", | |
"\n", | |
"2. A Monte Carlo model to generate impact heights based upon uncertainty in $\\theta_0$ and $v_0$. \n", | |
"\n", | |
"3. The precision required to recreate the class accuracy and precision with a robot. \n", | |
"**You must show some validation of your work**\n", | |
"\n", | |
"4. [BONUS] Repeat 2-3 taking into account the variation in $x_{impact}$ due to misalignment. \n", | |
"\n", | |
"Given constants and constraints:\n", | |
"\n", | |
"- $d=$3 m, distance to target\n", | |
"\n", | |
"- $g=$9.81 m/s$^2$, acceleration due to gravity\n", | |
"\n", | |
"- $z(0)=$0.3 m, the initial height is 0.3 m above the bull's eye\n", | |
"\n", | |
"- 4 m/s$<v_0<$12 m/s, the initial velocity is always higher than 9 mph and less than 27 mph" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"\n", | |
"#Import rcParams to set font styles\n", | |
"from matplotlib import rcParams\n", | |
"\n", | |
"#Set font style and size \n", | |
"rcParams['font.family'] = 'sans'\n", | |
"rcParams['font.size'] = 16\n", | |
"rcParams['lines.linewidth'] = 3" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Deliverable number 1:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 307, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 792x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#First, we load the data table and name it \"proj_data\"\n", | |
"fname = '../data/target_data.csv'\n", | |
"proj_data = pd.read_csv(fname)\n", | |
"\n", | |
"\n", | |
"## from image 1, we find the mean and standard deviation of the x and z positions of the throws versus the target x,z position:\n", | |
"x_pos_img1=proj_data['picture x position (pixel)'][0:29]\n", | |
"mean_x_img1=np.mean(x_pos_img1); std_x_img1=np.std(x_pos_img1)\n", | |
"\n", | |
"z_pos_img1=proj_data[' picture y position (pixel)'][0:29]\n", | |
"mean_z_img1=np.mean(z_pos_img1); std_z_img1=np.std(z_pos_img1)\n", | |
"\n", | |
"target_x_img1=proj_data['target x position (pixel)'][0:29]\n", | |
"target_z_img1=proj_data[' target y position (pixel)'][0:29]\n", | |
"\n", | |
"\n", | |
"## from image 2, we find the mean and standard deviation of the x and z positions of the throws versus the target x,z position:\n", | |
"x_pos_img2=proj_data['picture x position (pixel)'][30:]\n", | |
"mean_x_img2=np.mean(x_pos_img2); std_x_img2=np.std(x_pos_img2)\n", | |
"\n", | |
"z_pos_img2=proj_data[' picture y position (pixel)'][30:]\n", | |
"mean_z_img2=np.mean(z_pos_img2); std_z_img2=np.std(z_pos_img2)\n", | |
"\n", | |
"target_x_img2=proj_data['target x position (pixel)'][30:]\n", | |
"target_z_img2=proj_data[' target y position (pixel)'][30:]\n", | |
"\n", | |
"\n", | |
"#Now, we plot the x,z position (in pixels) of the throws versus the target position in images 1 and 2:\n", | |
"plt.figure(figsize=(11, 5));\n", | |
"plt.scatter(x_pos_img1, z_pos_img1, s=25, marker='s',color='k',linewidth=1, label='x,z positions of throws from image 1')\n", | |
"plt.scatter(np.mean(target_x_img1), np.mean(target_z_img1), s=100, marker='x', color='k', linewidth=5, label='target x,z position from image 1')\n", | |
"plt.scatter(x_pos_img2, z_pos_img2, s=25, marker='s',color='r',linewidth=1, label='x,z positions of throws from image 2')\n", | |
"plt.scatter(np.mean(target_x_img2), np.mean(target_z_img2), s=100, marker='x', color='r', linewidth=5, label='target x,z position from image 2')\n", | |
"plt.xlabel('lateral x-position (pixels)');\n", | |
"plt.ylabel('vertical z-position (pixels)');\n", | |
"plt.legend(loc='best', fontsize=14);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 239, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Image 1:\n", | |
"The target x-position in image 1 is 2055.17 pixels.\n", | |
"The mean x-position in image 1 is 2084.68 pixels, and the standard deviation is 410.79 pixels.\n", | |
"The target z-position in image 1 is 1508.33 pixels.\n", | |
"The mean z-position in image 1 is 1362.45 pixels, and the standard deviation is 450.84 pixels.\n", | |
"\n", | |
"Image 2: \n", | |
"The target x-position in image 2 is 2019.26 pixels.\n", | |
"The mean x-position in image 2 is 2094.04 pixels, and the standard deviation is 493.51 pixels.\n", | |
"The target z-position in image 2 is 1520.03 pixels.\n", | |
"The mean z-position in image 2 is 1484.41 pixels, and the standard deviation is 478.34 pixels.\n" | |
] | |
} | |
], | |
"source": [ | |
"print('Image 1:')\n", | |
"print('The target x-position in image 1 is {:5.2f} pixels.'.format(np.mean(target_x_img1),))\n", | |
"print('The mean x-position in image 1 is {:5.2f} pixels, and the standard deviation is {:5.2f} pixels.'.format(mean_x_img1,std_x_img1))\n", | |
"print('The target z-position in image 1 is {:5.2f} pixels.'.format(np.mean(target_z_img1)))\n", | |
"print('The mean z-position in image 1 is {:5.2f} pixels, and the standard deviation is {:5.2f} pixels.'.format(mean_z_img1,std_z_img1))\n", | |
"print()\n", | |
"print('Image 2: ')\n", | |
"print('The target x-position in image 2 is {:5.2f} pixels.'.format(np.mean(target_x_img2)))\n", | |
"print('The mean x-position in image 2 is {:5.2f} pixels, and the standard deviation is {:5.2f} pixels.'.format(mean_x_img2,std_x_img2))\n", | |
"print('The target z-position in image 2 is {:5.2f} pixels.'.format(np.mean(target_z_img2)))\n", | |
"print('The mean z-position in image 2 is {:5.2f} pixels, and the standard deviation is {:5.2f} pixels.'.format(mean_z_img2,std_z_img2))\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As demonstrated by the scatter plot, the class data in both images 1 and 2 varies widely from the target position. This is as expected, as our class attempted to generate 'truly random' data. \n", | |
"From the mean and of the x and z positions in images 1 and 2, we can see that the mean value fell relatively close to the target value. In most cases, the percent error was only 1-3% (except for the z-position in image 1, which still had a percent error of less than 10%).\n", | |
"However, from the standard deviation of the x and z positions in images 1 and 2, we can see that the data varies very significantly. The standard deviation is considerable in size compared to the mean of the data, ranging from about 20% to 30% of the size of the mean. This means that the data varies widely within each of the data sets and is not very consistent.\n", | |
"Thus, the class data is accurate (close to the target value), but not precise (much variation within the data)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 262, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"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": [ | |
"## For reference, the x and z locations in the scatter plot above are plotted by their pixel location, \n", | |
"## not their actual location in meters. This is so that we can compare them to the target's position,\n", | |
"## which is provided in pixels. From now on, we will use the actual data locations in meters\n", | |
"## to be able to compare to the robot-generated throws.\n", | |
"\n", | |
"\n", | |
"## plotting box and whisker plots for images 1 and 2:\n", | |
"plt.boxplot(z_pos_img1, labels=['z-position of image 1 (meters)']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 261, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"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.boxplot(z_pos_img2, labels=['z-position of image 2 (meters)']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 265, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The first quartile of z-positions in image 1 is 990.60.\n", | |
"The second quartile of z-positions in image 1 is 1383.33.\n", | |
"The third quartile of z-positions in image 1 is 1751.51.\n", | |
"\n", | |
"The first quartile of z-positions in image 2 is 1183.38.\n", | |
"The second quartile of z-positions in image 2 is 1369.52.\n", | |
"The third quartile of z-positions in image 2 is 1711.11.\n" | |
] | |
} | |
], | |
"source": [ | |
"print('The first quartile of z-positions in image 1 is {:5.2f}.'.format(np.percentile(z_pos_img1, q=25)))\n", | |
"print('The second quartile of z-positions in image 1 is {:5.2f}.'.format(np.percentile(z_pos_img1, q=50)))\n", | |
"print('The third quartile of z-positions in image 1 is {:5.2f}.'.format(np.percentile(z_pos_img1, q=75)))\n", | |
"print()\n", | |
"print('The first quartile of z-positions in image 2 is {:5.2f}.'.format(np.percentile(z_pos_img2, q=25)))\n", | |
"print('The second quartile of z-positions in image 2 is {:5.2f}.'.format(np.percentile(z_pos_img2, q=50)))\n", | |
"print('The third quartile of z-positions in image 2 is {:5.2f}.'.format(np.percentile(z_pos_img2, q=75)))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The box-and-whisker plots above display the shape of the distribution/variability in z-position values for images 1 and 2. Both box-and-whisker plots have a similar shape and quartile values (the first quartile of the data sets have a 16% error, while the second and third quartiles have only 2% error between the two data sets). \n", | |
"The shape between the two images varies slightly. The interquartile range is larger in image 1 (the box portion) than image 2. Additionally, the upper and lower extremes (whiskers of the plot, represented by Q3 + 1.5 x IQR and Q1 - 1.5 x IQR) are greater in second plot. Image 2's data set also has an outlier, represented by the circle. Overall, both data sets have very similar quartiles and have high variability. \n", | |
"\n", | |
"Since the two trials of data (images 1 and 2) are within relatively close percent error of one another, we will compare the robot-generated data to the entire class data set in the following parts (not each image data set)." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Deliverable number 2:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 266, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"## Constants provided in problem (velocity must be between 4 m/s and 12 m/s)\n", | |
"d=3; g=9.81; z_0=0.3" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 282, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"## This function creates a distribution of resulting impact heights \n", | |
"## from the robot launcher's input range of initial velocity and launch angle\n", | |
"\n", | |
"def montecarlo_impact(theta_0_min,theta_0_max,v_0_min,v_0_max):\n", | |
" ''' This function calculates a random distribution of a resulting impact height \n", | |
" from user-inputted initial velocity and launch angle ranges.\n", | |
" \n", | |
" Arguments:\n", | |
" theta_0_min: lower limit of launch angle (theta) range, in radians\n", | |
" theta_0_max: upper limit of launch angle (theta) range, in radians\n", | |
" v_0_min: lower limit of initial velocity (v_0) range, in meters/sec\n", | |
" v_0_max: upper limit of initial velocity (v_0) range, in meters/sec\n", | |
" \n", | |
" Returns:\n", | |
" z_impact: resulting random distribution of impact heights (in meters)\n", | |
" z_impact_mean: mean of distribution of impact heights (in meters)\n", | |
" z_impact_std: standard deviation of impact heights (in meters)\n", | |
" \n", | |
" '''\n", | |
" \n", | |
" ## this creates the random arrays of initial velocity \n", | |
" ## and launch angle based on user-defined range:\n", | |
" v_0=v_0_min+(v_0_max-v_0_min)*(np.random.rand(53))\n", | |
" theta_0=theta_0_min+(theta_0_max-theta_0_min)*(np.random.rand(53))\n", | |
" \n", | |
" ## this calculates the impact height (and resulting mean and std. dev.) \n", | |
" ## based on kinematics equations:\n", | |
" z_impact=(d/(np.cos(theta_0)))*(np.sin(theta_0)-((g*d)/(2*np.cos(theta_0)*v_0**2)))+z_0\n", | |
" z_impact_mean=np.mean(z_impact)\n", | |
" z_impact_std=np.std(z_impact)\n", | |
" \n", | |
" return z_impact, z_impact_mean, z_impact_std" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Deliverable number 3:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 273, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Monte Carlo-generated mean of the impact height is 0.3972 m, and its standard deviation is 1.0078 m.\n", | |
"The data's mean of the impact height is -0.0474 m, and its standard deviation is 0.2549 m.\n" | |
] | |
} | |
], | |
"source": [ | |
"## Now we create a new variable for the z-position of the entire class set (both images)\n", | |
"## (although it is kept labeled as img_1 for consistency)\n", | |
"## We now begin our data validation process of guess-and check for the initial velocity and launch angle ranges\n", | |
"\n", | |
"z_pos_img1=proj_data[' y position (m)']\n", | |
"mean_z_img1=np.mean(z_pos_img1); std_z_img1=np.std(z_pos_img1)\n", | |
"\n", | |
"first_try,first_try_mean,first_try_std=montecarlo_impact(0,np.pi*45/180,4,12)\n", | |
"\n", | |
"print(\"The Monte Carlo-generated mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(first_try_mean,first_try_std))\n", | |
"print(\"The data's mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(mean_z_img1,std_z_img1))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"First, I used the given range of initial velocity (4 m/s to 12 m/s), and I chose the range for the launch angle to be between 0 and 45 degrees. This yielded an impact height far higher than the data's mean height. Additionally, the standard deviation is too large." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 150, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Monte Carlo-generated mean of the impact height is 0.0970 m, and its standard deviation is 0.8055 m.\n", | |
"The data's mean of the impact height is -0.0474 m, and its standard deviation is 0.2549 m.\n" | |
] | |
} | |
], | |
"source": [ | |
"second_try,second_try_mean,second_try_std=montecarlo_impact(np.pi*1/180,np.pi*30/180,4,12)\n", | |
"\n", | |
"print(\"The Monte Carlo-generated mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(second_try_mean,second_try_std))\n", | |
"print(\"The data's mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(mean_z_img1,std_z_img1))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Next, I lowered the range of the initial launch angle to be between 1 degree and 30 degreees. This helped to lower the mean impact height from before (from 0.4954 m to 0.1684 m). We still need to lower this range further to decrease the impact height. In addition to refining the initial launch angle range, we will minimize the initial velocity range as well (which was previously kept from 4 m/s to 12 m/s). " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 177, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Monte Carlo-generated mean of the impact height is -0.0603 m, and its standard deviation is 0.4384 m.\n", | |
"The data's mean of the impact height is -0.0474 m, and its standard deviation is 0.2549 m.\n" | |
] | |
} | |
], | |
"source": [ | |
"third_try,third_try_mean,third_try_std=montecarlo_impact(np.pi*2/180,np.pi*15/180,5,11)\n", | |
"\n", | |
"print(\"The Monte Carlo-generated mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(third_try_mean,third_try_std))\n", | |
"print(\"The data's mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(mean_z_img1,std_z_img1))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For this trial, I narrowed the initial launch angle range to be between 2 degrees and 15 degrees. This sufficiently lowered the impact height. Now, however, it is too low. Therefore, I will try further narrowing the angle range (slightly increasing its average). Additionally, the standard deviation is too high, so I will further refine the initial velocity for the next trial." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 289, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The Monte Carlo-generated mean of the impact height is -0.0483 m, and its standard deviation is 0.2788 m.\n", | |
"The data's mean of the impact height is -0.0474 m, and its standard deviation is 0.2549 m.\n" | |
] | |
} | |
], | |
"source": [ | |
"fourth_try,fourth_try_mean,fourth_try_std=montecarlo_impact(np.pi*3/180,np.pi*12/180,6,10)\n", | |
"\n", | |
"print(\"The Monte Carlo-generated mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(fourth_try_mean,fourth_try_std))\n", | |
"print(\"The data's mean of the impact height is {:5.4f} m, and its standard deviation is {:5.4f} m.\".format(mean_z_img1,std_z_img1))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Finally, we arrive at sufficient ranges for the launch angle (between 3 degrees and 12 degrees) and initial velocity (between 6 m/s and 10 m/s) so that the robot-generated data matches the sample data as closely as possible with random numbers.\n", | |
"\n", | |
"The mean values of the two data sets (class data and robot data) are quite similar: the class data's avg. is -0.0474 m, and the robot data's avg. is -0.0483 m for this set of random numbers. The standard deviations are similar as well: the class data set's std. dev. is 0.2549 m, and the robot data's std. dev. is 0.2788 m. Thus, random ranges of initial velocity values from 6 m/s to 10 m/s and launch angles from 3 degrees to 12 degrees yields the impact heights of the same accuracy (mean value) and precision (standard deviation value) as the class data.\n", | |
"\n", | |
"\n", | |
"\n", | |
"Below we compare the distributions for the robot-generated data versus the sample data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 297, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"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": [ | |
"## Here we plot the box-and-whisker plots for the class data and robot-generated data\n", | |
"\n", | |
"plt.boxplot(fourth_try, labels=['Robot-generated impact height distribution (m)']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 298, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAD9CAYAAAB0i+q4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAcq0lEQVR4nO3de5xdVX338c8XAkFaAxMhRSm5AaWGcnnq0AdFLfCCgoJcpEAUFEQJKtc+YiFEMRAqIBbwVmvUAiY+giCUi0hASFGBWCYReAgSCE/CRQMEEiAk5AL++sfah+zsnDNzzsw6MyH5vl+v85qZtddee+1z+561195nFBGYmZnlsNFAd8DMzNYfDhUzM8vGoWJmZtk4VMzMLBuHipmZZTNooDswkLbaaqsYOXLkQHfDzOwtZebMmS9ExNb1lm3QoTJy5Ei6uroGuhtmZm8pkp5stMyHv8zMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtls0Bc/mvUXSf2yHf9/JBtoDhWzftDqm70kB4S9Jfnwl5mZZeNQMTOzbBwqZmaWjUPFzMyyaWuoSNpO0nWSXpb0iqTrJQ1vct1ocNu9Um8jSeMlzZe0XNKDko5ozx6ZmVl32nb2l6TNgbuAFcBxQAAXANMl7RoRS5to5krge5Wyxyp/TwLOBCYAM4GxwLWSDo6IW3u/B2Zm1qp2nlJ8IjAa2Cki5gJIegh4HDgJuLSJNv4QETMaLZQ0jBQoF0XE14vi6ZJ2AC4CHCpmZv2onYe/DgFm1AIFICLmAfcAh2baxgHApsDUSvlUYBdJozJtx8zMmtDOUNkZeLhO+WxgTJNtfE7SCknLJN0l6QN1trECmFspn138bHY7ZmaWQTtDZSiwuE75IqCjifWnAp8H9gPGAe8A7pK0d2UbL8Xalx4vKi1fg6RxkrokdS1cuLCJbpiZWbPa/TUt9b5noqkvQYqIT5T+/LWkG0kjnwuA95faamkbETEZmAzQ2dnp78EwM8uonSOVxdQZKZBGKfVGMN2KiCXAz4E9SsWLgA6t/W19HaXlZmbWT9oZKrNJcx5VY4BHetlmdWQyGxgMbF9nG/RhO2Zm1gvtDJWbgD0lja4VSBoJ7FUsa4mkIcBBwG9LxbcBK4FjKtWPBR4uzjYzM7N+0s45le8DpwA3SvoSaYQxCXia0gWNkkYATwDnR8T5RdmZwE7AdOCPwAjS9SjbUAqQiHhe0mXAeElLgFnA0cC+5Dtt2czMmtS2UImIpZL2BS4DppAOXd0JnBERr5aqCtiYNUdNc4DDi9sWwCuk61s+HRH/XdnUBOBV4HRS6MwBjoqIm7PvlJmZdUsb8j8C6uzsjK6uroHuhtla/E+6bF0maWZEdNZb5m8pNjOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtm0NVQkbSfpOkkvS3pF0vWShjexXqekyZIelbRM0lOSfixpVJ268yVFndth7dkrMzNrZFC7Gpa0OXAXsAI4DgjgAmC6pF0jYmk3q48Fdga+CcwGtgW+DHRJ2j0inq7UnwZMrJTN6fNOmJlZS9oWKsCJwGhgp4iYCyDpIeBx4CTg0m7WvTgiFpYLJN0DzCvaPbdS/4WImJGr42Zm1jvtPPx1CDCjFigAETEPuAc4tLsVq4FSlD0JLCSNWszMbB3UzlDZGXi4TvlsYEyrjUl6NzAM+H2dxR8p5l5WSJrh+RQzs4HRzlAZCiyuU74I6GilIUmDgH8njVR+WFl8M3AqcABwDLAcuEHSsQ3aGiepS1LXwoVrDYjMzKwP2jmnAmlyvkq9aOfbwPuAgyJijaCKiFPXaFy6AZgBXAhMXatDEZOByQCdnZ31+mdmZr3UzpHKYtJopaqD+iOYuiRdCIwDToiI23uqHxFvANcCfynpnc1ux8zM+q6dI5XZpHmVqjHAI800IGkCcDZwWkRMaWHbtdGQRyJmZv2onSOVm4A9JY2uFUgaCexVLOuWpNNI17VMiIhvNbvRYv7lSOCpiHi2xT6bmVkftDNUvg/MB26UdKikQ4AbgaeB79UqSRoh6XVJ55bKxgKXA7cBd0nas3QbU6r3MUlXS/qkpH2K9aYD7wHOauO+mZlZHW07/BURSyXtC1wGTCEdkroTOCMiXi1VFbAxawbcgUX5gcWt7G5g7+L3eaTTjC8hzd8sA+4HDoyIaTn3x8zMeqaIDXfaobOzM7q6uga6G2ZrkcSG/Nq0dZukmRHRWW+Zv6XYzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtm0+98Jm613hg4dyuLFTf/z0l6TevOft1vT0dHBokWL2r4d23A4VMxatHjx4vXmG4T7I7hsw+LDX2Zmlo1DxczMsnGomJlZNg4VMzPLxqFiZmbZOFTMzCwbh4qZmWXjUDEzs2wcKmZmlo1DxczMsnGomJlZNg4VMzPLxqFiZmbZOFTMzCwbh4qZmWXT1lCRtJ2k6yS9LOkVSddLGt7kuptJukTSAkmvSbpP0gfr1NtI0nhJ8yUtl/SgpCPy742ZmfWkbaEiaXPgLuCvgeOATwA7AtMl/VkTTfwQOBE4FzgYWABMk7R7pd4kYCLwbeBDwAzgWkkfzrAbZmbWgnb+58cTgdHAThExF0DSQ8DjwEnApY1WlLQb8HHghIi4oii7G5gNnA8cUpQNA84ELoqIrxerT5e0A3ARcGsb9svMzBpo5+GvQ4AZtUABiIh5wD3AoU2suwq4prTu68DVwAGSBhfFBwCbAlMr608FdpE0qk97YGZmLWlnqOwMPFynfDYwpol150XEsjrrbgrsUKq3Aphbpx5NbMfMzDJqZ6gMBRbXKV8EdPRh3dry2s+XIiJ6qPcmSeMkdUnqWrhwYQ/dMDOzVrT7lOLqmz2AmlhPTa7bbL3VHYqYHBGdEdG59dZbN9EVMzNrVjtDZTF1RgqkUUq9UUjZom7WrS2v/eyQVA2Raj0zM+sH7QyV2aQ5j6oxwCNNrDuqOC25uu5KVs+hzAYGA9vXqUcT2zEzs4zaGSo3AXtKGl0rkDQS2KtY1tO6mwBHltYdBBwN3B4RK4ri20ghc0xl/WOBh4uzzczMrJ+08zqV7wOnADdK+hJp7mMS8DTwvVolSSOAJ4DzI+J8gIh4QNI1wOWSNgHmAZ8DRlEKkIh4XtJlwHhJS4BZpODZl55PWzYzs8zaFioRsVTSvsBlwBTS5PmdwBkR8WqpqoCNWXvU9CngX4ALgC2BB4EDI2JWpd4E4FXgdGAbYA5wVETcnHePzMysJ1r7bNwNR2dnZ3R1dQ10N+wtRhLry+tmfdoX6z+SZkZEZ71l/pZiMzPLxqFiZmbZOFTMzCwbh4qZmWXTzlOKzdZL8ZUhMHGLge5GFvGVIQPdBVvPOFTMWqTzXllvzpiSREwc6F7Y+sSHv8zMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8tm0EB3wOytSNJAdyGLjo6Oge6CrWfaNlKRtJGk8ZLmS1ou6UFJRzSx3hBJ50q6V9KLkl4qfj+sTt2JkqLO7T/bs1dmEBFtv/XXdhYtWjTA96atb9o5UpkEnAlMAGYCY4FrJR0cEbd2s95w4PPAFUUbfwI+Btwg6ZSI+E6ddd4PvFH6268UM7MB0JZQkTSMFCgXRcTXi+LpknYALgK6C5V5wOiIWFYqmyZpO+AsoF6o/DYiXs/QdTMz64N2Hf46ANgUmFopnwrsImlUoxUjYmklUGq6gHfl66KZmeXWrlDZGVgBzK2Uzy5+julFmx8EHm2w7GlJb0h6UtLFkt7Wi/bNzKyP2jWnMhR4KWozjqstKi1vmqRxwJ7AsZVFc4Gzgd8BAfwD8E/A3wL7d9PWOIDhw4e30g0zM+tBU6EiaT/gjiaq3h0RewMivcmv1VTzXXtz23sD3wSmRMSPy8sionp47Q5JzwCXS9ovIn5ZbS8iJgOTATo7O+v10czMeqnZkcq9wLubqFebC1kEdEhSZbTSUVreI0l7ADcBdwGfbrKvPwEuB/YA1goVMzNrn6ZCpZg4bzSfUc9sYDCwPWvOq9TmUh7pqQFJuwDTgAeAIyJiVQvbh/ojJTMza6N2TdTfBqwEjqmUHws8HBHzultZ0o6kw23/Hzg4Il5rYdu1bf62hXXMzCyDtkzUR8Tzki4DxktaAswCjgb2BQ4t15V0JzAiInYo/h5GCpRNga8AYypfifG7iFhR1P0d8CNgDmlksj9wKnBbRExvx76ZmVlj7byifgLwKnA6sA3pjf+oiLi5Um/jSj/GACOK32+p0+4oYH7x+xzgFOCdRTtPAOcDX+t7983MrFVa+6zfDUdnZ2d0dXUNdDfM1iKJDfm1aes2STMjorPeMn/1vZmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2bQsVSRtJGi9pvqTlkh6UdEST614pKercLq9T9/2S7pX0mqRnJV0q6W3598jMzHoyqI1tTwLOBCYAM4GxwLWSDo6IW5tYfyFwSKVsQfkPSbsCdwDTgIOBUcAlwLbA0X3qvZmZtawtoSJpGClQLoqIrxfF0yXtAFwENBMqKyNiRg91zgOeAY6MiFXFtlcCV0m6OCJm9W4PzMysN9p1+OsAYFNgaqV8KrCLpFF93YCkTYADgZ/WAqXwU2AlcGhft2FmZq1pV6jsDKwA5lbKZxc/xzTRxjBJL0h6XdJjks6StHFp+fbAZsDD5ZUiYjnwRJPbMDOzjNo1pzIUeCkiolK+qLS8Ow+Q5mFmk4LjcOBCYEfgM5U2FtdZf1GjbUgaB4wDGD58eA/dMDOzVjQVKpL2I02I9+TuiNgbEFANFIryHkVE9SyvWyW9CpxRzJU8Xmqrpe1ExGRgMkBnZ2e9dc3MrJeaHancC7y7iXrLip+LgA5JqoxWOkrLW/UT4AygE3ic7kc9Haw+1GZmZv2kqVCJiGXAoy20OxsYTJr3KM+r1OY5HmmhrZrqyOQJ0rzNzmtUkjYDRgPX9mIbZmbWB+2aqL+NdAbWMZXyY4GHI2JeL9r8OClQ7geIiJXFdo6SVA7HfyQF2k292IaZmfVBWybqI+J5SZcB4yUtAWaRLkbcl8qpvpLuBEZExA7F3yOAKcDVpFHOYNJE/fHA9yLiidLqE4H7gJ9K+g4wknTx43URMbMd+2ZmZo2184r6CcCrwOnANsAc4KiIuLlSb+NKP5aQ5kvOAv6CNDr5PXAa8G/lFSPiAUkHABcDPwdeBn4EnJN7Z8zMrGda+6zfDUdnZ2d0dXUNdDfM1iKJDfm1aes2STMjorPeMn9LsZmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8vGoWJmZtk4VMzMLBuHipmZZdPOr2kxs4LU1L8S6vM6vgrfBppDxawf+M3eNhQ+/GVmZtk4VMzMLBuHipmZZeNQMTOzbBwqZmaWjUPFzMyycaiYmVk2DhUzM8tmg/4f9ZIWAk8OdD/M6tgKeGGgO2HWwIiI2Lregg06VMzWVZK6IqJzoPth1iof/jIzs2wcKmZmlo1DxWzdNHmgO2DWG55TMTOzbDxSMTOzbBwqZmaWjUOlH0g6XlKUbkslzZd0g6SjJPXqcZC0u6SJkoZm7m9Impizzf4kacvifvnbJutfKemZjNufKKlXx5Ul/Zek3zRR7zBJ/6c32yi1UXtejiyVzZd0ZQttjCz2d3SL64Sk40tluR+Dhv1qdR9zknSEpOckbZ6pvcMlPSvpz3O0l4NDpX8dCbwX+DDwZWAF8BPgdklv60V7uwNfAbKGCqmPP8jcZn/aknS/NBUqbfAD0n3YTocBfQqVBg4HJrVQfyTpvm46VIAFpPvn5y2s06qRNO5Xq/uYhaRBwFeBSyJiWaZm/xN4Fvhipvb6zP9OuH89EBFzS39PkXQtcC3wNeDUgenWmiJixkD34a0sIp4Bsn3q7k8R8bt2tS1JwCYRsQIYsOdYO/exB4eSwu4/cjUYESFpMjBJ0oURsTxX233plG9tvgHHAwHs0GD5DcByYPNS2XnALOBl0td13AXsWafN6m1ksfwU4D5gEfAS6UV8UJP9DWBi6e+JRdlfA9OApcBTwKeK5Z8AHgVeBaYD21famw9MBU4E5hb7OgvYp1JvD+A60hvya8Ac0ie7t9Xp4+HAPcU2XwH+GziE9KKtd78c383+Xlls838BvwaWAY8Dn61TdxTwY2AhaaT5AHB4pc7E9NJao2xr0qj0FWAxcEXR3wD2LtX7L+A3wH7FfbQMeBg4rNLf6v7N7+ExHU0aGSwr+v4N4KTyc6b0WF1Z+nsb4Crgj8X+LgBuAYYBeze4r/euPO4nFM+PVcXjVnuMjq/zGLwPuL94jswHTu3pvi2tP7/4vZl+XVlZ/++AX5KeT0uBO4G/6+3zpMFj8AvgxgavtwuAL5C+Nmpp8VgNK24/Jb0PPA2cVWf9rYA3gI/393tbvZsPf60bbgUGA+Wv5dgWuIx0mON44HngV5J2LZb/nPREhNWH1d5LetFDeuH+oFh2NNAF3CLpQ33o57XFdg8DZgL/IemrwOeAs4FPATsB/7fOun9POlwzARhLeoP6haSdSnWGk96kPwscSHrjO4H0BvwmSacC15Puk+OKfbyh2OcFwEeLqhey+n7p6VDLkKLfU0mfKO8Hvitpn9J2twN+C+wG/BMpFGYBP5N0SA/tXw98CBhf7P8q4FsN6m5P2vdLi31ZAFwnaYdi+STSc2Zhaf8Ob7RhSZsCd5DeDE8mPZ9GAV/qoc8AU4r2vwjsD5xGemPdnLTvJxf1Tiv1ZVZp/X1Ij/t5pMf0oW62NQS4hhRih5EC9pvluZcmNdOvNxWvqbuBDtJ988miL3dL2q1OH7t9njTYxmBS2P26QZVPAPsCnycdsfgA8CPS8/oh4AjSY36RpA+XV4yIF4Dfk+7fgTfQqbYh3Oh5pHJAsfzoBss3Jh2qnAN8o9l2S/U2Kta/nTqflOrUbzRS+WSprAN4HXgRGFIqP62oO6JUNh9YCQwvlb2dNIqa0qAPKvp8LPAn4B1F+RBgCXB9N/0fWfThM00+PlcW9fcplQ0mjRAnl8p+SHojf0dl/TtIhzbXuL9Kf/9D0f5RlfVuov5IZRWwY6lsGOmT6DmVPj/T5P6dWGynPNLdCJhNzyOVV4HTuml776KN/eosm0/6NL9Ng8fn+DqPwdg69+2TrL6mbo37trL+/Bb6Vd7H60ij+S1LZUOK5+f1dfrY7fOkwf30v4t192/wensMGFQqu7Qo/1KpbBDpg9QVddqYAjzWzPOh3TePVNYNKn7GmwXSfpKmS3qR9Oa9Cvgr0kig5wal90i6RdJzpfX3b3b9Bn5R+yUiFpOe4DMi4pVSnUeLn9tV1p0REU+V1l9CGj28OaEtaYikiyU9QRrJrCK9WATsWFR7H/Dn5L/ifFlETC/1bwXp0MbwUp0DSZ8WX5Y0qHYjHRLcTdKQBm3vSQqFGyrl1zWo/3hEPF7qy/Ok+3p4g/o9eS/wdJTmyiLiT6TDKj25H/iipNMl7VLMi7RiRkQ822TdN4CfVcquJu33ti1utxUfBG6JiJdqBcVz+ibSCLusmedJPe8qfi5ssPyOiHi99HftdTSttK3XSYePq6+tWrvvqlPe7xwq64bak2QBQHEq7K2kT4mfJr0p7QE8CGzWU2PFYZo7SWeFnUp6I94DuK2Z9buxuPL3ygZl1NnOc3Xae4413yyuIB36+iYpAPdg9WGMWnvvKH7mngiv7gekYCvvxzDSoZFVldsllb5VvRNYHBGrKuX17hNIn5B76ksr3tlgW422X3Y06c31n0mHYf4g6dwWToNf0HOVN3V3H7UzVIZSv5/PkkbkZc08T+qpLV/RYHmj11G98nrbeq2JPvQLn/21bjiINDE5s/j7CNLo4qPlF5mkDtIwvScHAluQDre8+eab69z4XvqLBmV/AJC0GekY9cSI+EatgqRdKuvU/sfItqQJ7P70IumY+MUNlv+xQfkCoEPSJpU3zXr3STssAHauU97j9otR0snAycX813Gk+ZGFwHeb2Hb0XOVN3d1Hfyh+Loc0TxQRK0v1GgV6MxaRTkio2ob6Ad8bLxY/qyGVy9DSNgaURyoDTNJHSRO+/x6rz13fnHQooHw4bF/WHmLXPvVUr3GphUc5kP4K2CtTt3tjz2IEVevP20lhel9RNJg0d1T9pHp85e97SSO4cd1sq9H90le3AbsCsyOiq86t0afQGaR9q06mH9mHvqyg+f27D9hO0p61gmKkcVQrG4yIORFxDunT89+U+kELfenOxqQPVGVjSWca1kKl9k/1attH0pak0XhZK/26GzioeE7W2nw78JFiWQ61w1mtXM/TilGkOdcB55FK/9pd0lbApqSAOJj0xnIH6aygmtuAM4ArJV1Bmkv5MqtfWDWPFD9PlnQV6Q35IdKpka8DP5L0r6TDH+eRXpwD9UHiOdJFnhNJL/izgD+juAgtIl6WNAP4gqQFpBHJCVQOe0TEEknjgW9J+hnp9N4lpAtBl0fEt4ptvQiMlfQQ6RTNeRHR109y55JOXf6VpG+TJnw7SG9woyPihHorRcTtxVXyk4vHfy7wj6SzyCCdiNCqR4Chkj5HOrNveUT8vwZ1ryKdnXe9pHNI8zOfJU1GNyRpC9Jz6cesPiX4UNI+315Ue4z0XDtB0iLSYzunmDNr1RLga8V99DjwMdKp1cdHMRtNmtd7Gfi+pK+QPoz8M+mDRlkr/ZpEei3eKeli0oe5s0gfzs7vxX6sJSKekvQk6dTlqTnarCnmufaguZFj23mk0r+uJX1qnAb8C+kFMRY4MEoXLUXENNJZVHuRrgk4gXQsv3zhJBHxIOlsmI+Qrm24H3hXRMwGjgFGsPp4+NnAr9q3az26G/hX0nUn15CO/34oIh4r1fkY6RDgd0hn2jwLnF5tKCK+TQrjvyS94f2M9CY9r1j+J+AzpDe/X5Lul4/0dQeKEw06SXNbXyV9GPguaTL3rh5W/yjpw8LFpAnyzUgfFCC9SbbqB6RJ7K+Sgu7mbvq9kjRH9QDwb6SQmcfqU9IbqV1PdCLppIIbSJP+x0TEjUXbL5KuidqN9BjfD7ynF/sD6RqesaRDbDeSTkc+PSKuKu3LS6QAqJ1ocCHp1Ozp5YZa6VdEPEQ6W+wV0n0zhRRSf1+8xnK5puh7bu8jHf66ug1tt8xffW9tJ2k+8JuIOHag+7IukfQd0uG9od0cOrP1hKTtSYeo9o6IHr/frYV2vwv8TUR8IFebfeHDX2b9oLiAbwvStSGbkk6m+Czpe6AcKBuAiHiiOJx9NplGLJK2IY3s1o0LH3GomPWXpaR5su1Jhz3nAeew+nRk2zB8GThJ0uaR50slRwJfiIiBPLS9Bh/+MjOzbDxRb2Zm2ThUzMwsG4eKmZll41AxM7NsHCpmZpbN/wALWwoeyzoxfgAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.boxplot(z_pos_img1, labels=['Data impact height distribution (m)']);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 301, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"The first quartile for impact height for the class data is -0.2179 m.\n", | |
"The second quartile for impact height for the class data is -0.0709 m.\n", | |
"The third quartile for impact height is 0.1322 m.\n", | |
"\n", | |
"The first quartile for impact height for the robot-generated data is -0.2799 m.\n", | |
"The second quartile for impact height for the robot-generated data is -0.0251 m.\n", | |
"The third quartile for impact height for the robot-generated data is 0.1736 m.\n" | |
] | |
} | |
], | |
"source": [ | |
"## Next we find the quartiles of the class data and robot-generated data \n", | |
"## corresponding to the box-and-whisker plots above\n", | |
"print('The first quartile for impact height for the class data is {:5.4f} m.'.format(np.percentile(z_pos_img1, q=25)))\n", | |
"print('The second quartile for impact height for the class data is {:5.4f} m.'.format(np.percentile(z_pos_img1, q=50)))\n", | |
"print('The third quartile for impact height is {:5.4f} m.'.format(np.percentile(z_pos_img1, q=75)))\n", | |
"print()\n", | |
"print('The first quartile for impact height for the robot-generated data is {:5.4f} m.'.format(np.percentile(fourth_try, q=25)))\n", | |
"print('The second quartile for impact height for the robot-generated data is {:5.4f} m.'.format(np.percentile(fourth_try, q=50)))\n", | |
"print('The third quartile for impact height for the robot-generated data is {:5.4f} m.'.format(np.percentile(fourth_try, q=75)))\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As displayed above, the quartiles of the class set and robot-generated set are somewhat similar, but not perfect. The first quartile and third quartile betwen the two data sets only differ by approxiately 20%; however, the second quartile differ by about 60% between the class data and robot-generated data.\n", | |
"\n", | |
"The interquartile range of the class data (the \"box\") is larger than the range of the robot data. Additionally, the extrema of the robot data (the \"whiskers\") are larger. Although the behavior of the individual data varies, the overall trend (precision/accuracy) is maintained by the robot." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 304, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"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": [ | |
"## plotting histogram of robot-generated data and class data:\n", | |
"plt.hist(z_pos_img1, bins=10, color='b', histtype='bar', edgecolor='w');\n", | |
"plt.title('Impact Height of Class Data (m) \\n')\n", | |
"plt.xlabel('Impact Height (m)')\n", | |
"plt.ylabel('Frequency');" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 305, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"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.hist(fourth_try, bins=10, color='r', histtype='bar', edgecolor='w');\n", | |
"plt.title('Impact Height of robot-generated data (m) \\n')\n", | |
"plt.xlabel('Impact Height (m)')\n", | |
"plt.ylabel('Frequency');" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As mentioned previously, the robot launcher maintains the precision and accuracy of the class data to as much of an extent as possibly given that the data is randomly-generated. This is ilustrated by the similarity between the mean and standard deviation of the class data set and robot data set. \n", | |
"\n", | |
"However, as shown by the box-and-whiskers plots and by the histograms above, the shape of the data varies between the two data sets. This can be attributed to the randomness of the data itself. The robot only utilizes the same number of random numbers as the class data set (53). Thus, individual values vary themselves within the data sets based on the small sample size. However, even given this, the overall average and variance between the two sets (mean and std. dev) are tend to be quite similar due to the randomness. \n", | |
"\n", | |
"In the future, this data could be further optimized if the class set and robot-generated sets were larger. If this were the case, we would expect the histograms to approach a uniform shape and for the mean, standard deviation, and quartiles to be even closer in agreement." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"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 | |
} |