c语言编程进退法确定初始搜索区间,《机械优化设计》实验指导书

《机械优化设计》实验指导书

机械优化设计机械优化设计实验指导书实验指导书王彩红 编写院部:机院部:机电电工程学院工程学院专业专业:机械:机械设计专业设计专业华华北科技学院北科技学院二二 0 一二年十二月一二年十二月上机实验说明上机实验说明【实验环境实验环境】操作系统: Microsoft Windows XP 应用软件:Visual C+或 TC。【实验要求实验要求】1、每次实验前,熟悉实验目的、实验内容及相关的基本理论知识。 2、无特殊要求,原则上实验为 1 人 1 组,必须独立完成。 3、实验所用机器最好固定,以便更好地实现实验之间的延续性和相关性,并便于检 查。 4、按要求认真做好实验过程及结果记录。【实验项目及学时分配实验项目及学时分配】实验共计 4 学时,实验项目及学时分配如下:序号实验项目实验类型学时实 验 要 求1一维搜索方法验证21、明确进退法、黄金分割法的 基本原理及程序框图 2、编制进退法、黄金分割法程 序3、用考核题对所编程序进行考核2无约束优化方 法验证21、明确鲍威尔法基本原理及程 序框图 2、编制鲍威尔法程序3、用考核题对所编程序进行考核【实验报告和考核实验报告和考核】1、实验报告必需采用统一的实验报告纸,撰写符合一定的规范,详见实验报告撰写 格式及规范。(一)预习准备部分(一)预习准备部分1. 预习每次所做的实验。2. 按照程序框图试写出汇编程序。(二)实验过程部分(二)实验过程部分1. 写出经过上机调试后正确的程序,并说明程序的功能、结构。2. 记录执行程序后的数据结果。3. 调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。(三)实验报告内容(三)实验报告内容每次上机实验结束后,学生要作一份完整的实验报告,实验报告内容应包括: 1、优化方法的基本原理简述及程序框图绘制。 2、编制优化方法程序。 3、用考核题对所编程序进行考核。( 四)实验考核办法四)实验考核办法本课程实验成绩依据以下几个方面进行考核1、实验报告2、考核所编制的程序3、实验纪律、出勤等实验(一)实验(一)【实验题目实验题目】一维搜索方法【实验目的实验目的】1熟悉一维搜索的方法黄金分割法,掌握其基本原理和迭代过程;2利用计算语言(C 语言)编制优化迭代程序,并用给定实例进行迭代验证。【实验内容实验内容】1 1、搜索区间的确定与区间消去法(进退法)原理、搜索区间的确定与区间消去法(进退法)原理(1 1) 方法概要方法概要有了目标函数,确定了搜索方向,假设函数f(a)具有单谷性,确定极小点 a* 所在的区间a b: 在搜索方向上,选定初始点 a1,初始点步长 h0=0.01(经验,可调整),前进一步得 a2点。 求出a1、a2对应的函数值y1、y2,比较对应点函数值,确定前进或后退。 (2 2)程序框图)程序框图:2 2、一维搜索黄金分割法(、一维搜索黄金分割法(0.6180.618 法)法)(1 1)基本思想)基本思想前提:已通过进退法确定了符合函数值高低高规律的搜索区间a,b即,函数的极小点必 在a,b内。所以要调用搜索区间的进退法(2 2)程序框图)程序框图 初始区间a,b,由进退法确定。收敛精度(=10-4 10-5),缩短率=0.618 计算a1 、 a2, f (a1)、 f (a2), 根据区间消去法原理缩短区间,进行区间名称的代换,并保留区间中计算的一个新试验 点及函数值。 检查区间是否短到足够小和函数值收敛到足够近。若条件不满足,则返回到。 若条件满足,则取最后两个试验点的平均值作为极小点数值的近似解。3 3、应用黄金分割算法,、应用黄金分割算法, 计算:(00,h0=0.1, =0.001)(1) 36102tt)t (fmin(2) 60645234tttt)t (fmin(3) 221)t)(t ()t (fmin(4) xex)x(fmin22(5) 求函数自点出发,4321322 123 14 1xxxxxxxxxx)X(fTk),(X3210沿方向的最优步长因子 和在 d 方向的极小点 X*和极小值T),(4321df(X*)。(6)函数 F(x)=x2+2x,在搜索区间-3x5 时,求解其极小点 X*。【思考题思考题】说明两种常用的一维搜索方法,并简要说明其算法的基本思想。【实验报告要求实验报告要求】1预习准备部分:给出实验目的、实验内容,并绘制程序框图;2实验过程部分:编写上机程序并将重点语句进行注释;详细描述程序的调过程(包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析。3实验总结部分:对本次实验进行归纳总结,给出求解结果。要求给出 6 重迭代中a、x1、x2、b、y1 和 y2 的值,并将结果与手工计算结果进行比较。4.回答思考题。实验(二)实验(二)【实验题目实验题目】无约束优化方法【实验目的实验目的】1加深对所学多维无约束优化方法基本原理的理解,增强编制和调试程序的能力,懂得如何在多维无约束优化方法中调用一维搜索方法程序。2以鲍威尔法为例,利用计算语言(C/C+语言)编制优化迭代程序,并用给定实例进行迭代验证。【实验内容实验内容】1 1 掌握鲍威尔法的基本原理和迭代步骤;掌握鲍威尔法的基本原理和迭代步骤;2 2对于函数,应用鲍威尔法,求解极小值、极小值点及迭代次数。对于函数,应用鲍威尔法,求解极小值、极小值点及迭代次数。 计算:(1) 1022132 42 322 22 1x)x()x(x)X(fmin初始点:或T),(X00000T),(X403020100(2) 2 22 1654)x()x()X(fmin初始点:T),(X980(3) 6041021212 22 1xxxxxx)X(fmin初始点:T),(X1050(4) 22 212 22 1711)xx()xx()X(fmin初始点:T),(X110(5) 2 212 22 12 22 1)6812324844949() 112()(minxxxxxxXf初始点:T),(X110【思考题思考题】说明三种常用的无约束优化方法,并简要说明其算法的基本思想及各自的优缺点。【实验报告要求实验报告要求】1预习准备部分:给出实验目的、实验内容,并绘制程序框图;2实验过程部分:编写上机程序并将重点语句进行注释;详细描述程序的调过程(包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析。3实验总结部分:对本次实验进行归纳总结,给出求解结果,并将结果与手工计算结果进行比较。4.回答思考题。参考程序:实验一实验一一维搜索方法本实验求函数 f(x)=(x-3)2 的搜索区间a,b。并用黄金分割法和插值法分别求最优解#include #include /* 函数 f(x)=(x-3)2 */double f(double x) return (x-3)*(x-3); /* 求搜索区间a,b的函数, x0-初始点; h0-初始步长 */void find_ab(double x0,double h0,double *a,double *b) double h,x1,y1,x2,y2,x3,y3; h=h0; x1=x0; y1=f(x1); x2=x1+h; y2=f(x2); if (y2=y1) h=-h0; x3=x1; y3=y1;x1=x2; y1=y2; x2=x3; y2=y3; for (;) h*=2.0; x3=x2+h; y3=f(x3);if (y20) *a=x1; *b=x3; else *a=x3; *b=x1; /*黄金分割法黄金分割法a,b-搜索区间a,b; e-精度x,y-最优解 X*,F*/ void search_gold(double a,double b,double e,double *x,double *y) double x1,x2,y1,y2; x1=a+0.382*(b-a); y1=f(x1); x2=a+0.618*(b-a); y2=f(x2); do if (y1e); *x=0.5*(a+b); *y=f(*x); /*实验二实验二无约束优化方法-鲍威尔方法本实验用鲍威尔方法求函数 f(x)=(x1-5)2+(x2-6)2 的最优解#include #include #include const MAXN = 10; double xkkMAXN,xkMAXN,skMAXN; int N;double F(double *x) return 4*pow(x0-5,2.0)+pow(x1-6,2.0); double f(double x) for (int i=0; i=d) if (f2f3) for (j=0; jN; j+) x0j=xnj;else for (j=0; jN; j+) x0j=xn1j; else for (i=m+1; iN; i+) for (j=0; jN; j+) ssi-1j=ssij;for (j=0; jN; j+) ssN-1j=s1j;for (j=0; jN; j+) x0j=xj;k+; for (j=0; jN; j+) x0j=xkkj; return F(xkk);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值