truncated exponential series over ring of matrices over symbolic ring
I want to do the following:
R.<z>=PowerSeriesRing(SR)
i,n,z=var('i,n,z')
f,g=function('f,g')
F=sum(f(i)*z^i,i,1,n)
G=sum(g(i)*z^i,i,1,n)
gamma=matrix([[0,F],[G,0]])
I then want to define a function as the first several terms of the exponential series exp(gamma). Something like
Gamma=sum(gamma^i/factorial(i),i,0,n)
This will return an error like: 'too many values to unpack'
I only want to work with this function formally until I need to specify a value of n and eventually solve for the value f(i), g(i) in terms of some other parameters (yet to be defined in this code). What are some ways to clean this up so I can work with the truncated power series with matrix coefficients?
A possibly simpler but related question is how does one build a function that will sum several powers of a matrix?