Powell法求解极小化问题_第1页
Powell法求解极小化问题_第2页
Powell法求解极小化问题_第3页
Powell法求解极小化问题_第4页
Powell法求解极小化问题_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、数学与计算科学学院实 验 报 告实验项目名称 Powell法求解极小化问题 所属课程名称 最优化方法 实 验 类 型 算法编程 实 验 日 期 2015.11.20 班 级 学 号 姓 名 成 绩 一、实验概述:【实验目的】1、掌握Powell方法求解;2、了解Powell的二次终止性;【实验原理】1、基本思想:Powell方法把整个计算过程分成若干个阶段,每一阶段由n+1次一维搜索组成,在算法的每一阶段中,先依次沿着已知的n个方向搜索得一个最好点,然后沿着本阶段的初点与该最好点连线方向进行搜索,求得这一阶段的最好点,再用最后搜索的方向取代前n个方向之一开始下一阶段。2、二次终止性:设,A为n

2、阶对称正定矩阵。任意给定方向从出发,沿方向d搜索,得极小点;从出发,沿方向d搜索,得极小点;则与d关于A共轭。当极小化正定二次函数时,如果每轮迭代中前n个方向均线性无关,那么Powell方法至多经过n轮迭代达到极小点。3、计算步骤:Step1:给定初始点,n个线性无关方向:, 误差;Step2:让,从出发,依次沿方向进行搜索,得点,再从出发,沿方向作一维搜索得到。Step3:若,则停止计算,得,否则令Step4:让,返回步2【实验环境】Windows7Visual C+ 6.0二、实验内容:【实验方案】1、本次试验的题目为:用Powell方法求解下列问题:2、根据Powell方法的求解步骤,结

3、合本题,运用C语言编写程序,在计算机上实现。【实验过程】(实验步骤、记录、数据、分析)1、由题目可得,其中海瑟矩阵是正定矩阵,并且是一组G共轭的非零方向,所以本题具有二次终止性。2、通过定义函数,将一阶导输入,用一维数组存储海瑟矩阵:float g1(float x)float g=4*x0+2*x1-2;return g;float g2(float x)float g=2*x1+2*x0;return g;3、根据一维线性搜索,编写函数,求步长a:float qiubuchang(float x,float g,float d,float G)g0=g1(x);g1=g2(x);float

4、 a,b,c;b=g0*d0+g1*d1;c=d0*(d0*G0+d1*G2)+d1*(d0*G1+d1*G3);a=-b/c;return a;4、在主函数中调用以上函数,根据Powell法的步骤,经过两轮迭代,求出结果。【实验结论】(结果)【实验小结】(收获体会)本次试验,加深了对Powell方法,以及二次终止性等性质的了解与运用。虽然能够运用Powell方法进行笔算,但是当其用计算机实现时,还是遇到了不少困难。在今后的学习中,要加深对算法的理解,使之与计算机相结合。三、指导教师评语及成绩:评 语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计

5、合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确. 成 绩: 指导教师签名: 批阅日期:附录1:源 程 序#include#includefloat g1(float x)float g=4*x0+2*x1-2;return g;float g2(float x)float g=2*x1+2*x0;return g;float qiubuchang(float x,float g,float d,float G)g0=g1(x);g1=g2(x);float a,b,c;b=g0*d0+g1*d1;c=d0*(d0*G0+d1*G2)+d1*(d0*G1+d1*G3

6、);a=-b/c;return a;void main()int i=1,j=1,k=1;float a;float x102,x112,x122,x132,x202,g2,d112,d122,d132,d212,d222,G4=4,2,2,2;printf(输入初始值:);scanf(%f,%f,&x100,&x101);printf(输入搜索方向1:);scanf(%f,%f,&d110,&d111);printf(输入搜索方向2:);scanf(%f,%f,&d120,&d121);printf(第%d轮迭代:n,i+);a=qiubuchang(x10,g,d11,G);printf(

7、a=%fn,a);x110=x100+a*d110;x111=x101+a*d111;printf(x%d%d=(%f,%f)n,i-1,j+,x110,x111);a=qiubuchang(x11,g,d12,G);printf(a=%fn,a);x120=x110+a*d120;x121=x111+a*d121;printf(x%d%d=(%f,%f)n,i-1,j+,x120,x121);d130=x120-x100;d131=x121-x101;a=qiubuchang(x12,g,d13,G);printf(a=%fn,a);x130=x120+a*d130;x131=x121+a*

8、d131;printf(x%d%d=(%f,%f)n,i-1,j+,x130,x131);x200=x130;x201=x131;d210=d120;d211=d121;d220=d130;d221=d131;while(k+2)j=1;x100=x200;x101=x201;d110=d210;d111=d211;d120=d220;d121=d221;printf(第%d次迭代:n,i+);a=qiubuchang(x10,g,d11,G);printf(a=%fn,a);x110=x100+a*d110;x111=x101+a*d111;printf(x%d%d=(%f,%f)n,i-1,j+,x110,x111);a=qiubuchang(x11,g,d12,G);printf(a=%fn,a);x120=x110+a*d120;x121=x111+a*d121;printf(x%d%d=(%f,%f)n,i-1,j+,x120,x121);d130=x120-x100;d131=x121-x101;a=qiubuchang(x12,g,d13,G);printf(a=%fn,a);x130=x120+a*d130;x131=x121+a*d1

温馨提示

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

评论

0/150

提交评论