运筹与优化实验报告Word下载.docx

上传人:b****6 文档编号:17475215 上传时间:2022-12-01 格式:DOCX 页数:13 大小:116.43KB
下载 相关 举报
运筹与优化实验报告Word下载.docx_第1页
第1页 / 共13页
运筹与优化实验报告Word下载.docx_第2页
第2页 / 共13页
运筹与优化实验报告Word下载.docx_第3页
第3页 / 共13页
运筹与优化实验报告Word下载.docx_第4页
第4页 / 共13页
运筹与优化实验报告Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

运筹与优化实验报告Word下载.docx

《运筹与优化实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《运筹与优化实验报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

运筹与优化实验报告Word下载.docx

=k+1,返回STEP2

(四)程序源代码

建立goldencut.m函数

functiong=goldencut()

t1=cputime

f=@(x)x^2-x+2

a=-1;

b=3;

e=0.000001;

h=b-a;

n=0;

whileh>

e

u=a+0.382*(b-a);

v=a+0.618*(b-a);

iff(u)<

f(v)

b=v;

elsea=u;

end

h=b-a;

n=n+1;

end

a,b,n

t2=cputime-t1

保存并运行

>

goldencut

t1=

227.0625

f=

@(x)x^2-x+2

a=

0.5000

b=

n=

32

t2=

0.0313

(五)实验结果及分析

由MATLAB编程结果可知,利用黄金分割法求解的迭代步数为32步,执行时间为0.0313s,极小区间为

,代表区间端点a无限接近于b。

编程结果与手算结果一致。

(六)实验小结

通过这次实验,我更加深刻地理解了一维搜索算法中黄金分割法的算法思想,并学会使用MATLAB编程解决相关问题。

在编程实现时查阅的相关资料,也让我受益匪浅。

二、共轭梯度法

熟练掌握共轭梯度法的算法思想,并能够运用MATLAB编程解决相关问题。

共轭梯度法求解:

1、

2、

(三)算法框架

1、CG算法

n元正定二次函数

,给定任意初始点

,计算

,置k:

=0

判断

,若成立,则终止,输出。

否则转STEP3

计算下一次的搜索方向

,其中

STEP4:

=k+1,转STEP1进行下一次迭代

2、应用于非二次函数的共轭梯度法(二次函数CG法的推广应用)

关键:

将公式中含有的二次函数的Hesse阵Q的信息消去

改用直接的e.1.s,求得步长因子

1、二次函数的共轭梯度法

建立conjugategradient.m函数

functions=conjugategradient()

symsfx1x2

f=x1^2-x1*x2+x2^2+2*x1-4*x2;

x=[-2;

4];

a=[2-1;

-12];

g1=diff(f,x1);

g2=diff(f,x2);

g=[g1;

g2];

g11=subs(g1,{x1,x2},{x

(1)x

(2)});

g22=subs(g2,{x1,x2},{x

(1)x

(2)});

g=[g11;

g22]

d=-g;

d11=subs(d

(1),{x1,x2},{x

(1)x

(2)});

d22=subs(d

(2),{x1,x2},{x

(1)x

(2)});

d=[d11;

d22]

af=(-g'

*d)/(d'

*a*d)

x=x+af*d

e=0.1;

%共轭梯度

fori=1:

2

ifg==0

break

else

b=(g'

*a*d)/(d'

d=-g+b*d;

d11=subs(d

(1),{x1,x2},{x

(1)x

(2)});

d22=subs(d

(2),{x1,x2},{x

(1)x

(2)});

d=[d11;

af=(-g'

x=x+af*d

g11=subs(g1,{x1,x2},{x

(1)x

(2)});

g22=subs(g2,{x1,x2},{x

(1)x

(2)});

g=[g11;

conjugategradient

g=

-6

6

d=

af=

0.3333

x=

0

2

2、非二次函数的共轭梯度法

建立promotecg.m函数

functionx=promotecg(A,B,e,x0)

p=-(A*x0+B);

while(sqrt((A*x0+B)'

*(A*x0+B))>

=e)

l=(-1)*((A*x0+B)'

*p)/(p'

*A*p);

x=x0+l*p;

p1=-(A*x+B)+((A*x+B)'

*(A*x+B))/((A*x0+B)'

*(A*x0+B))*p;

x0=x;

p=p1;

保存

命令行输入:

A=[20;

04]

A=

20

04

B=[0;

0]

B=

0

e=0.0001;

x0=[1;

x0=

1

[x]=promotecg(A,B,e,x0)

由MATLAB编程结果可知,第一题最优解x为

其中g为梯度方向,d为搜索方向,af为步长,x为所求极小点,而最后的g为此x对应的梯度(即终止条件)。

第二题最优解x为

编程结果均与手算结果一致。

通过这次实验,我更加深刻地理解了共轭梯度法的算法思想,并学会使用MATLAB编程解决相关问题。

三、内点法与外点法

熟练掌握内点法和外点法的算法思想,并能够运用MATLAB编程解决相关问题。

分别用内点法与外点法(外惩罚函数法)求解下列非线性规划:

1、内点法:

已知

取一初始容许点

,初始惩罚因子

,惩罚因子的缩小系数

STEP1:

为初始点,求解

得极小点

STEP2:

stop;

STEP3:

,转STEP2

2、外点法:

给定初始点

,放大系数

,置

为初始点求解

,stop

,转STEP1

1、内点法

建立inpoint.m函数

functiont=inpoint(a,b)

symsx1x2;

u=0.01;

x0=[ab];

f=x1+x2+u*(1/(-x1^2+x2)+1/(x1));

i=0;

while(i<

10)

f=x1+x2+u*(1/(-x1^2+x2)+1/(x1));

df=[diff(f,x1);

diff(f,x2)];

[c1,c2]=solve(df

(1),df

(2));

x0=real(double([c1c2]));

i=i+1;

u=0.1*u;

x0

min=vpa(subs(f,[x1x2],[x0

(1),x0

(2)]))

inpoint(2,2)

-0.0000-0.0000

0.0000-0.0000

0.00000.0000

-0.00000.0000

-0.50000.2500

min=

0.000000000010000158114683031141172930750089

2、外点法

functions=expoint(a,b)

symsx1x2;

M=5;

a1=x1^2-x2;

a2=-x1;

f=x1+x2;

df=[diff(f,x1);

k=0;

while(k<

100)

ifsubs(a1,[x1x2],x0)>

0&

&

subs(a2,x1,x0

(1))>

f=x1+x2+M*((x1^2-x2)^2+(-x1)^2);

ifsubs(a1,[x1x2],x0)<

=0&

subs(a2,x1,x0

(1))>

f=x1+x2+M*((-x1)^2);

if(subs(a1,[x1x2],x0)<

=0)&

(subs(a2,x1,x0

(1))<

=0)

f=x1+x2;

if(subs(a1,[x1x2],x0)>

0)&

f=x1+x2+M*((x1^2-x2)^2);

x0=[c1c2];

M=2*M;

k=k+1;

min=subs(f,[x1x2],x0)

expoint(2,2)

[-1/6338253001141147007483516026882,-10043362776618689222137263077137019955514624571398067857653761/63657374260452690195888927762833240983964862058949056884687924445640471833595849372629729280]

-633825*********7007483516026881/40173451106474756888549052308541741569057357138584787914588160

由MATLAB编程结果可知,使用内点法和外点法求解非线性规划问题,所得的结果是一致的,可行解均为

,且与手算结果一致。

通过这次实验,我更加深刻地理解了内点法和外点法的算法思想,并学会使用MATLAB编程解决相关问题。

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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