电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Powell法求解极小化问题教材VIP免费

Powell法求解极小化问题教材_第1页
Powell法求解极小化问题教材_第2页
Powell法求解极小化问题教材_第3页
数学与计算科学学院实验报告实验项目名称Powell法求解极小化问题所属课程名称最优化方法实验类型算法编程实验日期2015.11.20班级学号姓名成绩1一、实验概述:【实验目的】1、掌握Powell方法求解;2、了解Powell的二次终止性;【实验原理】1、基本思想:Powell方法把整个计算过程分成若干个阶段,每一阶段由n+1次一维搜索组成,在算法的每一阶段中,先依次沿着已知的n个方向搜索得一个最好点,然后沿着本阶段的初点与该最好点连线方向进行搜索,求得这一阶段的最好点,再用最后搜索的方向取代前n个方向之一开始下一阶段。2、二次终止性:设1()2TTfxxAxbxc,A为n阶对称正定矩阵。任意给定方向0101,,,()nndRxxRxx从0x出发,沿方向d搜索,得极小点ax;从1x出发,沿方向d搜索,得极小点bx;则()baxx与d关于A共轭。当极小化正定二次函数时,如果每轮迭代中前n个方向均线性无关,那么Powell方法至多经过n轮迭代达到极小点。3、计算步骤:Step1:给定初始点(0)x,n个线性无关方向:(1,1)(1,2)(1,),,,nddd,误差0,1k;Step2:让(,0)(1)kkxx,从(,0)kx出发,依次沿方向(,1)(,2)(,),,,kkknddd进行搜索,得点(,1)(,2)(,),,,kkknxxx,再从(,)knx出发,沿方向(,1)(,)(,0)knknkdxx作一维搜索得到()kx。Step3:若()(1)kkxx,则停止计算,得()kx,否则令(1,)(,1),1,2,,kjkjdxjnStep4:让1kk,返回步2【实验环境】Windows7VisualC++6.0二、实验内容:【实验方案】21、本次试验的题目为:用Powell方法求解下列问题:22121(0)(1,1)(1,2)min()()(1)210;,101fxxxxdd取初始点和初始方向分别为:x2、根据Powell方法的求解步骤,结合本题,运用C语言编写程序,在计算机上实现。【实验过程】(实验步骤、记录、数据、分析)1、由题目可得,1222142242(),()2222xxfxGfxxx其中海瑟矩阵是正定矩阵,并且(1,1)(1,2)10,01dd是一组G共轭的非零方向,所以本题具有二次终止性。2、通过定义函数,将一阶导1221422()22xxfxxx输入,用一维数组存储海瑟矩阵:floatg1(floatx[]){floatg=4*x[0]+2*x[1]-2;returng;}floatg2(floatx[]){floatg=2*x[1]+2*x[0];returng;}3、根据一维线性搜索,编写函数,求步长a:floatqiubuchang(floatx[],floatg[],floatd[],floatG[]){g[0]=g1(x);g[1]=g2(x);floata,b,c;b=g[0]*d[0]+g[1]*d[1];c=d[0]*(d[0]*G[0]+d[1]*G[2])+d[1]*(d[0]*G[1]+d[1]*G[3]);3a=-b/c;returna;}4、在主函数中调用以上函数,根据Powell法的步骤,经过两轮迭代,求出结果。【实验结论】(结果)【实验小结】(收获体会)本次试验,加深了对Powell方法,以及二次终止性等性质的了解与运用。虽然能够运用Powell方法进行笔算,但是当其用计算机实现时,还是遇到了不少困难。在今后的学习中,要加深对算法的理解,使之与计算机相结合。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.成绩:指导教师签名:批阅日期:4附录1:源程序#include#includefloatg1(floatx[]){floatg=4*x[0]+2*x[1]-2;returng;}floatg2(floatx[]){floatg=2*x[1]+2*x[0];returng;}5floatqiubuchang(floatx[],floatg[],floatd[],floatG[]){g[0]=g1(x);g[1]=g2(x);floata,b,c;b=g[0]*d[0]+g[1]*d[1];c=d[0]*(d[0]*G[0]+d[1]*G[2])+d[1]*(d[0]*G[1]+d[1]*G[3]);a=-b/c;returna;}voidmain(){inti=1,j=1,k=1;floata;floatx10[2],x11[2],x12[2],x13[2],x20[2],g[2],d11[2],d12[2],d13[2],d21[2],d22[2],G[4]={4,2,2,2};printf("输入初始值:");scanf("%f,%f",&x10[0],&x10[1]);printf("输入搜索方向1:");scanf("%f,%f",&d11[0],&d11[1]);printf("输入搜索方向2:");scanf("%f,%f",&d12[0],&d12[1]);printf("第%d轮迭代:\n",i++);a=qiubuchang(x10,g,d11,G);printf("a=%f\n",a);x11[0]=x10[0]+a*d11[0];x11[1]=x10[1]+a*d11[1];printf("x%d%d=(%f,%f)'\n",i-1,j++,x11[0],x11[1]);a=qiubuchang(x11,g,d12,G);6printf("a=%f\n",a);x12[0]=x11[0]+a*d12[0];x12[1]=x11[1]+a*d12[1];print...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

文库当当响+ 关注
实名认证
内容提供者

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部