基于C语言的复合形法的优化设计

来源 :科技风 | 被引量 : 0次 | 上传用户:d34276
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:优化设计是在计算机广泛应用的基础上发展起来的一项设计技术,目的是在给定的技术条件下获得最优设计方案、保证产品具有优良的性能。基于C语言可以很好实现优化设计的算法过程,使解决实际的优化问题变的简易。
  关键词:C语言,复合形法,优化设计
  中图分类号:TH122 文献标识码:A
  优化设计是在计算机广泛应用的基础上发展起来的一项设计技术,目的是在给定的技术条件下获得最优设计方案、保证产品具有优良的性能[ 4 ]。它首先将设计问题按照规定的格式建立数学模型,并选择合适的优化算法,选择或编制计算机程序,然后通过计算机自动获得最优设计方案。
  机械优化设计问题和一般工程实际优化问题绝大多数属于约束非线性规划问题,目前对约束最优化问题的解法很多,如复合形法、可行方向法、消元法、惩罚函数法等[ 2 ]。本文根据约束最优化方法中的复合形法提出一种利用C语言程序求解最优解的方法。
  一、复合形法基本原理[ 2 ]
  复合形法的基本思路是在n维空间的可行域中选取K个设计点(通常取n+1<=K<=2n)作为初始复合形(多面体)的顶点。然后比较复合形各顶点目标函数值的大小,其中目标函数值最大的点为坏点,以坏点之外其余各点的中心为映射中心,寻找坏点的映射点。以映射点替换坏点与原复合形除坏点之外其余各点构成K个顶点的新的复合形。如此反复迭代计算,在可行域中不断以目标函数值低的代替目标函数值最大的坏点从而构成新的复合形,使复合形不断向最优点移动和收缩,直到收缩到复合形的各顶点与其形心非常接近、满足迭代精度ε要求时为止。最后输出复合形各顶点中的目标函数值最小的顶点作为近似最优点。
  现以二维不等式约束优化问题来作进一步说明。其数学模型为:min f(X),X∈D R(2) ,D:g1(X)>=0,g2(X)>=0,a1<=x1<=b1 ,a2<=x2<=b1
  在可行域内先选定X(1),X(2),X(3),X(4) 四个点(这里取K=2n=2*2=4)作为初始复合形的顶点,计算这四个点的目标函数值,并作比较,得出坏点X(H)和好点X(L):
  X(H):f(X(H))=max{f(X(j)) (j=1,2,……,K)} (1-1)
  X(L):f(X(L)))=min{f(X(j)))(j=1,2,……,K)} (1-2)
  如果X(4)为好点,点X(1)为坏点,即X(4) →X(L),X(1) →X(H)。以X(2),X(3),X(4)三点的中心,寻找坏点X(H)的映射点X(R):
  X(R)= X(C)+α(X(C) -X(H)) (1-3)
  式中,α为映射系数,一般α>=1,通常去α=1.3。然后计算映射点X(R)处目标函数f(X(R))与目标函数值f(X(R))相比是否下降,并同时检查X(R)是否在可行域内。如果下降性、可行性这两方面都得到满足,则以X(R)点替换X(H)点,由X(R)与X(2),X(3),X(4)共四个点构成一个新复合形。这个复合形肯定优于原复合形;如果上述两个条件不能同时满足,则可将映射系数缩半,即0.5α→α,仍按式(1-3)迭代,重新取得新的影映射点X(R),使其同时满足下降性、可行性条件。有时甚至要经过多次缩减映射系数才能使回缩的映射点X(R)最后满足这两个条件。这时以回缩成功的映射点X(R)和X(2),X(3),X(4)构成新复合形。构成新复合形就完成了一轮迭代。以后再按上述方法进行迭代搜索,不断地使复合形向着目标函数减小的方向移动和收缩,直到逼近最优解。
  二、C语言的概述和作用
  C语言是国际上广泛流行的计算机高级语言。它既有高级语言的特点,又有汇编语言的特点。它适合作为系统描述语言,既可以用来编写系统软件,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序[ 3 ]。
  下面应用C语言程序利用复合形法求解二元函数minF(X)=x12+x22-x1x2-10x1-4x2+60的最优解,已知D:g1(X)=x1>=0,g2(X)=x2>=0, g3(X)=6-x1>=0,g4(X)=8-x2>=0,取:x1∈[0,6],x2∈[0,8],k=4,迭代精度ε=0.001。
  三、C语言程序及功能说明如下
  #include/*调用头文件*/
  #include
  #include
  void main()/*main主函数*/
  {float arg,*point=&arg;
  float M(float a,float b);
  float max(float x,float y);
  float min(float j,float k);
  float ZH1(float x11,float x21,float x31);
  float ZH2(float x12,float x22,float x32);
  int i,j,l,m,n,K=4;
  float xC1,xC2,xR1,xR2,a,FF,Fx,Ff,e=0.001;
  float F[5],FH,FL;
  float x[5][3],XX[3];
  for(i=1;i<=4;i++)
  {scanf("%f,%f",&x[i][1],&x[i][2]);/*輸入顶点数值*/
  if(x[i][1]>6||x[i][1]<0||x[i][2]>8||x[i][2]<0)/*判断输入顶点是否在可行域内*/   printf("The perfect answer is\n");
  printf("X=%f,%f\n",x[n][1],x[n][2]);/*输出最优解*/
  printf("Fx=%f\n",FL);
  }
  }
  float M(float a,float b)/*定义目标函数*/
  {
  float F;
  F=a*a+b*b-a*b-10*a-4*b+60;
  return(F);
  }
  float max(float x,float y)/*定义取最大函数*/
  {
  return(x>y? x:y);
  }
  float min(float j,float k)/*定义取最小函数*/
  {
  return(j>k? k:j);
  }
  float ZH1(float x11,float x21,float x31)/*定义取中心点函数*/
  {
  float Xr1=(x11+x21+x31)/3;
  return(Xr1);
  }
  float ZH2(float x12,float x22,float x32)
  {
  float Xr2=(x12+x22+x32)/3;
  return(Xr2);
  }
  输入四个点(0,0)、(1,3)、(4,0)、(6,4),输出最优解如图所示。
  四、结论
  通过以上实例可以看出,基于C语言可以很好实现优化设计的算法过程,其效率高,可靠性好,现在有很多成熟的计算机程序可以选用,使解决实际的优化问题变的简易。
  参考文献:
  [1] 杨义勇.现代机械设计理论与方法[M].北京:清华大学出版社,2014.
  [2] 陈秀宁.机械优化设计[M].浙江:浙江大学出版社,2008.
  [3] 谭浩强.C程序设计[M].北京:清华大学出版社,2007.
  作者简介:邰園园(1987-),男,江苏句容人,本科,助理工程师,主要从事机械设计工作。
