Lie-Ableitung eines Kovektorfeldes
(%i1) LieCovector ( [ l ] ) : = block ( [ f , w , x , k , Df , Dw , Lfw ] ,
   if ( length ( l ) < 3 ) or ( length ( l ) > 4 ) then
      error ( "Aufruf mit 3 oder 4 Argumenten." ) ,
   f : l [ 1 ] ,
   w : l [ 2 ] ,
   x : l [ 3 ] ,
   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 ( w )
   else
       Df : jacobian ( f , x ) ,
       Dw : jacobian ( w , x ) ,
       Lfw : list_matrix_entries ( w . Df + f . transpose ( Dw ) ) ,
       return ( LieCovector ( f , Lfw , x , k 1 ) )
) $
Beispiel: Inverses Pendel mit Motor
(%i5) f : [ x2 , ( m · G · l · sin ( x1 ) d · x2 + K · x3 ) / J , ( K · x2 + R · x3 ) / L ] $
ω : [ J · L / K , 0 , 0 ] $
x : [ x1 , x2 , x3 ] $
n : length ( x ) $
Reglerverstärkung (Approximation 1. Ordnung)
(%i7) sum ( a [ i ] · LieCovector ( f , ω , x , i ) , i , 0 , n ) $
σ : subst ( [ a [ 3 ] = 1 ] , % ) ;

\[\operatorname{(\sigma ) }\left[ -\frac{G L l m \sin{\left( \ensuremath{\mathrm{x1}}\right) } \ensuremath{\mathrm{x2}}}{K}-\frac{G L d l m \cos{\left( \ensuremath{\mathrm{x1}}\right) }}{J K}+\frac{{a_2} G L l m \cos{\left( \ensuremath{\mathrm{x1}}\right) }}{K}+\frac{{a_0} J L}{K}\operatorname{,}\frac{G L l m \cos{\left( \ensuremath{\mathrm{x1}}\right) }}{K}+\frac{L {{d}^{2}}}{J K}-\frac{{a_2} L d}{K}+\frac{{a_1} J L}{K}-K\operatorname{,}-\frac{L d}{J}-R+{a_2} L\right] \]


Created with wxMaxima.