最优化方法Word下载.docx

上传人:b****6 文档编号:19883373 上传时间:2023-01-11 格式:DOCX 页数:13 大小:43.89KB
下载 相关 举报
最优化方法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

的搜索区间,要求选取

2.用黄金分割法编程计算

已知初始单谷区间

,要求缩短后的区间长度不超过0.3.

3.用Newton法编程计算

已知初始点t0=0,要求精度

4.用坐标轮换法编程计算

取初始点

允许误差

5.用旋转方向法编程计算

,初始搜索方向

初始步长

收缩因子

,放大因子

6.用Powell法编程计算

实验步骤:

一.进退法:

1.初始化:

程序清单:

一.进退法:

function[minx,maxx]=minJT(f,x0,h0,eps)

formatlong;

ifnargin==3

eps=1.0e-6;

end

x1=x0;

k=0;

h=h0;

while1

x4=x1+h;

k=k+1;

f4=subs(f,findsym(f),x4);

f1=subs(f,findsym(f),x1);

iff4<

f1

x2=x1;

x1=x4;

f2=f1;

f1=f4;

h=2*h;

else

ifk==1

h=-h;

x2=x4;

f2=f4;

x3=x2;

break;

end

minx=min(x1,x3);

maxx=x1+x3-minx;

formatshort;

二.黄金分割法:

function[x,minf]=minHJ(f,a,b,eps)

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

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

k=1;

tol=b-a;

whiletol>

eps&

&

k<

100000

fl=subs(f,findsym(f),l);

fu=subs(f,findsym(f),u);

iffl>

fu

a=l;

l=u;

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

b=u;

u=l;

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

tol=abs(b-a);

ifk==100000

disp('

找不到最小值!

'

);

x=NaN;

minf=NaN;

return;

x=(a+b)/2;

minf=subs(f,findsym(f),x);

三.Newton法:

function[x,minf]=minNewton(f,x0,eps)

ifnargin==2

df=diff(f);

d2f=diff(df);

tol=1;

eps

dfx=subs(df,findsym(df),x0);

ifdiff(d2f)==0

d2fx=double(d2f);

d2fx=subs(d2f,findsym(d2f),x0);

x1=x0-dfx/d2fx;

k=k+1;

tol=abs(dfx);

x0=x1;

x=x1;

minf=subs(f,findsym(f),x);

四.坐标轮换法:

function[x,minf]=minconPS(f,g,x0,delta,u,var,eps1,eps2)

ifnargin==7

eps2=1.0e-6;

n=length(var);

y=x0;

bmainCon=1;

whilebmainCon

yf=Funval(f,var,y);

yk_1=y;

fori=1:

n

tmpy=zeros(size(y));

tmpy(i)=delta(i);

tmpf=Funval(f,var,y+tmpy);

forj=1:

length(g)

cong(j)=Funval(g(j),var,y+tmpy);

iftmpf<

yf&

min(cong)>

=0

bcon=1;

whilebcon

tmpy(i)=2*tmpy(i);

tmpf_i=Funval(f,var,y+tmpy);

cong_i(j)=Funval(g(j),var,y+tmpy);

iftmpf_i<

yf&

min(cong_i)>

=0

y_res=y+tmpy;

bcon=0;

tmpf=Funval(f,var,y-tmpy);

cong(j)=Funval(g(j),var,y-tmpy);

tmpf_i=Funval(f,var,y-tmpy);

cong_i(j)=Funval(g(j),var,y-tmpy);

y_res=y-tmpy;

y_res=y;

delta=delta/u;

end

y=y_res;

ifnorm(y-yk_1)<

=eps2

ifmax(abs(delta))<

=eps1

x=y;

bmainCon=0;

delta=delta/u;

minf=Funval(f,var,x);

五.旋转方向法:

function[x,minf]=minRb(f,x0,D,delta,alpha,beta,var,eps)

x0=transpose(x0);

y0=Funval(f,var,x0);

delta0=delta;

[Q,R]=qr(D);

yf=Funval(f,var,y);

bconti=1;

whilebconti

tmpy=delta(i)*Q(:

i);

bconti=0;

=yf

y=y+tmpy;

delta(i)=alpha*delta(i);

delta(i)=-beta*delta(i);

yfn=Funval(f,var,y);

ifyfn<

yf

continue;

ifyfn==yf

Funval(f,var,x0)

x1=y;

tol=norm(x1-x0);

iftol<

x=x1;

D=Q;

D(:

1)=x1-x0;

[Q,R]=qr(D);

delta=delta0;

y=x0;

eps

x=x0;

六.Powell法:

function[x,minf]=minPowell(f,x0,P,var,eps)

ifnargin==4

n=length(var)+1;

symsl;

y=zeros(size(P));

y(:

1)=x0;

n-1

yv=y(:

i)+l*P(:

fy=Funval(f,var,yv);

[a,b]=minJT(fy,0,0.1);

tl=minHJ(fy,a,b);

i+1)=y(:

i)+tl*P(:

P(:

n)=y(:

n)-y(:

1);

ifnorm(P(:

n))<

=eps

x=y(:

n);

FY(j)=Funval(f,var,y(:

j));

maxDF=-inf;

m=0;

df=FY(j)-FY(j+1);

ifdf>

maxDF

maxDF=df;

m=j+1;

tmpF=Funval(f,var,2*y(:

n)-y(:

1));

fl=FY

(1)-2*FY(n)+tmpF;

iffl<

2*maxDF

n)+l*P(:

x0=y(:

n)+tl*P(:

m:

(n-1))=P(:

(m+1):

n);

实验结果与分析(可用文字描述和贴图等方式表现实验结果):

在工作区间输入:

function[minx,maxx]=minJT(x^3-2*x+1,0,1,0)

function[x,minf]=minHJ(x*(x+2),-3,5,0.3)

function[x,minf]=minNewton(x^3-2*x+1,0,0.01)

指导教师意见:

签名:

年月日

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

当前位置:首页 > 高中教育 > 其它课程

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

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