数学建模社区-数学中国
标题:
求助: fmincon的参数问题
[打印本页]
作者:
亚瑟王的冬瓜
时间:
2010-5-20 10:10
标题:
求助: fmincon的参数问题
t=2.3263;
0 H. O- r8 u4 _4 s' J+ o7 V7 x- O) P
k=0.5244;
A, U1 C! I! A" Q# m- b! `* y
R=0.15;
4 @" r; G( ?' @* Q( \- v
u=[0.1221,0.1786,0.1452,0.1054,0.1132]';
2 A% k* Z/ G z+ U
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];
) `4 @3 M$ ^8 z0 s! M
E=E/10000;
4 S5 q$ R9 R: W" m( E9 ^8 C
c=0.0075;
$ L* r( c* q& ? K. |
options = optimset('Algorithm','active-set'); % run active-set algorithm
* V J0 R$ @" e! j) J- ]$ Q9 ^
aeq=[1+c,1+c,1+c,1+c,1+c];
3 T. ~ ^( U$ `; o2 N
beq=1;
% V" Q" J' d: }! F
lb=[0,0,0,0,0]';
. e v. ~' ~' ^2 r: |3 e
ub=[1,1,1,1,1]';
- D& _ K, \0 r4 S1 ?. n
x0=[0.02,0.03,0.05,0.11,0.12]';
* T0 z6 p& ?1 {: _ 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)
" U5 ]! F2 v( P* Y- A+ Q
" u9 _- L" K2 u5 Z2 z3 o
function f = myfun( x,t,E,u,c ) %目标函数
6 t+ Z/ t2 `9 \# _0 x. `- Z* T
%UNTITLED3 Summary of this function goes here
4 ^/ z5 p4 M& S- `
% Detailed explanation goes here
. d/ n W& Z! H1 p
f=t*sqrt(x'*E*x)-(u'-c)*x;
( d- o z" F8 ~& i
end
% K6 z. ]& ?- { b! Y
) k9 z. e6 r' c5 x
function [C,Ceq] = mycon( x,t,k,E,u,c,R ) %非线性约束
% g1 ?3 O- l: d
%UNTITLED4 Summary of this function goes here
1 K5 l6 b( _2 x I% p5 F( O6 N
% Detailed explanation goes here
: w( B" E3 j% I0 z# E# X/ p
C=t*k*sqrt(x'*E*x)/(t-k)-t*(u'-c)*x/(t-k)+t*R/(t-k);
2 z! r/ U3 f) W
Ceq=[];
5 A# }2 V1 L+ k$ v$ W5 A6 p
end
9 m) o( M& _7 [" M% r! P( T
. L7 H& y8 y7 i b# @) ?6 D
3 k2 V' ^7 y& l5 C
运行结果:
3 G$ b; |( x0 j: V7 I* o0 y
Solver stopped prematurely.
4 l6 \' m! j1 Y7 o" o$ ]
fmincon stopped because it exceeded the function evaluation limit,
. J5 W! S% H3 ?* f* }( G" g4 B
options.MaxFunEvals = 500 (the default value).
' y0 A: N Y- x" [4 ?" O
u! r* v$ g7 L0 N! x8 r
x =
/ V% `; z; w9 ]5 w' z& Q
-0.0175
0 J8 |& u, B7 J. G. S7 q3 @# H2 W
0.4875
9 a' _/ }! }1 b7 t
-0.0175
2 _6 ^! s" ~9 V8 A7 Q2 t
0.3074
4 j& }# E" _; J0 h/ P- Q
0.2328
/ P" A% o% S# ^, {: g& x/ ^' V
6 y# }* U/ O3 ^! s* n! Z
fval =
% I. P& X! D0 X1 `: z
-0.0390
) x- }# P# A H) U* ^+ s
7 T$ S/ s3 ]5 M6 _0 S. T3 }- ~
exitflag =
% C5 g( d5 r$ M& @& r
0
" N' h4 V- f$ a3 D8 |
5 `" _4 X. ?( i1 @9 F' `
output =
6 ^/ W6 R* \7 I2 l7 k% ~; b
iterations: 51
/ Y5 z k, F( L. x0 J- X% G
funcCount: 505
/ h9 e% S! J+ o5 i0 ], C
lssteplength: 0.1250
9 _( _ E- ^* N+ l3 r% q9 X
stepsize: 0.0812
9 V# g( \5 z- C- u
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
- ~% |) O. G$ d& e! ]
firstorderopt: 2.4732
1 Z* ~2 A2 I/ N9 i* G, x7 K7 L: S# i" t
constrviolation: 0.0509
# V, C& h. a7 u: _4 k( B2 f. s
message: [1x145 char]
/ ]2 a# i5 y+ v3 A
各位大虾,程序如上所述,为什么函数提前就结束了,是不是要改默认参数设置,小弟也试过,但是捣鼓不出来,希望各位高人不吝赐教,小弟先拜谢了 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
- g" \' t" X* s S
: S! k3 B* @' w8 E
" l% `: b7 ~3 B
我也试过把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