机械优化设计二次插值法(上机)

机械优化设计二次插值法(上机)
机械优化设计二次插值法(上机)

二次插入法的c语言程序,机械优化设计(第四版)第二次上机内容哦,根据课本程序框图写的,分享给工科学生。

——CXK #define f(x) sin(x)//定义函数,函数可以任意改的。

程序:

#include

#include

#define f(x) sin(x)

void main()

{

double y1,y2,y3,x1,x2,x3,e,h,xr,yr,c1,c2,xp,yp;

printf("请输入x1,x2,x3,e,h\n");

scanf("%lf%lf%lf%lf%lf",&x1,&x2,&x3,&e,&h);

y1=f(x1);

y2=f(x2);

y3=f(x3);

do

{

c1=(y3-y1)/(x3-x1);

c2=((y2-y1)/(x2-x1)-c1)/(x2-x3);

xp=0.5*(x1+x3-c1/c2);

yp=f(xp);

if(fabs((y2-yp)/y2)

break;

if((xp-x2)*h>0)

{

if(y2>=yp)

{x1=x2;

y1=y2;

x2=xp;

y2=yp;}

else

{x3=xp;

y3=yp;}

}

else

{

if(y2>=yp)

{x3=x2;

y3=y2;

x2=xp;

y2=yp;}

else

{x1=xp;

y1=yp;}

}

}while (fabs((y2-yp)/y2)>=e);

if(y2

{xr=x2; yr=y2;

printf("\nxr=%f\nf(xr)=%f",xr,yr);} else

{ xr=xp; yr=yp;

printf("\nxr=%f\nf(xr)=%f",xr,yr);} system("pause") ;

return main();

}

下面是运行程序图:

喜欢的话记得给五星~

二次插值算法

二次插值法亦是用于一元函数在确定的初始区间内搜索极小点的一种方法。它属于曲线拟合方法的范畴。 一、基本原理 在求解一元函数的极小点时,常常利用一个低次插值多项式来逼近原目标函数,然后求该多项式的极小点(低次多项式的极小点比较容易计算),并以此作为目标函数的近似极小点。如果其近似的程度尚未达到所要求的精度时,可以反复使用此法,逐次拟合,直到满足给定的精度时为止。 常用的插值多项式为二次或三次多项式,分别称为二次插值法和三次插值法。这里我们主要介绍二次插值法的计算公式。 假定目标函数在初始搜索区间中有三点、和 ,其函数值分别为、和(图1},且满足,,即满足函数值为两头大中间小的性质。利用这三点及相应的函数值作一条二次曲线,其函数为一个二次多项式 (1) 式中、、为待定系数。

图1 根据插值条件,插值函数与原函数在插值结点、、处函数值相等,得 (2) 为求插值多项式的极小点,可令其一阶导数为零,即 (3) 解式(3)即求得插值函数的极小点(4) 式(4)中要确定的系数可在方程组(2)中利用相邻两个方程消去而得: (5)

(6)将式(5)、(6)代入式(4)便得插值函数极小值点的计算公式: (7)把取作区间内的另一个计算点,比较与两点函数值的大小,在保持两头大中间小的前提下缩短搜索区间,从而构成新的三点搜索区间,再继续按上述 方法进行三点二次插值运算,直到满足规定的精度要求为止,把得到的最后的作为 的近似极小值点。上述求极值点的方法称为三点二次插值法。 为便于计算,可将式(7)改写为 (8) 式中: (9) (10) 二、迭代过程及算法框图 (1)确定初始插值结点 通常取初始搜索区间的两端点及中点为,, 。计算函数值,,,构成三个初始插值结点、、。

机械优化设计上机实践报告【精编版】

机械优化设计上机实践报告【精编版】

机械优化设计上机实践报告 班级:机械(茅以升)101 姓名: 学号: 1004010510 成绩: 指导教师: 张迎辉

日期: 2013.11.20

1 《一维搜索方法》上机实践报告 1、写出所选择的一维搜索算法的基本过程、原理(可附流程图说明)。 (一)进退法 1. 算法原理 进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是: ()f x 为单谷函数(只有一个极值点) ,且[,]a b 为其极小值点的一个搜索区间,对于任意12,[,]x x a b ∈,如果()()12f x f x <,则2[,]a x 为极小值的搜索区间,如果()()12f x f x >,则1[,]x b 为极小值的搜索区间。 因此,在给定初始点0x ,及初始搜索步长h 的情况下,首先以初始步长向前搜索一步,计算()0f x h +。 (1) 如果()()00f x f x h <+ 则可知搜索区间为0[,]x x h +%,其中x %待求,为确定x %,后退一步计算0()f x h λ-,λ为缩小系数,且01λ<<,直接找到合适的*λ,使得()*00()f x h f x λ->,从而确定搜索区间*00[,]x h x h λ-+。 (2) 如果()()00f x f x h >+ 则可知搜索区间为0[,]x x %,其中x %待求,为确定x %,前进一步计算0()f x h λ+, λ为放大系数,且1λ>,知道找到合适的*λ,使得()*00()f x h f x h λ+<+,从而确定搜索区间*00[,]x x h λ+。 2. 算法步骤 用进退法求一维无约束问题min (),f x x R ∈的搜索区间(包含极小值点的区间)的基本算法步骤如下:

机械优化设计

《机械优化设计》实验教学大纲 湖南农业大学工学院 2007年11月

《机械优化设计》实验教学大纲 1、实验课程号:30179B1 2、课程属性:选修 3、实验属性:非独立设课 4、学时:总学时40,实验学时8 学分:2 5、实验应开学期:第5学期(秋季) 6、先修课程:理论力学、材料力学、机械原理、机械设计、Visual Basic语言或C语言 一、课程的性质和任务 《机械优化设计》课程是高等工科院校中机械类专业指导委员会指定的一门主干课程,是一门用以培养学生在机械设计中应用现代设计方法的专业课,其目的是使学生树立优化设计的思想,掌握优化设计的基本概念和基本方法, 并初步具有应用机械优化设计的基本理论和基本方法解决简单工程实际问题的初步能力。为学生的毕业设计及科学研究打下一定的基础,该课程是在高年级设置的专业选修课,可供机械类或近机类专业的学生选修。该课程在机械类或近机类专业的教学计划中占有重要的地位和作用。 二、实验的目的与基本要求 1、加深对机械优化设计方法的基本理论和算法步骤的理解。 2、掌握数学模型的建立方法 3、掌握几种常用的最优化计算方法。 4、能运用计算机语言来编程上机解答,培养学生独立编制、调试计算机程序的能力。 5、培养学生灵活运用优化设计方法解决工程实际问题的初步能力。 三、实验考核方式及办法 课程实验不单独考试,根据实验内容当场在计算机上查看实验结果运行情况,要求打印出实验程序、并结合学生实际动手能力和学习态度进行评分,计入课程考试,实验课成绩占课程总分成绩的15%。 四、实验项目一览表 序号实验项目实验 类型 实验方法 实验要 求 每组 人数 适用 专业 实 验 学 时 1 优化方法编程验证任选做 其中两 工科 类 4

机械优化设计实验指导书

机械优化设计实验指导 书 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

《机械优化设计》 实验指导书 武秋敏编写 院系:印刷包装工程学院 专业:印刷机械 西安理工大学 二00七年九月 上机实验说明 【实验环境】 操作系统: Microsoft Windows XP 应用软件:Visual C++或TC。 【实验要求】 1、每次实验前,熟悉实验目的、实验内容及相关的基本理论知识。 2、无特殊要求,原则上实验为1人1组,必须独立完成。 3、实验所用机器最好固定,以便更好地实现实验之间的延续性和相关性,并便于检查。 4、按要求认真做好实验过程及结果记录。 【实验项目及学时分配】 【实验报告和考核】 1、实验报告必需采用统一的实验报告纸,撰写符合一定的规范,详见实验报告撰写格式及规范。

(一)预习准备部分 1. 预习本次实验指导书中一、二、三部分内容。 2. 按照程序框图试写出汇编程序。 (二)实验过程部分 1. 写出经过上机调试后正确的程序,并说明程序的功能、结构。 2. 记录4000~40FFH内容在执行程序前后的数据结果。 3. 调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 (三)实验总结部分

实验(一) 【实验题目】 一维搜索方法 【实验目的】 1.熟悉一维搜索的方法-黄金分割法,掌握其基本原理和迭代过程; 2.利用计算语言(C语言)编制优化迭代程序,并用给定实例进行迭代验证。 【实验内容】 1.根据黄金分割算法的原理,画出计算框图; 2.应用黄金分割算法,计算:函数F(x)=x2+2x,在搜索区间-3≤x≤5时,求解其极小点X*。 【思考题】 说明两种常用的一维搜索方法,并简要说明其算法的基本思想。 【实验报告要求】 1.预习准备部分:给出实验目的、实验内容,并绘制程序框图; 2.实验过程部分:编写上机程序并将重点语句进行注释;详细描述程序的调过程(包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析。 3.实验总结部分:对本次实验进行归纳总结,给出求解结果。要求给出6重迭代中a、x1、x2、b、y1和y2的值,并将结果与手工计算结果进行比较。 4.回答思考题。

黄金分割法、二次插值法C语言编程

已知:F(x)=x4-4x3-6x2-16x+4,求极小值,极小值点,区间,迭代次数?用进退法确定区间,用黄金分割法求极值。 #include #include #define e 0.001 #define tt 0.01 float f(double x) { float y=pow(x,4)-4*pow(x,3)-6*pow(x,2)-16*x+4; return(y); } finding(float *p1,float*p2) { float x1=0,x2,x3,t,f1,f2,f3,h=tt; int n=0; x2=x1+h;f1=f(x1);f2=f(x2); if(f2>f1) {h=-h;t=x2;x2=x1;x1=t;} do { x3=x2+h;h=2*h;f3=f(x3);n=n+1;} while(f3x3) {t=x1;x1=x3;x3=t;} *p1=x1;*p2=x3; return(n); } gold(float *p) { float a,b,x1,x2,f1,f2; int n=0; finding(&a,&b); do {x1=a+0.382*(b-a); x2=a+0.618*(b-a);f1=f(x1);f2=f(x2);n=n+1; if(f1>f2) a=x1; else b=x2;} while((b-a)>e); *p=(x1+x2)/2;return(n); } main() { float a,b,x,min;int n1,n2; n1=finding(&a,&b); n2=gold(&x); min=f(x); printf("\n The area is %f to %f.",a,b); printf("\n The nunmber 1 is %d.",n1); printf("\n The min is %f and the result is %f.",x,min);

二次插值算法

二次插值法亦是用于一元函数在确定的初始区间搜索极小点的一种方法。它属于曲线拟合方法的畴。 一、基本原理 在求解一元函数的极小点时,常常利用一个低次插值多项式来逼近原目标函数, 然后求该多项式的极小点(低次多项式的极小点比较容易计算),并以此作为目标函数 的近似极小点。如果其近似的程度尚未达到所要求的精度时,可以反复使用此法,逐次拟合,直到满足给定的精度时为止。 常用的插值多项式为二次或三次多项式,分别称为二次插值法和三次插值法。这里我们主要介绍二次插值法的计算公式。 假定目标函数在初始搜索区间中有三点、和 ,其函数值分别为、和(图1},且满足,,即满足函数值为两头大中间小的性质。利用这三点及相应的函数值作一条二次曲线,其函数为一个二次多项式 (1) 式中、、为待定系数。

图1 根据插值条件,插值函数与原函数在插值结点、、处函数值相等,得 (2) 为求插值多项式的极小点,可令其一阶导数为零,即 (3) 解式(3)即求得插值函数的极小点(4) 式(4)中要确定的系数可在方程组(2)中利用相邻两个方程消去而得: (5)

(6) 将式(5)、(6)代入式(4)便得插值函数极小值点的计算公式: (7) 把取作区间的另一个计算点,比较与两点函数值的大小,在保持 两头大中间小的前提下缩短搜索区间,从而构成新的三点搜索区间,再继续按上述方法进行 三点二次插值运算,直到满足规定的精度要求为止,把得到的最后的作为的近似极小值点。上述求极值点的方法称为三点二次插值法。 为便于计算,可将式(7)改写为 (8) 式中: (9) (10) 二、迭代过程及算法框图 (1)确定初始插值结点 通常取初始搜索区间的两端点及中点为,,。计算函数值,,,构成三个初始插值结点、、。

机械优化设计项目报告

机械装备优化设计三级项目 题目:基于MATLAB的带式输送机斜齿轮传动参数优化设计 班级:13级机械装备1班 设计人员(按贡献大小排序): 丁涛 宋潮 金渊哲

摘要: 针对带式输送机中单级圆柱齿轮减速器传动的生产实际,根据优化设计理论,以斜齿圆柱齿轮体积之和最小为优化设计目标。通过变量的选取、约束条件的确定。分析建立了优化设计数学模型.基于Matlab工具箱中非线性约束优化函数fmincon,对齿轮模数、齿数、齿宽系数、螺旋角等结构参数进行优化设计,节省了金属材料。降低了制造成本.取得了较好的优化效果。为产品的改进设计提供了理论依据。 关键词:MATLAB、带式输送机、斜齿轮、参数优化设计

前言: 机械优化设计是适应生产现代化要求发展起来的一种机械设计方法,它包括机械优化设计、机械零部件优化设计、机械结构参数和形状的优化设计等内容。该领域的研究和应用进展非常迅速,并且取得了可观的经济效益。随着科技的发展,现代化机械优化设计方法主要以数学规划为核心,以计算机为工具,向着多变量、多目标、高效率、高精度的方向发展。现在用于机械优化设计的软件与方法程序较多,有些已非常成熟,只需要按照规定的格式编写目标函数和约束函数子程序即可。机械优化设计方法林林总总,但由于机械设计问题的复杂性,所以每种优化方法都有其优越性和局限性。选择合适的机械优化方法尤为重要。而MATLAB语言的优化工具箱在进行优化设计时,可自由选择算法和线性搜索策略,计算快捷高效,图形结果可视化,且其初始参数值输入简单,编程工作量小,具有明显的优越性,且应用广泛。MATLAB语言是集科学计算、数据可视化和程序设计为一体的工程应用软件。作为基础软件,它广泛应用在工程学科的计算机辅助分析、设计仿真和教学中,在行星轮系传动参数设计中,利用MATLAB 的优化工具箱的函数计算及按摩,可提高建模的准确性和计算中的数值稳定性,为设计提供了可靠的科学根据。

优化设计实验报告(...)(1)

机械优化设计 实 验 报 告 姓名:欧阳龙 学号:2007500817 班级:07机设一班

一、黄金分割法 1、 数学模型 2()2f x x x =+,56x -≤≤ 2、 黄金分割法简介 黄金分割法适用于单谷函数求极小值问题,且函数可以不连续。黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间[],a b 内适当插入两点1α、2α,并计算其函数值。1α、2α将区间分成三段。应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法能使相邻两次都具有相同的缩短率0.618,故黄金分割法又称作0.618法。 3、黄金分割法程序清单 #include #include /*目标函数*/ float ff(float x) { float y; y=x*x+2*x; return(y); } main() { float a,b,ab,Epsilon; float y1,y2,Alpha1,Alpha2; float Lambda=0.618; printf("please input the arear and Epsilon\n"); scanf("%f,%f,%f",&a,&b,&Epsilon); Alpha1=b-Lambda*(b-a),Alpha2=a+Lambda*(b-a); printf("%f,%f\n",Alpha1,Alpha2); y1=ff(Alpha1);y2=ff(Alpha2); printf("y1=%f,y2=%f\n",y1,y2); do {if(y1>=y2) {a=Alpha1; Alpha1=Alpha2; y1=y2; Alpha2=a+Lambda*(b-a); y2=Alpha2*Alpha2+2*Alpha2; }

机械优化设计上机报告

机械优化设计上机实践报告 班级:机械(茅以升)101 姓名: 学号: 1004010510 成绩: 指导教师: 张迎辉 日期: 2013.11.20

1 《一维搜索方法》上机实践报告 1、写出所选择的一维搜索算法的基本过程、原理(可附流程图说明)。 (一)进退法 1. 算法原理 进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:()f x 为单谷函数(只有一个极值点),且[,]a b 为其极小值点的一个搜索区间,对于任意12,[,]x x a b ∈,如果()()12f x f x <,则2[,]a x 为极小值的搜索区间,如果()()12f x f x >,则1[,]x b 为极小值的搜索区间。 因此,在给定初始点0x ,及初始搜索步长h 的情况下,首先以初始步长向前搜索一步,计算()0f x h +。 (1) 如果()()00f x f x h <+ 则可知搜索区间为0[,]x x h +,其中x 待求,为确定x ,后退一步计算0()f x h λ-,λ为缩小系数,且01λ<<,直接找到合适的*λ,使得()*00()f x h f x λ->,从而确定搜索区间 *00[,]x h x h λ-+。 (2) 如果()()00f x f x h >+ 则可知搜索区间为0[,]x x ,其中x 待求,为确定x ,前进一步计算0()f x h λ+,λ为放大系数,且1λ>,知道找到合适的*λ,使得()*00()f x h f x h λ+<+,从而确定搜索区间 *00[,]x x h λ+。 2. 算法步骤 用进退法求一维无约束问题min (),f x x R ∈的搜索区间(包含极小值点的区间)的基本算法步骤如下: (1) 给定初始点(0)x ,初始步长0h ,令0h h =,(1)(0)x x =,0k =; (2) 令(4)(1)x x h =+,置1k k =+;

机械优化设计一维搜索实验报告

《机械优化设计》 实验报告 班级: 机械设计(2)班 姓名:邓传淮 学号:0901102008

1 实验名称:一维搜索黄金分割法求最佳步长 2 实验目的:通过上机编程,理解一维搜索黄金分割法的原理,了解计算机在优化设计中的应用。 3 黄金分割法的基本原理 黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点α*的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数[6],即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间[7]。具体步骤是:在区间[a,b]内取点:a1 ,a2 把[a,b]分为三段。如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+r*(b-a);如果f(a1)

4实验所编程序框图(1)进退发确定单峰区间的计算框图

(2)黄金分割法计算框图

5 程序源代码 (1)进退发确定单峰区间的程序源代码 #include #include #define f(x) pow(x,4)-3*pow(x,3)-5*pow(x,2)-14*x+46 main() { int k; double x,h,x1,x2,x3; double f1,f2,f3,f; double a,b; x1=0; h=1; x2=x1+h; f1=f(x1); f2=f(x2); if (f1>f2) { h=2*h; x3=x2+h; f3=f(x3);

三次样条插值方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

三次样条插值方法的应用 一、问题背景 分段低次插值函数往往具有很好的收敛性,计算过程简单,稳定性好,并且易于在在电子计算机上实现,但其光滑性较差,对于像高速飞机的机翼形线船体放样等型值线往往要求具有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(即所谓的样条)用压铁固定在样点上,在其他地方让他自由弯曲,然后沿木条画下曲线,称为样条曲线。样条曲线实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。下面我们讨论最常用的三次样条函数及其应用。 二、数学模型 样条函数可以给出光滑的插值曲线(面),因此在数值逼近、常微分方程和偏微分方程的数值解及科学和工程的计算中起着重要的作用。 设区间[]b ,a 上给定有关划分b x x n =<<<= 10x a ,S 为[]b ,a 上满足下面条件的函数。 ● )(b a C S ,2∈; ● S 在每个子区间[]1,+i i x x 上是三次多项式。 则称S 为关于划分的三次样条函数。常用的三次样条函数的边界条件有三种类型: ● Ⅰ型 ()()n n n f x S f x S ''0'',==。 ● Ⅱ型 ()()n n n f x S f x S ''''0'''',==,其特殊情况为()()0''''==n n x S x S 。 ● Ⅲ型 ()() 3,2,1,0,0==j x S x S n j j ,此条件称为周期样条函数。 鉴于Ⅱ型三次样条插值函数在实际应用中的重要地位,在此主要对它进行详细介绍。 三、算法及流程 按照传统的编程方法,可将公式直接转换为MATLAB 可是别的语言即可;另一种是运用矩阵运算,发挥MATLAB 在矩阵运算上的优势。两种方法都可以方便地得到结果。方法二更直观,但计算系数时要特别注意。这里计算的是方法一的程序,采用的是Ⅱ型边界条件,取名为spline2.m 。 Matlab 代码如下: function s=spline2(x0,y0,y21,y2n,x) %s=spline2(x0,y0,y21,y2n,x) %x0,y0 are existed points,x are insert points,y21,y2n are the second

机械优化设计实验指导书(114830)讲解学习

机械优化设计实验指导书 实验一用外推法求解一维优化问题的搜索区间 一、实验目的: 1、加深对外推法(进退法)的基本理论和算法步骤的理解。 2、培养学生独立编制、调试机械优化算法程序的能力。 3、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、主要设备及软件配置 硬件:计算机(1台/人) 软件:VC6.0(Turbo C) 三、算法程序框图及算法步骤 图1-1 外推法(进退法)程序框图

算法程序框图:如图1-1所示。 算法步骤:(1)选定初始点a1=0, 初始步长h=h0,计算 y1=f(a1), a2=a1+h,y2=f(a2)。 (2)比较y1和y2: (a)如y1≤y2, 向右前进;,转(3); (b)如y2>y1, 向左后退;h=-h,将a1与a2,y1与y2的 值互换。转(3)向后探测; (3)产生新的探测点a3=a2+h,y3=f(a3); (4) 比较函数值 y2和y3: (a)如y2>y3, 加大步长 h=2h ,a1=a2, a2=a3,转(3)继续 探测。 (b)如y2≤y3,则初始区间得到:a=min[a1,a3], b=max[a3,a1],函数最小值所在的区间为[a, b] 。 四、实验内容与结果分析 1、根据算法程序框图和算法步骤编写计算机程序; 2、求解函数f(x)=3x2-8x+9的搜索区间,初始点a1=0,初始步长h0=0.1; 3、如果初始点a1=1.8,初始步长h0=0.1,结果又如何? 4、试分析初始点和初始步长的选择对搜索计算的影响。

实验二用黄金分割法求解一维搜索问题 一、实验目的: 1、加深对黄金分割法的基本理论和算法步骤的理解。 2、培养学生独立编制、调试机械优化算法程序的能力。 3、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、主要设备及软件配置 硬件:计算机(1台/人) 软件:VC6.0(Turbo C) 三、算法程序框图及算法步骤 图1-2 黄金分割法程序框图 算法程序框图:如图1-2所示。 算法步骤: 1)给出初始搜索区间[a,b]及收敛精度ε,将λ赋以0.618。

优化设计VC6.0二次插值法

题目:利用二次插值法求()f sin αα=在4≤α≤5上的极小点。 利用VC++6.0进行编程,求得极小点。具体程序如下说明。 一、 二次插值法 求解原理:在求解一元函数的极小点时,常常利用一个低次插值多项式 来逼近原目标函数,然后求该多项式的极小点(低次多项式的极小点比较容易计算),并以此作为目标函数的近似极小点。如果其近似的程度尚未达到所要求的精度时,可以反复使用此法,逐次拟合,直到满足给定的精度时为止。二次差值的程序流程图

程序如下: #include "stdio.h" #include "math.h" #define f(x) sin(x)//宏定义函数f(x) int main() { //////////////////////////////////////////////////////////////////////////二次插值法 printf("*************************************二次插值法************************************\n"); float m1=4,m2=4.5,m3=5,w=1,s; float h1,h2,h3,hp,c1,c2,mp; s=1e-5; int i=0; h1=f(m1); h2=f(m2); h3=f(m3); c1=(h3-h1)/(m3-m1); c2=((h2-h1)/(m2-m1)-c1)/(m2-m3); mp=(m1+m3-(c1/c2))/2; hp=f(mp); while (fabs((m2-mp)/m2)>=s) { i++; if ((mp-m2)*w>0) { if (h2>=hp) { m1=m2; h1=h2; m2=mp; h2=hp; } else { m3=mp; h3=hp; } } else { if (h2>=hp) { m3=m2;

合肥工业大学《机械优化设计》课程实践报告

合肥工业大学 《机械优化设计》课程实践 研究报告 班级: 学号: 姓名: 授课教师: 日期:2016年 11 月 7 日 目录 作业要求 (2)

一、λ=0.618的证明、一维搜索程序作业 (3) 1、0.618法的基本思想 (3) 2、关于0.618法中参数λ=0.618的证明 (4) 3、一维搜索程序作业 (5) 二、单位矩阵程序作业 (8) 三、注释最佳再现给定运动规律连杆机构优化设计 (10) 问题模型子程序 (10) 四、连杆机构问题+其他工程优化问题 (12) 1、连杆机构问题 (12) 2、其他工程问题: (15) 五、课程实践心得体会 (18) 作业要求 1、λ=0.618的证明、一维搜索程序作业; 2、单位矩阵程序作业;

3、注释最佳再现给定运动规律连杆机构优化设计问题模型子程序; 4、连杆机构问题 + 自行选择小型机械设计问题或其他工程优化问题; (1)分析优化对象,根据设计问题的要求,选择设计变量,确立 约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序; (2)选择适当的优化方法,简述方法原理,进行优化计算; (3)进行结果分析,并加以说明。 5、写出课程实践心得体会,附列程序文本。 一、λ=0.618的证明、一维搜索程序作业 1、0.618法的基本思想 “0.618法”,又称为黄金分割法,是常用的一种一维搜索试探方法,适用于 [,]a b 区间上的任何单调函数求极小值问题。 0.618法是建立在区间消去法原理基础上的试探方法,即在搜索区间[,]a b 内适当插入两点1a 、1b ,且11a b ,如下图所示。通过比较函数值1()f a 与1()f b 的大小,应用函数的单调性,可得出以下两种情况:

机械优化设计实验报告浙江理工大学.docx

机械优化设计实验 报告 班级:XXXX 姓名:XX 学号:XXXXXXXXXXX

一、外推法 1、实验原理 常用的一维优化方法都是通过逐步缩小极值点所在的搜索区间来求最优解的。一般情况下,我们并不知道一元函数f(X)极大值点所处的大概位置,所以也就不知道极值点所在的具体区域。由于搜索区间范围的确定及大小直接影响着优化方法的收敛速度及计算精度。因此,一维优化的第一步应首先确定一个初始搜索区间,并且在该区间内函数有唯一的极小值存在。该区间越小越好,并且仅存在唯一极小值点。 所确定的单股区间应具有如下性质:如果在[α1,α3]区间内任取一点α2,,α1<α2<α3或α3<α2<α1,则必有f(α1)>f(α2) #include #define f(x) 3*x*x-8*x+9 //定义函数 int main() { double a0,a1,a2,a3,f1,f2,f3,h; printf(“a0=”,a0); //单谷区间起始点 scanf(“%lf”,&a0); printf(“h=”,h); //起始的步长 scanf(“%lf”,&h); a1=a0;

a2=a1+h; f1=f(a0); f2=f(a2); if(f1>f2) //判断函数值的大小,确定下降方向 { a3=a2+h; f3=f(a3); } else { h=-h; a3=a1; f3=f1; a1=a2; f1=f2; a2=a3; f2=f3; a3=a2+h; f3=f(a3); } while(f3<=f2) //当不满足上述比较时,说明下降方向反向,继续进行判断 { h=2*h; a1=a2; f1=f2; a2=a3; f2=f3; a3=a2+h; f3=f(a3);

机械优化设计课程教学大纲知识分享

《机械优化设计》课程教学大纲 一.课程基本信息 开课单位:机械工程学院 英文名称:Mechanical Optimize Design 学时:总计48学时,其中理论授课36学时,实验(含上机)12学时 学分:3.0学分 面向对象:机械设计制造及其自动化,机械电子工程等本科专业 先修课程:高等数学,线性代数,计算机程序设计,工程力学,机械原理,机械设计 教材:《机械优化设计》,孙靖民主编,机械工业出版社,2012年第 5版 主要教学参考书目或资料: 1.《机械优化设计》,陈立周主编,上海科技出版社,1982年 2.《机械优化设计基础》,高健主编,机械工业出版社,2000年 3. 其它教学参考数目在课程教学工作实施前另行确定 二.教学目的和任务 优化设计是60年代以来发展起来的一门新学科,它是将最优化方法和计算机技术结合、应用于设计领域而产生的一种现代设计方法。利用优化设计方法可以从众多的设计方案中寻找最佳方案,加快设计过程,缩短设计周期,从而大大提高设计效率和质量。优化设计方法目前已经在机械工程、结构工程、控制工程、交通工程和经济管理等领域得到广泛应用。在机械设计中采用最优化方法,可以加速产品的研发过程,提高产品质量,降低成本,从而达到增加经济效益的目的。学生通过学习《机械优化设计》课程,可以掌握优化设计的基本原理和方法,熟悉建立最优化问题数学模型的基本过程,初步具备对工程中的优化设计问题进行建模、编程和计算的应用能力,为以后从事有关的工程技术工作和科学研究工作打下一定的基础。 三.教学目标与要求 本门课程通过授课、计算机编程等教学环节,使学生了解优化设计的基本思想,优化设计在机械中的作用及其发展概况。初步掌握建立数学模型的方法,掌握优化方法和使用MATLAB优化工具箱能力。并具备一定的将机械工程问题转化为最优化问题并求解的应用能力 四.教学内容、学时分配及其基本要求 第一章优化设计概述(2学时) (一)教学内容 1、课程的性质、优化的含义;优化方法的发展与应用;机械优化设计的内容及目的;机械优化设计的一般过程 2、机械优化设计的基本概念和基本术语;优化设计的数学模型;优化问题的几何描述;优化设计的基本方法 (二)基本要求 机械优化设计的内容及目的。明确优化的含义、任务,性质、内容、明确本课程的研究对象、、1. 2、了解机械忧化设计的一般过程(步骤)。 3、掌握设计变量、目标函数、约束条件以及优化设计数学模型的一般形式。 第二章优化方法的数学基础(6学时) (一)教学内容 1、函数的梯度与二阶导数

优化设计报告

(课程实践报告封面模版) 合肥工业大学 《机械优化设计》课程实践 研究报告 班级:机设六班 学号: 姓名:李继鑫 授课老师:王卫荣 日期: 2013年 5 月 7 日

(一)一维搜索 min f(x)=]10,0[]2,0[]32)2[(*cos *π???+-x d x c 注:其中c 、d 为待定系数,用于确定选择的函数是哪一个。 C 语言程序段如下: #include #include #define p 3.14 float fun(float x,float c,float d); void main(void) { float a0,a1,a2,r,a,b; float y1=0.0000,y2=0.0000,u; float c,d; u=0.618; printf("input[a,b]and r:a= b= r= "); scanf("%f%f%f",&a,&b,&r); printf("choose only ONE function number c=1 0 or d=0 1\n"); scanf("%f%f",&c,&d); if(c==1) d=0; else c=0,d=1; a1=b-u*(b-a),y1=fun(a1,c,d);

a2=a+u*(b-a),y2=fun(a2,c,d); do { if(y1>=y2) { a=a1; a1=a2,y1=y2; a2=a+u*(b-a),y2=fun(a2,c,d); } else { b=a2; a2=a1,y2=y1; a1=b-u*(b-a),y1=fun(a1,c,d); } }while(fabs((b-a)/b)>r && fabs((y2-y1)/y2)>r); a0=0.5*(a+b); printf("The best result a0=%f\n",a0); } /******function editting********/ float fun(float x,float c,float d) {

插值法-第二次程序题

插值法 题目1:对Runge 函数2 2511 )(x x R += 在区间[-1,1]作下列插值逼近, 并和R(x)的图像进行比较,并对结果进行分析。 (1)用等距节点,200,1.0,-1≤≤=+=i h ih x i 绘出它的20次Newton 插值多项式的图像。 (2)用节点)20,,2,1,0(,)42 1 2cos( ???=+=i i x i π,绘出它的20次Lagrange 插值多项式的图像。 (3)用等距节点,200,1.0,-1≤≤=+=i h ih x i 绘出它的分段线性插 值函数的图像。 (4)用等距节点,200,1.0,-1≤≤=+=i h ih x i 绘出它的三次自然样 条插值函数的图像。 程序及分析: (1)用等距节点,200,1.0,-1≤≤=+=i h ih x i 绘出它的20次Newton 插值多项式的图像。 Matlab 程序如下: %计算均差 x=[-1::1];

n=length(x); syms z for i=1:n y(i)=1/(1+25*x(i)*x(i)); end N=zeros(n,n); N(:,1)=y'; for j=2:n for k=j:n N(k,j)=(N(k,j-1)-N(k-1,j-1))/(x(k)-x(k-j+1)); end end for t=1:n c(t)=N(t,t) end

%构造插值多项式 f=N(1,1); for k=2:n a=1; for r=1:(k-1) a=a*(z-x(r)); end f=f+N(k,k)*a; end %作图 a=[-1::1]; n=length(a); for i=1:n b(i)=1/(1+25*a(i)*a(i)); end

20110534-张成-《机械优化设计》课程实践报告.doc

研究报告要求及格式模版 合肥工业大学 《机械优化设计》课程实践 研究报告 班级:机械设计制造及其自动化11-5班 学号:20110534 姓名:张成 授课老师:王卫荣 日期:2014年4 月10日

一、研究报告内容: 1、λ=0.618的证明、一维搜索程序作业; 2、单位矩阵程序作业; 3、连杆机构问题+自行选择小型机械设计问题或其他工程优化问题; (1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序; (2)选择适当的优化方法,简述方法原理,进行优化计算; (3)进行结果分析,并加以说明。 4、写出课程实践心得体会,附列程序文本。 5、为响应学校2014年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。 试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。(考评将重点关注您的独创性、简洁性与可验证性)。 二、研究报告要求 1、报告命名规则:学号-姓名-《机械优化设计》课程实践报告.doc 2、报告提交邮址:weirongw@https://www.360docs.net/doc/d72594159.html,(收到回复,可视为提交成功)。追求:问题的工程性,格式的完美性,报告的完整性。 不追求:问题的复杂性,方法的惟一性。 评判准则:独一是好,先交为好;切勿拷贝。

目录 1、λ=0.618的证明 (4) 2、编写0.618算法程序 (6) 2.1 求f(x)=cosx最小值 (6) 2.2 求f(x)=(x-2)2+3最小值 (7) 3、单位矩阵程序作业 (8) 4、连杆机构问题 (11) 5、自行选择小型机械设计问题或其他工程优化问题 (17) 6、写出课程实践心得体会,附列程序文本 (21) 7、为响应学校2014年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5% (22)

机械优化设计外推法,黄金分割法,二次插值法

机械优化设计课程作业 外推法 #include #include #define R 0.01 double fun(double t) { double m; m=t*t-10*t+36; return m; } void main() { double h0=R,y1,y2,y3,t1,t2,t3,h; t1=0;h=h0;t2=h; y1=fun(t1);y2=fun(t2); if(y2>y1) { h=-h; t3=t1; y3=y1; t1=t2; y1=y2; t2=t3; y2=y3; } t3=t2+h; y3=fun(t3); while(y3

黄金分割法 #include #include #define f(x) x*x*x*x-5*x*x*x+4*x*x-6*x+60 double hj(double *a,double *b,double e,int *n) { double x1,x2,s; if(fabs((*b-*a)/(*b))<=e) s=f((*b+*a)/2); else { x1=*b-0.618*(*b-*a); x2=*a+0.618*(*b-*a); if(f(x1)>f(x2)) *a=x1; else *b=x2; *n=*n+1; s=hj(a,b,e,n); } return s; } void main() { double s,a,b,e,m; int n=0; printf("输入a,b值和精度e值\n"); scanf("%lf %lf %lf",&a,&b,&e); s=hj(&a,&b,e,&n); m=(a+b)/2; printf("a=%lf,b=%lf,s=%lf,m=%lf,n=%d\n",a,b,s,m,n); }

机械优化设计实验报告1

《机械优化设计》 上机实验报告 (黄金分割法) 院系:机电工程学院 专业(班级):机制自动化10-02班 姓名:李淑超 学号:541002010220 机械优化设计 一、实验目的

机械优化设计方法在现代设计方法中占有重要地位,且实践性较强。学生通过上机计算达到以下目的: 1、加深对常用机械优化设计方法的基本理论和算法步骤的理解,在掌握原 理的基础上熟练运用此方法解决问题。 2、学会利用计算机语言编写程序来辅助解决数学问题。 3、培养学生独立编制、调试计算机程序的能力。 4、培养学生灵活运用优化设计方法解决工程实际问题的能力,力求达到理 论与实践的相统一。 5、编写规范的实验报告。 二、黄金分割法程序考核题 =x - F x x min2+ 10 36 ( ) 三、优化方法的基本原理简述: 黄金分割律是公元前六世纪,希腊的大数学家毕达哥拉斯发现的:如果把一条线段分成两部分,长段和短段的长度之比是1:0.618,整条线段和长段的比也是1:0.618时,才是和黄金一样最完美的分割,进行分割的这个点就叫黄金分割点。 黄金分割法适用于[a,b]区间上的任何单谷函数求极小值问题。对函数除要求“单谷”外不作其他要求,甚至可以不连续。因此,这种方法的适应面相当广。 黄金分割法也是建立在区间消去法原理基础上的试探方法。 在搜索区间内[a,b]适当插入两点a1,a2,将区间分成三段;利用区间消去法,使搜索区间缩小,通过迭代计算,使搜索区间无限缩小,从而得到极小点的数值近似解 四、程序框图绘制: 利用区间消去法确定a、b值,再给出ε、λ值,利用黄金分割法则可求出最优解a3、y3。 黄金分割法程序框图如下图:

相关文档
最新文档