Python Numpy ValueError: операнды не могут транслироваться вместе с фигурами (10,1) (9,1) - PullRequest
0 голосов
/ 14 июля 2020

Я использую 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)

Что вызвало эту проблему и как ее исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...