过程系统优化习题1
问题描述
把一个半径为10的球体,切割为圆柱体,求能得到的体积最大的圆柱体尺寸。
1)写出优化的数学模型,求出最优解。
2)如果把球面表示为x2+y2+z2=100,并要求圆柱体部分满足x+y+z<=9,写出数学模型并求解。
(可用任何一种方法或软件)
问题1
分析
待切割体的描述
三维直角坐标系中,球体由球心坐标与半径描述;通过平移坐标系,使得球心位于坐标原点。
1)待切割区域为以坐标原点为球心,半径为10的球体。
圆柱体的描述
圆柱体的空间位置可以由对称轴所在直线及与其垂直的顶面和底面所在的平面描述;直线与与其垂直的两个平面的交点为上底面和下底面的圆心。
圆柱体的高度h为两个交点之间的距离;圆柱体的半径r为上、下底面圆的半径。
对称性分析
1) 待切割体具有旋转对称性,可以旋转坐标轴,使得圆柱体的轴线位于yOz平面上(具体而言,圆柱体轴线与球面有两个交点,否则无法得到非零解;通过旋转,将其中一个交点旋转到z负半轴上,再以z轴为旋转轴,将另一个交点旋转至yOz平面上)。圆柱体对于任意其对称轴所在平面具有平面对称性;做平面P垂直于平面yOz,交线为圆柱体对称轴线,则平面P为该圆柱体的对称平面。平面P将球体分割为两个区域DL 和DS (前者包含球心,体积大于等于后者),二者包含了互为平面对称的半个圆柱体。最大的圆柱体的体积由DL 和DS中较小的DS 所限制。由球体的性质可知,DS 最大体积为球体的一半,而且通过旋转操作包含了所有可能由平面P 切割出来的DS 。此时,要求平面P 经过球心,即圆柱体的轴线经过球心。经旋转操作后,可以使轴线与z轴重合。
此时,球体与圆柱体均关于z轴旋转对称。故空间问题简化为平面问题,我们可以在yOz平面上考虑该问题。
圆柱的截面为边长为 2r 和 h 的长方形,两条边分别平行于x轴与y轴,球体的截面为圆形,圆心位于坐标原点,半径R 为10。当确定了长方形的一个边长 r 之后,圆柱体的体积正比于 h ,此时,尽量使h 变大,体积的最大值取在四个顶点都位于圆上时,所以,全局极值应取在长方形的四个顶点都在圆上时。
优化目标
MAX
约束条件
方形的顶点位于圆上。
解答
MAX
s.t.
将公式代入,求导可得,
时取得最大值,此时体积为
。
问题2
分析
待切割体的描述
2)通过绕坐标原点旋转坐标系,使得平面x+y+z<=9与xOy平面平行并位于其下方,此时该平面的方程为 ,将坐标原点向-z轴平移 的距离,使得该平面与xOy平面重合,此时球心O坐标为(0,0, )。待切割区域为以O为球心,半径为10的球体位于xOy平面之上的部分。
对称性分析
2) 通过绕z轴旋转,使得圆柱轴线平行于yOz平面;过轴线做平面P垂直于待切割体的底面xOy,则平面P为该圆柱体的对称平面。平面P将待切割体分割为两个区域DL 和DS (前者包含球心,体积大于等于后者),二者包含了互为平面对称的半个圆柱体。圆柱体的体积由DL 和DS中较小的DS 所限制。由球体的性质可知,DS 最大体积为待切割体的一半,而且在这种情况下,通过沿x轴的平移操作,最大的这个DS 区域包含了所有其他可能由平面P 切割出来的DS 的区域。此时,要求平面P 经过球心,由于已经要求平面P 平行于yOz平面,那么此时圆柱体的轴线位于yOz平面上。即最大值必定取在圆柱体轴线位于yOz平面上的情境中。
由于待切割体丧失了旋转对称性,无法得出圆柱体轴线一定经过球心的结论。
此时,这条轴线是圆柱体的旋转对称轴;考虑当圆柱体轴线位于yOz平面上时,圆柱体的底面与该待切割体可能形成的截面形状,该形状可能为圆形或者被直线切去部分的圆形,圆柱体底面的圆心位于该形状的对称轴上,故以该圆心出发,增大圆的面积以形成内切圆时,切点一定为该截面形状的对称轴与圆的交点或对称轴与直线的交点。故空间问题可以简化为平面问题,我们可以仅在yOz平面上考虑该问题。我们将该平面上的坐标用xOy直角坐标系来表示。
圆柱的截面为边长为 2r 和 h 的长方形,待切割体的截面为圆心位于(0,
),半径为10的圆形位于x轴之上的部分。
几何描述
上图为空间坐标系中的yOz平面,在此重新定义为xOy直角坐标系。
B1B2C1C2为圆柱体与该平面的截面长方形,C、B分别为上下底面圆心。
定义变量R0和
描述圆柱体轴线AC,A为圆柱体轴线与x轴的交点,R0为AO的长度,
为轴线AC与x轴的夹角。由于整个形状具有关于y轴的对称性,约束
,
。
定义变量R1为线段AB的长度;R2为线段AC的长度,则
为
。约束
。
定义变量r 为圆柱体底面圆的半径。即,B1B、B2B、C1C、C2C的长度为r 。
优化目标
MAX
约束条件
B1、B2、C1、C2位于x轴上方和圆内部。
其余关于取值的约束条件。
解答
使用Lingo 16.0 进行建模与求解。
model:
sets:
Point/1..6/:x,y;
!1,2 are the Center points of two Circles of the Cylinder.
3,4,5,6 are points of intersection of Circles and xOy plane;
endsets
!Optimization Target;
MAX=(R2-R1)*R^2;
!Restriction;
!a >= 0;
a < 3.1415926;
!R0 >= 0;
R1 < R2;
!R1 >= 0;
@free(Rx);
@free(Ry);
Rx = R*@sin(a);
Ry = -R*@cos(a);
!Define the coordinate of points;
@for(Point(I):@free(x(I)));
@for(Point(I):@free(y(I)));
x(1)=-R0+R1*@cos(a);
x(2)=-R0+R2*@cos(a);
x(3)=x(1)-Rx;
x(4)=x(1)+Rx;
x(5)=x(2)-Rx;
x(6)=x(2)+Rx;
y(1)=R1*@sin(a);
y(2)=R2*@sin(a);
y(3)=y(1)-Ry;
y(4)=y(1)+Ry;
y(5)=y(2)-Ry;
y(6)=y(2)+Ry;
! Every point is in the Cicle and above x-axis;
Ox = 0;
Oy = 3^1.5;
RO = 10;
@for(Point(I):y(I)>=0);
@for(Point(I):(x(I)-Ox)^2+(y(I)-Oy)^2<=RO^2);
end
运行上述程序,得到结果如下:
Local optimal solution found.
Objective value: 758.6381
Infeasibilities: 0.2499396E-04
Total solver iterations: 14
Elapsed runtime seconds: 0.07
各变量的数值如下:
Variable Value Reduced Cost
R2 10.39230 0.000000
R1 0.000000 0.000000
R 8.544003 0.000000
A 1.570796 0.000000
R0 0.4847069E-06 0.000000
可以看出取到最大值的情况实际为圆柱体的轴线与待切割体的轴线重合的情况,并且圆柱体的半径为 ,高度为 。此时的体积为 。
对圆柱体的轴线垂直于x轴与平行于y轴的几类边界情况,可建模如下:
MAX=R^2*H;
R0 = 10;
d = 3^1.5;
!Stands on circle;
R^2+(H/2)^2=R0^2;
H<=2*d;
!Stands on the plane;
R^2+(H-d)^2=R0^2;
H>=2*d;
!Lie on circle;
R^2+(H/2)^2=R0^2;
R<=d;
!Lie on the plane;
(2*R-d)^2+(H/2)^2=R0^2;
R>=d;
优化目标可以转变为关于H或R的一元函数,经过求导、分析,表明上述模型找到的解为最优解。
转载:https://blog.csdn.net/qq_37364789/article/details/102073081