chiark / gitweb /
symbolic.py: wip p_nosing
[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 pprint(p_rightvars)
27
28 dirn_rightvars = diff(p_rightvars, s)
29
30 pprint(dirn_rightvars)
31
32 zeta = Wild('zeta')
33
34 p_nosing = (p_rightvars
35             .replace( 1-cos(zeta)  ,   2*sin(zeta/2)**2          )
36             .replace( sin(zeta)**2 ,   zeta*sinc(zeta)*sin(zeta) )
37             )
38 p_nosing[1] = (p_nosing[1]
39             .replace( sin(zeta) , zeta * sinc(zeta)                )
40                )
41
42 print
43 pprint(p_nosing,)
44