机械优化设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称:机械优化设计班级:机械<3>班实验日期:2016.5.25 姓名:学号:指导教师:实验名称:进退法实验序号: 1 实验成绩:

(1)实验目的:

通过实验教学加深学生对优化设计方法的理解,培养学生程序调试和出错处理的能力,提高学生应用优化设计方法和程序设计的能力。

本实验课程的基本要求:

1)熟悉Visual C++的使用,掌握设计程序和调试程序的基本方法。

2)掌握一些重要优化算法,并具有较强的编程能力和解决实际优化问题的能力。

3)具有设计简单综合应用型程序的能力。

(2)实验内容:

1.调试用例题题目及正确结果:

(1)调试题目为教材P53 习题3.1

X0=0时:A=0.3 B=1.5

X0=1.8时:A= -1.5 B= -0.3

(2)调试题目为教材P42 例3.1

A=1 B=7

2.调试过程:

(1)#include

#define N 1

void main()

{

float gs(float x[N]);

float x[N],s[N],f[2],z[N],t,a,b;

int i;

for(i=0;i

{

printf("\n请输入初始点x[%d]=",i);

scanf("%f",&x[i]);

}

printf("\n请输入步长:");

scanf("%f",&t);

for(i=0;i

{

printf("\n请输入搜索方向s[%d]=",i);

scanf("%f",&s[i]);

}

a=0;b=t;

f[0]=gs(x);

for(i=0;i

z[i]=x[i]+b*s[i];

f[1]=gs(z);

if(f[1]

{

do

{t=2*t;b=b+t;f[0]=f[1]; for(i=0;i

if(f[0]>f[1])

a=b-t;

else break;}

while(f[0]>f[1]);

printf("\nA=%f,B=%f\n",a,b); }

else

{

t=0-t;

do

{a=a+t;f[1]=f[0];

for(i=0;i

z[i]=x[i]+a*s[i]; f[0]=gs(z);

if(f[1]>f[0])

{

b=a-t;t=2*t;

}

else break;}

while(f[1]>f[0]);

printf("\nA=%f,B=%f\n",a,b); }

}

float gs(float z[N])

{

float f;

f=3*z[0]*z[0]*z[0]-8*z[0]+9; return(f); }

(2)#include

#define N 1

void main()

{

float gs(float x[N]);

float x[N],s[N],f[2],z[N],t,a,b;

int i;

for(i=0;i

{

printf("\n请输入初始点x[%d]=",i); scanf("%f",&x[i]);

}

printf("\n请输入步长:");

scanf("%f",&t);

for(i=0;i

{

printf("\n请输入搜索方向s[%d]=",i); scanf("%f",&s[i]);

}

a=0;b=t;

f[0]=gs(x);

for(i=0;i

z[i]=x[i]+b*s[i];

f[1]=gs(z);

if(f[1]

{

do

{t=2*t;b=b+t;f[0]=f[1]; for(i=0;i

if(f[0]>f[1])

a=b-t;

else break;}

while(f[0]>f[1]);

printf("\nA=%f,B=%f\n",a,b); }

else

{

t=0-t;

do

{a=a+t;f[1]=f[0];

for(i=0;i

z[i]=x[i]+a*s[i]; f[0]=gs(z);

if(f[1]>f[0])

{

b=a-t;t=2*t;

}

else break;}

while(f[1]>f[0]);

printf("\nA=%f,B=%f\n",a,b); }

}

float gs(float z[N])

{

float f;

f=3*z[0]*z[0]*z[0]-8*z[0]+9; return(f); }

3.调试结果:

(1)

(2)

相关文档
最新文档