<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 <p>
<img src="http
Step1:  
Step2:  In order to factorize eP as F U F^{-1}, for some matrix U
Step3:  
<ASSISTANT_TASK:>
Python Code:
from sympy import *
from sympy.abc import n, i, N, x, lamda, phi, z, j, r, k, a, alpha
from commons import *
from matrix_functions import *
from sequences import *
import functions_catalog
init_printing()
Explanation: <p>
<img src="http://www.cerm.unifi.it/chianti/images/logo%20unifi_positivo.jpg" 
        alt="UniFI logo" style="float: left; width: 20%; height: 20%;">
<div align="right">
Massimo Nocentini<br>
<small>
<br>February 4, 2018: exponential P
</small>
</div>
</p>
<br>
<br>
<div align="center">
<b>Abstract</b><br>
Exponential $\mathcal{P}$, according to Paul Barry's book.
</div>
End of explanation
m = 10
eP = Matrix(m, m, lambda n,k: factorial(n)*binomial(n,k)/factorial(k))
eP
inspect(eP)
eP_pm = production_matrix(eP)
eP_epm = production_matrix(eP, exp=True)
eP_pm, eP_epm
F = Matrix(m, m, diagonal_func_matrix(factorial))
F_inv = F**(-1)
F, F_inv
Explanation: 
End of explanation
B = F_inv * eP * F
B
U = Matrix(m, m, rows_shift_matrix(by=1))
U
F_inv * U * F
F_inv * U * F * B
B**(-1) * F_inv * U * F * B
F * B**(-1) * F_inv * U * F * B * F_inv
Explanation: In order to factorize eP as F U F^{-1}, for some matrix U
End of explanation
P = Matrix(m, m, binomial)
P_bar = Matrix(m, m, lambda i, j: binomial(i, j) if j < i else 0)
P_bar
production_matrix(P_bar[1:,:-1], exp=False), production_matrix(P_bar[1:,:-1], exp=True)
j=3
(P_bar**j).applyfunc(lambda i: i/factorial(j))
Explanation: 
End of explanation
<END_TASK>