EDA365电子论坛网
标题:
多维函数
[打印本页]
作者:
大小的小
时间:
2020-7-8 13:36
标题:
多维函数
函数如下:y=(0.0206*x(2)^2/(2*9.81*x(1))+(0.5*(1-(x(2)/(4*x(3)*9.81*(x(4)-1040)/(3*0.43*1040))^0.5*(1-(x(3)/x(1))^2)*2.7183^(-(2.65*x(5)-3.32*x(5)^2.2))))+((0.25*(x(2)/(4*x(3)*9.81*(x(4)-1040)/(3*0.43*1040))^0.5*(1-(x(3)/x(1))^2)*2.7183^(-(2.65*x(5)-3.32*x(5)^2.2)))-1)^2+x(5)*x(2)/(4*x(3)*9.81*(x(4)-1040)/(3*0.43*1040))^0.5*(1-(x(3)/x(1))^2)*2.7183^(-(2.65*x(5)-3.32*x(5)^2.2)))^0.5)*(x(4)/1040-1)+1.8413*(x(2)/(9.81*x(1)))^2.7736*(0.5*(1-(x(2)/(4*x(3)*9.81*(x(4)-1040)/(3*0.43*1040))^0.5*(1-(x(3)/x(1))^2)*2.7183^(-(2.65*x(5)-3.32*x(5)^2.2))))+((0.25*(x(2)/(4*x(3)*9.81*(x(4)-1040)/(3*0.43*1040))^0.5*(1-(x(3)/x(1))^2)*2.7183^(-(2.65*x(5)-3.32*x(5)^2.2)))-1)^2+x(5)*x(2)/(4*x(3)*9.81*(x(4)-1040)/(3*0.43*1040))^0.5*(1-(x(3)/x(1))^2)*2.7183^(-(2.65*x(5)-3.32*x(5)^2.2)))^0.5)*0.43*x(3)/x(1)*(x(4)/1040-1))/(x(4)*x(5)/1040);
t# s: A; f4 J T Z5 W/ A. p# T
3 J1 L3 t" ?7 W9 {$ T; l( X5 e& C
函数中有五个自变量,自变量之间没有任何的约束关系,但是自变量有范围,x(1)=[0.2,0.4],x(2)=[1.234,3],x(3)=[0.01,0.04],x(4)=[1190,1398],x(5)=[0.15,0.4], 劳烦大神指点看怎么编程,能求出自变量范围内的结果 ,谢谢
0 Z' M0 y. R9 {, I* k/ a6 d! K
0 @7 x S" u9 J5 v6 G0 A: \9 b
; m; k, }1 E9 Z# @
作者:
大小的小
时间:
2020-7-8 13:57
fitnessFunction=@minf_5;nvars=5;
0 W+ w, g+ F" F! u# d
options=gaoptimset;
) z. y5 T8 r- j2 d2 B7 \8 Z2 v3 _
options=gaoptimset(options,'PopInitRange',[0;1]);
2 }7 h3 E9 R5 `! Y7 _
options = gaoptimset(options,'PopulationSize',100);
# ~# q( t+ k) x
options=gaoptimset(options,'CrossoverFraction',0.9);
) m- h6 m/ ~. \1 P. i: N' x
options=gaoptimset(options,'Generations',1000);
0 q6 m* Y. F/ U. {$ _4 Q5 K5 j
options=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});
- h: D. w$ L$ c
options=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});
) p \/ F9 G2 b3 Z0 Y2 f/ a
[x fval reason output population scores]=ga(@minf_5,nvars,options)
8 N6 J6 q2 O/ S2 L! P* Z( U! V
Optimization terminated: average change in the fitness value less than options.TolFun.
0 R, i8 }5 Z# q6 `: ^
: C+ N9 T3 R: k& m
x =
/ p$ D/ W5 [) i \5 U6 x
7 _5 C0 V$ Q u- m7 }7 }( B
0.6026 0.0979 0.2421 0.9712 0.9449
5 [4 n& U1 r5 S: ]* g
I7 C* w+ E2 ~! I
9 L2 b( H9 L! _; y9 @6 q( }
fval =
# n$ K4 z4 y7 j# C
: O8 }4 D8 G1 q, f. F% L
-1.6983e+03 - 1.4575e+01i
7 N' x4 ^$ A" u3 s7 l
8 l6 S' l9 Y+ j# F9 N
附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远,
作者:
llbnmo
时间:
2020-7-8 14:02
帮你顶一下
作者:
zaiyiaaaa
时间:
2020-7-9 10:50
1 K- n6 @9 U, ?, s- H% K7 U3 J
理论上最小值就是-2.83599462789046,如果非要为正,那就是0了。
作者:
大小的小
时间:
2020-7-9 14:14
zaiyiaaaa 发表于 2020-7-9 10:50
: ~; b& I3 Q6 t' ]& a7 Y
理论上最小值就是-2.83599462789046,如果非要为正,那就是0了。
! p6 Z/ W0 C N
好吧,我再看看
5 v) E# |" w- v( _' G# w
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2