机械优化设计大作业
机械优化设计大作业
机自1102 杨伟鑫 1115014047
一、优化设计问题的提出
预制一个无盖铁质集装箱,现有一块长为4m,宽为2m的长方形铁板作
为原材料,想在这块木板的四个角去除相等的正方形以制成无盖集装箱。
问: 如何去除材料才能使集装箱的底面积最大?
二、建立问题的数学模型
为了建成铁质无盖集装箱,可设在这块铁板的四个角去除相等的边长为X
正方形,所建造集装箱的底面积为S,分析问题有次问题变成 约束条件:
X≥0
4-2X≥0
2-2X≥0
求目标函数的最大值:
S(X)=(4-2X)*(2-2X)=4X^2-12X+8
由此可得此问题的
数学模型为:
Min S(X)=4X^2-12X+8约束条件:
=-X≤0
= -(4-2X)≤0
=-(2-2X)≤0
三、求解问题选择的优化算法
此问题的求解属于一维优化问题,所选择的优化算法为黄金分割法。
四、外推法确定最优解的搜索区间
用外推法确定函数S(X)=4X^2-12X+8的初始搜索区间。设初始点,初始步长h=1。
X0=0,
S0=S(X0)=6,
X1=X0+h=0+1=1,
S1=S(X1)=0,
比较S0与S1,
S0>S1,
故为正向搜索:
h=2h=2*1=2,
x2=1+2=3,
S2=S(X2)=12,
S1
此时已经形成S1
五、算法框图
六、算法程序
#include
#include
double obfunc(double x)
{
double ff;
ff=4*x*x-12*x+8;
return(ff);
}
void jts(double x0,double h0,double s[],int n,double a[],double b[]) {
int i;
double x[3],h,f1,f2,f3;
h=h0;
for(i=0;i
x[0]=x0;
f1=obfunc(x[0]);
for(i=0;i
f2=obfunc(x[1]);
if(f2>=f1)
{
h=-h0;
for(i=0;i
x[2]=x[0];
f3=f1;
for(i=0;i
{
x[0]=x[1];
x[1]=x[2];
}
f1=f2;
f2=f3;
}
for(;;)
{
h=2.0*h;
for(i=0;i
x[2]=x[1]+h*s[i];
f3=obfunc(x[2]);
if(f2
break;
else
{
for(i=0;i
{
x[0]=x[1];
x[1]=x[2];
}
f1=f2;
f2=f3;
}
}
if(h
for(i=0;i
{
a[i]=x[2];
b[i]=x[0];
}
else
for(i=0;i
{
a[i]=x[0];
b[i]=x[2];
}
printf(
}
double gold(double a[],double b[],double eps,int n,double xx) {int i;
double f1,f2,ff,q,w;
double x[3];
for(i=0;i
{
x[0]=a[i]+0.618*(b[i]-a[i]);
x[1]=a[i]+0.382*(b[i]-a[i]);
}
f1=obfunc(x[0]); f2=obfunc(x[1]);
do
{
if(f1>f2)
{
for(i=0;i
{b[i]=x[0];
x[0]=x[1];
}
f1=f2;
for(i=0;i
x[1]=a[i]+0.382*(b[i]-a[i]);
f2=obfunc(x[1]);
}
else
{for(i=0;i
{
a[i]=x[1];
x[1]=x[0];
}
f2=f1;
for(i=0;i
x[0]=a[i]+0.618*(b[i]-a[i]);
f1=obfunc(x[0]);
}
q=0;
for(i=0;i
q=q+(b[i]-a[i])*(b[i]-a[i]);
w=sqrt(q);
}while(w>eps);
for(i=0;i
xx=0.5*(a[i]+b[i]);
ff=obfunc(xx);
printf(
return(ff);
}
void main()
{
int n=1;
double a[1],b[1],xx;
double s[]={1},x0=0;
double epsl=0.001,h0=0.1;
jts(x0,h0,s,n,a,b);
gold(a,b,epsl,n,xx);}
七、程序运行结果与分析
(1)程序运行结果(截图)
(2)结果分析
对于函数S(X)=(4-2X)(2-2X)=4X^2-12X+8,对函数S求关于X的一阶导,得S(X)=8X-12。
令(X)=8X-12=0可解的X=1.5,则程序运行结果正确。
八、心得与体会
通过本次对问题的求解,让我更加形象生动地理解了黄金分割法的和外推法求搜索区间的思想和方法。与此同时,在实践和操作中也进一步巩固了所学的知识,受益颇深。