Message Boards Message Boards

0
|
4098 Views
|
1 Reply
|
0 Total Likes
View groups...
Share
Share this post:

How do I use Mathematica to solve this problem?

Posted 9 years ago

Consider a large Ferris wheel above a lake. The wheel is 30 meters in radius and its center stands 80 meters above the lake level. At t = 0, a stunt person stands on the top of the Ferris wheel (theta=0) which is rotating at a constant angular velocity w = 0.2 rad/s. At t = 0, a rescue boat is 150 m from the vertical center line of the Ferris wheel and travels toward the base of the wheel at a constant speed of 10 m/s.(In other words, if the center of the wheel has coordinates (0, 80) and the initial coordinates of the person are (0, 110), the initial position of the front of the boat is (150, 0)). Assume the person has no initial velocity other than that of the rotating wheel; assume also that there are no sources of friction in this problem. Assume further that the boat is one meter in length and the long axis of the boat is moving directly toward the Ferris wheel. The Ferris wheel is rotating toward the incoming boat.Your program will allow you to determine when should the stunt person step off the Ferris wheel to safely land in the boat as it speeds by. At what angle (with respect to the vertical) should the person step off to accomplish this?

This is my code. Whenever I test values of theta, I do not get the correct answer. Here are some relevant equations for this problem:

http://www.luc.edu/faculty/dslavsk/courses/phys301/classnotes/projectequations.pdf

My code:

    Clear[g, \[Omega], R, H, h, Vb, \[Theta], Pxo, Pyo, Vxo, Vyo, Ta, Tw, \ Ttotal, Bx, P, nterms] 
g = 9.8; \[Omega] = .2; R = 30; H = 80; h = .01; Vb = 10; 
\[Theta][n_] := n*h; 
Pxo[n_] := Px[n] = R*Sin[\[Theta][n]]; 
Pyo[n_] := Pyo[n] = H + R*Cos[\[Theta][n]]; 
Vxo[n_] := Vxo[n] = \[Omega]*R*Cos[\[Theta][n]]; 
Vyo[n_] := Vyo[n] = -\[Omega]*R*Sin[\[Theta][n]]; 
Ta[n_] := (Vyo[n] + Sqrt[Vyo[n]^2 + 2*g*Pyo[n]])/g; 
Tw[n_] := \[Theta][n]/\[Omega]; 
Ttotal[n_] := Tw[n] + Ta[n]; 
Bx[n_] := Bx[n] = 150 - (Vb*Ttotal[n]); 
P[n_] := P[n] = Vxo[n]*Ttotal[n] + Pxo[n]; 
nterms = Catch[Do[If[(Bx[n] - P[n]) < 0, Throw[n]], {n, 1000}]; Throw[0]]; 
Print["Jump at ", (\[Theta][nterms]) (180/\[Pi]), \[Degree]]
POSTED BY: Billy Bob

I'd say your solution looks like 'traditional programming.' No doubt it can be easily troubleshooted to give roughly the right answer.

There is a better way. For a system this simple we should be able to write down everything we know, and then let the algebra sort itself out. Doing this by hand we'd skip easy simplifications. But you have a computer, so put things in full form with intelligible variable names.

This problem is really a lot more interesting with different rotation rates. I initially solved for a rotation rate of $2\pi/10$ which has three solutions. Notably the possibility of multiple solutions makes a lot of the assumptions in the linked pdf $extremely \ dubious!$

See attached, solution for Jump time k and splash time t. (error in notebook, conversion of time to radians to degrees is flawed, should use 36 roots / pi, yeilding 110.2 degrees.)

Attachments:
POSTED BY: David Gathercole
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract