Код: Выделить всё
import numpy as np
import sympy as sp
qutritketsn = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
qutritketss = sp.Matrix(qutritketsn)
an = [(1/sp.sqrt(1+sp.cos(sp.pi/5)))*(sp.cos(4*sp.pi*n/5)*qutritketss.col(0)+sp.sin(4*sp.pi*n/5)*qutritketss.col(1)+sp.sqrt(sp.cos(sp.pi/5))*qutritketss.col(2)) for n in range(5)]
An = [sp.eye(3)-2*(v*v.T.conjugate()) for v in an]
Код, который мне нужен для этого заключается в следующем:
Код: Выделить всё
eigproj = []
for num in range(len(An)):
eig_stuff = An[num].eigenvects(simplify=True)
eigproj_temp = []
for i in range(len(eig_stuff)):
if eig_stuff[i][1]0)*sum([eig_mult[j] for j in range(max(i, 0))])), sum([eig_mult[j] for j in range(i+1)]))] for i in range(len(eig_mult))]
eigproj_temp = [np.outer(eigvs_temp[:, i], np.conj(eigvs_temp[:, i])) for i in range(eigvs_temp.shape[0])]
eigproj_temp1 = []
for i in dup_inds:
if len(i)>1:
og = np.zeros(eigproj_temp[0].shape)
for j in i:
og += eigproj_temp[j]
eigproj_temp1.append(og)
else:
eigproj_temp1.append(eigproj_temp[i[0]])
eigproj_temp1 = np.array(eigproj_temp1)
eigproj.append(eigproj_temp1)

Подробнее здесь: https://stackoverflow.com/questions/791 ... form-valid