Breadcrumbs

 

 

Download ModelDownload SourceembedLaunch Website ES WebEJS

About

Intro Page

Newton's cradle

Newton's cradle is a device that demonstrates conservation of momentum and energy using a series of swinging spheres. When one sphere at the end is lifted and released, it strikes the stationary spheres, transmitting a force through the stationary spheres that pushes the last sphere upward. The last sphere swings back and strikes the still nearly stationary spheres, repeating the effect in the opposite direction. The device is named after 17th-century English scientist Sir Isaac Newton. It is also known as Newton's pendulum, Newton's balls, Newton's rocker or executive ball clicker (since the device makes a click each time the balls collide, which they do repeatedly in a steady rhythm).

A typical Newton's cradle consists of a series of identically sized metal balls suspended in a metal frame so that they are just touching each other at rest. Each ball is attached to the frame by two wires of equal length angled away from each other. This restricts the pendulums' movements to the same plane.

Controls

The first comboBox allows eay selection of number of balls in the Newton's cradle

1 ball to the left

2 balls to the left

3 balls to the left

4 balls to the left

5 balls to the left

6 balls to the left

7 balls to the left

1 ball 1 raises 1 ball to the left and 1 ball to the right

2 ball 1 raises 2 ball to the left and 1 ball to the right

2 ball 2 raises 2 balls to the left and 2 balls to the right

3 ball 3 raises 3 balls to the left and 3 balls to the right

n is the number of balls allowed

i is the index of the ball to change

for which m[i] is the mass of the index ball

play button starts the simulation

reset button starts the simulation at afresh

Physics explanation

Newton's cradle can be modeled fairly accurately with simple mathematical equations with the assumption that the balls always collide in pairs.

The motion of the balls are modelled using dθ[i]dt=ω[i]dstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">dstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">tstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">=style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">

where θθstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> is the angle of the ball

ωωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> is the angular velocity

i represents each element of the ball

t is time

the second order differential equation is d(ω[i])dt=gsin(θ[i])LkLω[i]dstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">(style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">)style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">dstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">tstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">=style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">gstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">sstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">nstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">(style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">)style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">Lstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">kstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">Lstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">

where g is gravitational constant 9.81 m/s2mstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">/style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">sstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">2style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">

L is the length of the inextensible string connecting the ball to the support for rotational motion

k is a resistant coefficient to rotational motion ωωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">

Events of the ordinary differential equations

In a state event, a TOLERANCE =1.0e-6 is defined, a loop to check through each ball i, where a check of the θ[i]θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> is greater than θ[i+1]θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">+style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">1style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> plus the TOLERANCE, if true, return the balls to their closed up angular position θ[i+1]θ[i]θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">+style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">1style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">. If false, do nothing.

Fixed Relationship Calculations

A for loop over i=0 to i less than number of balls to calculate the following

dx[i]=L(sinθ[i])dstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">xstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">=style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">Lstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">(style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">sstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">nstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">)style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> where dx[i] is the change is x[i] position

dy[i]=Lcos(θ[i])dstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ystyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">=style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">Lstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">cstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ostyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">sstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">(style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">)style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> where dy[i] is the change in y[i] position

x[i]=xc[i]+dx[i] where xc[i] is each balls centre or equilibrium x position

y[i]=ymax+dy[i] where ymax is the support y position

