In [1]:
from itertools import repeat
from sympy import *
In [2]:
init_printing()
In [24]:
z, x, t, n = symbols('z x t n', positive=True)
o = symbols('o0:50', commutative=False)
u = symbols('u0:50', commutative=True)
In [80]:
lst = 1/(1-z)
In [81]:
catalan = (1-sqrt(1-4*z))/(2*z)
catalan
Out[81]:
In [5]:
catalan.series(z, n=10)
Out[5]:
In [6]:
catalan.diff(z,3).ratsimp().series(z, n=10)
Out[6]:
In [29]:
integrate(lst, (z,0,z))
Out[29]:
In [28]:
integrate(catalan, (z,0,z)).series(z,n=10)
Out[28]:
In [21]:
lst = (1/(1-z))
lst
Out[21]:
In [28]:
lst.diff(z,4).series(z,n=10)
Out[28]:
In [32]:
5040/24
Out[32]:
In [34]:
((1/(1-t))*(1/(1-t**5))*(1/(1-t**10))).apart()
Out[34]:
In [11]:
def multiples(z, digits=set(range(10)),degree=3):
return sum(o[i]*z**i for i in digits)**degree
In [12]:
multiples(z)
Out[12]:
In [14]:
multiples(z).series(z,n=10)
Out[14]:
In [19]:
number = 3
eps = exp(2*pi*I/number)
eps
Out[19]:
In [20]:
assert 0 == sum(eps**i for i in range(number)).simplify()
In [21]:
s = sum(multiples(z*eps**i) for i in range(number)).expand().collect(z)
In [25]:
D = dict(zip(o, repeat(S.One)))
muls = sum((c/number).simplify()*z**i
for i in range(40)
for c in [s.coeff(z,i)]
for d in [c.subs(D, simultaneous=True).radsimp()]
if d.is_Integer)
In [26]:
muls
Out[26]:
In [27]:
muls.subs(dict(zip(o, u)))
Out[27]:
In [28]:
muls.subs(dict(zip(o, repeat(1))))
Out[28]:
In [61]:
s = _.coeff(z,8)
s.radsimp()
Out[61]:
In [57]:
_.simplify()
Out[57]:
In [58]:
_.powsimp()
Out[58]:
In [ ]: