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

def partial_velocity(self, frame, *gen_speeds):

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