令表示具有实数项的矩阵的集合。我有一个矩阵,我想实现线性运算符作为矩阵,其中该运算符以下列方式定义:
为此,我定义了的常用基础:
那么,的元素就变成维向量,而就是作用在这些向量上的矩阵。为了获得这个矩阵,我为所有,并将得到的矩阵存储为我的矩阵表示的列。
但是,如果我遵循上述程序,我最终会得到而不是的矩阵表示,我的问题是:我在这里有概念上的误解,还是我的实现(如下所示)不正确?我在想也许我错误地索引了我的二维数组,但是从下面玩弄似乎并不能解决问题。i,j,k,l
import numpy as np
def commutator_matrix(X):
n = np.shape(X)[0]
output = np.zeros([n**2, n**2])
for i in range(n):
for j in range(n):
#obtain commutator [X, B(i,j)]
B = np.zeros([n, n])
B[i][j] = 1
com = X@B - B@X
#store com as (i*n + j)th column of output
for k in range(n):
for l in range(n):
#(i,j) -> i*n + j is index for B(i,j)
#(k,l) -> k*n + l is index for (k,l)th matrix element of B(i,j)
output[i*n + j][k*n + l] = com[k][l]
return output