ValueError: формы (3,3) и (2,1) не выровнены: 3 (dim 1)! = 2 (dim 0), иначе как сделать матрицу матриц - PullRequest
0 голосов
/ 04 апреля 2020

Итак, я хочу создать матрицу 2x2 H, в которой есть две матрицы, например:

Я не могу добавить изображения, поэтому нажмите здесь

Матрица в H должна быть матрицей dim x dim со значениями v в главной диагонали и значениями w в диагонали под главной диагональю.

Как это

Вот программа для этого:

def make_ham(v,w,dim):

    V = (scipy.sparse.eye(dim,k=0)*v).todense()   
    W = (scipy.sparse.eye(dim,k=-1)*w).todense() 

    Γ = V+W

    line = np.array([0,0,1,1])
    column = np.array([0,1,0,1])
    data = np.array([0,1,1,0]) 

    Hb = scipy.sparse.csc_matrix((data,(line,column)), shape=(2,2), dtype=(np.float64)) 


    H = kron(Hb, Γ)*[[1],[0]]+kron(Hb, Γ.T)*[[0],[1]]

    return H

Когда я даю дим, который не 2, я получаю ошибку. Я действительно застрял здесь, так что спасибо заранее за любые советы! :)

...