Collisions: Difference between revisions
No edit summary |
No edit summary |
||
Line 14: | Line 14: | ||
===A Computational Model=== | ===A Computational Model=== | ||
<div id="glowscript" class="glowscript"> | |||
<link type="text/css" href="http://www.glowscript.org/css/redmond/2.1/jquery-ui.custom.css" rel="stylesheet" /> | |||
<link href="http://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet" type="text/css"> | |||
<link type="text/css" href="http://www.glowscript.org/css/ide.css" rel="stylesheet" /> | |||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> | |||
<script type="text/javascript" src="http://www.glowscript.org/lib/jquery/2.1/jquery.min.js"></script> | |||
<script type="text/javascript" src="http://www.glowscript.org/lib/jquery/2.1/jquery-ui.custom.min.js"></script> | |||
<script type="text/javascript" src="http://www.glowscript.org/package/glow.2.1.min.js"></script> | |||
<script type="text/javascript" src="http://www.glowscript.org/package/RSrun.2.1.min.js"></script> | |||
<script type="text/javascript"> | |||
;(function() { var __rt=srequire('streamline/lib/callbacks/runtime').runtime(__filename, false),__func=__rt.__func,__cb=__rt.__cb; function _$rapyd$_print() { | |||
var args, output; | |||
args = [].slice.call(arguments, 0); | |||
output = JSON.stringify(args); | |||
if (("console" in window)) { console.log(output.substr(1, output.length["-"](2))); };}; | |||
function main(wait) { var version, box, sphere, cylinder, pyramid, cone, helix, ellipsoid, ring, arrow, graph, display, vector, _$GS_$END, scene, _$rapyd$_Temp, _$rapyd$_print, arange, dT, m1i, v1i, m2i, v2i, m3i, v3i, o1, o2, o3, origin, totalP, totalPX, totalPY, totalPZ, m, m1f, v1f, m2f, m3f, v3f, pOf1and3, t; var __frame = { name: "main", line: 7 }; return __func(wait, this, arguments, main, 0, __frame, function __$main() { | |||
version = ["2.1","glowscript",]; | |||
Array.prototype["+"] = function(r) { return this.concat(r); }; | |||
window.__GSlang = "vpython"; | |||
box = vp_box; | |||
sphere = vp_sphere; | |||
cylinder = vp_cylinder; | |||
pyramid = vp_pyramid; | |||
cone = vp_cone; | |||
helix = vp_helix; | |||
ellipsoid = vp_ellipsoid; | |||
ring = vp_ring; | |||
arrow = vp_arrow; | |||
graph = vp_graph; | |||
display = canvas; | |||
vector = vec; | |||
_$GS_$END = 0; | |||
scene = canvas(); | |||
_$rapyd$_Temp = 0; | |||
_$rapyd$_print = GSprint; | |||
arange = range; | |||
"6"; | |||
scene.width = 1024; | |||
"7"; | |||
scene.height = 760; | |||
"8"; | |||
scene.background = color.black; | |||
"12"; | |||
dT = 0.1; | |||
"13"; | |||
m1i = 2; | |||
"14"; | |||
v1i = vector(10, 0, 2); | |||
"15"; | |||
m2i = 4; | |||
"16"; | |||
v2i = vector(0, 6["-u"](), 3); | |||
"17"; | |||
m3i = 5; | |||
"18"; | |||
v3i = vector(0, 0, 0); | |||
"22"; | |||
o1 = sphere({ pos: vector(10["-u"](), 0, 2["-u"]()), radius: 0.5, color: color.red }); | |||
"23"; | |||
o1.v = v1i; | |||
"24"; | |||
o1.m = m1i; | |||
"25"; | |||
o1.p = o1.v["*"](o1.m); | |||
"26"; | |||
o2 = sphere({ pos: vector(0, 6, 3), radius: 0.5, color: color.blue }); | |||
"27"; | |||
o2.v = v2i; | |||
"28"; | |||
o2.m = m2i; | |||
"29"; | |||
o2.p = o2.v["*"](o2.m); | |||
"30"; | |||
o3 = sphere({ pos: vector(0, 0, 0), radius: 0.5, color: color.orange }); | |||
"31"; | |||
o3.v = v3i; | |||
"32"; | |||
o3.m = m3i; | |||
"33"; | |||
o3.p = o3.m["*"](o3.v); | |||
"35"; | |||
origin = sphere({ pos: vector(0, 0, 0), radius: 0.1, color: color.white }); | |||
"39"; | |||
totalP = o1.p["+"](o2.p)["+"](o3.p); | |||
"40"; | |||
totalPX = totalP.x; | |||
"41"; | |||
totalPY = totalP.y; | |||
"42"; | |||
totalPZ = totalP.z; | |||
"43"; | |||
_$rapyd$_print("The total momentum vector is initially,", totalP); | |||
"44"; | |||
_$rapyd$_print("This is calculated by adding the x, y, and z components of each"); | |||
"45"; | |||
_$rapyd$_print("objects individual momentum, calculated using P = M*V"); | |||
"46"; | |||
_$rapyd$_print("Take note of the x, y, and z values of this total for later"); | |||
"48"; | |||
m = 0; | |||
"49"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; | |||
var __1 = (m < 15.9); if (__1) { | |||
"50"; | |||
return rate(10, __cb(wait, __frame, 89, 8, function __$main() { | |||
"51"; | |||
m = m["+"](0.1); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() { | |||
"53"; | |||
t = 0; | |||
"55"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; | |||
var __3 = (t < 0.9); if (__3) { | |||
"56"; | |||
return rate(10, __cb(wait, __frame, 98, 8, function __$main() { | |||
"57"; | |||
o1.pos = o1.pos["+"](o1.v["*"](dT)); | |||
"58"; | |||
o2.pos = o2.pos["+"](o2.v["*"](dT)); | |||
"59"; | |||
o3.pos = o3.pos["+"](o3.v["*"](dT)); | |||
"60"; | |||
t = t["+"](dT); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() { | |||
"61"; | |||
_$rapyd$_print("The Collision Happens"); | |||
"63"; | |||
m = 0; | |||
"64"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; | |||
var __5 = (m < 1.9); if (__5) { | |||
"65"; | |||
return rate(10, __cb(wait, __frame, 115, 8, function __$main() { | |||
"66"; | |||
m = m["+"](0.1); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() { | |||
"71"; | |||
m1f = 2; | |||
"72"; | |||
v1f = vector(5, 6["-u"](), 0); | |||
"73"; | |||
m2f = 4; | |||
"75"; | |||
m3f = 5; | |||
"76"; | |||
v3f = v1f; | |||
"79"; | |||
o1.v = v1f; | |||
"80"; | |||
o3.v = v3f; | |||
"85"; | |||
pOf1and3 = v1f["*"](m1f["+"](m2f)); | |||
"92"; | |||
o2.p = totalP["-"](pOf1and3); | |||
"95"; | |||
o2.v = o2.p["/"](m2f); | |||
"98"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; | |||
var __7 = (t < 4); if (__7) { | |||
"99"; | |||
return rate(10, __cb(wait, __frame, 142, 8, function __$main() { | |||
"100"; | |||
o1.pos = o1.pos["+"](o1.v["*"](dT)); | |||
"101"; | |||
o2.pos = o2.pos["+"](o2.v["*"](dT)); | |||
"102"; | |||
o3.pos = o3.pos["+"](o3.v["*"](dT)); | |||
"103"; | |||
t = t["+"](dT); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() { | |||
"105"; | |||
_$rapyd$_print("It is observed that object 1 embeds in in object 3, therefore"); | |||
"106"; | |||
_$rapyd$_print("they move together after the collision. They both move with a"); | |||
"107"; | |||
_$rapyd$_print("velocity of ", o1.v, " and their momentum can be calculated as one"); | |||
"108"; | |||
_$rapyd$_print("object with m = m1 + m2. Knowing this we can calculating the velocity"); | |||
"109"; | |||
_$rapyd$_print("of object 2 to be,", o2.v, " using the momentum principle because"); | |||
"110"; | |||
_$rapyd$_print("the final total momentum of the system equals the initial total"); | |||
"111"; | |||
_$rapyd$_print("momentum", totalP, ". Notice that this is the same in every demension"); | |||
"112"; | |||
_$rapyd$_print("x, y, and z. This is different than having the same magnitude of final"); | |||
"113"; | |||
_$rapyd$_print("momentum with different x, y and z components."); | |||
"114"; | |||
_$rapyd$_print("Feel free to try changing the initial and final values in the code to"); | |||
"115"; | |||
_$rapyd$_print("produce different results using the momentum principle"); wait(); }); }); }); }); });}; | |||
main; | |||
;$(function(){ window.__context = { glowscript_container: $("#glowscript").removeAttr("id") }; main(__func) })})() | |||
</script> | |||
</div> | |||
[[File: CollisionsExample.gif]] | [[File: CollisionsExample.gif]] | ||
Revision as of 14:51, 17 April 2016
SECOND EDIT BY SUNGJAE HYUN IN 2016-04-16 ADDITIONS MADE BY (currently in progress, adding computational model and difficult problem) Sam Webster 4-17-16
This topic covers Collisions, a comprehensive way to combine the Momentum and Energy Principles.
The Main Idea
Collisions are special types of contact interactions between objects. From a physics standpoint, collisions are a way to combine the Momentum and Energy Principles. In the case of collisions, if we choose a system of the two objects interacting, the change in momentum of the system and the change in energy of the system are both zero. With this in mind, calculations with collisions become very simple. There are two types of collisions, Elastic Collisions and Inelastic Collisions.
A Mathematical Model
What are the mathematical equations that allow us to model this topic. For example [math]\displaystyle{ {\frac{d\vec{p}}{dt}}_{system} = \vec{F}_{net} }[/math] where p is the momentum of the system and F is the net force from the surroundings.
A Computational Model
<link type="text/css" href="http://www.glowscript.org/css/redmond/2.1/jquery-ui.custom.css" rel="stylesheet" /> <link href="http://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet" type="text/css"> <link type="text/css" href="http://www.glowscript.org/css/ide.css" rel="stylesheet" /> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> <script type="text/javascript" src="http://www.glowscript.org/lib/jquery/2.1/jquery.min.js"></script> <script type="text/javascript" src="http://www.glowscript.org/lib/jquery/2.1/jquery-ui.custom.min.js"></script> <script type="text/javascript" src="http://www.glowscript.org/package/glow.2.1.min.js"></script> <script type="text/javascript" src="http://www.glowscript.org/package/RSrun.2.1.min.js"></script> <script type="text/javascript">
- (function() { var __rt=srequire('streamline/lib/callbacks/runtime').runtime(__filename, false),__func=__rt.__func,__cb=__rt.__cb; function _$rapyd$_print() {
var args, output; args = [].slice.call(arguments, 0); output = JSON.stringify(args); if (("console" in window)) { console.log(output.substr(1, output.length["-"](2))); };};
function main(wait) { var version, box, sphere, cylinder, pyramid, cone, helix, ellipsoid, ring, arrow, graph, display, vector, _$GS_$END, scene, _$rapyd$_Temp, _$rapyd$_print, arange, dT, m1i, v1i, m2i, v2i, m3i, v3i, o1, o2, o3, origin, totalP, totalPX, totalPY, totalPZ, m, m1f, v1f, m2f, m3f, v3f, pOf1and3, t; var __frame = { name: "main", line: 7 }; return __func(wait, this, arguments, main, 0, __frame, function __$main() {
version = ["2.1","glowscript",]; Array.prototype["+"] = function(r) { return this.concat(r); }; window.__GSlang = "vpython"; box = vp_box; sphere = vp_sphere; cylinder = vp_cylinder; pyramid = vp_pyramid; cone = vp_cone; helix = vp_helix; ellipsoid = vp_ellipsoid; ring = vp_ring; arrow = vp_arrow; graph = vp_graph; display = canvas; vector = vec; _$GS_$END = 0; scene = canvas(); _$rapyd$_Temp = 0; _$rapyd$_print = GSprint; arange = range; "6"; scene.width = 1024; "7"; scene.height = 760; "8"; scene.background = color.black; "12"; dT = 0.1; "13"; m1i = 2; "14"; v1i = vector(10, 0, 2); "15"; m2i = 4; "16"; v2i = vector(0, 6["-u"](), 3); "17"; m3i = 5; "18"; v3i = vector(0, 0, 0); "22"; o1 = sphere({ pos: vector(10["-u"](), 0, 2["-u"]()), radius: 0.5, color: color.red }); "23"; o1.v = v1i; "24"; o1.m = m1i; "25"; o1.p = o1.v["*"](o1.m); "26"; o2 = sphere({ pos: vector(0, 6, 3), radius: 0.5, color: color.blue }); "27"; o2.v = v2i; "28"; o2.m = m2i; "29"; o2.p = o2.v["*"](o2.m); "30"; o3 = sphere({ pos: vector(0, 0, 0), radius: 0.5, color: color.orange }); "31"; o3.v = v3i; "32"; o3.m = m3i; "33"; o3.p = o3.m["*"](o3.v); "35"; origin = sphere({ pos: vector(0, 0, 0), radius: 0.1, color: color.white }); "39"; totalP = o1.p["+"](o2.p)["+"](o3.p); "40"; totalPX = totalP.x; "41"; totalPY = totalP.y; "42"; totalPZ = totalP.z; "43"; _$rapyd$_print("The total momentum vector is initially,", totalP); "44"; _$rapyd$_print("This is calculated by adding the x, y, and z components of each"); "45"; _$rapyd$_print("objects individual momentum, calculated using P = M*V"); "46"; _$rapyd$_print("Take note of the x, y, and z values of this total for later"); "48"; m = 0; "49"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; var __1 = (m < 15.9); if (__1) { "50"; return rate(10, __cb(wait, __frame, 89, 8, function __$main() { "51"; m = m["+"](0.1); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() {
"53"; t = 0; "55"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; var __3 = (t < 0.9); if (__3) { "56"; return rate(10, __cb(wait, __frame, 98, 8, function __$main() { "57"; o1.pos = o1.pos["+"](o1.v["*"](dT)); "58"; o2.pos = o2.pos["+"](o2.v["*"](dT)); "59"; o3.pos = o3.pos["+"](o3.v["*"](dT)); "60"; t = t["+"](dT); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() {
"61"; _$rapyd$_print("The Collision Happens"); "63"; m = 0; "64"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; var __5 = (m < 1.9); if (__5) { "65"; return rate(10, __cb(wait, __frame, 115, 8, function __$main() { "66"; m = m["+"](0.1); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() {
"71"; m1f = 2; "72"; v1f = vector(5, 6["-u"](), 0); "73"; m2f = 4; "75"; m3f = 5; "76"; v3f = v1f; "79"; o1.v = v1f; "80"; o3.v = v3f; "85"; pOf1and3 = v1f["*"](m1f["+"](m2f)); "92"; o2.p = totalP["-"](pOf1and3); "95"; o2.v = o2.p["/"](m2f); "98"; return (function ___(__break) { var __more; var __loop = __cb(wait, __frame, 0, 0, function __$main() { __more = false; var __7 = (t < 4); if (__7) { "99"; return rate(10, __cb(wait, __frame, 142, 8, function __$main() { "100"; o1.pos = o1.pos["+"](o1.v["*"](dT)); "101"; o2.pos = o2.pos["+"](o2.v["*"](dT)); "102"; o3.pos = o3.pos["+"](o3.v["*"](dT)); "103"; t = t["+"](dT); while (__more) { __loop(); }; __more = true; }, true)); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(function __$main() {
"105"; _$rapyd$_print("It is observed that object 1 embeds in in object 3, therefore"); "106"; _$rapyd$_print("they move together after the collision. They both move with a"); "107"; _$rapyd$_print("velocity of ", o1.v, " and their momentum can be calculated as one"); "108"; _$rapyd$_print("object with m = m1 + m2. Knowing this we can calculating the velocity"); "109"; _$rapyd$_print("of object 2 to be,", o2.v, " using the momentum principle because"); "110"; _$rapyd$_print("the final total momentum of the system equals the initial total"); "111"; _$rapyd$_print("momentum", totalP, ". Notice that this is the same in every demension"); "112"; _$rapyd$_print("x, y, and z. This is different than having the same magnitude of final"); "113"; _$rapyd$_print("momentum with different x, y and z components."); "114"; _$rapyd$_print("Feel free to try changing the initial and final values in the code to"); "115"; _$rapyd$_print("produce different results using the momentum principle"); wait(); }); }); }); }); });};
main;
- $(function(){ window.__context = { glowscript_container
- $("#glowscript").removeAttr("id") }; main(__func) })})()
</script>
Examples
Be sure to show all steps in your solution and include diagrams whenever possible
Simple
Example 1) A 0.5 kg soccer ball is moving with a speed of 5 m/s directly toward to 0.7 kg basket ball which is at rest. When two balls collide and sticks together what will their final velocity be?
___
m1 = 0.5 kg v1,init = 5 m/s m2 = 0.7 kg v2,init = 0 m/s
So m1 * v1 + m2 * + v2 = (m1 + m2) * vfinal
LHS = 0.5 * 5 + 0.7 * 0 = 2.5 kg*m/s RHS = (0.5 + 0.7) * vfinal = 1.2 * vfinal
LHS = RHS in inelastic collision
2.5 = 1.2 * vfinal
vfinal = 2.5 / 1.2 = 2.08333
Thus, the final velocity is 2.08 m/s.
Middling
Example 2) A bullet of 50 caliber machine gun is 42 grams. It strikes a wooden target block of mass 10 kg stationed on a friction-less surface. The wooden block gains velocity of 1.8 m/s after being embedded with the bullet. What was the velocity of the bullet before it collided with the target?
m1 = 42/1000 = 0.042 kg v1,init = ? m2 = 10 kg v2,init = 0 m1,2 = 0.042kg + 10kg vfinal = 1.8 m/s
m1 * v1,init + m2 * v2,init = (m1 + m2) * vfinal
0.042 kg * v1,init = (0.042 + 10) * 1.8 m/s v1,init = 18.0756 / 0.042 = 430.37 m/s
Final Answer: The bullet's speed is 430.37 m/s.
Difficult
Connectedness
- How is this topic connected to something that you are interested in?
- How is it connected to your major?
- Is there an interesting industrial application?
History
Put this idea in historical context. Give the reader the Who, What, When, Where, and Why.
See also
Are there related topics or categories in this wiki resource for the curious reader to explore? How does this topic fit into that context?
Further reading
Books, Articles or other print media on this topic
External links
Internet resources on this topic
References
This section contains the the references you used while writing this page