In [1]:
import numpy as np
import sympy as sy

In [3]:
s = sy.symbols('s', real=False)
h = sy.symbols('h')

In [4]:
Ac = sy.Matrix([[-2, -0.02, 0],[1,0,0], [0,2,0]])
Bc = sy.Matrix([[1],[0],[0]])
Cc = sy.Matrix([[0,0,2]])

In [11]:
sIminAc = s*sy.Matrix.eye(3) - Ac
charactPoly = sIminAc.det()
sIminAcinv = sIminAc.inv()
AA = sIminAcinv * charactPoly
for el in AA:
    print sy.simplify(sy.expand(el))


1.0*s**2
-0.02*s
0
s
s*(s**3 + 4*s**2 + 4.02*s + 0.04)/(s**2 + 2*s + 0.02)
0
2.00000000000000
(2*s**3 + 8*s**2 + 8.04*s + 0.08)/(s**2 + 2*s + 0.02)
s**2 + 2*s + 0.02

In [12]:
charactPoly


Out[12]:
s**3 + 2*s**2 + 0.02*s

In [13]:
q = sy.symbols('q')
Hq = (0.32*q**2 + 1.21*q+0.29)/(q**3 -2.82*q**2 + 2.64*q-0.82 )
sy.apart(Hq)


Out[13]:
46.2150617283951/(1.0*q - 0.82) - 45.8950617283951/(q - 1) + 10.1111111111111/(q - 1)**2

In [14]:
sy.together(- 45.8950617283951/(q - 1) + 10.1111111111111/(q - 1)**2)


Out[14]:
(-45.8950617283951*q + 56.0061728395062)/(q - 1)**2

In [ ]: