MGProjectileMotionFma.html   (MotionGenesis input/output).
```   (1) % MotionGenesis file:  MGProjectileMotionFma.txt
(3) %---------------------------------------------------------------------
(4) NewtonianFrame  N            % Earth (baseball park).
(5) Particle        Q            % Baseball.
(6) %---------------------------------------------------------------------
(7) Variable   x'',  y''         % Ball's horizontal and vertical measures.
(8) Constant   g = 9.8 m/s^2     % Earth's gravitational acceleration.
(9) Constant   b = 0.05 N*s/m    % Coefficient for air-resistance.
(10) Q.SetMass( m = 145 grams )
(11) %---------------------------------------------------------------------
(12) %   Translational kinematics (position, velocity, acceleration).
(13) Q.Translate( No,  x*Nx> + y*Ny> )
-> (14) p_No_Q> = x*Nx> + y*Ny>
-> (15) v_Q_N> = x'*Nx> + y'*Ny>
-> (16) a_Q_N> = x''*Nx> + y''*Ny>

(17) %---------------------------------------------------------------------
(18) %   Add relevant forces (aerodynamic and gravity).
(19) Q.AddForce(  -m * g * Ny>  )
-> (20) Force_Q> = -m*g*Ny>

(21) Q.AddForce(  -b * Q.GetVelocity(N)  )
-> (22) Force_Q> = -b*x'*Nx> + (-m*g-b*y')*Ny>

(23) %---------------------------------------------------------------------
(24) %   Form equations of motion with F = m*a.
(25) DynamicsNewton[1] = Dot( Nx>,  Q.GetDynamics() )
-> (26) DynamicsNewton[1] = b*x' + m*x''

(27) DynamicsNewton[2] = Dot( Ny>,  Q.GetDynamics() )
-> (28) DynamicsNewton[2] = m*g + b*y' + m*y''

(29) %---------------------------------------------------------------------
(30) %   Advanced: Verify dynamics equations with Kane's method.
(31) SetGeneralizedSpeed( x', y' )
(32) DynamicsKane = System.GetDynamicsKane()
-> (33) DynamicsKane = [b*x' + m*x'';  m*g + b*y' + m*y'']

(34) isSameDynamics = IsSimplifyEqual( DynamicsNewton, DynamicsKane )
-> (35) isSameDynamics = true

(36) %---------------------------------------------------------------------
(37) %   Solve dynamics equations for x'' and  y''.
(38) Solve( DynamicsNewton = 0,   x'',  y''  )
-> (39) x'' = -b*x'/m
-> (40) y'' = -g - b*y'/m

(41) %---------------------------------------------------------------------
(42) %   Input integration parameters and initial values.
(43) Input  tFinal = 3.8 sec,  tStep = 0.1 sec,  absError = 1.0E-7
(44) Input  x = 0 m,  x' = 44.7 * cosDegrees(30) m/s
(45) Input  y = 0 m,  y' = 44.7 * sinDegrees(30) m/s
(46) %---------------------------------------------------------------------
(47) %   List output quantities and solve ODEs.
(48) OutputPlot  x m,  y m
(49) ODE()  MGProjectileMotionFma

(50) %--------------------------------------------------------------------
```