笔记4——ADMM

基于SDR和ADMM算法的恒模约束问题求解 - 知乎 (zhihu.com)

一种比较常见的非凸约束,对于这种约束的优化问题, 有很多种近似求解算法,比如SDR(半定松弛算法),ADMM(交替方向乘子法)等。

SDR算法

ADMM算法

 算法

%ADMM算法 
%constant module constraint
%验证收敛曲线!!!
 

clc,clear;
close all;
% s = rng(0);
N = 10;
A = rand(N) +1i*rand(N);
A=A*A';
A = (A +A')/2;

R = rand(N) +1i*rand(N);
R=R*R';
R = (R +R')/2;

iter_num = 100;
w0 =exp(1i*2*pi*rand(N,1));
phi = rand(N,1)*2*pi;
u = rand(N,1);
rho = 5;
val = zeros(iter_num,1);
val_pri = zeros(iter_num,1);
epsilon = 1e-4;
for iter = 1:iter_num
    
    %update w
    cvx_begin quiet
    variable w(N,1) complex
    minimize (real(w'*A*w)+rho/2* square_pos(norm(w-exp(1i*phi)+u,2)))
    subject to 
%    real(w0'*R*w0+w0'*R*(w-w0))>=1
%     norm(w,2)<=1
    
    cvx_end
    
    %update v
    phi =  angle(w+u);
    
    u = u + w - exp(1i*phi);
    
    
    val(iter) = real(w'*A*w)+rho/2*norm(w- exp(1i*phi)+u,2)^2-rho/2*norm(u,2)^2;
    val_pri(iter) = real(w'*A*w);
    w0 = w;
    
    if norm(w - exp(1i*phi),2)<=epsilon
        break
    end
 iter   
end
figure
plot(val(1:iter),'b-','linewidth',1.5);
hold on
plot(val_pri(1:iter),'-','linewidth',1.5);
grid on
legend('lagrangian function','objective function');
xlabel('iteration number');
ylabel('value')
set(gca,'fontsize',12);
ax=gca;
ax.FontName = 'Times New Roman';
abs(w)

基于半定规划(SDP)的无线传感器定位技术及算法实现MATLAB代码 - 知乎 (zhihu.com)

将问题通过数学建模表示成半定规划问题之后可以采用半定规划求解器进行求解,现常用的求解器有SeDumi,SDPT3,YALMIP,CVX等。其中YALMIP工具包非常贴近现实数学语言,编程十分方便,而且它不仅适用于半定规划,还适用于混合整数规划等常见优化问题,只要调用其它求解器即可。

Yalmip使用学习 - 简书 (jianshu.com)

项目目录预览 - sedumi - GitCode

YALMIP下载安装教程

YALMIP安装、教程与示例_yalmip安装教程-CSDN博客

SeDumi安装

SeDuMi教程(1)_matlab中sedumi安装-CSDN博客

CVX安装

CVX 工具箱(安装及用户指南)_cvx工具箱-CSDN博客

cvx下载地址

Download CVX | CVX Research, Inc.

cvx使用

P163 最优化:建模算法与理论

m = 20; n = 10; p = 4;
A = randn(m,n); b = randn(m,1);
C = randn(p,n); d = randn(p,1); e = rand;
cvx_begin
variable x(n)
minimize( norm( A * x - b, 2 ) )
subject to
C * x == d
norm( x, Inf ) <= e
cvx_end

ADMM求解各种优化函数及Matalb例子_matlab scripts for alternating direction method of-CSDN博客

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ADMM是交替方向乘子法(Alternating Direction Method of Multipliers)的缩写。它是一种优化算法,常用于求解凸优化问题,特别是具有结构化约束的问题。在Matlab中,ADMM算法常用于信号处理、图像处理、路径规划等多个领域。 在引用中提到了一篇关于ADMM算法在大规模MIMO系统中的无穷范数检测的文章。该算法是基于ADMM的,并且提出了相应的VLSI架构,用于实现无穷范数检测。这篇文章对ADMM在无线通信系统中的应用进行了深入研究。 另外,在引用中提到了在Matlab代码中使用ADMM算法进行无穷范数检测的情况。具体来说,这是一种基于ADMM的无穷范数检测方法。 综上所述,ADMM是交替方向乘子法的缩写,它是一种常用于解决凸优化问题的优化算法。在Matlab中,ADMM算法被广泛应用于多个领域,如信号处理、图像处理、路径规划等。其中,引用提到了在大规模MIMO系统中应用ADMM算法进行无穷范数检测的研究,而引用则提到了在Matlab代码中使用ADMM算法进行无穷范数检测的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【通信】基于 ADMM 的大规模 MIMO 无穷范数检测附matlab代码](https://blog.csdn.net/matlab_dingdang/article/details/126969692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值