/

# Examples¶

In the following sections we give few examples of what can be do with this module.

## Dimensional analysis¶

We will start from the second Newton’s law

$m a = F$

where $$m, a$$ and $$F$$ are the mass, the acceleration and the force respectively. Knowing the dimensions of $$m$$ ($$M$$) and $$a$$ ($$L T^{-2}$$), we will determine the dimension of $$F$$; obviously we will find that it is a force: $$M L T^{-2}$$.

From there we will use the expression of the gravitational force between the particle of mass $$m$$ and the body of mass $$M$$, at a distance $$r$$

$F = \frac{G m M}{r^2}$

to determine the dimension of the Newton’s constant $$G$$. The result should be $$L^3 M^{-1} T^{-2}$$.

>>> from __future__ import division
>>> from sympy import solve, Symbol, symbols
>>> from sympy.physics.unitsystems.systems import mks_dim as mks
>>> from sympy.physics.unitsystems.simplifiers import dim_simplify
>>> length, mass, time = mks["length"], mks["mass"], mks["time"]
>>> acceleration = mks["acceleration"]
>>> m, a, F = symbols("m a F")
>>> newton = m*a - F
>>> sol = solve(newton, F)[0]
>>> force = dim_simplify(sol.subs({m: mass, a: acceleration}))
>>> force
{'length': 1, 'mass': 1, 'time': -2}
>>> force == mks["force"]
True
>>> M, r, G = symbols("M r G")
>>> grav_force = F - G * m * M / r**2
>>> sol = solve(grav_force, G)[0]
>>> const = dim_simplify(sol.subs({m: mass, M: mass, r: length, F: force}))
>>> const
{'length': 3, 'mass': -1, 'time': -2}


Note that one should first solve the equation, and then substitute with the dimensions.

## Equation with quantities¶

Using Kepler’s third law

$\frac{T^2}{a^3} = \frac{4 \pi^2}{GM}$

we can find the Venus orbital period using the known values for the other variables (taken from Wikipedia). The result should be 224.701 days.

>>> from __future__ import division
>>> from sympy import solve, Symbol, symbols, pi
>>> from sympy.physics.unitsystems import Unit, Quantity as Q
>>> from sympy.physics.unitsystems.simplifiers import qsimplify
>>> from sympy.physics.unitsystems.systems import mks
>>> m, kg, s = mks["m"], mks["kg"], mks["s"]
>>> T, a, M, G = symbols("T a M G")
>>> venus_a = Q(108208000e3, m)
>>> solar_mass = Q(1.9891e30, kg)
>>> venus_subs = {"a": venus_a, "M": solar_mass, "G": mks["G"]}
>>> Tsol = solve(T**2 / a**3 - 4*pi**2 / G / M, T)[1]
>>> q = qsimplify(Tsol.subs(venus_subs))
>>> day = Unit(s.dim, abbrev="day", factor=86400)
>>> print(q.convert_to(qsimplify(day)))
224.667 day


We could also have the solar mass and the day as units coming from the astrophysical system, but I wanted to show how to create a unit that one needs.

We can see in this example that intermediate dimensions can be ill-defined, such as sqrt(G), but one should check that the final result - when all dimensions are combined - is well defined.