其他文献
摘 要:随着信息技术和互联网时代的到来,信息成为了一种重要的资源,在社会的每个行业都发挥着巨大的影响与作用。高校图书馆是传播知识与信息的重要载体,建设网络化的图书馆还可以实现文献资源的共享、提高文献资料共享的效率。  关键词:网络化建设;高校图书馆;措施  随着信息技术和互联网时代的到来,信息成为了一种重要的资源,在社会的每个行业都发挥着巨大的影响与作用。高校图书馆是传播知识与信息的重要载体,对信
随着全球一体化格局的加剧,促使世界范围内的工业生产系统都朝向节能化方向发展,以此来应对能源消耗严峻的问题。基于此,我国工业生产技术的改革也有所侧重,从具体情况来看,
【摘要】传统的数学课程的严重缺陷就是把数学设计成一套严密抽象的理论系统.在强调数学内部联系的同时,还必须重视数学跟外界的联系.所以我们教师面临的首要问题是:我们如何把生活中的数学问题引入到我们的课堂,把教材生活化,使学生在社会大课堂中体验数学、研究数学.  【关键词】数学应用意识;思考;理论;实际;生活模型  在某一本杂志上看到一篇文章,其中有这样一个案例:  在一条河一侧的B地仓库着火了,住在与
本文以维吾尔视频为例,利用Matlab GUI设计了维吾尔文字的识别系统,实现了视频中维吾尔文字的字符检测、字符定位、图像抖动、对比度调整、灰度化、边缘检测、提取字符等功能
【摘要】本文利用Ellez开发的数学成就动机量表(AMS)与所罗门四组实验设计,测量与分析了HPM教学方式(数学史融入数学课堂的教学方式)对学生成就动机的影响.研究发现,实验班的量表得分比对照班的量表得分高,HPM教学方式可以显著地提升学生的数学成就动机.因此,建议数学教师应该更多地运用HPM教学方式进行数学课堂教学.  【基金项目】佛山科学技术学院研究生自由探索基金项目.  在高中阶段,数学课程
鸡葡萄球菌病是由金黄色葡萄球菌引起鸡的一种多发性常见传染病.其临床表现为急性败血症、坏死性皮炎、关节炎、脐炎、全眼球炎、胸骨囊肿等多种表现.本病的发生能造成鸡群死
【摘要】核心素养的培养会促进学生形成良好的品质,主动地进行数学知识的探究和分析,成为学习主体,在思考中收获知识,提高能力.本文主要探究了小学数学教学中培养学生核心素养的有效方法,促进学生通过对于数学知识的学习,潜移默化中提高个性品质和综合素质.  【关键词】小学数学;学科德育;核心素养  《数学课程标准》指出:“思想品德教育是小学数学教学必须完成的一项重要任务,要从一年级起贯穿在各年级的教学中去”
摘 要:波形分析法是指在汽车故障诊断中运用汽车专用示波器读取电控元件的波形,根据实测波形与标准波形的差异来判断故障,这就要求我们熟悉各种电控元件的波形特性,本文详细的阐述了几种常见传感器的波形检测方法以及波形特性。  关键词:汽车传感器;波形分析;空气流量计  一、 热线式空气流量传感器波形分析  空气流量计是用来计量单位时间内进入进气总管中的空气量,发动机ECU根据所测得的进气量及其他一些辅助信
饲料安全是目前世界各国畜牧业发展中面临的一个迫切需要解决的问题.近年来,饲料安全引发的许多问题频繁发生,如疯牛病事件、二噁英中毒事件、盐酸克仑特罗中毒事件等,对畜产