chiark / gitweb /
symbolic.py: wip
[moebius3.git] / symbolic.py
1 #!/usr/bin/python
2
3 from sympy import *
4
5 import sys
6
7 #import sys, codecs
8 #if sys.stdout.encoding is None:
9 #  sys.stdout = codecs.open("/dev/stdout", "w", 'utf-8')
10
11 init_printing(use_unicode=False)
12
13 r, theta, s, la, mu = symbols('r theta s la mu')
14
15 # start      original formulation
16 # rightvars  replaces 
17
18 p_start = Matrix([
19   r * (1 - cos(theta)),
20   r * sin(theta),
21   mu * s,
22 ])
23
24 p_rightvars = p_start.subs( theta, s/r ).subs( r, 1/la )
25
26 print
27 pprint(p_rightvars)
28
29 dirn_rightvars = diff(p_rightvars, s)
30
31 print
32 pprint(dirn_rightvars)
33
34 zeta = Wild('zeta')
35
36 p_nosing = (p_rightvars
37             .replace( 1-cos(zeta)  ,   2*sin(zeta/2)**2          )
38             .replace( sin(zeta)**2 ,   zeta*sinc(zeta)*sin(zeta) )
39             )
40 p_nosing[1] = (p_nosing[1]
41             .replace( sin(zeta) , zeta * sinc(zeta)                )
42                )
43
44 print
45 pprint(p_nosing,)
46