数学建模社区-数学中国

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

作者: 亚瑟王的冬瓜    时间: 2010-5-20 10:10
标题: 求助: fmincon的参数问题
t=2.3263;2 i  |  z: Y7 }: w3 s. @% U8 j" I
k=0.5244;
) ?/ e1 f" T9 [* z. yR=0.15;0 O8 S# ^& C. F1 T* t
u=[0.1221,0.1786,0.1452,0.1054,0.1132]';
  [/ j( ^$ x: P. k) }E=[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];8 h7 g) |( F2 U; M$ T" G: S" s9 g
E=E/10000;; Z  \6 ?* y( U- c
c=0.0075;
$ y9 t: b1 F, H- l0 R6 b/ Coptions = optimset('Algorithm','active-set'); % run active-set algorithm
$ ~6 ]# o$ G: `# c+ L$ `  zaeq=[1+c,1+c,1+c,1+c,1+c];' k' u; x4 R+ }
beq=1;
, w4 J5 h4 J* S' }lb=[0,0,0,0,0]';
) i; ^. z4 L. B6 k, g6 r, Wub=[1,1,1,1,1]';% E6 M  m, J6 ~& q+ T& a
x0=[0.02,0.03,0.05,0.11,0.12]';- Q$ Q( l5 q% m) {  P
[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)
- q  t  b! W* c5 S$ j: a* Q' g6 k4 Y0 \9 ^; Z
function f = myfun( x,t,E,u,c )    %目标函数( l" ?2 ^7 f6 j# D0 A
%UNTITLED3 Summary of this function goes here
+ {0 I2 R8 X' u) }; y2 t%   Detailed explanation goes here
4 n& M6 ^" `" Y$ i8 O4 |  W1 S: x1 Sf=t*sqrt(x'*E*x)-(u'-c)*x;, Z' r/ c8 p. D* f
end" v$ o4 q' x, e( s$ A# z! O9 R
: g, ]- V9 ^  x. l+ k
function [C,Ceq] = mycon( x,t,k,E,u,c,R )  %非线性约束
; U3 N; e# N6 p) P% `' W%UNTITLED4 Summary of this function goes here% I$ ^# Q: V" W/ }
%   Detailed explanation goes here
& ?7 \- A% B# `& kC=t*k*sqrt(x'*E*x)/(t-k)-t*(u'-c)*x/(t-k)+t*R/(t-k);
- l6 I( Z$ ^8 F8 M4 nCeq=[];
0 T) q7 y' s% F8 t9 q, d( Tend
7 x, [) k# |- \) ^$ I+ |( W9 t2 x4 u: s# s7 `$ [- N6 ^
, [& e) Y  a& C' @3 [7 `
运行结果:+ z1 ]$ ]! w# c5 t* f& ~- c
Solver stopped prematurely./ v4 z" a8 L) p# a! A
fmincon stopped because it exceeded the function evaluation limit,
- r4 e- A7 K( Y; w6 U7 n( Goptions.MaxFunEvals = 500 (the default value).& c7 P' ], g* k# i. _2 U' M
9 O7 I! W0 V3 ~. r7 a
x =; K5 W* Z! l- Q9 G# m: ~2 }
   -0.0175
# v4 R1 ^( Z- n3 c    0.48759 Z# |* i: ~4 r$ w) }! R0 t4 u. r: H! `
   -0.0175
# a# P* D1 B& N+ @3 ~    0.3074" [- B6 @3 f+ I. u6 O) b8 M* m8 {
    0.2328$ K. k8 Q3 p- ?* M. _+ ^

+ K! C1 S2 ~1 v+ N' @# G( Hfval =
7 w3 X9 @. c" P( L7 {   -0.03902 O* ~4 }5 ^. d
& v. `+ |3 {( H% k& R  ?
exitflag =
! B" f/ h$ y5 l( m* O     0' \! M: O3 [3 t2 [& X
% ~; U0 ]0 w! Z8 d! {
output = # R& B0 B% {+ Z" r# s
         iterations: 51
! J5 O, |9 W1 d; T          funcCount: 505& d3 i9 I! x2 [  S9 j2 R' M  A/ @
       lssteplength: 0.1250+ r+ v0 X: }% K7 R! j5 F$ F% `  l
           stepsize: 0.08122 t# E1 e4 A. m2 W- ]8 H
          algorithm: 'medium-scale: SQP, Quasi-Newton, line-search') Z: D* n( [) y6 `5 C- ?3 E
      firstorderopt: 2.4732
/ H0 x; f4 ^: R4 C( c# b' ~    constrviolation: 0.0509
( M, u' I6 W, G) o8 X/ B# u/ p            message: [1x145 char]
7 T+ E1 w' x0 p0 ]6 @2 E1 B) i各位大虾,程序如上所述,为什么函数提前就结束了,是不是要改默认参数设置,小弟也试过,但是捣鼓不出来,希望各位高人不吝赐教,小弟先拜谢了  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
5 X+ B% T6 G" X6 z# n6 k* S3 Y. z8 S3 Q  J
" U6 c1 a( k, V! g, l% C& Y
    我也试过把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