Сумма внутри целевой функции cvx - PullRequest
1 голос
/ 03 июня 2019

У меня есть следующая целевая функция:

enter image description here

Я не уверен, как написать это в cvx.

Этомоя попытка:

cvx_begin sdp
variable Q(T,n,N)
%variable X_0T*Q(:,:,N) symmetric
obj = trace(X_0T*Q(:,:,N));
for j = 1:N-1
    obj= obj + trace(X_0T*Q(:,:,j)))
    subject to
     [X_0T*Q(:,:,j+1)-eye(n), X_1T*Q(:,:,j); Q(:,:,j)'*X_1T', X_0T*Q(:,:,j)] >= 0;
      X_0T*Q(:,:,1) >= eye(n);

end
minimize(obj)
cvx_end

K_cvx_df = -U_01T*Q(:,:,N)*pinv(X_0T*Q(:,:,N))

Однако, когда я пытаюсь решить ее для N, стремящегося к бесконечности, это дает мне решение, отличное от случая с бесконечным временным горизонтом, которое составляет

 cvx_begin sdp
variable Q(T,n)
minimize( trace(X_0T*Q))
subject to
    [X_0T*Q-eye(n), X_1T*Q; Q'*X_1T', X_0T*Q] >= 0
 cvx_end
 K_cvx_d = -U_01T*Q*inv(X_0T*Q)
...