优化设计大作业参考答案优秀作品Word格式.docx
- 文档编号:19909520
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:20
- 大小:510.70KB
优化设计大作业参考答案优秀作品Word格式.docx
《优化设计大作业参考答案优秀作品Word格式.docx》由会员分享,可在线阅读,更多相关《优化设计大作业参考答案优秀作品Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
(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
由第二种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
创建单纯性法表格,利用单纯性法解决该线性规划问题。
Basic↓
X1
X2
X3
X4
b
Ratio
1.X3
-1
2
1
10
5
2.X4
3
18
9
3.Cost
f
从初始的单纯性表,我们可以得到如下可行解
BasicvariablesX3=10,X4=18
NonbasicvariablesX1=0,X2=0
Costfunctiomf=0;
从初始单纯性表可以看出,最后一行存在系数为负数,所以上述可行解不是最优解,我们选择非基本变量X2替代基本变量X3.于是我们可以得到下表。
1.X2
-0.5
0.5
4
8
1.5
f+5
从上述单纯性表中,我们可以得到如下可行解
BasicvariablesX2=5,X4=8
NonbasicvariablesX1=0,X3=0
Costfunctiomf=-5;
从初始单纯性表可以看出,最后一行存在系数为全为正数,所以上述可行解是最优解,如下图所示。
图4:
题8.37示意图
8.51Minimize
引入松弛变量将此问题转换为标准线性规划问题。
创建单纯性表格,利用单纯性法解决问题
Basic
X5
b
2.5
3.33
3.X5
Cost
-2
从初始单纯性表可以得到如下可行解。
BasicvaluablesX3=5,X4=10,X5=3,
NonbasicvaluablesX1=0,X2=0
Costfunctionf=0;
从初始表格可以看出,最后一行中存在系数为负数,所以上述解并不为最优解。
现将基本变量X3与非基本变量X1替换。
可得下表
1.X1
-1.5
02
从上表可以得到下述可行解:
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)
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;
i)=X(:
i-1)-inv(Gi)*gi'
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函数求解。
具体代码如下.
options=gaoptimset('
PlotFcns'
@gaplotbestf,'
Generations'
60);
[x,fval,exitflag,output]=ga(@problem1,4,[],[],[],[],[],[],[],options);
3.ga函数的重要参数,以及运算结果。
Ga函数的重要参数,即遗传算法的基本参数如下表所示。
属性名
说明
取值
PopolationSize
表示个体数目的数值
20
Elitecount
不变化的下一代最优个体数目
CrossoverFraction
个体间交换基因的比例
0.8
Generations
允许代的最大数目
60
TolFun
约束的终止容限
1e-6
运行结如下图所示。
图7:
遗传算法每次迭代最佳适应度函数值
图8:
遗传算法的运行信息
由上可知,总共迭代52次,最优个体为(0.0587,7.4164,0.0337,-0.4795),函数最优值为-468.7200.
2.2Powell奇异函数:
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;
[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函数
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;
[x,fval,exitflag,output]=ga(@problem3,2,[],[],[],[],[-100;
-100],[100;
100],[],options);
图11:
图12:
由上可知,总共迭代51次,最优个体为(1.1213,1.0978),函数最优值为0.0025.
3.附件
3.1题3.21的相关matlab程序
d=0.1:
0.01:
b1=0.06./(d.^2);
plot(d,b1,'
k'
);
holdon
b2=0.075./d;
plot(d,b2,'
holdon;
%g=@(x,y)x.*y;
%ezcontour(@(x,y)g(x,y),[0.05,1])
fori=0.05:
0.25:
bi=i./d;
plot(d,bi,'
b-'
)
holdon
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'
0.075'
0.3'
0.55'
3.2题11.42的相关程序(牛顿法)
Data
3.3woodfunction函数的相关matlab程序(遗传算法)
3.3.1woodfunction函数的编译程序
3.3.2遗传算法的实现程序
3.4powell奇异函数的相关matlab程序(遗传算法)
3.4.1woodfunction函数的编译程序
3.4.2遗传算法的实现程序
3.5schaffer’s函数的相关matlab程序(遗传算法)
3.5.1schaffer’s函数的编译程序
3.5.2遗传算法的实现程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 设计 作业 参考答案 优秀作品
![提示](https://static.bdocx.com/images/bang_tan.gif)