Я использую Python 3.7 и Numpy 1.16.5.
Я пытался использовать следующий код:
import numpy as np
def Fjacob(fun,x,reg):
class FJAC():
def __init__(self):
self.z = np.spacing(shape=(6,1))
self.A = np.spacing(shape=(10,10))
z = np.vectorize(fun)
n = np.size(x)
m = np.size(z)
A = np.empty(shape=(m,n))
h = n*np.spacing(1)
ns = range(0,n)
for k in ns:
x1 = x;
x1[k] = x1[k]+h*1j
A[:][k] = np.imag(z(x1,reg))/h
FJacobi = FJAC()
FJacobi.z = z
FJacobi.A = A
return FJacobi
def fstate(x,reg):
return x
x = np.random.rand(10,1)
reg = np.random.rand(9,1)
Fjac = Fjacob(fstate,x,reg)
Цель этого кода - получить Якобиан функции fstate.
Однако, когда я попытался запустить этот код, я получил следующее сообщение об ошибке:
ValueError: операнды не могут транслироваться вместе с фигурами (10,1) (9,1)
Что вызвало эту проблему и как ее исправить?