机械优化设计MATLAB程序Word文件下载.docx

上传人:b****1 文档编号:14355969 上传时间:2022-10-22 格式:DOCX 页数:17 大小:22.54KB
下载 相关 举报
机械优化设计MATLAB程序Word文件下载.docx_第1页
第1页 / 共17页
机械优化设计MATLAB程序Word文件下载.docx_第2页
第2页 / 共17页
机械优化设计MATLAB程序Word文件下载.docx_第3页
第3页 / 共17页
机械优化设计MATLAB程序Word文件下载.docx_第4页
第4页 / 共17页
机械优化设计MATLAB程序Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

机械优化设计MATLAB程序Word文件下载.docx

《机械优化设计MATLAB程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《机械优化设计MATLAB程序Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

机械优化设计MATLAB程序Word文件下载.docx

t4=0.5*(t1+t3-c1/c2);

f4=f(t4);

k=0;

while(abs(t4-t2)>

=epsilon)

if 

t2<

t4

f2>

f4

f1=f2;

t1=t2;

t2=t4;

f2=f4;

else

f3=f4;

t3=t4;

end

f3=f2;

t3=t2;

f1=f4;

k=k+1;

%输出最优解

t=t4;

f=f(t4);

t=t2;

f=f(t2);

fprintf(1,'

迭代计算 

k=%3.0f\n'

k)

极小点坐标 

t=%3.0f\n'

t)

函数值 

f=%3.4f\n'

f)

运行结果如下:

k= 

7

t= 

2

f=0.0001

2.用黄金分割法求函数ϕ( 

)=

 

3

+1 

的极小值,精度 

t^(2/3)-(t^2+1)^(1/3)'

);

t1=b-0.618*(b-a);

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

k=1;

while 

abs(b-a)>

=epsilon

f1<

f2

b=t2;

t2=t1;

f2=f1;

a=t1;

t=0.5*(b+a);

f0=f(t);

迭代次数 

k=% 

3.0f\n'

迭代区间—左端 

a=%3.4f\n'

a)

试点 

坐标值 

t1=%3.4f\n'

t1)

f1=%3.4f\n'

f(t1))

迭代区间—右端 

b=%3.4f\n'

b)

t2=%3.4f\n'

t2)

f2=%3.4f\n'

f(t2))

区间中点 

t=%3.4f\n'

f0=%3.4f\n'

f(t))

13

a=0.0000

t1=0.0036

f1=-0.9767

b=0.0093

t2=0.0058

f2=-0.9679

t=0.0047

f0=-0.9721

由黄金分割法在初始区间[0,3]求得的极小值点为 

t=0.0047,极小值为-0.9721。

42

(1)在用牛顿法在 

function 

[x,fx,k]=niudunfa(x0)

syms 

x1 

x2

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

fx=0;

v=[x1,x2];

df=jacobian(f,v);

df=df.'

;

G=jacobian(df,v);

epson=1e-12;

g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});

G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)});

p=-G1\g1;

x0=x0+p;

while(norm(g1)>

epson)

x=x0;

fx=subs(f,{x1,x2},{x(1,1),x(2,1)});

>

[x,fx,k]=niudunfa([1;

1])

=1.9999554476059523381489991377897

0.99997772380297616907449956889483

fx 

=0.0000000000000000039398907941382470301534502947647

=23

(2)用阻尼牛顿法在 

[x,fx,k]=zuniniudunfa(x0)%阻尼牛顿法

%停机原则

%迭代次数

a0=-p'

*g1/(p'

*G1*p);

x0=x0+a0*p;

while(norm(a0*p)>

fx=subs(f,{x1,x2},{x0(1,1),x0(2,1)});

[x,fx,k]=zuniniudunfa([1;

x=1.9999554476059523381489991377897

fx=0.0000000000000000039398907941382470301534502947647

k=23

(3)用变尺度法在 

4.用共轭梯度法求函数 

(x1, 

x2 

(1)用共轭梯度法在 

function[y,x,k]=CG(A,b,c,x0)

%共轭梯度法解 

minf(x)=0.5*X'

*A*X+b'

x+c

eps=1e-6;

%迭代停机原则

%fx=0.5*x0'

.*A.*x0+b'

.*x0+c;

r0=A*x0+b;

norm(r0)<

=eps

y=0.5*x'

*A*x+b'

*x+c;

p0=-r0;

a=-r0'

*p0/(p0'

*A*p0);

x1=x0+a*p0;

r1=A*x1+b;

norm(r1)>

eps

beta=(r1'

*r1)/(r0'

*r0);

p1=-r1+beta*p0;

alpha=-(r1'

*p1)/(p1'

*A*p1);

x1=x1+alpha*p1;

r2=A*x1+b;

p0=p1;

r0=r1;

r1=r2;

x=x1;

[y,x,k]=CG([3 

-1;

-1 

1],[-2;

0],0,[2;

-1

=1.0000

1.0000

1

(2)用变尺度法在 

[x,fx,k]=bianchidufa(A,b,c,x0)

%用变尺度法求 

fx=0.5*x'

g0=A*x0+b;

G0=A;

H0=eye

(2);

d0=-H0*g0;

a0=-d0'

*g0/(d0'

*G0*d0);

s0=a0*d0;

%x(k+1)-x(k);

y0=A*a0*d0;

%g(k+1)-g(k);

x1=x0+a0*d0;

(norm(s0)>

=epson)

switch 

k

case{10}

x0=x1;

break

otherwise

g1=A*x1+b;

H1=H0+s0*s0'

/(s0'

*y0)-H0*y0*y0'

*H0/(y0'

*H0*y0);

H1=H0+((1+y0'

*H0*y0/(s0'

*y0))*s0*s0'

-H0*y0*s0'

-

s0*y0'

*H0)/(s0'

*y0);

d1=-H1*g1;

a1=-d1'

*g1/(d1'

*G0*d1);

a0=a1;

d0=d1;

H0=H1;

x1=x1+a0*d0;

fx=0.5*x1'

*A*x1+b'

*x1+c;

》 

[x,fx,k]=bianchidufa([3 

H1 

=

0.40310.2578

0.25780.8945

=-1

x=

k=1

故函数极小点是点(1,1)

5.用鲍威尔法求函数 

2x2 

4x1 

2x1x2 

的极小点。

用鲍威尔法在 

[x,fx,k]=bowell(A,b,c,x0)%鲍威尔法

d01=[1;

0];

d02=[0;

1];

x02=[0;

esp=1e-12;

norm(x0-x02)>

=esp

g01=A*x0+b;

a01=-d01'

*g01/(d01'

*A*d01);

x01=x0+a01*d01;

g02=A*x01+b;

a02=-d02'

*g02/(d02'

*A*d02);

x02=x01+a02*d02;

d10=x02-x0;

g10=A*x02+b;

a10=-d10'

*g10

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

当前位置:首页 > 职业教育 > 职高对口

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

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