Недавно я попытался решить задачу оптимизации: AX = b с помощью scipy.optimize.lsq_linear, размер матрицы A равен (23250,14725), размер вектора b равен (23250,), размер вектора lbи ub (14725,).Но когда я запускаю код, проблема выдает сообщение «MemoryError»
Моя версия python - python3.5, версия numpy - 1.11.0.и версия scipy '0.17.1'
код, который я использую, выглядит следующим образом:
import numpy as np
import h5py
from scipy import optimize
#construct matrix A
mat=h5py.File('FLGJZ_norm.mat','r')
A = np.transpose(mat['FLGJZ'])
print(A.shape)
#construct vector b
mat2=h5py.File('NEUJZ_norm.mat','r')
b1=np.transpose(mat2['NEUJZ'])
print(b1.shape)
b = np.asarray(b1).reshape(-1)
print(b.shape)
#construct lower constraint vector lb
mat3=h5py.File('lb.mat','r')
lb1=(mat3['lb'])
print(lb1.shape)
lb = np.asarray(lb1).reshape(-1)
#construct upper constraint vector ub
mat4=h5py.File('ub.mat','r')
ub1=(mat4['ub'])
print(ub1.shape)
ub = np.asarray(ub1).reshape(-1)
res=optimize.lsq_linear(A, b, bounds=(lb,ub), method='trf', tol=1e-2, lsq_solver=None, lsmr_tol='auto', max_iter=300, verbose=2)
Я ожидаю результата «x», однако он сообщает «MemoryError», как показано ниже:
] 1