工程优化目标函数的几种极值求解方法c编程.docxVIP

工程优化目标函数的几种极值求解方法c编程.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目标函数极值求解的几种方法 题目:分别用最速下降法,牛顿法,共辘梯度法,拟牛顿法求函数 / = (^-1)2 +5(兀2 -5)2 +(心一1)2 +5(兀4 一 5)2的最小值,初始点自拟。 一维搜索法: 迭代下降算法大都具有一个共同点,这就是得到点兀⑷后需要按某种规则确 定一个方向d⑷,再从兀⑷岀发,沿方向d⑹在直线(或射线)上求目标函数的极 小点,从而得到X⑷的后继点兀如),重复以上做法,直至求得问题的解,这里所 谓求目标函数在直线上的极小点,称为一维搜索。 一维搜索的方法很多,归纳起来大体可以分为两类,一类是试探法:采用这 类方法,需要按某种方式找试探点,通过一系列的试探点来确定极小点。另一类 是函数逼近法或插值法:这类方法是用某种较简单的曲线逼近本来的函数曲线, 通过求逼近函数的极小点来估计目标函数的极小点。这里采用的是第一类试探法 屮的黄金分割法。实现过程如下: (1)置初始区间[40]及精度要求L0,计算试探点人和,计算函数值 /(人)和/(Ai),计算公式是:人二⑷+0.382(勺-绚),M =4+0.618($-?)。令 k二 1。 (2) 若如-蘇“则停止计算。否则,当/(几)/(弘)吋,转步骤(3);当 /(以)5/仏)时,转步骤⑷o (3) 置昭1=4,优+1=勺,入+严儿,儿+i 如+0?6180如一%丄 计算函 数值八心,转⑸。 (4) 置 = ak, bk+i = A , A+i =以,入+1 二 + °?382仇+| - 务和),计算 函数值/(入」,转⑸。 最速下降法 实现原理描述:在求日标函数极小值问题时,总希望从一点出发,选择一个日 标函数值下降最快的方向,以利于尽快达到极小点,正是基于这样一种愿望提出 的最速下降法,并且经过一系列理论推导研究可知,负梯度方向为最速下降方向。 最速下降法的迭代公式是兀如)=无“)+牝⑷,其中卅)是从用出发的搜索方 向,这里取在点M处最速下降方向,即d⑷=-V/(/ )oA,是从用出发沿方向少) 进行的一维搜索步长,满足 卅)+ 刑))=min .f(兀⑷+加⑹)。 实现步骤如下: (1) 给定初点兀⑴wR,允许误差£0,置k=l。 (2) 计算搜索方向〃)=-▽/(#),若⑷|,则停止计算;否则,从用 出发,沿方向〃⑹进行的一维搜索,求入,使/(兀⑷+心〃⑷卜min/(兀⑷+加⑷)。 久no (3) 兀(曲)=兀伙)+心〃⑷,置k二k+1返冋步骤(2)。 牛顿法 牛顿法迭代公式:代丄朋+入少),少)是在点严)处的牛顿方向, 〃⑷⑷)」号6⑷),心是从*)出发沿牛顿方向〃⑷进行搜索的最优步长。 (1) 给定初点X(1) G Rn ,允许误差£〉0,置k二1。 (2) 计算严=巧(十),若||g⑹卜£,则停止计算;否则,转⑶。 (3) 计算^=-V2f(x(k))~lg^从M出发,沿方向d⑹进行的一维搜索, 求心,使/(兀⑷+入d⑷)二min/G⑷+加⑷),*如)=*)+入d⑹,置k二k+1返回 步骤⑵。 共辄梯度法 若d⑴,〃⑵,…,〃⑹是疋屮k个方向,它们两两关于A共辘,即满足 泸TAd⑴= O,iHj;i,j = \,…,k,称这组方向为A的k个共辘方向。共辘梯度法的 基本思想是把共觇性与最速下降法相结合,利用已知点处的梯度构造一组共觇方 向,并沿这组方向进行搜索,求岀目标函数的极小点,根据共辘方向的基本性质 这种方法具有二次终止性。 实现步骤如下: ⑴ 给定初点x{])eRn ,允许误差£0; (2) 若酚(刊卜£,则停止计算;否则,转⑶; (3) 置〃⑴二-中6⑴),k=lo (4) 作一维搜索,求入,满足/卅)+ 2皿⑷)=哦1/岸)+加⑹); (5) 令少)*)+ 2肿,求g(Z=Vf(兀仙))。 ⑹ 若||gE)|,则停止计算;否则,转⑺; ⑺ 若k=n,则令兀(】)=兀決),转⑶;否则,转8); 令〃(如)=- 令〃(如)=-(如)+0皿⑷,其中仅 置k=k+l,转⑷。 程序 includestdio.h #includemath.h includeiostream.h #define N 100 double F(double x[],double p[],double xi[],double ba[],int n,double t) { double f=0; int i; for(i=0;in;i++) f=f+xi[i]*(x[i]+t*p[i]-ba[i])*(x[i]+t*p[i]-ba[i]); return f; } double HJFC(double xf],double pf],double xif],double ba[],int n) { double a二0,b二 10,xl,x2,fl,f2,e=0.0001,

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档