\( \DeclareMathOperator{\abs}{abs} \newcommand{\ensuremath}[1]{\mbox{$#1$}} \)
(%i1) |
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 ] , h : 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 ( h ) else Lfh : jacobian ( [ h ] , x ) . f , return ( LieScalar ( f , Lfh , x , k − 1 ) ) ) $ |
(%i2) |
ObservabilityMap
(
f
,
h
,
x
)
:
=
block
(
[
i
,
n
]
,
n : length ( x ) , makelist ( LieScalar ( f , h , x , i ) , i , 0 , n − 1 ) ) $ |
(%i3) | ObservabilityMatrix ( f , h , x ) : = jacobian ( ObservabilityMap ( f , h , x ) , x ) $ |
(%i4) |
LieBracket
(
[
l
]
)
:
=
block
(
[
f
,
g
,
x
,
k
,
Df
,
Dg
,
ad
]
,
if ( length ( l ) < 3 ) or ( length ( l ) > 4 ) then error ( "Aufruf mit 3 oder 4 Argumenten." ) , f : l [ 1 ] , g : 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 ( g ) else Df : jacobian ( f , x ) , Dg : jacobian ( g , x ) , ad : list_matrix_entries ( Dg . f − Df . g ) , return ( LieBracket ( f , ad , x , k − 1 ) ) ) $ |
(%i5) |
ControllabilityMatrix
(
f
,
g
,
x
)
:
=
block
(
[
i
,
n
,
L
]
,
n : length ( x ) , if length ( f ) # n then error ( "Dimensionen von f und x müssen übereinstimmen." ) , if length ( g ) # n then error ( "Dimensionen von g und x müssen übereinstimmen." ) , L : makelist ( LieBracket ( − f , g , x , i ) , i , 0 , n − 1 ) , transpose ( apply ( matrix , L ) ) ) $ |
(%i9) |
f
:
[
−
x2
−
x3
,
x1
+
a
·
x2
,
c
+
x3
·
(
x1
−
b
)
]
;
h : log ( x3 ) ; x : [ x1 , x2 , x3 ] $ n : length ( x ) $ |
\[\operatorname{(f) }\left[ -\ensuremath{\mathrm{x3}}-\ensuremath{\mathrm{x2}}\operatorname{,}a\, \ensuremath{\mathrm{x2}}+\ensuremath{\mathrm{x1}}\operatorname{,}\left( \ensuremath{\mathrm{x1}}-b\right) \, \ensuremath{\mathrm{x3}}+c\right] \]
\[\operatorname{(h) }\log{\left( \ensuremath{\mathrm{x3}}\right) }\]
(%i10) | Q : ratsimp ( ObservabilityMatrix ( f , h , x ) ) ; |
\[\operatorname{(Q) }\begin{pmatrix}0 & 0 & \frac{1}{\ensuremath{\mathrm{x3}}}\\ 1 & 0 & -\frac{c}{{{\ensuremath{\mathrm{x3}}}^{2}}}\\ -\frac{c}{\ensuremath{\mathrm{x3}}} & -1 & -\frac{{{\ensuremath{\mathrm{x3}}}^{3}}+\left( b c-c\, \ensuremath{\mathrm{x1}}\right) \, \ensuremath{\mathrm{x3}}-2 {{c}^{2}}}{{{\ensuremath{\mathrm{x3}}}^{3}}}\end{pmatrix}\]
(%i12) |
v
:
col
(
invert
(
Q
)
,
n
)
$
v : list_matrix_entries ( v ) ; |
\[\operatorname{(v) }\left[ 0\operatorname{,}-1\operatorname{,}0\right] \]
(%i13) | P : ControllabilityMatrix ( f , v , x ) ; |
\[\operatorname{(P) }\begin{pmatrix}0 & 1 & a\\ -1 & -a & 1-{{a}^{2}}\\ 0 & 0 & \ensuremath{\mathrm{x3}}\end{pmatrix}\]
(%i14) | k0 : P . [ a0 , a1 , a2 ] ; |
\[\operatorname{(k0) }\begin{pmatrix}a\, \ensuremath{\mathrm{a2}}+\ensuremath{\mathrm{a1}}\\ \left( 1-{{a}^{2}}\right) \, \ensuremath{\mathrm{a2}}-a\, \ensuremath{\mathrm{a1}}-\ensuremath{\mathrm{a0}}\\ \ensuremath{\mathrm{a2}}\, \ensuremath{\mathrm{x3}}\end{pmatrix}\]
Created with wxMaxima.