MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Idiomatic use of Reduce in a physics problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114755] Re: Idiomatic use of Reduce in a physics problem
  • From: Eduardo Cavazos <wayo.cavazos at gmail.com>
  • Date: Wed, 15 Dec 2010 07:53:35 -0500 (EST)
  • References: <1292134503.1714.109.camel@dharmatech-ThinkPad-T61>

Daniel Lichtblau suggested:

> (1) You can use Reduce[...,Backsubstitution -> True] to get all
> variables in terms of numeric values.

This worked great. Thanks Daniel!

Ed

On Sun, 2010-12-12 at 00:15 -0600, Eduardo Cavazos wrote:

> Hello,
> 
> Let's use Mathematica to solve a basic projectile motion problem. Yes,
> Mathematica is basically overkill for such a problem, but it does
> illustrate some Mathematica techniques.
> 
> A home run is hit in such a way that the baseball just
> clears a wall 21.0 m high, located 130 m from home
> plate. The ball is hit at an angle of 35.0° to the horizon-
> tal, and air resistance is negligible. Find (a) the initial
> speed of the ball, (b) the time it takes the ball to reach
> the wall, and (c) the velocity components and the speed
> of the ball when it reaches the wall. (Assume the ball is
> hit at a height of 1.00 m above the ground.)
> 
> This is problem 4.49 from Physics for Scientists and Engineers by Serway
> and Jewett.
> 
> As usual, there are a bunch of ways to go about expressing the solution
> in Mathematica. Below is one way using Reduce and Notation (to provide
> something similar to traditional vector notation).
> 
> My question is, is this idiomatic use of Mathematica? I'm a Mathematica
> beginner and I'm venturing into somewhat more esotetic features like
> Notation. My approach in the solution is to provide one big expression
> to Reduce such that all the answers "pop out" in one step. Why the
> Reduce chain at the end? Sometimes when using Reduce, I have to go
> through a trial and error discovery of which vars will yield a result
> such that the answers are not in terms of other variables. Chaining
> Reduce seems to be easier. If this is a bad idea, let me know. (Yeah, it
> looks a little sloppy, but it's so convenient. :-)
> 
> Finally, I apologize for including the output in the complex looking
> Cell Expression format; plain old Copy/Paste didn't seem to work in this
> example. If you paste the expression below into Mathematica, it should
> look better.
> 
> Thanks for any suggestions.
> 
> Ed
> 
> {
> Cell[BoxData[{
>  RowBox[{"<<", "Notation`"}], "\[IndentingNewLine]", 
>  RowBox[{"Notation", "[", 
>   RowBox[{
>    TemplateBox[{OverscriptBox["v_", "\[RightVector]"]},
>     "NotationTemplateTag"], " ", "\[DoubleLongLeftRightArrow]", " ", 
>    TemplateBox[{RowBox[{"{", 
>        RowBox[{
>          SubscriptBox["v_", "x"], ",", 
>          SubscriptBox["v_", "y"]}], "}"}]},
>     "NotationTemplateTag"]}], "]"}]}], "Input"],
> 
> Cell[BoxData[{
>  RowBox[{
>   RowBox[{"{", "\[IndentingNewLine]", 
>    RowBox[{
>     RowBox[{
>      OverscriptBox[
>       SubscriptBox["v", "f"], "\[RightVector]"], "\[Equal]", 
>      RowBox[{
>       OverscriptBox[
>        SubscriptBox["v", "i"], "\[RightVector]"], "+", 
>       RowBox[{
>        OverscriptBox["a", "\[RightVector]"], "*", "t"}]}]}], ",", 
>     "\[IndentingNewLine]", 
>     RowBox[{
>      OverscriptBox[
>       SubscriptBox["r", "f"], "\[RightVector]"], "\[Equal]", 
>      RowBox[{
>       OverscriptBox[
>        SubscriptBox["r", "i"], "\[RightVector]"], "+", 
>       RowBox[{
>        OverscriptBox[
>         SubscriptBox["v", "i"], "\[RightVector]"], "*", "t"}], "+", 
>       RowBox[{
>        RowBox[{"1", "/", "2"}], "*", 
>        OverscriptBox["a", "\[RightVector]"], "*", 
>        SuperscriptBox["t", "2"]}]}]}], ",", "\[IndentingNewLine]", 
>     "\[IndentingNewLine]", 
>     RowBox[{
>      OverscriptBox[
>       SubscriptBox["r", "i"], "\[RightVector]"], "\[Equal]", 
>      RowBox[{"{", 
>       RowBox[{"0", ",", "1"}], "}"}]}], ",", "\[IndentingNewLine]", 
>     "\[IndentingNewLine]", 
>     RowBox[{
>      SubscriptBox[
>       SubscriptBox["v", "i"], "x"], ">", "0"}], ",", 
>     RowBox[{
>      SubscriptBox[
>       SubscriptBox["v", "i"], "y"], ">", "0"}], ",", 
>     "\[IndentingNewLine]", "\[IndentingNewLine]", 
>     RowBox[{
>      RowBox[{"Tan", "[", 
>       RowBox[{"\[Theta]", " ", "Degree"}], "]"}], "\[Equal]", 
>      RowBox[{
>       SubscriptBox[
>        SubscriptBox["v", "i"], "y"], "/", 
>       SubscriptBox[
>        SubscriptBox["v", "i"], "x"]}]}], ",", "\[IndentingNewLine]", 
>     "\[IndentingNewLine]", 
>     RowBox[{"\[Theta]", "\[Equal]", "35"}], ",", 
>     "\[IndentingNewLine]", "\[IndentingNewLine]", 
>     RowBox[{"t", ">", "0"}], ",", " ", 
>     RowBox[{
>      OverscriptBox["a", "\[RightVector]"], "\[Equal]", 
>      RowBox[{"{", 
>       RowBox[{"0", ",", 
>        RowBox[{"-", "9.8"}]}], "}"}]}], ",", "\[IndentingNewLine]", 
>     "\[IndentingNewLine]", 
>     RowBox[{
>      OverscriptBox[
>       SubscriptBox["r", "f"], "\[RightVector]"], "\[Equal]", 
>      RowBox[{"{", 
>       RowBox[{"130", ",", "21"}], "}"}]}], ",", "\[IndentingNewLine]",
>      "\[IndentingNewLine]", 
>     RowBox[{
>      SubscriptBox[
>       SubscriptBox["v", "f"], "x"], "\[Equal]", 
>      SubscriptBox[
>       SubscriptBox["v", "i"], "x"]}], ",", "\[IndentingNewLine]", 
>     "\[IndentingNewLine]", 
>     RowBox[{"initialSpeed", "\[Equal]", 
>      RowBox[{"Norm", "[", 
>       OverscriptBox[
>        SubscriptBox["v", "i"], "\[RightVector]"], "]"}]}], ",", 
>     "\[IndentingNewLine]", 
>     RowBox[{"finalSpeed", "\[Equal]", 
>      RowBox[{"Norm", "[", 
>       OverscriptBox[
>        SubscriptBox["v", "f"], "\[RightVector]"], "]"}]}]}], 
>    "\[IndentingNewLine]", "}"}], ";"}], "\[IndentingNewLine]", 
>  RowBox[{
>   RowBox[{"Reduce", "[", "%", "]"}], ";"}], "\[IndentingNewLine]", 
>  RowBox[{
>   RowBox[{"Reduce", "[", "%", "]"}], ";"}], "\[IndentingNewLine]", 
>  RowBox[{"Reduce", "[", "%", "]"}]}], "Input",
>  CellChangeTimes->{{3.5011213954975023`*^9, 3.501121396167547*^9}, {
>   3.501121440011367*^9, 3.5011216827801943`*^9}, {
>   3.501121724501215*^9, 3.501121727215644*^9}, {3.501121802386731*^9, 
>   3.5011219002852173`*^9}, {3.501121959426733*^9, 
>   3.5011219697977962`*^9}, {3.501122004292712*^9, 
>   3.501122017755189*^9}}]
> }




  • Prev by Date: Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator
  • Next by Date: Defining a distribution
  • Previous by thread: Idiomatic use of Reduce in a physics problem
  • Next by thread: Re: Idiomatic use of Reduce in a physics problem