数学建模社区-数学中国
标题:
求助: 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 l
u=[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, C
E=E/10000;
E: [9 f8 V0 q3 U5 B5 _$ g6 K
c=0.0075;
. L+ g0 Q6 W5 V1 e
options = optimset('Algorithm','active-set'); % run active-set algorithm
5 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 J
ub=[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 g
3 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 W
f=t*sqrt(x'*E*x)-(u'-c)*x;
6 C, ]# I7 J) A% J6 s& e: a z
end
0 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 here
3 s- F) J; F9 T7 G' V$ o9 D. m/ l
% Detailed explanation goes here
: S! B: l0 d1 m$ I/ Y6 z
C=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 P
Solver stopped prematurely.
% W% N) K( _" G) k* O
fmincon 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# A
x =
% \& H3 {5 o1 H' J. ]4 P3 j% s
-0.0175
6 G1 L1 X$ [4 ?0 S m
0.4875
9 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.4732
1 |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 G
3 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