Skip to content

Instantly share code, notes, and snippets.

@davidgrenier
Last active December 17, 2015 21:29
Show Gist options
  • Save davidgrenier/5675363 to your computer and use it in GitHub Desktop.
Save davidgrenier/5675363 to your computer and use it in GitHub Desktop.
(a) A plane at velocity 100m/s in still air is flying from station P due North to station Q. A helicopter at velocity 50m/s in still air is flying from P due East to station C. If wind at velocity 20m/s blows due East when the plane and helicopter are flying, calculate the: (i) Resultant velocities of the plane and helicopter (ii) Velocity of th…
[<Measure>]
type m
[<Measure>]
type s
type Vector<[<Measure>] 't> =
{ X: float<'t>; Y: float<'t> }
with
static member Zero : Vector<'t> = { X = 0.0<_>; Y = 0.0<_> }
static member (+) (v1, v2) = { X = v1.X + v2.X; Y = v1.Y + v2.Y }
member v.Length = sqrt (v.X * v.X + v.Y * v.Y)
let planeVelocity, helicopterVelocity, windVelocity =
{ Vector<m/s>.Zero with Y = 1e2<_> }
, { Vector<_>.Zero with X = 5e1<m/s> }
, { Vector<_>.Zero with X = 2e1<m/s> }
let planeResultant, helicopterResultant =
planeVelocity + windVelocity
, helicopterVelocity + windVelocity
let helicopterResultantRelativeToPlane = planeResultant + helicopterResultant
let planeAbsolute, heliAbsolute, relativeAbsolute =
planeResultant.Length, helicopterResultant.Length, helicopterResultantRelativeToPlane.Length
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment