matlab中错误使用fmincon,MATLAB中fmincon 函数问题

2022-09-01 15:30:39 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

MATLAB中fmincon 函数问题

Matlab的fmincon优化问题

请问:

各位高手帮忙看看我的程序又什么问题?显示错误

Error in ==> Fun at 33

[w,fval]=fmincon(@fun2,w0,[],[],Aeq,Beq,@myfuntestcon,options)

程序如下

@fun2文件内容

function f=fun2(w)

n=64;

y=zeros(n,1);

i=1:n;

y(i)=w(i).^2;

f=sum(y);

@myfuntestcon文件内容

function [c,ceq]=myfuntestcon(x)

c=[];

s=64;

u=zeros(s,1);w=zeros(s,1)

i=1:s;

u(i)=w(i);

v=sum(u);

Ceq=v-0.5

主文件内容

w0=ones(64,1);

options=optimset;

options.LargeScale=’off’;

options.MediumScale=’on’;

f=15000;a=1.2*log(10);B=0.8;z=60;L=0.2;d=1.0;N=128;c=5800;D=N*L (N-1)*d;

X=zeros(N,1);

for k=1:N;

if k<65;

x(k)=-(64-k)*(d L)-(d L)/2;

else x(k)=-x(129-k);

end

X(k)=x(k);

end

y=2:0.5:30;

for k=1:length(y);

for n=64-1):1;

T1=sqrt((X(n)-y(k)).^2 z^2)/c;

T11=sqrt((X(n) y(k)).^2 z^2)/c;

T2=(sqrt(D^2/4 z^2)-sqrt(X(n).^2 z^2))/c;

T=T1 T2;

T3=T11 T2;

t1=(sqrt(z^2 (D/2 y(k)).^2))/c;

t=t1-T;

t3=t1-T3;

s=exp(-(pi*B*f.*t).^2/a).*cos(2*pi*f.*t);

s1=exp(-(pi*B*f.*t3).^2/a).*cos(2*pi*f.*t3);

Aeq(k,n)=(s.*exp(j*2*pi*f.*T)) (s1.*exp(j*2*pi*f.*T3));

end

end

Beq=10^(-4)*ones(length(y),1);

[w,fval]=fmincon(@fun2,w0,[],[],Aeq,Beq,@myfuntestcon,options)

目的是优化如下图片内容

1个回答

矩阵转置用符号“`”来表示和实现。

例如: A=[1 2 3;4 5 6 ;7 8 9 ];

B=A`↙

B=1 4 7

2 5 8

3 6 9

如故Z是复数矩阵,则Z`为它们的复数共轭转置矩阵,非共轭转置矩阵使用Z.`或conj(Z`)。

引用:

[1] matlab 求矩阵的函数- matlab资源网(网页)

www.ymlib.net

◆◆

评论读取中….

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

精华知识

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141963.html原文链接:https://javaforall.cn

0 人点赞