合肥工业大学
《机械优化设计》课程实践
研究报告
班 级: 11级机设 学 号: 2011 姓 名:
授课老师: 王卫荣 日 期: 2014年 4月日
一、研究报告内容:
1、λ=0.618的证明、一维搜索程序作业;
黄金分割法要求插入点α1、α2的位置相对于区间{a,b}两端点具有对称性,
α1=b?λ b?a
α2=a+λ(b?a)
除对称要求外,黄金分割法还要求在保留下来的区间内再插入一点所形成的区间新三段,与原来区间的三段具有相同的比例分布。设原区间(a,b)长度为1,保留下来的区间(a, α2)长度为λ,区间缩短率为λ。为了保持相同的比例分布,新插入点α3应在λ(1-λ)位置上,α1在原区间的1-λ位置应相当于在保留区间的λ2位置。故有 1-λ=λ2 即 λ2+λ-1=0 取方程正数解,得
5?1
λ=≈0.618
2
0.618法C语言程序:
#include
float m=0.618; float fun(float t) {float y; y=cos(t); return y; } main()
{ float a,b,eps;
printf(\
scanf(\ printf(\
scanf(\ float t1,t2,t,f1,f2,min; printf(\
scanf(\ while((b-a)/b>=eps) { t1=a+(1-m)*(b-a); t2=a+m*(b-a); f1=fun(t1); f2=fun(t2);
if(f1>=f2) { a=t1; t1=t2; f1=f2; t2=a+m*(b-a);
f2=fun(t2); }
else { b=t2;
t2=t1;
输入函数下限% 输入函数上限%
输入精度%
f2=f1;
t1=a+(1-m)*(b-a); f1=fun(t1);
} }
t=(a+b)/2; min=fun(t);
printf(\最优点t=%f\\n\输出最优点t% printf(\最优值f= %f\\n\输出最优值f%
1.Y= cos(t)
2.y= (t-2)*(t-2)+3
2.单位矩阵程序作业
程序如下所示:
#include \void main (void) {
int i,j; int n; int a=1; int b=0;
printf(\阶数n=\ scanf(\ for(i=1;i<=n;i++) {
for (j=1;j<=n;j++) if(i==j)
printf(\