Я начал изучать python, и у меня есть вопрос к программе. Я пишу в качестве первого шага, который я подумал о создании большой матрицы и больших векторов, где я буду помещать несколько меньших векторов и меньшие матрицы. Я создал наугад.
Я создал функцию, которая возвращает максимальные собственные значения этих маленьких матриц и сохраняет их в векторе. Также я создал функцию, которая в основном выполняет умножение транспонирования моих маленьких векторов на маленькие матрицы, которые я вычислил случайным образом. Однако, когда я пытаюсь передать значение умножения, я получаю следующую ошибку
"установка элемента массива с последовательностью."
import numpy as np
from scipy import linalg as lg
import math
N=5;
n=3;
Qs=np.zeros((n,N*n))
xs=np.zeros(n*N)
qs=np.zeros(n*N)
grads=np.zeros(N*n)
Lfi=np.zeros(N)
pis=np.zeros(N*n)
pi=np.zeros(N)
phat=np.zeros(N)
j=0;
gamma=np.zeros(N)
def gradient(Q,x) :
return x.transpose().dot(Q)
def eigen(Q):
val, vec = lg.eig(Q)
return np.amax(Q)
for i in range(0,N):
A = np.random.randint(10, size=(n,n))
Qs[0:n,j:j+n] += A
x = np.random.randint(10, size=(n))
qs[j:j+n] += x
x = np.random.randint(10, size=(n))
xs[j:j+n] += x
j = j+n
Lfi[i] = eigen(A)
grads[i] = gradient(A,x)
Почему Я получаю ошибку для градиента, а не, например, на Lfi?