def Pade3(t): """Third order Pade approximation""" num = poly([-t*t*t, 12*t*t, -60*t, 120]) den = poly([t*t*t, 12*t*t, 60*t, 120]) num = num.mult(1.0/den[0]) den = den.mult(1.0/den[0]) return tf(num, den)
def Pade2(t): """Second order Pade approximation""" num = poly([t*t, -6*t, 12]) den = poly([t*t, 6*t, 12]) num = num.mult(1.0/den[0]) den = den.mult(1.0/den[0]) return tf(num, den)
def Pade4(t): """Fourth order Pade approximation""" num = poly([t*t*t*t, -20*t*t*t, 180*t*t, -840*t, 1680]) den = poly([t*t*t*t, 20*t*t*t, 180*t*t, 840*t, 1680]) num = num.mult(1.0/den[0]) den = den.mult(1.0/den[0]) return tf(num, den)
def Pade4(t): """Fourth order Pade approximation""" num = poly([t * t * t * t, -20 * t * t * t, 180 * t * t, -840 * t, 1680]) den = poly([t * t * t * t, 20 * t * t * t, 180 * t * t, 840 * t, 1680]) num = num.mult(1.0 / den[0]) den = den.mult(1.0 / den[0]) return tf(num, den)
def Pade3(t): """Third order Pade approximation""" num = poly([-t * t * t, 12 * t * t, -60 * t, 120]) den = poly([t * t * t, 12 * t * t, 60 * t, 120]) num = num.mult(1.0 / den[0]) den = den.mult(1.0 / den[0]) return tf(num, den)
def Pade2(t): """Second order Pade approximation""" num = poly([t * t, -6 * t, 12]) den = poly([t * t, 6 * t, 12]) num = num.mult(1.0 / den[0]) den = den.mult(1.0 / den[0]) return tf(num, den)
def Pade5(t): """Fifth order Pade approximation""" num = poly([-t*t*t*t*t, 30*t*t*t*t, -420*t*t*t, 3360*t*t, -15120*t, 30240]) den = poly([t*t*t*t*t, 30*t*t*t*t, 420*t*t*t, 3360*t*t, 15120*t, 30240]) num = num.mult(1.0/den[0]) den = den.mult(1.0/den[0]) return tf(num, den)
def Pade1(t): """First order Pade approximation""" num = poly([-t, 2]) den = poly([t, 2]) num = num.mult(1.0 / den[0]) den = den.mult(1.0 / den[0]) return tf(num, den)
def Pade1(t): """First order Pade approximation""" num = poly([-t, 2]) den = poly([t, 2]) num = num.mult(1.0/den[0]) den = den.mult(1.0/den[0]) return tf(num, den)
def Pade5(t): """Fifth order Pade approximation""" num = poly([ -t * t * t * t * t, 30 * t * t * t * t, -420 * t * t * t, 3360 * t * t, -15120 * t, 30240 ]) den = poly([ t * t * t * t * t, 30 * t * t * t * t, 420 * t * t * t, 3360 * t * t, 15120 * t, 30240 ]) num = num.mult(1.0 / den[0]) den = den.mult(1.0 / den[0]) return tf(num, den)
def callback(self): p1 = tf([100], poly([1, 10]) * poly([1, 10])) p2 = tf([1], [1, 1]) p3 = tf([0.5], [1, 0.05]) return p1 * (p2 + p3)
def callback(self, n): a = poly([1, 1]) for i in range(1, int(n)): a = a * poly([1, 1]) return tf([1], list(a))
def callback(self, Alpha): num = (poly([1, 1]) * poly([Alpha, 1])) * (poly([Alpha * Alpha, 1]) * \ poly([Alpha * Alpha * Alpha, 1])) return tf([1], num)
def callback(self, k, T1, T2, T3, T4, Tt, pade_order): num = poly([k * T4, k]) den = poly([T1, 1]) * poly([T2, 1]) * poly([T3, 1]) return tf(num, den) * pade_index[int(pade_order)](Tt)
def callback(self, k, T1, T2): return tf([-T1 * k, k], poly([T1, 1]) * poly([T2, 1]))
def callback(self, Omega, Zeta): return tf([Omega * Omega], poly([1, 1]) * poly([1, 2 * Zeta * Omega, Omega * Omega]))
def callback(self): den = (poly([1, 0]) * poly([1, 1])) * (poly([1, 1]) * poly([1, 36])) return tf(poly([1, 6]) * poly([1, 6]), den)
def callback(self, Alpha): return tf([-Alpha, 1], (poly([1, 1]) * poly([1, 1])) * poly([1, 1]))
def callback(self, Tau, pade_order): return tf([1], poly([Tau, 1]) * poly([Tau, 1])) * \ pade_index[int(pade_order)](1)