1
$\begingroup$

Here's part of problem from a college physics text:

A time-dependent force F = (8.00 i - 4.00 t j) N (where t is in seconds) is applied to a 2.00-kg object initially at rest. (a) At what time will the object be moving with a speed of 15.0 m/s?

Here's one way to solve the problem using Reduce:

{
  vx == Integrate[Fx/m, {t, 0, t}],
  vy == Integrate[c*t/m, {t, 0, t}],
  speed^2 == vx^2 + vy^2,
  c != 0, speed != 0, Fx != 0
  };
Reduce[%, {t, vx, vy}];
% /. {speed -> 15, Fx -> 8, c -> -4, m -> 2}

The output is:

(t == -5 I || t == 5 I || t == -3 || t == 3) && vx == 4 t && 
 vy == -((t vx)/4)

The answer given in the book is t = 3.

In the set of equations passed to Reduce, the Fx/m comes from Fx = m * ax and c*t/m comes from c*t = m * ay. Instead of doing that manual substitution, I'd like to pass those equations to Reduce and have it do the right thing. I.e. something like:

{
  Fx == m * ax,
  c*t == m * ay,
  vx == Integrate[ax, {t, 0, t}],
  vy == Integrate[ay, {t, 0, t}],
  speed^2 == vx^2 + vy^2,
  c != 0, speed != 0, Fx != 0
  };
Reduce[%, {t, vx, vy}];
% /. {speed -> 15, Fx -> 8, c -> -4, m -> 2}

Of course, that doesn't work because Integrate doesn't know that ax and ay are in terms of t.

Any suggestions on how to make something like this work?

$\endgroup$
3
$\begingroup$

I don't follow you, but the problem is simple (and better solve it by hand first to get a grip on the physics!)

Find the velocity functions:

sol = DSolve[{vx'[t] == 8/2, vy'[t] == 4 t/2, vx[0] == 0, vy[0] == 0}, {vx, vy}, t]

Solve for the Norm[] of the velocity:

Solve[Norm[{vx[t], vy[t]}] == 15 /. sol, t]
(*
 {{t -> -3.}, {t -> 3.}}
*)

Edit

Here you have it solved by using something similar to what you tried, although I don't like it at all.

r = Reduce[
          vx == Integrate[Fx/m, {t, 0, tf}] &&
          vy == Integrate[c t/m, {t, 0, tf}] &&
          vx^2 + vy^2 == sp^2, {tf, vx, vy}, Reals];

r /. {c -> 4, m -> 2, Fx -> 8, sp -> 15}

(* (tf == -3 || tf == 3) && vx == 4 tf && vy == tf^2 *)
$\endgroup$
  • $\begingroup$ Thanks belisarius. My questions is more to do with using Reduce on the expressions involving integrals however, not so much solving the problem. (I do like your solution though). $\endgroup$ – dharmatech Apr 7 '13 at 22:27
2
$\begingroup$

This:

 F[t_] := {f01 + g1*t, f02 + g2*t};
v[t_] := 1/m*Integrate[F[t], t]
vm = Sqrt[v[t].v[t] // Expand // Simplify];

defines equations in the vector form. This:

Select[Solve[(vm /. {f01 -> 8, g1 -> 0, f02 -> 0, g2 -> 4, m -> 2}) ==
     15, t] /. {a_ -> b_} -> b, # >= 0 &]

substitutes the values of the force components and the mass, solves it and selects out of all solutions the non-negative one. It returns 3 as expected. It seems that Solve in this context is a bit more easy to use then Reduce.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.