@@ -10,26 +10,29 @@ warn("This may use features of PyCall and/or SymPy which are not publicly availa
10
10
using PyCall
11
11
pyinitialize (" /opt/local/bin/python2" )
12
12
using SymPy
13
+ jacobian (Y,X) = Sym (Y[:reshape ](1 ,length (Y))[:jacobian ](X[:reshape ](1 ,length (X))))
13
14
14
15
p,q,r,s, a,b,c,d, t, e1,e2 = Sym (:p ,:q ,:r ,:s , :a ,:b ,:c ,:d , :t , :e1 ,:e2 )
15
16
X = SymMatrix ([p q; r s])
16
17
A = SymMatrix ([a b; c d])
17
- jacobian (Y,X) = Sym (Y[ :reshape ]( 1 , length (Y))[ :jacobian ](X[ :reshape ]( 1 , length (X))))
18
- Y = X^ 2 ; J = jacobian (Y,X); JAC_square = Sym (J[:det ]()[:factor ]())
19
- Y = X^ 3 ; J = jacobian (Y,X); JAC_cube = Sym (J[:det ]()[:factor ]())
20
- Y = X[:inv ](); J = jacobian (Y,X); JAC_cube = Sym (J[:det ]()[:factor ]())
21
- Y = A* X; J = jacobian (Y,X); JAC_linear = Sym (J[:det ]()[:factor ]())
22
- Y = SymMatrix ([p q; r/ p X[:det ]()/ p]); J = jacobian (Y,X); JAC_lu = Sym (J[:det ]()[:factor ]())
18
+
19
+ Y = X^ 2 ; J = jacobian (Y,X); JAC_square = Sym (J[:det ]()[:factor ]()); println ( " square: \n " , J, " \n\n " , JAC_square, " \n\n " )
20
+ Y = X^ 3 ; J = jacobian (Y,X); JAC_cube = Sym (J[:det ]()[:factor ]()); println ( " cube: \n " , J, " \n\n " , JAC_cube, " \n\n " )
21
+ Y = X[:inv ](); J = jacobian (Y,X); JAC_inv = Sym (J[:det ]()[:factor ]()); println ( " inv: \n " , J, " \n\n " , JAC_inv, " \n\n " )
22
+ Y = A* X; J = jacobian (Y,X); JAC_linear = Sym (J[:det ]()[:factor ]()); println ( " linear: \n " , J, " \n\n " , JAC_linear, " \n\n " )
23
+ Y = SymMatrix ([p q; r/ p X[:det ]()/ p]); J = jacobian (Y,X); JAC_lu = Sym (J[:det ]()[:factor ]()); println ( " lu: \n " , J, " \n\n " , JAC_lu, " \n\n " )
23
24
24
25
x = SymMatrix ([p, s, r])
25
26
y = SymMatrix ([sqrt (p), sqrt (s), r/ (sqrt (p)* sqrt (s))])
26
27
J = jacobian (y,x)
27
28
JAC_DMD = Sym (J[:det ]()[:factor ]())
29
+ println (" DMD:\n " , J, " \n\n " , JAC_DMD, " \n\n " )
28
30
29
31
x = SymMatrix ([p, s])
30
32
y = SymMatrix ([sqrt (p^ 2 + s^ 2 ), atan (s/ p)])
31
33
J = jacobian (y,x)
32
34
JAC_notrace = Sym (J[:det ]()[:factor ]())
35
+ println (" notrace:\n " , J, " \n\n " , JAC_notrace, " \n\n " )
33
36
34
37
Q = SymMatrix ([cos (t) - sin (t); sin (t) cos (t)])
35
38
D = SymMatrix ([e1 0 ; 0 e2])
@@ -38,11 +41,13 @@ y = SymMatrix([Y[1,1], Y[2,2], Y[1,2]])
38
41
x = SymMatrix ([t, e1, e2])
39
42
J = jacobian (Y,X)
40
43
JAC_symeig = Sym (J[:det ]()[:factor ]())
44
+ println (" symeig:\n " , J, " \n\n " , JAC_symeig, " \n\n " )
41
45
42
46
X = SymMatrix ([p s; s r])
43
47
Y = Sym (A[:transpose ]())* X* A
44
48
y = SymMatrix ([Y[1 ,1 ], Y[2 ,2 ], Y[1 ,2 ]])
45
49
x = SymMatrix ([p, r, s])
46
50
J = jacobian (Y,X)
47
51
JAC_symcong = Sym (J[:det ]()[:factor ]())
52
+ println (" symcong:\n " , J, " \n\n " , JAC_symcong, " \n\n " )
48
53
0 commit comments