bfb1988 发表于 2011-4-8 15:21

求助,优化问题,希望好心人帮帮忙,谢谢

最近在做一个优化问题,用matlab写的程序如下:
lb=;%设计变量下限
ub=;%设计变量上限
x0=;%变量初始值
options=optimset('LargeScale','off','display','off');
=fmincon(@mubiao,x0,[],[],[],[],lb,ub,@yueshu,options)

约束条件 yueshu.m
function =yueshu(x)
zp=((4.333*x(1)*cosd(x(4))-(x(1)*cosd(x(5))))/(cosd(x(4))+cosd(x(5))))
zr=(4.333*x(1));
as=(acosd((x(1)*cosd(22.5))/(x(1)+2.8)));
ap=(acosd((zp*cosd(22.5))/(zp+2.8)));
ar=(acosd((zr*cosd(22.5))/(zr+2.8)));
e1=(((2*pi)^(-1))*(x(1)*(tand(as)-tand(x(4)))+zp*(tand(ap)-tand(x(4)))));
e2=(((2*pi)^(-1))*(zp*(tand(ap)-tand(x(5)))-zr*(tand(ar)-tand(x(5)))));
C(1)=x(1)*(4.333*cosd(x(4))-cosd(x(5)))/cosd(x(4)+cosd(x(5)))*(1-0.5*3^0.5)+3-(0.5*3^0.5)*x(1);
C(2)=0.4-(x(3)/(x(2)*x(1)));
C(3)=(x(3)/(x(2)*x(1)))-0.9;
C(4)=2.33-6.8587*log((2.4998e-004)/(((4.333*x(1)*cosd(x(4))-(x(1)*cosd(x(5))))/(cosd(x(4))+cosd(x(5)))+x(1))/(x(3)*(x(2)^2)*(x(1)^4)*(4.333*x(1)*cosd(x(4))-(x(1)*cosd(x(5))))/(cosd(x(4))+cosd(x(5))))^0.5));
C(5)=2.33-5.4213*log((2.27e-6)*x(3)*(x(2)^2)*x(1));
C(6)=2.33-5.4213*log((1.5895e-6)*x(3)*(x(2)^2)*(4.333*x(1)*cosd(x(4))-(x(1)*cosd(x(5))))/(cosd(x(4))+cosd(x(5))));
C(7)=1.2-e1;
C(8)=1.2-e2;
C(9)=e1-2.7;
C(10)=e2;
Ceq=[]

目标函数 mubiao.m
function f=mubiao(x);
zp=((4.333*x(1)*cosd(x(4))-(x(1)*cosd(x(5))))/(cosd(x(4))+cosd(x(5))))
zr=(4.333*x(1));
as=(acosd((x(1)*cosd(22.5))/(x(1)+2.8)));
ap=(acosd((zp*cosd(22.5))/(zp+2.8)));
ar=(acosd((zr*cosd(22.5))/(zr+2.8)));
e1=(((2*pi)^(-1))*(x(1)*(tand(as)-tand(x(4)))+zp*(tand(ap)-tand(x(4)))));
e2=(((2*pi)^(-1))*(zp*(tand(ap)-tand(x(5)))-zr*(tand(ar)-tand(x(5)))));
f=-(e1+e2)

我算出来的结果 x =

   42.1760   12.7096370.0277   27.3494   23.6760超过了变量和约束限制范围,不知道为什么,有人可以帮忙看看么?
1stopt算的时候总有函数表达式错误是为什么呢?0.4-(x3/(x2*x1))<=0 这样的表达式都有错误为什么呢?
希望大家能帮帮忙,在这里先谢谢了

bfb1988 发表于 2011-4-10 13:26

还是没人回答啊。好心人帮帮忙吧

dingd 发表于 2011-4-10 21:42

1stopt好像不支持“acosd”这样的函数吧?

bfb1988 发表于 2011-4-11 12:39

恩,我的代码是matlab里面的,acosd在1stop里面是arccosh 我改过来了,想问一下,前面那些zp,zr,as,ap等式子怎样才能直接用在约束里面去呢?需要怎么定义一下,好心人帮帮忙看看,谢谢了

dingd 发表于 2011-4-11 17:31

你把完整的1stOpt代码贴出来!
页: [1]
查看完整版本: 求助,优化问题,希望好心人帮帮忙,谢谢