回 帖 发 新 帖 刷新版面

主题:请帮忙看看这是哪里出错了??

请各位大侠帮忙看看是哪里出错了这个程序,非线性优化的,

function  f=confun(x)
%x由[x1,x2,x3,x4,x5]
%x1是消声片的厚度,单位为m, x2是片间距(m), x3是片高(m), x4是有效片长(m), x5是片数
  IL=35;
  Q=18;
  c=343;
  f=x(4)*(x(1)+x(2))*(x(2)+x(3))*(1+Q/c*x(2)*x(3)*x(5))/2*IL*x(2)*x(2)*x(3);

function [g,c]=myfun(x)
   IL=35;
  Q=18;
  c=343;
% %   l=0.26=x4;
  f1=10;
  f2=7000;
  vel=8;
  alfa=0.072;
  bta=1;
  kec=alfa+bta*x(4);
  density=1.29;
  dH=kec*density*vel*vel/2;
  lmax=75;
  g(1)=Q/x(5)*x(2)*x(3)-sqrt(2*dH/kec*density);
  g(2)=60*log10(Q)-(lmax+13)-50*log10(x(5)*x(2)*x(3));
  g(3)=0.4-x(2)/(x(1)+x(2));
  g(4)=x(2)/(x(1)+x(2))-0.65;
  g=[g(1);g(2);g(3);g(4)]
  c=[];

clear,clc
f1=10;
f2=7000;
x0=[0,0,0,0,0];
A=[0 1 0 0 0;-1 0 0 0 0];
b=[756.8/f1;-10.32/f2]';
lb=[0.09,0.172,2.04,1.94,24];
ub=[0.218,0.3,2.2,2.1,32];
% options=optimset('LargeScale','off','Display','iter');
x=fmincon(@confun,x0,A,b,[],[],lb,ub,@myfun);
总显示错误:

Optimization terminated: first-order optimality measure less
 than options.TolFun and maximum constraint violation is less
 than options.TolCon.
不知道是哪里出错了,请各位执教!!!!

回复列表 (共1个回复)

沙发

Warning: Large-scale (trust region) method does not currently solve this type of problem,
switching to medium-scale (line search).
> In F:\MATLAB\toolbox\optim\fmincon.m at line 213
  In F:\MATLAB\work\aa.m at line 10
Optimization terminated successfully:
 First-order optimality measure less than options.TolFun and
  maximum constraint violation is less than options.TolCon
Active inequalities (to within options.TolCon = 1e-006):
  lower      upper     ineqlin   ineqnonlin
    2                                4
    3                                 
    4                                 
    5                                 

x =

    0.0926    0.1720    2.0400    1.9400   24.0000


f =

    1.7293

我来回复

您尚未登录,请登录后再回复。点此登录或注册