Lie-Ableitung eines Skalarfeldes

LieScalar([l]):=block([f,h,x,k,Lfh],
    if (length(l)<3) or (length(l)>4) then 
       error ("Aufruf mit 3 oder 4 Argumenten."),
    f:l[1], /* Vektorfeld */
    h:l[2], /* Skalarfeld */
    x:l[3], /* Variable   */
    if length(l)=3 then k:1 else k:l[4],
    if not(nonnegintegerp(k)) then 
       error ("Ordnung k muss natürliche Zahl sein."),
    if k=0 then return(h)
    else 
        Lfh:jacobian([h],x).f,
        return(LieScalar(f,Lfh,x,k-1))
)$

Beispiel: Mobiler Roboter

f:[sin(x3),cos(x3),0]$
h:x1^2+x2^2$
x:[x1,x2,x3]$

Lie-Ableitung erster Ordnung

LieScalar(f,h,x);

Lie-Ableitung zweiter Ordnung

LieScalar(f,h,x,2);
trigsimp(%);

Lie-Ableitung dritter Ordnung

LieScalar(f,h,x,3);