使用Matlab最小化此总和的幅度

时间:2013-12-09 15:13:47

标签: matlab

我输出矩阵Y为:

Y=E*A;

enter image description here

其中

E=Exponential phase vectors (1xM)
A=Fixed complex numbers (MxN)

说,

 M=4;N=256;
 a = complex(randn(4,256),randn(4,256)); % coefficient matrix of "A"
 theta=has four values

目标

 What range of theta will minimize the peak of sum expression of a kth column 
 of "Y" ? i.e.,

enter image description here

Theta受enter image description here和m = 1,2,...,M

的影响

例如,

 Min: Y(theta)=Peak{a11*exp(j*theta1)+ a21*exp(j*theta2)+ ...+aM1*exp(j*thetaM)}

我的问题: 我可以使用MATLAB开发逻辑来制定这样的问题并解决它吗?

我认为这与带有约束的线性规划有关(??)。

1 个答案:

答案 0 :(得分:0)

我的方法是使用matlab优化工具箱中的fmincon函数。

你的θ矢量将是你正在寻找的解决方案的x向量。 然后通过将目标函数f(x)定义为Yk与0之间所有K之间的最大值来指定问题。

       objectiveFunction = @(x) maxY(...
            x,... %
            A);

使用个体约束lb和ub(下限和上限)表达约束0< = theta< 2pi。

然后调用fmincon

        options = optimset('Algorithm','sqp', ...
            'Display', 'iter-detailed',...
            'UseParallel', 'always',...
            'MaxFunEvals', 3000);

        [result, ~, ~] = fmincon(objectiveFunction,x0,[],[],[],[],lb,ub,[],options);