目标函数的几种极值求解方法_第1页
目标函数的几种极值求解方法_第2页
目标函数的几种极值求解方法_第3页
目标函数的几种极值求解方法_第4页
目标函数的几种极值求解方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目标函数极值求解的几种方法题目:,取初始点,分别用最速下降法,牛顿法,共轭梯度法编程实现。一维搜索法:迭代下降算法大都具有一个共同点,这就是得到点后需要按某种规则确定一个方向,再从出发,沿方向在直线(或射线)上求目标函数的极小点,从而得到的后继点,重复以上做法,直至求得问题的解,这里所谓求目标函数在直线上的极小点,称为一维搜索。一维搜索的方法很多,归纳起来大体可以分为两类,一类是试探法:采用这类方法,需要按某种方式找试探点,通过一系列的试探点来确定极小点。另一类是函数逼近法或插值法:这类方法是用某种较简单的曲线逼近本来的函数曲线,通过求逼近函数的极小点来估计目标函数的极小点。本文采用的是第一类试探法中的黄金分割法。原理书上有详细叙述,在这里介绍一下实现过程:⑴置初始区间[]及精度要求L>0,计算试探点和,计算函数值和,计算公式是:,。令k=1。⑵若则停止计算。否则,当>时,转步骤⑶;当时,转步骤⑷。⑶置,,,,计算函数值,转⑸。⑷置,,,,计算函数值,转⑸。⑸置k=k+1返回步骤⑵。最速下降法实现原理描述:在求目标函数极小值问题时,总希望从一点出发,选择一个目标函数值下降最快的方向,以利于尽快达到极小点,正是基于这样一种愿望提出的最速下降法,并且经过一系列理论推导研究可知,负梯度方向为最速下降方向。最速下降法的迭代公式是,其中是从出发的搜索方向,这里取在点处最速下降方向,即。是从出发沿方向进行的一维搜索步长,满足。实现步骤如下:⑴给定初点,允许误差,置k=1。⑵计算搜索方向。⑶若,则停止计算;否则,从出发,沿方向进行的一维搜索,求,使。⑷,置k=k+1返回步骤⑵。拟牛顿法膜肤基本思想是迎用不包括二瓜阶导数的矩设阵近似牛顿绘法中的He吵sse矩阵划的逆矩阵,欲因构造近似油矩阵的方法具不同,因而材出现了不同葡的拟牛顿法尘。钞牛顿酬法迭代公式扣:筹,邮是在点抚处的侨牛顿方向榆,妇,摆是从化出发沿牛顿赏方向恒进行搜索的接最优步长。仇用谊不包括二阶巴导数的矩阵饶近似取代牛弃顿法中的畏Hesse庸矩阵的逆矩井阵溜,书需满足拟牛注顿条件。实现步骤:驱⑴跑给定初翻点恩,允许误榴差托。盈⑵刘扭置碗(单位矩阵芬)唱,计算出在纠处的梯度溉,置k=1匠。⑶令。垄⑷汤从停出发沿方向纺搜索,求步络长您,使它满足翁,令势。内⑸赛检验是养否满足收敛捷标准,若名,则停止迭源代,得到点芦,否则进行翻步骤啦⑹寿。缓⑹嫌若k=岸n,令但,返回姿⑵继;否则进行绒步骤积⑺派。绒⑺向令倒,毁,傍,掏,镜置k=k+瞧1策。返回只⑶详。共轭梯度法偷若饰是你中k个方向塔,它们两两睛关于A共轭浅,即满足妇,称这组方要向为A的k礼个共轭方向瓶。共轭梯度嚼法的基本思珠想是把共轭著性与最速下曾降法相结合沃,利用已知灯点处的梯度奏构造一组共窄轭方向,并豆沿这组方向归进行搜索,销求出目标函汽数的极小点府,根据共轭赶方向的基本竭性质这种方堪法具有二次院终止性。冠实现步骤如卫下:哈⑴金给定初固点玉,允许误没差申,置冶赢,验,k=j=提1。满⑵藏若池,则停止计展算;否则,闲作一维搜索荡,求杨,满足汽竹,令类。合廉⑶因若忠,则进行步睁骤独⑷旱,否则进行循步骤动⑸供⑷侦令舌,其中派,置j=j雁+1,转顽⑵寸。鸡山⑸愚令帜,乞,舅,置j=1弊,k=k+轮1,转殿⑵馋。实验结果林夫用浮以上三种方除法通过Ma乏tlab编作程得到实验承数据。初始猫值艳。迭代精碑度岭sum(a辜bs(x1授-x).^痕2)<1e榨-4。嘉最速下降法热拟牛顿法辱共轭梯度法舱第一次迭代寸结果分1.515聚16312盏86挤1.515友16312驴86范1.515译16312位86涝0.939蛾34748摔54浑0.939投34748桨5灶0.939构34748恐54预第二次迭代抚结果齐1.973烘00822旬75货2.010摧81080干72注2.000架00762迎59肢1.053增89923许74笨0.986尿15771住08滑1.000劲04197沃88跟第三次迭代医结果数1.986怠91339鞭34于2.005窄41016祝2滋2.000秀00381诉67究0.998捐36543做78粪0.989怜62692摘40今0.999康99982酿71郑第四次迭代海结果躲1.999晚27397朵61选1.001艘45319至64狭实验结果分歇析:厉由上表格可秩以看到最速筑下降法需要哀四次迭代实情现所要求的诸精度,拟牛被顿法和共轭床梯度法需要域三次。程序:脊%精确一维跟搜索法的子筐函数,0.村618(黄图金分割)法锁,gold俯.m列%输入的变骡量x为初始朋迭代点是二运维的向量,怜d为初始迭赴代方向是二桶维的向量街%输出变量招是在[0,廉10]区间永上使函数取巴得极小值点工的步长因子的funct凶iona义lfa=g矮old(x朵,d)卖a=0;b寿=10;t叼ao=0.坡618;宏lanmd全a=a+(龄1-tao折)*(b-兆a);慕mu=a+众tao*(按b-a);论alfa=凯lanmd隆a;%初始围化臭f=((x疼(1)+a圆lfa*d诸(1))-此2)^2+商2*(x(老2)+al读fa*d(需2)-1)莫^2;%目踪标函数竟m=f;a溪lfa=m晴u;n=f骨;押while紫1罚i摇fm>n述阵if删abs(旺lanmd练a-b)<辉1e-4歌械里alf腾a=mu;涉re坟turn谨乒el拼se宫凳翅a=l钉anmda金;la瓜nmda=阿mu;扯m=n;熟胞兔mu=例a+tao念*(b-a轿);炮alfa=商mu;员兄滨n=(拌(x(1)船+alfa忍*d(1)恩)-2)^咳2+2*(迫x(2)+箱alfa*析d(2)-介1)^2;停摧en该d其e色lse漂戚if驻abs(控mu-a)微<1e-4哨淋借alf微a=lan登mda;意re晕turn低隙el霉se详落炭b=m恶u;m烛u=lan况mda;受n=m;短然扣lan梦mda=a很+(1-t虎ao)*(订b-a);秆al躁fa=la造nmda;霞轿总m=(正(x(1)康+alfa写*d(1)希)-2)^灭2+2*(晨x(2)+咬alfa*订d(2)-话1)^2;使扣en统d禽e斗ndend卡%梯度子函背数,tid既u.m,输萝入的变量为划二维的向量低,返回梯度尘在x处的数碍值向量员funct键iong抬=tidu珍(x)丢%待求解鱼的函数凯f=(x满(1)-2闯)^2+2竭*(x(2辈)-1)^超2;凡%求函数驱的梯度表达柔式舰g=[2馋*(x(1吧)-2)衬4*(x(隔2)-1)突];词x1=x掉(1);吵x2=x(驻2);谅%最速下降耕法极小化函雕数的通用子童函数zui捷su.m疾%输入变量颂为初始的迭尸代点,输出剑变量为极小脱值点能funct罚ionx块0=zui漂su(x)近%判断梯度黄范数是否满哑足计算精度漫1e-4的脆要求.是,迅标志变量设馋为1,输出侧结果;压%否,标志怠变量设为0草ifsu站m(abs译(tidu角(x)).究^2)<1偶e-4樱f如lag=1甲;x0=才x;else殖f拦lag=0略;end南%循环求解近函数的极小芹点膀while软flag饰==0铸d参=-tid三u(x);路a兽=gold呢(x,d)担;右x=x+a谈*d谣%判断梯隔度范数是否肚满足计算精宜度的要求.钳是,标志变远量设为1,纲输出结果;例%否,标形志变量设为药0,继续迭的代月i糊fsum活(abs(云tidu(摊x)).^衰2)<1e冲-4申咬fl帜ag=1;毅x0=见x;枝e事lse闹巴fl傻ag=0;洁e馒ndEnd揪%拟牛顿法阴极小化函数开的通用子函站数,gon建ge.m嫩%输入变量忆为初始的迭宏代点,输出厕变量为极小臂值点镜funct米ionx露0=nin像ewton受(x)童%判断梯度揉范数是否满蛮足计算精度启的要求.是坝,标志变量中设为1,输窑出结果;挠%否,标志研变量设为0僵,继续迭代硬ifsu爸m(abs电(tidu返(x)).芝^2)<1装e-4逼f赚lag=1垫;括x0=x;else珍f舌lag=0馅;end安%初始的H瓦矩阵为单位叨矩阵翻h0=ey能e(2);星%循环求解株函数的极小令点贩while煎flag咬==0裙%搏计算新的迭晋代方向随d结=-h0*继tidu(逐x)';敢a=头gold(讨x,d);慢x丢1=(x'弱+a*h0运*d)';旧s槐=x1-x骡;机y紧=tidu晒(x1)-旷tidu(废x);轧v=s挡*y';座%伶校正H矩阵缩h炸0=(ey俘e(2)-溜s'*y.杠/v)*h码0*(ey膛e(2)-遣y'*s.雷/v)+s滑'*s./处v;拖%牵判断下一次奶和上一次迭爷代点之差是尘否满足计算继精度的要求较.是,标志勾变量设为1访,输出结果杀;否,标志刺变量设为0松,继续迭代动i保fsum油(abs(互x-x1)畜.^2)<慢1e-4轻属fla梨g=1;我x0=x激;蛋e涌lse悲掩fla鹅g=0;狼e鸭nd唱x冲=x1end嫁%共轭剃度市法极小化函恩数的通用子违函数,go光nge.m瞧%输入变量酸为初始的迭下代点,输出讽变量为极小纤值点蚀funct留ionx养0=gon仪ge(x)度%判断梯度棒范数是否满毫足计算精度精的要求.是腐,标志变量李设为1,输魄出结果;选%否,标志克变量设为0卵,继续迭代鼠ifsu摘m(abs呈(tidu春(x)).狮^2)<1歇e-4逮f精lag=1恒;宫x0=x;else仆f猫lag=0冰;end证%第一次的俗迭代方法为馒负梯度方向扎d1=-t嫩idu(x密);a=g脸old(x柜,d1);膨x1=x+管a*d1;按%循环求解锣函数的极小里点漠while诸flag鹊==0剂g花1=tid民u(x);磨g雹2=tid论u(x1)享;互%们利用FR公横式求解系数提bata收b松ata=(路g2*g2速')/(g院1*g1'挑);持d春2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论