机械优化设计实验报告

  • 格式:doc
  • 大小:179.00 KB
  • 文档页数:25

《机械优化设计》

实验报告

目录

1.进退法确定初始区间 ......................................... 错误!未定义书签。

进退法基本思路 .......................................... 错误!未定义书签。

进退法程序框图 .......................................... 错误!未定义书签。

题目.................................................... 错误!未定义书签。

源程序代码及运行结果 .................................... 错误!未定义书签。

2.黄金分割法 ................................................. 错误!未定义书签。

黄金分割法流程图 ......................................... 错误!未定义书签。

题目.................................................... 错误!未定义书签。

源程序代码及结果 ........................................ 错误!未定义书签。

3.牛顿型法................................................... 错误!未定义书签。

牛顿型法基本思路 ......................................... 错误!未定义书签。

阻尼牛顿法的流程图 ...................................... 错误!未定义书签。

题目.................................................... 错误!未定义书签。

源程序代码及结果 ........................................ 错误!未定义书签。

4.鲍威尔法................................................... 错误!未定义书签。

鲍威尔法基本思路 ........................................ 错误!未定义书签。

鲍威尔法流程图 .......................................... 错误!未定义书签。

4.3 题目 ................................................ 错误!未定义书签。

源程序代码及结果 ........................................ 错误!未定义书签。

5. 复合形法 .................................................. 错误!未定义书签。

复合行法基本思想 ........................................ 错误!未定义书签。

源程序代码及结果 ........................................ 错误!未定义书签。

6. 外点惩罚函数法 ............................................ 错误!未定义书签。

解题思路: ............................................... 错误!未定义书签。

流程框图 ................................................ 错误!未定义书签。

题目.................................................... 错误!未定义书签。

源程序代码及结果 ........................................ 错误!未定义书签。

7.机械设计实际问题分析 ....................................... 错误!未定义书签。

计算过程如下 ............................................. 错误!未定义书签。

源程序编写 .............................................. 错误!未定义书签。

8.报告总结................................................... 错误!未定义书签。

1.进退法确定初始区间

进退法基本思路:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。

进退法程序框图

题目:用进退法求解函数2710fxxx的搜索区间

源程序代码及运行结果

#include <>

#include <>

main()

{

float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3;

scanf("h0=%f,y1=%f",&h0,&y1);

h=h0;a2=h;y2=a2*a2-7*a2+10;

if (y2>y1)

{

h=-h;a3=a1;y3=y1;

loop:a1=a2;y1=y2;a2=a3;y2=y3;

}

a3=a2+2*h;y3=a3*a3-7*a3+10; if (y3

{

goto loop;

}

else

printf("a1=%f,a2=%f,a3=%f,y1=%f,y2=%f,y3=%f\n",a1,a2,a3,y1,y2,y3);

}

搜索区间为0 6

2.黄金分割法

黄金分割法基本思路:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。按(618.0) 缩小

比较)(xf大小

确定取舍区间。

黄金分割法流程图

题目:对函数279fxxx,给定搜索区间08x时,试用黄金分割法求极小点

源程序代码及结果:

f=inline('x^2-7*x+9')

a=0;b=8;eps=;

a1=*(b-a);y1=f(a1);

a2=a+*(b-a);y2=f(a2);

while(abs(b-a)>eps)

if(y1>=y2)

a=a1;

a1=a2;

y1=y2; a2=a+*(b-a);

y2=f(a2);

else

b=a2;a2=a1;y2=y1;

a1=*(b-a);

y1=f(a1);

end

end

xxx=*(a+b)

f =

Inline function:

f(x) = x^2-7*x+9

xxx =

3.牛顿型法

牛顿型法基本思路:在kx邻域内用一个二次函数x 来近似代替原目标函数,并将 x的极小点作为对目标函数fx求优的下一个迭代点1kx。经多次迭代,使之逼近目标函数fx的极小点。

阻尼牛顿法的流程图:

题目:用牛顿阻尼法求函数412112,22fxxxxx的极小点

源程序代码及结果:

k=0;

ptol=;

xk=input('input x0:')

itcl=[1;1];

while norm(itcl)>=ptol

f1=[4*xk(1,1)^3-24*xk(1,1)^2+50*xk(1,1)-4*xk(2,1)-32;-4*xk(1,1)+8*xk(2,1)];

G=[12*xk(1,1)^2-48*xk(1,1)+50,-4;-4,8];

dk=-inv(G)*f1; a=-(dk'*f1)/(dk'*G*dk);

xk=xk+a*dk;

itcl=a*dk;

k=k+1;

end

f=(xk(1,1)-2)^4+(xk(1,1)-2*xk(2,1))^2;

fprintf('\n ó?×è?á?£?ù·¨μü′ú %d ′?oóμ?μ? ??D?μ? x*?°??D??μ f ?a:\n',k);

disp(xk);

disp(f);

结果显示:input x0:[1;1] 用阻尼牛顿法迭代 27 次后得到 极小点 x*及极小值 f 为:

4.鲍威尔法

鲍威尔法基本思路:在不用导数的前提下,在迭代中逐次构造G的共轭方向。

鲍威尔法流程图:

4.3 题目:求函数f(x)=

x[0]*x[0]+x[1]*x[1]-x[0]*x[1]-10*x[0]-4*x[1]+60的最优点,收敛精度ε=

源程序代码及结果:

#include ""

#include ""

#include ""

double objf(double x[])

{double ff;

ff=x[0]*x[0]+x[1]*x[1]-x[0]*x[1]-10*x[0]-4*x[1]+60;

return(ff);

}