'Returns the partial angular velocities of this frame in the given
frame with respect to one or more provided generalized speeds.
Parameters
frame : ReferenceFrame
The frame with which the angular velocity is defined in.
gen_speeds : functions of time
The generalized speeds.
Returns
partial_velocities : tuple of Vector
The partial angular velocity vectors corresponding to the provided
generalized speeds.
Examples
>>> from sympy.physics.vector import ReferenceFrame, dynamicsymbols
>>> N = ReferenceFrame(\'N\')
>>> A = ReferenceFrame(\'A\')
>>> u1, u2 = dynamicsymbols(\'u1, u2\')
>>> A.set_ang_vel(N, u1 * A.x + u2 * N.y)
>>> A.partial_velocity(N, u1)
A.x
>>> A.partial_velocity(N, u1, u2)
(A.x, N.y)'

def partial_velocity(self, frame, *gen_speeds):

    partials = [self.ang_vel_in(frame).diff(speed, frame, var_in_dcm=False) for speed in gen_speeds]
    if (len(partials) == 1):
        return partials[0]
    else:
        return tuple(partials)
