Custom gradef definitions



Hello.

Rotations may be defined as matrix:
rot_x(a):=matrix([1,0,0],[0,cos(a),-sin(a)],[0,sin(a),cos(a)])$

Using this I calculate some angular velocities with matrix composition:

trigsimp( diff( rot_x(a).rot_y(b).rot_z(b) ,t) . rot_z(-c).rot_y(-b).rot_x(-a) )

The problem is that this is to slow for complex rotations.

I would like to define a abstract rotation function to have:

diff(rotation( direction , angle_variable ), t )  ->
rotation_d(direction, angle_variable, diff(angle_variable,t))

also a simplification rule for dot product:

rotation(direction,angle_variable) . rotation(direction, -angle_variable)  -> 1

Finally, a simple substitution may provide the final result.

With such function,  calculation for angular velocity may be done on a
higher level of abstraction.


My knowledge of maxima and lisp are not enough to create such a
function. Could You please give some sugestions?

Regards.
Pawe? Cesar Sanjuan Szklarz.