优化设计理论考试

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?(要求:1、建立数学模型,

2、用matlab 编写程序求解) 解:(1)数学模型:

设剪去的正方形的边长为x ,则水槽的容积为()2

32x x -,将求容积最大值问题转化为求最小值问题,因此水槽的最大容积转化为: Min y = -()2

32x x -,0

(2)在命令窗口输入命令:

[x,fval]=fminbnd(@(x)-(3-2*x)^2*x,0,1.5); 得 x=

0.5000 fval=

-2.0000

即剪掉边长为0.5米的正方形时,水槽的容积最大为2平方米

2、求解约束非线性规划(用matlab 编写程序)

()(

)()()2

22

2

1234123412341

m i n 123

4

5..33210

0x x x x x x x x S T x x x x x -

+-+-+-+++≤

⎧⎪

+++≤⎨⎪≥⎩ 初值为[1;1;1;1] 解:(1)首先建立一个m 文件 fun705.m function y=fun705(x)

y=(x(1)-1)^2+(x(2)-2)^2+(x(3)-3)^2+(x(4)-4)^2; 存储为fun705.m 文件. (2)在命令窗口输入

x0=[1;1;1;1];A=[1 1 1 1;3 3 2 1]; B=[5;10];Aeq=[];Beq=[]; Lb=[0;0;0;0];(‘fun705‘,x0,A,B,Aeq,Beq,Lb);

得到x = 0.0000 0.6667 1.6665 2.6668 g =

6.3333 3. 用单纯形法求解max

123

2f x x x =++

1231231

2322256..460,1,2,3i

x x x x x x S T x x x x i +-≤⎧⎪

-+-≥-⎪⎨++≤⎪⎪≥=⎩

解: 先化为标准型:令()

1232t f x x x ==-++将求max f 转变为求min t 得:

min 1232t x x x =---

1234

1235

123

6123456

22256..46,,,,,0x x x x x x x x S t x x x x x x x x x x +-+=⎧⎪

-++=⎪⎨

+++=⎪⎪≥⎩

列成表格: 2 ① -1 1 0 0 2 2 -1 5 0 1 0 6 4 1 1 0 0 1 6 -1 -2* 1 0 0 0 0 迭代一次: 2 1 -1 1 0 0 2 4 0 4 1 1 0 8 2 0 ② -1 0 1 4 3 0 -3*

2

4

再迭代一次: 3 1 0

0 4

0 0 0 3

1 -2

0 1

1

2

6 0 0

10

这时第

个特点已具备,故终止。从表中读出最优解:

10

4、求下列非线性规划问题的K-T 点

min

()22

112212

221010x f x x x x x x =++--

2212125..36

x x S T x x ⎧+≤⎨

+≤⎩

解:将上述约束条件改写为:

()()22

11221250360

g x x x g x x x ⎧=--+≥⎪⎨=--+≥⎪⎩

设K-T 点为()*12,T

x x x =,有

()

12*

1242102210x x f x

x x +-⎡⎤∇=⎢⎥+-⎣⎦

()

1*

1222x g x x -⎡⎤∇=⎢⎥-⎣⎦

()

*

231g x

-⎡⎤∇=⎢⎥-⎣⎦

由定理可得:

()()1211

21

21222211

121212421023022102050

36000

x x x x x x x x x x γγγγγγγγ+-++=⎧⎪

+-++=⎪⎪--+=⎪⎨

--+=⎪⎪

≥⎪⎪≥⎩

分析可知1()0g x ≥是有效约束,2()0g x ≥不是有效约束,则20γ=

故可求解得12

12

1210

x x γγ=⎧⎪=⎪⎨

=⎪⎪=⎩

代入原问题约束条件中检验,可知该点*(1,2)T x =是可行点,且满足K-T

定理的条件,又是一个正则点,故K-T 点为*(1,2)T x =

5. 用最速下降法求解约束问题

min ()()()2

2

123243x f x x =-+-

取初始点()

()

04,3T

x

=

要求:1 用matlab 编程 2 给出详细计算过程 解:1.12()6836f x x x ∇=+-

(a )编写M 文件detaf.m

function [f,df]=detaf(x); f=3*(x(1)-2)^2+4*(x(2)-3)^2; df(1)=6*x(1); df(2)=8*x(2); (b )编写M 文件zs.m

x=[4;3];

[f0,g]=detaf(x);

while norm(g)>0.0001 d=-g'/norm(g);

t=1.0;f=detaf(x+t*d); while f>f0

t=t/2;f=detaf(x+t*d); end

x= x+t*d

[f0,g]=detaf(x) end

(c)运行结果

x=

2 3 f= 0 即最优解为*(2,3)T x =,最优值为*0f = 2.

解:1.12()6836f x x x ∇=+-

(a )编写M 文件detaf.m

function [f,df]=detaf(x); f=3*(x(1)-2)^2+4*(x(2)-3)^2; df(1)=6*x(1); df(2)=8*x(2); (b )编写M 文件zs.m

相关文档
最新文档