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

In [2]:
s,z = sy.symbols('s,z', real=False)
l_1, l_2 = sy.symbols('l1, l2')

In [3]:
Phi = sy.Matrix([[1.13, 0.52], [0.52, 1.13]])
Gamma = sy.Matrix([[0.13],[0.52]])
L = sy.Matrix([[l_1, l_2]])

M = z*sy.Matrix.eye(2) - (Phi - Gamma*L)
M


Out[3]:
Matrix([
[0.13*l1 + z - 1.13,     0.13*l2 - 0.52],
[    0.52*l1 - 0.52, 0.52*l2 + z - 1.13]])

In [6]:
chPoly = sy.poly(M.det(), z)
chPoly


Out[6]:
Poly(1.0*z**2 + (0.13*l1 + 0.52*l2 - 2.26)*z + 0.1235*l1 - 0.52*l2 + 1.0065, z, domain='RR[l1,l2]')

In [9]:
chDesired = sy.simplify(sy.expand((z-np.exp(-0.5))**2))

sol = sy.solve((chPoly - chDesired).coeffs(), [l_1, l_2])

In [10]:
sol


Out[10]:
{l1: 1.61072237375216, l2: 1.61066302305182}

In [ ]: