Exponenciação de matriz em Python

Estou tentando exponenciar uma matriz complexa em Python e estou com alguns problemas. Estou usando oscipy.linalg.expm função, e estou tendo uma mensagem de erro bastante estranha quando tento o seguinte código:

import numpy as np
from scipy import linalg

hamiltonian = np.mat('[1,0,0,0;0,-1,0,0;0,0,-1,0;0,0,0,1]')

# This works
t_list = np.linspace(0,1,10)
unitary = [linalg.expm(-(1j)*t*hamiltonian) for t in t_list]

# This doesn't
t_list = np.linspace(0,10,100)
unitary = [linalg.expm(-(1j)*t*hamiltonian) for t in t_list]

O erro quando a segunda experiência é executada é:

This works!
Traceback (most recent call last):
  File "matrix_exp.py", line 11, in <module>
    unitary_t = [linalg.expm(-1*t*(1j)*hamiltonian) for t in t_list]
  File "/usr/lib/python2.7/dist-packages/scipy/linalg/matfuncs.py",     line 105, in expm
    return scipy.sparse.linalg.expm(A)
  File "/usr/lib/python2.7/dist- packages/scipy/sparse/linalg/matfuncs.py", line 344, in expm
    X = _fragment_2_1(X, A, s)
  File "/usr/lib/python2.7/dist-  packages/scipy/sparse/linalg/matfuncs.py", line 462, in _fragment_2_1
    X[k, k] = exp_diag[k]
TypeError: only length-1 arrays can be converted to Python scalars

Isso parece realmente estranho, pois tudo que mudei foi a variedade det Eu estava usando. É porque o Hamiltoniano é diagonal? Em geral, os hamiltonianos não serão, mas também quero que funcione para os diagonais. Eu realmente não sei a mecânica deexpm, Então, qualquer ajuda seria bem-vinda.

questionAnswers(1)

yourAnswerToTheQuestion