F# has a feature called Units of Measure which does dimensional analysis for you, providing errors if you get it wrong. For example if you say:
let distance : float<meters> = gravity * 3.0<seconds>
That would yield a compile-error, since gravity is < meters/seconds^2 > and not < meters >. Also, since F# is just .NET you can write your math/physics code in a class library and reference that from your C#.
I'd reccomend you check out these blog posts for more information:
- Simple WPF game in F# using Units of Measure
- Andew Kennedy's blog