优化设计大作业参考答案优秀作品.docx

上传人:b****5 文档编号:6888022 上传时间:2023-01-12 格式:DOCX 页数:20 大小:510.70KB
下载 相关 举报
优化设计大作业参考答案优秀作品.docx_第1页
第1页 / 共20页
优化设计大作业参考答案优秀作品.docx_第2页
第2页 / 共20页
优化设计大作业参考答案优秀作品.docx_第3页
第3页 / 共20页
优化设计大作业参考答案优秀作品.docx_第4页
第4页 / 共20页
优化设计大作业参考答案优秀作品.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

优化设计大作业参考答案优秀作品.docx

《优化设计大作业参考答案优秀作品.docx》由会员分享,可在线阅读,更多相关《优化设计大作业参考答案优秀作品.docx(20页珍藏版)》请在冰豆网上搜索。

优化设计大作业参考答案优秀作品.docx

优化设计大作业参考答案优秀作品

结构优化设计课程

大作业

 

学生姓名

学号

任课教师

导师姓名

 

南京航空航天大学

2017年6月

第一部分基本知识作业

1.题3.21………………………………………………………………3

2.题4.73………………………………………………………………4

3.题5.24………………………………………………………………6

4.题8.37………………………………………………………………8

5.题8.51………………………………………………………………10

6.题11.24………………………………………………………………12

第二部分遗传算法

1.woodfunction函数…………………………………………………14

2.Powell奇异函数………………………………………………………17

3.Schaffer’s函数………………………………………………………18

第三部分附件

 

3.21Solvetherectangularbeamproblemofexercise2.17graphicallyforthefollowingdata.

解:

将exercize2.17中求梁横截面积最小值的问题用数学描述如下所示。

MinimizeS=bd

Subjectto

用Matlab作图可得如下所示。

图1:

题3.21示意图

从图中可以清楚地看到,在可行域内,最小值的所在点为(0.8,0.09375),最小值为0.075.

 

4.73Minimizef(x,y)=(x-8)2+(y-8)2;

Subjectto

解:

(u1,u2,u3,u4是拉格朗日乘子,s1,s2,s3,s4是松弛变量)

由KKT条件可得:

 

从其中的(a),(b),(c),(d)四项转换条件以下16种情况

Case1

U1=0,U2=0,U3=0,U4=0

Case2

U1=0,U2=0,U3=0,S4=0

Case3

U1=0,U2=0,S3=0,U4=0

Case4

U1=0,U2=0,S3=0,S4=0

Case5

U1=0,S2=0,U3=0,U4=0

Case6

U1=0,S2=0,U3=0,S4=0

Case7

U1=0,S2=0,S3=0,U4=0

Case8

U1=0,S2=0,S3=0,S4=0

Case9

S1=0,U2=0,U3=0,U4=0

Case10

S1=0,U2=0,U3=0,S4=0

Case11

S1=0,U2=0,S3=0,U4=0

Case12

S1=0,U2=0,S3=0,S4=0

Case13

S1=0,S2=0,U3=0,U4=0

Case14

S1=0,S2=0,U3=0,S4=0

Case15

S1=0,S2=0,S3=0,U4=0

Case16

S1=0,S2=0,S3=0,S4=0

依次求解各种情况,并进行比较可得,在case12这种情况可得最优点(6,6),最小值为8;如下图

(2)所示。

图2:

题4.73题示意图

5.24Minimize

Subjectto

解:

由第二种KKT条件可得:

由KKT条件中的转换条件(a)可得:

Case1:

U1=0

由此可得:

X1=1,X2=1,g1=-2

Case2:

g1=0

由此可得:

X1=0,X2=0,U1=-2

因为KKT条件要求拉格朗日乘子U需要大于0,所以case2不满足KKT条件。

由于在(1,1)这点没有激活条件,所以这一点是regularpoint.

通过计算可得海森矩阵为

,此矩阵为正定矩阵,满足StrongSufficentCondtion.

 

综上可见,(1,1)点为最优点,最小值为0.如下图所示。

图3:

题5.24示意图

 

8.37Minimize

Subjiectto

解:

引入松弛变量学,X3,X4,将问题转化为标准线性规划问题。

Minimize

