数学建模社区-数学中国
标题:
急求高手指点!!!
[打印本页]
作者:
侠客雪飞
时间:
2011-2-13 23:27
标题:
急求高手指点!!!
想要用遗传工具箱解优化问题,从网上找到的方法,目标函数是:
1 r& g% L) r- X$ s. e
( G6 K* V" E2 y; L: z
function z=dd(x);
- Z; T, j1 E/ H. \
f=842*x(1)*x(6)+588*x(2)*x(7)+498*x(3)*x(8)+62.2*x(4)*x(9)
& g/ A* B" O; _6 Y B2 O% d
+190.2*x(5)*x(10);
9 C+ Q/ E" B4 o
g(1)=-x(1)+x(6);
/ ?+ z. s) n$ u4 J! }6 a$ B, |* T/ _
g(2)=-x(2)+x(7);
- q. H( \2 _7 c/ a7 X3 ?' ?" a
g(3)=-x(3)+x(8);
; O- D. i# O. z2 s6 A& }
g(4)=-x(4)+x(9);
! K: g, E3 V9 F* r
g(5)=-x(5)+x(10);
% Y; j1 c/ a5 a- C( V1 x# p- d2 d
g(6)=x(1)-0.73;
% i& w( c4 b# v+ o+ @# L$ }
g(7)=x(2)-0.33;
2 D& q9 n2 h! f+ g$ P! I, M$ `
g(8)=x(3)-0.93;
5 {) u8 l% o2 Y( l5 L. n0 |
g(9)=x(4)-0.85;
! ~5 d4 {/ c- r, x3 I# X
g(10)=x(5)-1;
0 c Z' m2 V4 G5 F9 {
g(11)=842*x(1)+588*x(2)+498*x(3)+62.2*x(4)+190.2*x(5)-835.706;
& `+ _/ T' I% _( E/ [. v
if(g(1)<0) &(g(2)<0) &(g(3)<0) &(g(4)<0) &(g(5)<0) &(g(6)<0) &(g(7)<0) &(g(8)<0) &(g(9)<0) &(g(10)<0) &(g(11)>0) &(g(12)>0) & (x>=0) z=f;
6 a, @" N- {; G' w( p
else z=-100;
e( t9 Y- |& q# ?0 |: ~
end
" P; o3 b2 y" w2 |; c
z=-z;
/ s+ }4 h' w$ b/ w4 x! A4 S
* W# x! Q; N. M, l
主程序里是:
[+ y2 `2 y5 f2 I: |+ u
options=gaoptimset
# H+ K, J, s2 i2 p& z
('populationsize',20,'generations',100,'plotfcns',@gaplotbestf);
! a5 w( u" J$ o. i$ G
[x,z,reason]=ga(@dd,10,options)
/ I2 d! |7 L S; ^
但结果每算一次都不一样,而且z值就是输进去的那个值,此时是100.不知道为什么?用网上所给的例子就可以算出结果。
' a* u$ B& k+ ~+ _/ Q; ]/ f
. O* G/ [4 }7 K# f! K; l/ M1 j
跪求指点!
- I( n$ C1 n0 w$ Q: y: c
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5