\( \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 ] , /* 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 ) ) ) $ |
(%i2) |
RelativeDegree
(
f
,
g
,
h
,
x
)
:
=
block
(
[
n
,
r
:
inf
,
lie
]
,
n : length ( x ) , for k : 1 thru n do ( lie : ratsimp ( LieScalar ( g , h , x ) ) , if not ( lie = 0 ) then ( r : k , return ( r ) ) , h : LieScalar ( f , h , x ) ) , r ) $ |
(%i6) |
f
:
[
x3
−
x2
^
3
,
−
x2
,
−
x3
+
x1
^
2
]
$
g : [ 0 , − x3 ^ 2 , 1 ] $ h : x1 $ x : [ x1 , x2 , x3 ] $ |
(%i7) | r : RelativeDegree ( f , g , h , x ) $ |
(%i9) |
qred
:
makelist
(
LieScalar
(
f
,
h
,
x
,
i
)
,
i
,
0
,
r
−
1
)
$
Q : jacobian ( qred , x ) ; |
\[\operatorname{(Q) }\begin{pmatrix}1 & 0 & 0\\ 0 & -3 {{\ensuremath{\mathrm{x2}}}^{2}} & 1\end{pmatrix}\]
(%i11) |
l
:
makelist
(
a
[
i
]
,
i
,
r
−
1
,
0
,
−
1
)
$
k : moore_penrose_pseudoinverse ( Q ) . l ; |
\[\operatorname{(k) }\begin{pmatrix}{a_1}\\ -\frac{3 {a_0} {{\ensuremath{\mathrm{x2}}}^{2}}}{9 {{\ensuremath{\mathrm{x2}}}^{4}}+1}\\ \frac{{a_0}}{9 {{\ensuremath{\mathrm{x2}}}^{4}}+1}\end{pmatrix}\]
Created with wxMaxima.