- 积分
- 7
- 注册时间
- 2002-9-10
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-3-28 18:17:04
|
显示全部楼层
来自 山东淄博
Forcal代码,运行不到1分钟:
-
- !using["fcopt"];
- s(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)= 1; //约束条件定义
- f(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)= //目标函数定义
- ((sin(x1*sin(1*x10)))+(sin(x2*sin(2*x9)))+(sin(x3*sin(3*x8)))+(sin(x4*sin(4*x7)))+(sin(x5*sin(5*x6)))
- +(sin(x6*sin(6*x5)))+(sin(x7*sin(7*x4)))+(sin(x8*sin(8*x3)))+(sin(x9*sin(9*x2)))+(sin(x10*sin(10*x1))))
- -((cos(x1*cos(1*x10)))*(cos(x2*cos(2*x9)))*(cos(x3*cos(3*x8)))*(cos(x4*cos(4*x7)))*(cos(x5*cos(5*x6)))
- *(cos(x6*cos(6*x5)))*(cos(x7*cos(7*x4)))*(cos(x8*cos(8*x3)))*(cos(x9*cos(9*x2)))*(cos(x10*cos(10*x1))));
- main(:f,i,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)=
- {
- i=100, x1=5, x2=5, x3=5, x4=5, x5=5, x6=5, x7=5, x8=5, x9=5, x10=5,
- f=RGOpt[HFor("f"),HFor("s"),optmax,5000,optbuf,&i, optstep,1, optexpand,5, optcontract,0.9 : &x1,0,10, &x2,0,10, &x3,0,10, &x4,0,10, &x5,0,10, &x6,0,10, &x7,0,10, &x8,0,10, &x9,0,10, &x10,0,10],
- printff{"\r\nx1={1,r}, x2={2,r}, x3={3,r}, x4={4,r}, x5={5,r}, x6={6,r}, x7={7,r}, x8={8,r}, x9={9,r}, x10={10,r}, i={11,i}, f={12,r}\r\n", x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,i,f}
- };
复制代码
结果:
x1=1.4137810431334705, x2=1.5054934596766314, x3=5.6940855339374608, x4=5.8692516725605177, x5=1.6478998838206411, x6=3.4566005286507764, x7=6.52873339633806, x8=4.5170292953837201, x9=5.5137207405814381, x10=4.7123651214629687, i=99, f=-10.926612385584429
比1stOpt尚有差距。 |
|