方法一:直接使用hermitian
方法一: 使用hermitian关键词
CVX工具箱支持复数的问题,因此可以直接使用复数的模式
使用hermitian 关键词
代码模式如下:
cvx_begin
variables X(n,n) hermitian
minimize (real(trace(C*X)))
subject to
for i=1:p
trace(A(:,:,i)*X) >= b(i);
end
for i=p+1:m
trace(A(:,:,i)*X) == b(i);
end
X = hermitian_semidefinite(n);
cvx_end
约束中第一个循环指的是约束中的不等约束
约束中第二个循环指的是约束中的等式约束
方法二:将复数问题转换为实数问题
方法二: 将复数问题转换为实值问题
按照我的理解,是将复数转换为一个列向量。然后一部分表示实部,一部分表示虚部。
举一个例子:
对于一个MIMO系统来说,接收信号可以表示为
y=Hs+n
y是接收到的信号,H是信道矩阵,s是发送的信号,n是噪声。
最小二乘法可以表示为:文章来源:https://www.toymoban.com/news/detail-420449.html
min norm(y-Hs)^2
对于这个问题,y,H,s都是复数,因此将他们实部和虚部分开
R(y)表示的是y的实部,I(y)表示的是y的虚部,其他的类似。这样虚数部分的运算就可以转换到实数部分上的运算。
上述优化问题就可以变为:
然后进行求解。文章来源地址https://www.toymoban.com/news/detail-420449.html
到了这里,关于【文献阅读笔记】利用CVX工具箱求解复数问题的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!