我有以下目标函数:
我不确定如何在 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)