vx[i]=Lω[i]cos(θ[i])vstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">xstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">=style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">Lstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">cstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ostyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">sstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">(style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">)style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> where vx[i] is the x direction linear velocities of each ball

vy[i]=Lω[i]sin(θ[i])vstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ystyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">=style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">Lstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">ωstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">sstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">nstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">(style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">θstyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">[style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">istyle="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">]style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">)style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important">style="padding-top: 1px; padding-right: 0px; padding-bottom: 0px; padding-left: 0; display: block !important"> where vy[i] is the y direction linear velocities of each ball

 

Translations

Code Language Translator Run

Credits

Fu-Kwun Hwang and lookang (This email address is being protected from spambots. You need JavaScript enabled to view it.); lookang; Francisco Esquembre

Check out Glowing Newton's Cradle Desk Ornament Small And Large Sizes With Led Lights. Get it on Shopee now! https://shope.ee/3AhkYwOP03?share_channel_code=1

20231223 Update on WEBEJS does not work due to EJS5.33, need some time to fix convert to EJS6.02:  https://macmath.inf.um.es/editor?id=lookang&url=https%3A//iwant2study.org/lookangejss/02_newtonianmechanics_3dynamics/ejss_model_newtonscadlerealwee3d.zip 

 Description

       Newton's Cradle Model

reference: http://en.wikipedia.org/wiki/Newton%27s_cradle
Newton's cradle, named after Sir Isaac Newton, is a device that demonstrates conservation of momentum and energy via a series of swinging spheres.

Construction in 3D
A typical Newton's cradle consists of a series of identically sized metal balls suspended in a metal frame so that they are just NOT touching each other at rest. Each ball is attached to the frame by two wires of equal length angled away from each other. This restricts the pendulums' movements to the same plane.

Mathematical Model:

the simplified equations of motion is ODE for a single mass(pendulum) are:
d (cta)/dt = omega
d(omega)/dt = -g*sin(cta)/L

when extended to n array of masses, for for(int i=0;i<n;i++){
d (cta[i])/dt = omega[i]
d(omega[i])/dt = -g*sin(cta[i])/L  // simplified add here from air drag
}
the zero condition type as "State event" with the following code

// start of code for zero condition
double min = TOLERANCE;
for(int i=0;i<n-1;i++){
 if(cta[i]>cta[i+1]+TOLERANCE){//<TOLERANCE){// collision between i and i+1;
  cid=i;
  return cta[i+1]-cta[i];
 }
}
return TOLERANCE;// no collision
//end of code for zero condition

The action is to assumes the collision are modeled by perfectly elastic collision in one dimension with angular momentum conserved
the code is as below.
// start of code for action
m1=m[cid];
m2=m[cid+1];
v1=L*omega[cid];
v2=L*omega[cid+1];
va=((m1-m2)*v1+2*m2*v2)/(m1+m2);// velocity after collision
vb=(2*m1*v1+(m2-m1)*v2)/(m1+m2);
omega[cid]=va/L;// back to omega
omega[cid+1]=vb/L;
//end of code for action

 

Design features:

currently, the simulation allows of exploration of n max = 7 masses with each mass m[i] that can be vary from the slider control from 1 to 5 kg.
additional variables are:
gravitational constant downward g = 9.81 m/s^2
Length of pendulums, L
k coefficicent of air resistance model by equation F = k*omega

The usabilty control:
To move the balls, move the cursor over to the mass, click and hold the left mouse and drag the mouse to lift the masses. note that all masses are selectable and movable to a new height along the each path of the pendulums swing.

 

Design Views:

there are 2 types views available selectable by the check-boxes 2D and 3D,
2D world view
3D world view
hint:
    may be useful to observe the transfer of linear momentum from ball to ball by pressing the step button to aid understanding of momentum transfer during collisions
    may be useful to observe the scientific representations of kinetic energies KE[i], gravitational potential energies PE[i] and total mechanical energies TE[i]
graph of scientific representations of kinetic energies KE total, gravitational potential energies PE total and total mechanical energies TE total

Exercises:

select n =2 for a simple 2 ball system for the experiment.

Pull and release one ball. Note the results and explain mathematically in terms of conservation of engergy and momentum.
m1 u1 + m1 u1 = m1 v1+ m2 v2
1/2 m1 u1^2 + 1/2 m2 u2^2 = 1/2 m1 v1^2 + 1/2 m2 v2^2
record your observations and discuss if the two equations above can account for the observations

select n = 3 , 4, 5, 6, 7 and repeat the experiment above.
Do the results meet your expectations?
hint: can you conclude that the just before and just after collisions
momentum in = momentum out
kinetic energies in = kinetic energies out.
the clue lies in the conservation of momentum and kinetic energies just before and after collisions.

 
Discuss what are the differences between this computer model and real life apparatus.
hint: the newton's cradle motion will continue in this back and fro motion until all energies are lost to damping due to air resistance, friction, sound and vibrations.

In this simulation the default is all balls have the same mass. What would occur if this was not the case?


Advanced Learner:
Please submit your remix model that model features that are not available in the existing virtual lab and share your model with the world through NTNUJAVA Virtual Physics Laboratory http://www.phy.ntnu.edu.tw/ntnujava/index.php?board=28.0. Impacting the world with your model now.

Credits:

The Newton's Cradle Model was created by Fu-Kwun Hwang, customized by Loo Kang WEE, using the Easy Java Simulations (EJS) version 4.3.3.2 authoring and modeling tool.  An applet version of this model is available on the NTNU website < http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=2195.0 >.

You can examine and modify this compiled EJS model if you run the model (double click on the model's jar file), right-click within a plot, and select "Open EJS Model" from the pop-up menu.  You must, of course, have EJS installed on your computer.  Information about EJS is available at: <http://www.um.es/fem/Ejs/> and in the OSP comPADRE collection <http://www.compadre.org/OSP/>.     

Version:

  1. http://weelookang.blogspot.sg/2015/06/ejss-newtons-cradle-model.html  by lookang

Other Resources

  1. http://www.walter-fendt.de/html5/phen/newtoncradle_en.htm by Walter Fendt

end faq

{accordionfaq faqid=accordion4 faqclass="lightnessfaq defaulticon headerbackground headerborder contentbackground contentborder round5"}

3.5 1 1 1 1 1 1 1 1 1 1 Rating 3.50 (3 Votes)