Subjectto

创建单纯性法表格,利用单纯性法解决该线性规划问题。

Basic↓

X1

X2

X3

X4

b

Ratio

1.X3

-1

2

1

0

10

5

2.X4

3

2

0

1

18

9

3.Cost

2

-1

0

0

f

从初始的单纯性表,我们可以得到如下可行解

BasicvariablesX3=10,X4=18

NonbasicvariablesX1=0,X2=0

Costfunctiomf=0;

从初始单纯性表可以看出,最后一行存在系数为负数,所以上述可行解不是最优解,我们选择非基本变量X2替代基本变量X3.于是我们可以得到下表。

Basic↓

X1

X2

X3

X4

b

Ratio

1.X2

-0.5

1

0.5

0

5

2.X4

4

0

-1

1

8

3.Cost

1.5

0

0.5

0

f+5

从上述单纯性表中,我们可以得到如下可行解

BasicvariablesX2=5,X4=8

NonbasicvariablesX1=0,X3=0

Costfunctiomf=-5;

从初始单纯性表可以看出,最后一行存在系数为全为正数,所以上述可行解是最优解,如下图所示。

图4:

题8.37示意图

 

8.51Minimize

Subjectto

解:

引入松弛变量将此问题转换为标准线性规划问题。

Minimize

Subjectto

创建单纯性表格,利用单纯性法解决问题

Basic

X1

X2

X3

X4

X5

b

Ratio

1.X3

2

1

1

0

0

5

2.5

2.X4

3

4

0

1

0

10

3.33

3.X5

1

0

0

0

1

3

3

Cost

-2

-1

0

0

0

f

从初始单纯性表可以得到如下可行解。

BasicvaluablesX3=5,X4=10,X5=3,

NonbasicvaluablesX1=0,X2=0

Costfunctionf=0;

从初始表格可以看出,最后一行中存在系数为负数,所以上述解并不为最优解。

现将基本变量X3与非基本变量X1替换。

可得下表

Basic

X1

X2

X3

X4

X5

b

Ratio

1.X1

1

0.5

0.5

0

0

2.5

2.X4

0

2.5

-1.5

1

0

2.5

3.X5

0

-0.5

-0.5

0

1

0.5

Cost

02

0

1

0

0

f+5

 

从上表可以得到下述可行解:

BasicvaluablesX1=2.5,X4=2.5,X5=0.5;

NonbasicvaluablesX2=0,X3=0;

Costfunctionf=-5;

从上表中可以看出,最后一行系数全为正数,所以此解即为最优解。

如下图所示。

图5:

题8.51示意图

 

 

11.42f(X1,X2,X3,X4)=(X1-10X2)2+5(X3-X4)2+(X2-2X3)4+10(X1-X4)4,

Letthestartingdesignbe(1,2,3,4);

解:

本题采用牛顿法进行迭代求解。

牛顿法的基本思路如下所示

1.选定初始点,确定准许的误差,令K=0;

2.求

,检验

,如果其大小误差,否则进入第(3)步。

3.令Sk=

,XK+1=XK+SK.转回第二步。

根据此思想,编程如下

clc;

clear;

%定义函数

symsx1x2x3x4;

