多元非线性规划Matlab,matlab多元非线性规划,程序有点小问题,急求修改

A=[];B=[];

LB=zeros(23,1);UB=ones(23,1);%下限都为0上限为1

Aeq=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1];Beq=[1];%线性等式矩阵A为系数B为右端常数

x0=zeros(23,1);

[x,fval]=fmincon('myfun',x0,A,B,Aeq,Beq,LB,UB)

function Y=myfun1(x)

c1=[0.4404 0 0.1180 0 0 1.0000 1.0000 0 1.0000 0.5476 1.0000 1.0000 0 1.0000 1.0000 1.0000 1.0000 0.7048 1.0000 1.0000 1.0000 1.0000 0];

c2=[0 0.0062 0 0.4370 0.9310 0.1845 0 0.8640 0.4438 0.5476 1.0000 1.0000 1.0000 0 0 0.5476 0.5476 0.7048 0.5476 0 0.5476 0 0.8047];

c3=[0.8450 0.7967 0.7998 0.2257 1.0000 0 0.6592 1.0000 0.4438 0 0.2945 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000];

c4=[1.0000 1.0000 1.000 1.0000 0.6049 0 0.6592 0.8640 0 1.0000 0 0.5476 0 0 0 0.5476 0.5476 0 0.5476 0 0.5476 0 0.4603];

c=[c1;c2;c3;c4];

M1=[-1 -1 -1 0 0 0 -1 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1];

M2=[0 0 0 -1 -1 -1 0 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 ];%定义权重

i=0;

r=0;

while i<4

i=i+1;

j=0;

while j<23

j=j+1;

r11=sqrt(sumsqr(c(i,j)*x(j)+M1(j)*x(j)));

end

k=0;

while k<23

k=k+1;

r12=sqrt(sumsqr(c(i,k)*x(k)+M2(k)*x(k)));

end

r=r11-r12+r;

end

Y=r;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值