数学建模社区-数学中国

标题: 求助: fmincon的参数问题 [打印本页]

作者: 亚瑟王的冬瓜    时间: 2010-5-20 10:10
标题: 求助: fmincon的参数问题
t=2.3263;; c% i; F; g+ d2 n$ R
k=0.5244;
9 _% K5 F- l4 V& h" m5 TR=0.15;
9 u& s5 N8 |0 fu=[0.1221,0.1786,0.1452,0.1054,0.1132]';
# {; ^8 m" h' K: ~: q, \' dE=[1234,864,-617,-246,987;864,642,586,-198,-815;-617,586,1433,469,-963;-246,-198,469,346,25;987,-815,-963,25,1827];
( d" U. j: T8 f6 z+ rE=E/10000;' J2 T5 O$ [/ z2 G7 ^: R
c=0.0075;
! d! l5 [7 s$ A/ V$ uoptions = optimset('Algorithm','active-set'); % run active-set algorithm7 x9 a( j' K; ]! `- w% t
aeq=[1+c,1+c,1+c,1+c,1+c];
1 n5 h# S# Z- \( G) H6 zbeq=1;
& l( N; M4 q. D3 ?5 ]( u5 Xlb=[0,0,0,0,0]';
! K( W  G8 }" Dub=[1,1,1,1,1]';" P, l  @' f% Y
x0=[0.02,0.03,0.05,0.11,0.12]';7 L/ a3 G" s0 ~0 H2 ?; |
[x,fval,exitflag,output] = fmincon(@(x) myfun( x,t,E,u,c),x0,[],[],aeq,beq,lb,ub,@(x) mycon( x,t,k,E,u,c,R),options)4 m/ `( B" ~5 {3 P

. @; ?4 W2 h6 |% r' efunction f = myfun( x,t,E,u,c )    %目标函数$ f& ^3 j/ S) k1 ?
%UNTITLED3 Summary of this function goes here
; k6 ^, J  M. u* {- _%   Detailed explanation goes here7 V! k+ @5 |4 ]) ^# K5 N
f=t*sqrt(x'*E*x)-(u'-c)*x;
. U5 z  B, w2 Send
9 g! S& s' ]. {3 I1 g) k
: Z: o7 u/ X+ o$ `- Ffunction [C,Ceq] = mycon( x,t,k,E,u,c,R )  %非线性约束! M) G6 h& `+ q# V: q  n6 G. I& I
%UNTITLED4 Summary of this function goes here' w3 f/ S1 q$ m: t& m) a/ E
%   Detailed explanation goes here4 f. B0 F1 I% ]5 I
C=t*k*sqrt(x'*E*x)/(t-k)-t*(u'-c)*x/(t-k)+t*R/(t-k);' _% D' \/ [+ O7 K  N8 H
Ceq=[];" B  s7 _& X3 ?7 O( @. W2 j
end
) G* p7 p! C' s* K8 a4 U3 ~' R
' `, G8 W& R. j( Y2 u" L& c$ R! f1 X+ }
运行结果:
% J4 G5 \( a4 i3 e/ LSolver stopped prematurely.
+ k' E2 [6 a  I; H6 L$ e0 J" G1 Kfmincon stopped because it exceeded the function evaluation limit,
$ b4 h8 i5 t' d: doptions.MaxFunEvals = 500 (the default value).+ K5 \* ^. l$ A! U; j# F: Y

  q4 s' k2 d+ I/ C+ N4 |x =& O( d5 y% _, Q, F' {1 ?, f
   -0.0175) p* z3 |6 j2 P1 L2 ~* R
    0.48754 N; U. R$ M' e  g! ^8 u
   -0.0175
+ f( R- w. p+ O; A, m3 _' D+ R    0.3074
. J& k# Q5 X7 u5 K    0.2328. P9 j/ X  X: u& i" O* f* Z

# E4 o% F' c& ~* Efval =$ U1 D( m. U% N* J0 ^" A
   -0.0390
& m* V! r" L- B$ W! @1 |
7 O+ `! t, v! g; E! c4 A- lexitflag =
& U7 D% M) s9 i% K$ J3 _% R     0! M8 ~& G7 v% i) L% n2 G

0 @  L2 h: ^) g4 |( Z4 I, g1 J3 routput =
6 F: r, e$ ?0 S% F         iterations: 51+ \  {" a" `& S7 K
          funcCount: 505. b, Z% V; i' T5 U
       lssteplength: 0.1250; i1 L" G$ L4 F) k8 z
           stepsize: 0.0812- |# p1 v) x+ \# j( y
          algorithm: 'medium-scale: SQP, Quasi-Newton, line-search': T: a1 N8 G' }6 ]+ U9 f
      firstorderopt: 2.4732
* g- s! G+ V( i! Q  b    constrviolation: 0.0509
& _% f) k( \* X( e% O            message: [1x145 char]# _2 c8 i. Z4 }4 Y
各位大虾,程序如上所述,为什么函数提前就结束了,是不是要改默认参数设置,小弟也试过,但是捣鼓不出来,希望各位高人不吝赐教,小弟先拜谢了  Orz
作者: zfq12    时间: 2010-5-20 17:38
难哦。。。。。。。。。。。。。。。。。研究研究。。。。。。。。。。。
作者: zfq12    时间: 2010-5-20 17:40
难哦。。。。。。。。。。。。。。。。。研究研究。。。。。。。。。。。
作者: zhangal    时间: 2010-5-20 17:49
不会啊,帮不上》》》》》》》》》》》》》》》》》》》》》》》》》》》》
作者: 亚瑟王的冬瓜    时间: 2010-5-20 20:13
回复 3# zfq12
: `) E6 h5 S5 S* z9 X- l* p3 Y+ M6 W6 }8 O
0 K% l' Q; h) i1 }$ \
    我也试过把lb,ub上下界去掉,结果程序跑了一个上午都还在busy。。。不知何故啊
作者: 火箭发动机    时间: 2011-9-1 20:23
我把maxfunevals 改为1000000,maxiter改为100000,仍是过早结束
作者: alair002    时间: 2012-2-6 08:16
我是新手,所以学习一下,谢了!428456379797383
作者: 韩国福娃    时间: 2012-2-17 01:25
不错不错,值得学习啊!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5