Я пытаюсь вычислить решение для следующего уравнения: 0 = WB-S
для B
, устанавливая верхнюю и нижнюю границы для результатов. Матрицы имеют следующую форму:
W is mxn
B is zxn
S is mxz
Я пытался использовать функцию scipy.optimize.lsq_linear
scipy
. Однако я сталкиваюсь со следующей ошибкой:
b
должен иметь не более 1
размерности.
В этом случае b
равно S
в моем уравнении.
df_ret.shape
(2414, 97)
df_matrix.shape
(2414, 336)
df_bd.shape
(97,)
lb = 2,5*df_bd
up = -2.5*df_bd
res = lsq_linear(df_matrix, df_ret, bounds = (lb,up))
----------------------------------------------- ---------------------------- ValueError Traceback (последний вызов
последний) в
----> 1 res = lsq_linear (df_matrix, df_ret, bounds = (lb, up))
~ \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ сайт-пакеты \ SciPy \ optimize_lsq \ lsq_linear.py
в lsq_linear (A, b, границы, метод, tol, lsq_solver, lsmr_tol,
max_iter, многословный)
261 b = np.atleast_1d (b)
262 если b.ndim! = 1:
-> 263 повысить ValueError («b
должно иметь не более 1 измерения.»)
264
265 если b.size! = M:
ValueError: b
должно иметь не более 1 измерения.