应用EXCEL规划求解工具进行优化1.线性规划—生产规划:
步骤一:建立模型:每天生产甲乙两种产品分别为X1和X2,数学模型为:目标函数:minf(X1,X2)=60*X1+120*X2
约束条件:9*X1+4*X2<=360
3*X1+4*X2<=300
4*X1+5*X2<=200
-X1<=0
-X2<=0
用EXCEL建立模型如下:
步骤二:规划求解参数确定:
步骤三:选项参数确定:
步骤四:求解:
由上面求解过程可知:X1=20,X2=24时,可使目标函数值最小,即f(X1,X2)=4080. 2.工程下料问题规划求解:
由题意可列出下列方案:
步骤一:设使用8种方案的次数分别为X1,X2,X3,X4,X5,X6,X7和X8,且均为正整数,建立数学模型如下:
目标函数:f(X)=(5*X1+10*X2+25*X3+5*X4+30*X5+10*X6+25*X7+5*X8)/((X1+X2+X3+X4+X5+X6+X7+X8)*180)
约束条件:gX1=2*X1+X2+X3+X4=100
gX1=2*X2+X3 +3*X5+2*X6+X7
gX1=X1+X3+33*X4 +2*X6+3*X7+5*X8
用EXCEL建立模型如下:
步骤二:规划求解参数确定:
步骤三:选项参数确定:
步骤四:求解:
由上面求解过程可知:X1=23,X2=50,X3=0,X4=4,X5=0,X6=0,X7=0和X8=3时,可使目标函数值最小,即f(X)=0.045139.
3.规划求解—工时安排:
某厂生产A B C三种产品,净利润分别为90元,75元,50元;使用的机时数分别为3h,手工时数分别为4h,3h,2h,由于数量和品种受到制约,机工最多为400h,手工为280h,数量最多不能超过50件,C至少要生产32件。
求:如何安排A B C的数量以获得最大利润?
解:建立数学模型:A、B、C三种产品的数量分别为X1,X2和X3,其利润为f(X):目标函数:maxf(X)=90*X1+75*X2+50*X3
约束条件:3*X1+4*X2+5*X3<=400
4*X1+3*X2+2*X3<=280
X1<=50
X2>=32
用EXCEL建立模型如下:
步骤一:建立模型:
步骤二:规划求解参数确定:
步骤三:选项参数确定:
步骤四:求解:
由上面求解过程可知:X1=0,X2=93,X3=0时,可使目标函数值最大,即f(X)=11160.
4.FORTRAN语言解读:
C ======================
SUBROUTINE FFX(N,X,FX) ;(目标函数定义)
C ======================
DIMENSION X(N)
COMMON /ONE/ I1,I2,I3,I4,NFX,I6
NFX=NFX+1
P0=ACOS(((1.0+X(1))**2-X(2)**2+25.0)/(10.0*(1.0+X(1))));(输入角初始值)
Q0=ACOS(((1.0+X(1))**2-X(2)**2-25.0)/(10.0*X(2)));(输出角初始值)
T=90.0*3.1415926/(180.0*30.0) ;(将输入角30等分后每一份值)
FX=0.0 ;(目标函数初始值)
DO 10 K=0,30 ;(循环程序入口,循环次数30次)
PI=P0+K*T ;(计算每一次循环后的输入角)
QE=Q0+2.0*(PI-P0)**2/(3.0*3.1415926);(计算每一次循环后的理想输出角)
D=SQRT(26.0-10.0*COS(PI)) ;(与L1和L4相邻的连杆四边形对角线长度r)AL=ACOS((D*D+X(2)*X(2)-X(1)*X(1))/(2.0*D*X(2)));(L3和r的夹角)
BT=ACOS((D*D+24.0)/(10.0*D)) ;(L4和r的夹角)
IF (PI.GE.0.0 .AND. PI.LT.3.1415926) THEN;(判断输入角是否在0到pi之间,计算实际输出角)
QI=3.1415926-AL-BT
ELSE
QI=3.1415926-AL+BT
ENDIF
IF(K.NE.0 .OR. k.NE.30) THEN ;(判断循环次数是否在30次内,计算目标函数)
FX=FX+(QI-QE)**2*T;
ELSE
FX=FX+(QI-QE)**2*T/2.0
ENDIF
10 CONTINUE ;(继续循环)
END ;(程序段结束)
C =========================
SUBROUTINE GGX(N,KG,X,GX) ;(约束条件函数子程序)
C =========================
DIMENSION X(N),GX(KG) ;(定义GX<=0的约束条件函数)
GX(1)=-X(1) ;(杆长L2>=0)
GX(2)=-X(2) ;(杆长L1>=0)
GX(3)=-(X(1)+X(2))+6.0 ;(最短杆L1和杆L4之和小于另两杆之和)
GX(4)=-(X(2)+4.0)+X(1) ;(最短L1和杆L2之和小于另两杆之和条件)GX(5)=-(4.0+X(1))+X(2) ;(最短L1和杆L3之和小于另两杆之和条件)GX(6)=-(1.4142*X(1)*X(2)-X(1)**2-X(2)**2)-16.0 ;(传动角大于45度)
GX(7)=-(X(1)**2+X(2)**2+1.4142*X(1)*X(2))+36.0;(传动角小于135度)
END
C =========================
SUBROUTINE HHX(N,KH,X,HX) ;(约束条件函数子程序)
C =========================
DIMENSION X(N),HX(KH) ;(定义HX=0的约束条件函数)
X(1)=X(1)
END
5.学习心得:
这次作业让我收获了很多,通过课堂上的学习,让我对优化设计有了一个充分的认识,老师的讲解细致入微,也让我对这门课充满了兴趣。
课堂上的实例讲解,以及课下的实践操作,让我们从理论到实际对优化都有了了解。
以前用office不怎么用excel,以为excel对我们来说没有什么用,直到今天对excel的一番操作,才知道自己的知识面太狭隘了。
通过这次操作,也让我体会到,用笔算和用计算机计算的区别,用笔需要埋头苦干几个小时甚至更长时间的计算,用计算机可能只用几秒就能完成,而我们进行机械优化设计,同样面对的是大量的计算,要做好优化设计,只有借助计算机来完成。
对我们来说,最重要的是掌握机械优化设计的思想,即通过数学建模然后转换成计算机语言,最后用计算机来处理问题。