f=(x1-10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;

%定义初始点

x0=[1;2;3;4];

%求函数的梯度和海森矩阵

g=jacobian(f,[x1;x2;x3;x4]);

G=jacobian([g

(1);g

(2);g(3);g(4)],[x1,x2,x3,x4]);

%计算初值

g0=subs(g,[x1,x2,x3,x4],[x0

(1),x0

(2),x0(3),x0(4)]);

G0=subs(G,{x1,x2,x3,x4},{x0

(1),x0

(2),x0(3),x0(4)});

f0=subs(f,[x1,x2,x3,x4],[x0

(1),x0

(2),x0(3),x0(4)]);

%定义迭代最大次数

n=10;

%定义迭代点集合,以及初始化

X=zeros(4,n);

F=zeros(1,n);

X(:

1)=x0-inv(G0)*g0';

A=X(:

1);

F

(1)=subs(f,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

%定义精度

q=0;

data=10;

i=1;

while(data>=q&i<10)

A=X(:

i);

gi=subs(g,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

Gi=subs(G,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

i=i+1;

X(:

i)=X(:

i-1)-inv(Gi)*gi';

A=X(:

i);

F(i)=subs(f,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

data=abs(F(i)-F(i-1));

end

X

F

data

运行程序得到如下结果:

迭代10次,每次所在点如下图

每次迭代所得结果为:

2遗传算法

遗传算法是一种寻求函数最优解的算法。

其基本原理是:

模拟自然界生物繁衍过程中基因重组与自然进化的过程。

把待解决问题的参数编程二进制码或十进制码(即基因),若干基因组成一个染色体(即个体),许多染色体进行类似于自然选择,配对交叉和变异的运算,经过多次迭代,直至得到最优结果。

其算法思路如下所示。

图6:

遗传算法思路

遗传算法具体实现通过Matlab自带函数ga实现的,对该函数的用法这里不再细述,进队我们使用的参数进行说明。

 

2.1woodfunction函数

解:

1.首先编辑函数文件,定义为Problem1,具体如下所示。

functionfitness=problem1(x)

fitness=100*(x

(1)^2-x

(2))+(x

(1)-1)^2+(x(3)-1)^2+...

90*(x(3)^2-x(4))^2+10.1*((x

(2)-1)^2+(x(4)-1)^2)+...

19.8*(x

(2)-1)*(x(4)-1);

End

2.设置ga函数参数,并调用ga函数求解。

具体代码如下.

clc;

clear;

options=gaoptimset('PlotFcns',@gaplotbestf,'Generations',60);

[x,fval,exitflag,output]=ga(@problem1,4,[],[],[],[],[],[],[],options);

3.ga函数的重要参数,以及运算结果。

Ga函数的重要参数,即遗传算法的基本参数如下表所示。

属性名

说明

取值

PopolationSize

表示个体数目的数值

20

Elitecount

不变化的下一代最优个体数目

2

CrossoverFraction

个体间交换基因的比例

0.8

Generations

允许代的最大数目

60

TolFun

约束的终止容限

1e-6

运行结如下图所示。

图7:

遗传算法每次迭代最佳适应度函数值

图8:

遗传算法的运行信息

由上可知,总共迭代52次,最优个体为(0.0587,7.4164,0.0337,-0.4795),函数最优值为-468.7200.

 

2.2Powell奇异函数:

解:

1.首先编辑函数文件,定义为Problem1,具体如下所示。

functionf=problem2(x)

f=(x

(1)+10*x

(2))^2+5*(x(3)-x(4))^2+(x

(2)-2*x(3))^4+10*(x

(1)-x(4))^4;

End

2.设置ga函数参数,并调用ga函数求解。

具体代码如下.

clc;

clear;

options=gaoptimset('PlotFcns',@gaplotbestf,'Generations',60);

[x,fval,exitflag,output]=ga(@problem2,4,[],[],[],[],[],[],[],options);

4.ga函数的重要参数,以及运算结果。

Ga函数的各个参数同上,这里不再赘述。

运行结如下图所示。

图9:

遗传算法每次迭代最佳适应度函数值

图10:

遗传算法的运行信息

由上可知,总共迭代57次,最优个体为(-0.1126,0.0139,-0.0157,-0,0146),函数最优值为.0.0132

2.3Schaffer’s函数

解:

1.首先编辑函数文件,定义为Problem1,具体如下所示。

functionf=problem3(x)

f=0.5-(sin(sqrt(x

(1)^2+x

(2)^2))*sin(sqrt(x

(1)^2+x

(2)^2))-0.5)/(1+0.001*(x

(1)^2+x

(2)^2))^2;

end

2.设置ga函数参数,并调用ga函数求解。

具体代码如下.

clc;

clear;

options=gaoptimset('PlotFcns',@gaplotbestf,'Generations',60);

[x,fval,exitflag,output]=ga(@problem3,2,[],[],[],[],[-100;-100],[100;100],[],options);

3.ga函数的重要参数,以及运算结果。

Ga函数的各个参数同上,这里不再赘述。

运行结如下图所示。

图11:

遗传算法每次迭代最佳适应度函数值

图12:

遗传算法的运行信息

由上可知,总共迭代51次,最优个体为(1.1213,1.0978),函数最优值为0.0025.

 

3.附件

3.1题3.21的相关matlab程序

clc;

clear;

d=0.1:

0.01:

2;

b1=0.06./(d.^2);

plot(d,b1,'k');

holdon

b2=0.075./d;

plot(d,b2,'k');

holdon;

%g=@(x,y)x.*y;

%ezcontour(@(x,y)g(x,y),[0.05,1])

fori=0.05:

0.25:

1

bi=i./d;

plot(d,bi,'b-')

holdon

end

xlim([0,1]);

ylim([0,1]);

plot(0.8,0.09375,'k*');

fill([0.245,0.8,1,1],[1,0.09375,0.075,1],[1,0.5,0.5],'FaceAlpha',0.5);

gtext('0.05');

gtext('0.075');

gtext('0.3');

gtext('0.55');

 

3.2题11.42的相关程序(牛顿法)

clc;

clear;

%定义函数

symsx1x2x3x4;

f=(x1-10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4;

%定义初始点

x0=[1;2;3;4];

%求函数的梯度和海森矩阵

g=jacobian(f,[x1;x2;x3;x4]);

G=jacobian([g

(1);g

(2);g(3);g(4)],[x1,x2,x3,x4]);

%计算初值

g0=subs(g,[x1,x2,x3,x4],[x0

(1),x0

(2),x0(3),x0(4)]);

G0=subs(G,{x1,x2,x3,x4},{x0

(1),x0

(2),x0(3),x0(4)});

f0=subs(f,[x1,x2,x3,x4],[x0

(1),x0

(2),x0(3),x0(4)]);

%定义迭代最大次数

n=10;

%定义迭代点集合,以及初始化

X=zeros(4,n);

F=zeros(1,n);

X(:

1)=x0-inv(G0)*g0';

A=X(:

1);

F

(1)=subs(f,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

%定义精度

q=0;

data=10;

i=1;

while(data>=q&i<10)

A=X(:

i);

gi=subs(g,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

Gi=subs(G,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

i=i+1;

X(:

i)=X(:

i-1)-inv(Gi)*gi';

A=X(:

i);

F(i)=subs(f,[x1,x2,x3,x4],[A

(1),A

(2),A(3),A(4)]);

data=abs(F(i)-F(i-1));

end

X

F

Data

 

3.3woodfunction函数的相关matlab程序(遗传算法)

3.3.1woodfunction函数的编译程序

functionfitness=problem1(x)

fitness=100*(x

(1)^2-x

(2))+(x

(1)-1)^2+(x(3)-1)^2+...

90*(x(3)^2-x(4))^2+10.1*((x

(2)-1)^2+(x(4)-1)^2)+...

19.8*(x

(2)-1)*(x(4)-1);

End

3.3.2遗传算法的实现程序

clc;

clear;

options=gaoptimset('PlotFcns',@gaplotbestf,'Generations',60);

[x,fval,exitflag,output]=ga(@problem1,4,[],[],[],[],[],[],[],options);

 

3.4powell奇异函数的相关matlab程序(遗传算法)

3.4.1woodfunction函数的编译程序

functionf=problem2(x)

f=(x

(1)+10*x

(2))^2+5*(x(3)-x(4))^2+(x

(2)-2*x(3))^4+10*(x

(1)-x(4))^4;

End

3.4.2遗传算法的实现程序

clc;

clear;

options=gaoptimset('PlotFcns',@gaplotbestf,'Generations',60);

[x,fval,exitflag,output]=ga(@problem2,4,[],[],[],[],[],[],[],options);

 

3.5schaffer’s函数的相关matlab程序(遗传算法)

3.5.1schaffer’s函数的编译程序

functionf=problem3(x)

f=0.5-(sin(sqrt(x

(1)^2+x

(2)^2))*sin(sqrt(x

(1)^2+x

(2)^2))-0.5)/(1+0.001*(x

(1)^2+x

(2)^2))^2;

end

3.5.2遗传算法的实现程序

clc;

clear;

options=gaoptimset('PlotFcns',@gaplotbestf,'Generations',60);

[x,fval,exitflag,output]=ga(@problem3,2,[],[],[],[],[-100;-100],[100;100],[],options);

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1