- 积分
- 32
- 注册时间
- 2009-7-29
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2010-12-3 11:38:10
|
显示全部楼层
来自 湖南湘潭
用穷举法解这样的题目应该是最简单。总共只有7*6 *5 = 210种情况。
将y1,y2,y3的约束条件代入目标函数,用穷举法的结果和程序如下:
相应的matlab程序如下
运行结果 :
Ok
Elapsed time is 0.000172 seconds.
ans =
45 35 20 21.794 13.913 10.119 6680.3
% B =
%
% 25 20 15 43.301 2.5245 1.8712 4644.4
% 30 20 15 40 5.8258 1.8712 5378.3
% 35 20 15 35.707 10.119 1.8712 5920.8
% 40 20 15 30 15.826 1.8712 6178.3
% 40 25 15 30 13.301 4.3957 6393.9
% 40 30 15 30 10 7.697 6461.8
% 45 30 15 21.794 18.206 7.697 6569.5
% 45 35 15 21.794 13.913 11.99 6590.2
% 45 35 20 21.794 13.913 10.119 6680.3
相应程序 :
- clear all;
- clc;
- tic;
- smax = 0;
- k = 1;
- ind = zeros(1,7);
- for x3 = 15 : 5 : 45
- for x2 = (x3+5) : 5 : 45
- for x1 = (x2+5) : 5 : 45
- y1 = sqrt(50^2 - x1^2);
- y2 = sqrt(50^2 - x2^2) - y1;
- y3 = sqrt(50^2 - x3^2) - y1 - y2;
- S = 4*(x1*y1 + x2*y2 + x3*y3);
- if S >= smax
- ind(k,:) = [ x1, x2, x3, y1, y2, y3, S ];
- smax = S;
- k = k + 1;
- end
- end
- end
- end
- disp('Ok')
- toc
- B = sortrows(ind, 7); %排序
- format short g;
- B(end,:) % 输出最大值
复制代码 用穷举的方法得到的确定是最大值,并且可以肯定得出只有一种方案使得面积最大! |
|