运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx

上传人:b****2 文档编号:5956383 上传时间:2023-05-05 格式:DOCX 页数:13 大小:97.54KB
下载 相关 举报
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第1页
第1页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第2页
第2页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第3页
第3页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第4页
第4页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第5页
第5页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第6页
第6页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第7页
第7页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第8页
第8页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第9页
第9页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第10页
第10页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第11页
第11页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第12页
第12页 / 共13页
运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx

《运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。

运筹学实验报告FR共轭梯度法Wolfe简约梯度法Word格式文档下载.docx

如此下去,得到序列{

}。

不难求得

的解为

注意到

的选取不唯一,我们可取

由共轭的定义

可得:

共轭梯度法的计算过程如下:

第一步:

取初始向量

计算

步:

计算

2、Wolfe简约梯度法

Wolfe基本计算步骤:

取初始可行点

给定终止误差

,令k:

=0;

第二步:

的m个最大分量的下标集,对矩阵A进行相应分解

第三步:

计算

然后计算简约梯度

第四步:

构造可行下降方向

.若

^_D_Dd

否则进行第五步。

第五步:

进行有效一维搜索,求解

得到最优解

.令,k:

=k+1,转入第二步。

三、实验容:

1、(运筹学P153页第20题)用F-R法求解

选取初始点

.

2、(运筹学P154页第25题)用Wolfe法求解以下问题:

选取初始可行点

四、问题求解:

问题1求解:

(F-R法)

程序代码如下:

(1)主函数

symsx1x2r;

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

x=[x1,x2];

df=jacobian(f,x);

df=df.'

;

error=0.000001;

x0=[0,0]'

g1=subs(df,x,x0);

k=0;

while(norm(g1)>

error)

ifk==0

d=-g1;

else

bta=g1'

*g1/(g0'

*g0);

d=-g1+bta*d0;

end

y=subs(f,x,x0+r*d);

result=jintuifa(y,r);

result2=golden(y,r,result);

step=result2;

x0=x0+step*d;

g0=g1;

d0=d;

k=k+1;

end;

k

x0

(2)子函数

进退法确定一维搜索区间:

functionresult=jintuifa(y,r)

t0=0;

step=0.0125;

t1=t0+step;

ft0=subs(y,{r},{t0});

ft1=subs(y,{r},{t1});

if(ft1<

=ft0)

step=2*step;

t2=t1+step;

ft2=subs(y,{r},{t2});

while(ft1>

ft2)

t1=t2;

step=2*step;

else

step=step/2;

t2=t1;

t1=t2-step;

ft0)

end

result=[t2];

黄金分割法进行一维搜索:

functionresult=golden(y,r,m)

a=0;

b=m;

e=1e-5;

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

f1=subs(y,{r},{a1});

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

f2=subs(y,{r},{a2});

whileabs(b-a)>

=e

iff1<

f2

b=a2;

a2=a1;

f2=f1;

a=a1;

a1=a2;

f1=f2;

answer=0.5*(a+b);

result=[answer];

运行结果如下:

由上图知极值点为

极小值=(

对应的理论极小值)。

问题2求解:

(Wolfe法)

error=10^-6;

x0=[0,0];

symsx1x2

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

AB=[1,1,1,0;

1,5,0,1];

B=[1,0;

0,1];

N=[1,1;

1,5];

[a,b]=size(x0);

initial_gradient=gradient_my(f,x0,b);

norm=0;

norm0=0;

symst;

A=[];

rN=[initial_gradient

(1),initial_gradient

(2)]

pN=-rN;

pB=-[pN

(1)+pN

(2),-pN

(1)-5*pN

(2)];

search_direction=[pNpB]

fori=1:

4

norm0=norm0+(search_direction(i))^2

tmax=5/34;

x00=[0,0,2,-5];

x=x00+t*search_direction;

xx=[x

(1),x

(2)];

f_step=subs(f,findsym(f),xx);

F=diff(f_step,t);

solve(F,t)

x_1=x00+tmax*search_direction

norm=norm0;

k=1;

HSZ=[];

while(norm>

error&

&

k<

3)

x_11=[x_1

(1),x_1

(2)]

gradient=gradient_my(f,x_11,b)

rN=-[1.25*gradient

(1),0.25*gradient

(2)]

pN=-[rN

(1)*x_1(3),rN

(2)*x_1(4)]

pB=-[1.25*pN

(1),0.25*pN

(2)];

new_direction=[pBpN];

norm=0;

TT=[];

tmax=1;

norm=norm+(new_direction(i))^2

forj=1:

if(new_direction(j)<

0)

T(j)=new_direction(j)

T(j)=0;

if(T(j)<

TT=abs([TT,(x_1(j)/T(j))])

j=j+1;

n=size(TT);

foruk=1:

n

if(tmax>

TT(uk))

tmax=TT(uk)

n=n+1;

x=x_1+t*new_direction;

solve(F,t);

t0=tmax;

x_2=x_1+0.18*new_direction

A=[A;

x_2];

norm0=norm;

search_direction=new_direction

x_1=x_2;

xx2=[x_2

(1),x_2

(1)];

Y=subs(f,findsym(f),xx2);

HSZ=[HSZ;

Y]

k=k+1;

x_2

norm

程序运行结果如下

初始点(0,0,2,5)earch_direction=46-1034

tmax=0.147

如果不交还B矩阵与A矩阵则运行结果如下

x_1=(0.62510.87080.50770.0246)search_direction=3.44.4-8-25.6

很显然X4已经无法再取有效值,,故须交还B与A

x_1=(0.58820.88240.52940)search_direction=1.82220-2.2578-0.44

tmax=0.231

x_2=1.09620.88240.12300

由以上结果显示:

而理论计算值为

有一定的计算误差。

五、实验体会:

通过这次运筹学课实验,我对无约束优化问题及约束优化问题的思想和部分算法的求解过程有了进一步了解与掌握。

这次实验使我对用进退法确定一维搜索区间,如何进行一维搜索,对求解无约束优化问题的F-R共轭梯度法和约束最优化问题的Wolfe简约梯度法的基本思想和算法有了更深理解,对课的所学知识进一步消化。

在本次实验过程中,发现真正用Matlab求解实际问题的能力还很欠缺,对Matlab的熟练程度还不够!

求解过程出现了许多错误,通过网上查找资料和利用图书馆图书资源得到解决;

但是仍有部分问题还没太明白。

希望自己以后加强用Matlab解决实际问题的能力,合理将运筹学所学理论知识应用到实际生活中!

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2