数学建模社区-数学中国

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

作者: 亚瑟王的冬瓜    时间: 2010-5-20 10:10
标题: 求助: fmincon的参数问题
t=2.3263;
0 ]6 S+ G$ e/ b' Q7 I: ~k=0.5244;. ^- U; ]7 J" H3 A3 m6 O
R=0.15;
( I. K# Q, E. ~8 lu=[0.1221,0.1786,0.1452,0.1054,0.1132]';9 y' b( U* Z- W& L
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];
6 @3 @+ [" I; M, CE=E/10000;  E: [9 f8 V0 q3 U5 B5 _$ g6 K
c=0.0075;
. L+ g0 Q6 W5 V1 eoptions = optimset('Algorithm','active-set'); % run active-set algorithm5 l5 A+ x7 t7 _  Z1 R$ }! [  o
aeq=[1+c,1+c,1+c,1+c,1+c];$ \4 ], h! x1 ]% ]
beq=1;
% M4 S& ?6 E+ ~8 ^3 o* W9 Q, S' ?lb=[0,0,0,0,0]';
- ]( `# e8 N( ]9 g3 z0 x0 Jub=[1,1,1,1,1]';! s/ M/ B# c( u; k7 p
x0=[0.02,0.03,0.05,0.11,0.12]';6 W/ k  w5 l7 V) Y6 b) V
[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)
9 I+ S% f% \! j, N3 g3 g! p/ g: [4 J. y( v
function f = myfun( x,t,E,u,c )    %目标函数
3 Y0 F, Y1 V5 z8 U* ?) @2 {%UNTITLED3 Summary of this function goes here, A1 ^' f' L; q4 c/ y: L
%   Detailed explanation goes here
0 C: O# I4 a6 d, ]3 C9 Wf=t*sqrt(x'*E*x)-(u'-c)*x;
6 C, ]# I7 J) A% J6 s& e: a  zend0 G, ?" K) N. d. s
# i2 q2 T! c4 P8 k4 T9 N) u& a
function [C,Ceq] = mycon( x,t,k,E,u,c,R )  %非线性约束* ?: l% k- @( M! u4 H
%UNTITLED4 Summary of this function goes here3 s- F) J; F9 T7 G' V$ o9 D. m/ l
%   Detailed explanation goes here
: S! B: l0 d1 m$ I/ Y6 zC=t*k*sqrt(x'*E*x)/(t-k)-t*(u'-c)*x/(t-k)+t*R/(t-k);7 @' ]% I! F; O, h. d9 r# S6 ~0 Q
Ceq=[];
$ C* Z( ^2 J; E) P2 B+ ?end$ ?7 u; D! x, `5 l6 D

# f. @8 X$ y) v5 M
/ F. q  f( l6 Y3 J0 S% m运行结果:
8 M- l( t0 p% ?) b; h- C1 N  PSolver stopped prematurely.
% W% N) K( _" G) k* Ofmincon stopped because it exceeded the function evaluation limit,7 L1 F, N" x" P8 W( ]1 N
options.MaxFunEvals = 500 (the default value).+ Z7 @# d+ y  _& v5 X% Z' X

6 H& B+ O3 A7 g# Ax =
% \& H3 {5 o1 H' J. ]4 P3 j% s   -0.01756 G1 L1 X$ [4 ?0 S  m
    0.48759 x0 {; d6 L- f/ n' ~& |8 X! b
   -0.0175
7 i% ?0 k. F) i, a/ R; f    0.3074  K" ~: s: K% o8 S' v
    0.2328. g9 B4 t8 F& T& E. K
5 T/ ]/ m* B) c. f9 i
fval =
; b( B0 y; K, _6 K/ u   -0.0390
* T) h) h2 F' c) K: f! N1 @/ \" F* x: C& v* m
exitflag =
8 V. d9 ]$ s4 O6 P     0
" x$ ^7 G$ }" f, @: M) M& V, e8 g- F8 r: p) z& y; A6 V
output =
; P: K0 M0 J/ Z8 C& c1 B  |         iterations: 51
5 C7 A$ H9 Q4 \# ?4 [; x          funcCount: 505. g2 n6 q7 P: }7 Y
       lssteplength: 0.1250
0 N& d* `* K2 m5 y4 Z, u8 ?2 ~           stepsize: 0.0812
" V: B3 g; F4 H7 W8 V4 l          algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'0 L8 U- z/ q+ r) z
      firstorderopt: 2.47321 |8 G' n1 v) m: M  W
    constrviolation: 0.0509+ W2 O/ V8 P7 G! A/ [
            message: [1x145 char]
3 D9 N4 c7 n5 Q8 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 + J% r9 Z9 {4 a0 N( W9 _

6 s! p( W' J! h; G9 x/ K* e5 G3 a  R2 A4 y- n3 D% h8 R
    我也试过把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