数学建模社区-数学中国
标题:
求助: 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. y
R=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/ C
options = optimset('Algorithm','active-set'); % run active-set algorithm
$ ~6 ]# o$ G: `# c+ L$ ` z
aeq=[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, W
ub=[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 S
f=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# `& k
C=t*k*sqrt(x'*E*x)/(t-k)-t*(u'-c)*x/(t-k)+t*R/(t-k);
- l6 I( Z$ ^8 F8 M4 n
Ceq=[];
0 T) q7 y' s% F8 t9 q, d( T
end
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( G
options.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.4875
9 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( H
fval =
7 w3 X9 @. c" P( L7 {
-0.0390
2 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.0812
2 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* S
3 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