У меня есть следующая целевая функция:
Я не уверен, как написать это в 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)