WORHP - интерфейс Matlab, ОШИБКА В LEQSOL: symboli c step - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь преобразовать Hessian из matlab handle в структуру Worhp. Идея заключается в использовании случайного ввода для поиска ненулевого элемента в Hessian, что-то вроде:

% Hessian
H = @(x)[x(1) x(2); x(2) 0];

% evaluate for some random points
nr = 3;
S = zeros(2,2);
for i=1:nr
    S = S + full(H(rand(2,1)) ~=0);
end

% get sparsity
S = S ~=0;

% convert everything to vectors for WORHP
[ HMrow, HMcol ] = find(S);
posCombined   = find(S);

hess2vec(rand(2,1),posCombined,H)

function hVec = hess2vec(x, mu, scale,posCombined,Hess) 
    H = Hess(x,mu, scale);
    hVec = H(posCombined);
end

И hess2Vec назначается wCallback.hm в интерфейсе matlab.

Это работает хорошо с данным примером, т.е. примером из Maltab-интерфейса , чей гессиан представляет собой матрицу 2x2

Однако это не удалось с ошибкой нашего собственного проекта:

Error using worhp
WorhpIPLeqInit:  ERROR IN LEQSOL: symbolic step! flag =
-1

Error in worhp_interface (line 82)
[xFinal,lambdaFinal,muFinal,solverstatus] =
worhp(wData, wCallback);

Может, кто-нибудь знает, что это значит? В чем может быть причина?

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