Powell法求解极小化问题教材.docVIP

  • 4
  • 0
  • 约3.99千字
  • 约 9页
  • 2021-06-08 发布于山东
  • 举报
数学与计算科学学院 实验报告 实验项目名称 Powell 法求解极小化问题 所属课程名称 最优化方法 实验种类 算法编程 实验日期 2015.11.20 班 级 学 号 姓 名 成 绩 一、实验概括: 【实验目的】 1、掌握 Powell 方法求解; 2、认识 Powell 的二次终止性; 【实验原理】 1、基本思想: Powell 方法把整个计算过程分成若干个阶段,每一阶段由 n+1 次一维搜索组成, 在算法的每一阶段中,先依次沿着已知的 n 个方向搜索得一个最 好点,然后沿着本阶段的初点与该最好点连线方向进行搜索,求得这一阶段的最好 点,再用最后搜索的方向取代前 n 个方向之一开始下一阶段。 2、二次终止性: 设 f (x) 1 xT Ax bT x c ,A 为 n 阶对称正定矩阵。任意给定 2 方向 d Rn , x0 , x1 Rn ,( x0 x1 ) 从 x0 出发,沿方向 d 搜索,得极小点 xa ;从 x1 出发,沿方向 d 搜索,得极小点 xb ;则 ( xb xa ) 与 d 对于 A 共轭。 当极小化正定二次函数时, 如果每轮迭代中前 n 个方向均线性无关,那么 Powell 方法至多经过 n 轮迭代达到极小点。 3、计算步骤: Step1:给定初始点 x(0) ,n 个线性无关方向: d (1,1), d(1,2) , ,d (1,n) ,误差 0, k 1; Step2:让 x( k,0) x(k 1) ,从 x( k,0) 出发,依次沿方向 d ( k,1) , d (k,2) , , d( k, n) 进行搜索, 得点 x( k ,1), x(k,2) , , x( k,n ) ,再从 x(k ,n) 出发,沿方向 d (k ,n 1) x( k, n) x( k,0) 作一维搜索得 到 x( k) 。 Step3 : 若 x(k ) x(k 1) , 则 停 止 计 算 , 得 x(k) , 否 则 令 d ( k 1, j ) x( k, j 1) , j 1,2, , n Step4:让 k k 1 ,返回步 2 【实验环境】 Windows7 Visual C++ 6.0 二、实验内容: 【实验方案】 1 1、本次试验的题目为: 用 Powell 方法求解下列问题: min f ( x) ( x1 x2 )2 ( x1 1)2 取初始点和初始方向分别为 :x (0) 2 ; d (1,1)1 , d (1,2) 0 1 0 1 2、根据 Powell 方法的求解步骤,结合此题,运用 C 语言编写程序,在计算机 上实现。 【实验过程】(实验步骤、记录、数据、剖析) 1、由题目可得, f (x) 4x1 2x2 2 ,G 2 f ( x) 4 2 2x2 2x1 2 其中海瑟矩阵是正 2 定矩阵,并且 d (1,1) 1 , d(1,2) 0 是一组 G 共轭的非零方向,所以此题具有二次 0 1 终止性。 2、通过定义函数, 将一阶导 f (x) 4x1 2x2 2 输入,用一维数组存储海瑟 2x2 2x1 矩阵: float g1(float x[]){ float g=4*x[0]+2*x[1]-2; return g; } float g2(float x[]){ float g=2*x[1]+2*x[0]; return g; } 3、根据一维线性搜索,编写函数,求步长 a: float qiubuchang(float x[],float g[],float d[],float G[]){ g[0]=g1(x); g[1]=g2(x); float a,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]); 2 a=-b/c; return a; } 4、在主函数中调用以上函数,根据 Powell 法的步骤,经过两轮迭代,求出结 果。 【实验结论】(结果) 【实验小结】(收获体会) 本次试验,加深了对 Powell 方法,以及二次终止性等性质的认识与运用。虽然可以运用 Powell 方法进行笔算,可是当其用计算机实现时,仍是遇到了不少困难。在此后的学习中,要加深对算法的理解,使之与计算机相结合。 三、指导教师评语及成绩: 评语等级 评 语 良 中 及 不及格 优 格 实验报告准时达成 , 字迹清楚 , 文字表达流畅 , 逻辑性强 实验方案设计合理 实验过程(实验步骤详尽 , 记录完整 , 数据合理 , 剖析透彻) 4 实验结论正确 . 成 绩: 指导教师签名: 批阅日期: 3 附录1:源程序 #includemath.h #in

文档评论(0)

1亿VIP精品文档

相关文档