当前位置:文档之家› 单纯形法解决无约束优化问题

单纯形法解决无约束优化问题

单纯形法解决无约束优化问题
单纯形法解决无约束优化问题

分数: ___________

任课教师签字:___________

课程作业

学年学期:2017——2018学年第二学期

课程名称:优化理论

作业名称:作业三

学生姓名:

学号:

提交时间:

一、问题重述

形如的min (x),x R n f ∈问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。

解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟Newton 法等。

直接法不使用导数,也不需要得到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及Powell 改进算法。

本作业以直接法的Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和Powell 改进算法解决结果进行对比。

二、算法原理

对于n 维正定二次函数(x)0.5T T f x Gx b x c =++,设011,,...(k n)k p p p -<关于G 共轭,0x 与1x 为任意不同点。分别从0x 与1x 出发,依次沿011,,...k p p p -作一维搜索。如果最后找到两个互不相同的极小点x a 与x b ,则x b a x -与011,,...k p p p -关于G 共轭。

Powell 方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n 个线性无关的方向011,,...n p p p -依次作一维搜索,之后沿由这一阶段的起点到第n 次搜索所得到的点的方向P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n 个搜索方向为011,,...,n p p p p -。以此直到找到最优解。

此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n 个向量可能线性或近似线性相关,这时张不成n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。

Powell 改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。

本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,而且寻优的效率特别低下。

三、算法流程

Powell算法流程图:

图1 Powell算法流程图

Powell改进算法流程图:

图2 Powell改进算法流程图

四、实验验证

1、设目标函数421122(x)x (1x )f x x =++++,收敛精度为0.001,初始点(-2,2)。

利用Matlab 自带的函数求二元函数极值点函数fminsearch ,求得极值点为(-0.630,-1.500),最小值为-1.722。以此为标准,检验Powell 方向加速法和Powell 改进算法的寻优结果。

Powell 方向加速法经过2次迭代,求得极值点(-0.630,-1.500),对应的最小值-1.722;Powell 改进方向加速法经过2次迭代,求得极值点(-0.630,-1.500),对应的最小值1.722。

2、设目标函数42112212(x)x (1x )f x x x x =+++++,收敛精度为0.001,初始点(-2,2)。

利用Matlab 自带的函数求二元函数极值点函数fminsearch ,求得极值点为(0.5827,-1.7913),最小值为-1.5109。以此为标准,检验Powell 方向加速法和Powell 改进算法的寻优结果。

Powell 方向加速法经过4次迭代,求得极值点(0.5827,-1.7912),对应的最小值-1.5109;Powell 改进方向加速法经过2次迭代,求得极值点(-0.630,-1.500),对应的最小值 1.722。两种方法对应的寻优过程如下图所示。

图3 Powell 直接与改进法寻优过程

x 1x 2

Pwoell 方向加速法寻优过程

x 12Pwoell 改进法寻优过程

四、算法程序

matlab 无约束优化问题

实验八 无约束优化问题 一.实验目的 掌握应用matlab 求解无约束最优化问题的方法 二.实验原理及方法 1:标准形式: 元函数 为其中n R R f X f n R x n →∈:) (min 2.无约束优化问题的基本算法一.最速下降法(共轭梯度法)算法步骤:⑴ 给定初始点 n E X ∈0,允许误差0>ε,令k=0; ⑵ 计算() k X f ?; ⑶ 检验是否满足收敛性的判别准则: () ε≤?k X f , 若满足,则停止迭代,得点k X X ≈*,否则进行⑷; ⑷ 令() k k X f S -?=,从k X 出发,沿k S 进行一维搜索, 即求k λ使得: ()() k k k k k S X f S X f λλλ+=+≥0 min ; ⑸ 令k k k k S X X λ+=+1,k=k+1返回⑵. 最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法..牛顿法算法步骤: (1) 选定初始点n E X ∈0,给定允许误差0>ε,令k=0; (2) 求()k X f ?,()() 1 2-?k X f ,检验:若() ε

无约束最优化问题及其Matlab求解

无约束最优化问题及其Matlab 求解 一、教学目标 1. 了解悟约束规划的基本算法最速下降法(共轭梯度法)的基本步骤 2. 掌握用Matlab 求解五约束的一元规划问题、多元规划问题、以及Matlab 求解过程中参数的设置。 3. 针对实际问题能列出其无约束规划方程并用Matlab 求解。 二、 教学手段 1. 用Flashmx 2004制作课件,并用数学软件Matlab 作辅助教学。 2. 采用教学手法上采取讲授为主、讲练结合的方法。 3. 上机实践操作。 三、 教学内容 (一)、求解无约束最优化问题的基本思想 标准形式: ★(借助课件说明过程) (二)、无约束优化问题的基本算法 1.最速下降法(共轭梯度法)算法步骤: ⑴ 给定初始点n E X ∈0,允许误差0>ε,令k=0; ⑵ 计算()k X f ?; ⑶ 检验是否满足收敛性的判别准则: ()ε≤?k X f , 若满足,则停止迭代,得点k X X ≈*,否则进行⑷; ⑷ 令()k k X f S -?=,从k X 出发,沿k S 进行一维搜索, 即求k λ使得: ()() k k k k k S X f S X f λλλ+=+≥0min ; ⑸ 令k k k k S X X λ+=+1,k=k+1返回⑵. 最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢。 ★(借助课件说明过程,由于 算法 在实际中用推导过程比较枯燥,用课件显示搜索过程比较直观) 2. 采用Matlab 软件,利用最速下降法求解无约束优化问题 常用格式如下: (1)x= fminbnd (fun,x1,x2) (2)x= fminbnd (fun,x1,x2 ,options) (3)[x ,fval]= fminbnd (...) (4)[x ,fval ,exitflag]= fminbnd (...) (5)[x ,fval ,exitflag ,output]= fminbnd (...) 其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。函数fminbnd ()X f n E X ∈min 其中 1:E E f n →

无约束优化方法程序

无约束优化方法---鲍威尔方法 本实验用鲍威尔方法求函数f(x)=(x1-5)2+(x2-6)2 的最优解。 一、简述鲍威尔法的基本原理 从任选的初始点x⑴o出发,先按坐标轮换法的搜索方向依次沿e1.e2.e3进行一维搜索,得各自方向的一维极小点x⑴ x⑵ x⑶.连接初始点xo⑴和最末一个一维极小点x3⑴,产生一个新的矢量 S1=x3⑴-xo⑴ 再沿此方向作一维搜索,得该方向上的一维极小点x⑴. 从xo⑴出发知道获得x⑴点的搜索过程称为一环。S1是该环中产生的一个新方向,称为新生方向。 接着,以第一环迭代的终点x⑴作为第二环迭代的起点xo⑵,即 Xo⑵←x⑴ 弃去第一环方向组中的第一个方向e1,将第一环新生方向S1补在最后,构成第二环的基本搜索方向组e2,e3,S1,依次沿这些方向求得一维极小点x1⑵,x2⑵,x3⑵.连接 Xo⑵与x3⑵,又得第二环的新生方向 S2=x3⑵-xo⑵ 沿S2作一维搜索所得的极小点x⑵即为第二环的最终迭代点 二、鲍威尔法的程序 #include "stdafx.h" /* 文件包含*/ #include

#include #include #define MAXN 10 #define sqr(x) ((x)*(x)) double xkk[MAXN],xk[MAXN],sk[MAXN]; int N,type,nt,et; //N--变量个数,type=0,1,2,3 nt,et--不等式、等式约束个数 double rk; double funt(double *x,double *g,double *h) { g[0]=x[0]; g[1]=x[1]-1; g[2]=11-x[0]-x[1]; return sqr(x[0]-8)+sqr(x[1]-8); } double F(double *x) { double f1,f2,ff,fx,g[MAXN],h[MAXN]; int i; fx=funt(x,g,h); f1=f2=0.0; if(type==0 || type==2)for(i=0; i1.0e-15)?1.0/g[i]:1.0e15;

优化设计有约束优化无约束优化

目录 1.多维有约束优化错误!未定义书签。 题目错误!未定义书签。 已知条件错误!未定义书签。 建立优化模型错误!未定义书签。 问题分析及设计变量的确定错误!未定义书签。 目标函数的确定错误!未定义书签。 约束条件的建立错误!未定义书签。 优化方法的选择错误!未定义书签。 数学模型的求解错误!未定义书签。 确定数学优化模型错误!未定义书签。 运用Matlab优化工具箱对数学模型求解错误!未定义书签。 1. 最优解以及结果分析错误!未定义书签。 2.多维无约束优化错误!未定义书签。 题目错误!未定义书签。 确定优化设计模型错误!未定义书签。 运用Matlab优化工具箱对数学模型求解错误!未定义书签。 编写目标函数错误!未定义书签。 绘制该函数的平面和空间等值线错误!未定义书签。 利用matlab工具箱fminunc函数对该模型进行求解错误!未定义书签。求解结果错误!未定义书签。

1.多维有约束优化 题目 对一对单级圆柱齿轮减速器,以体积最小为目标进行多维有约束优化设计。 已知条件 已知数输入功p=58kw ,输入转速n1=1000r/min ,齿数比u=5,齿轮的许用应力[δ]H=550Mpa ,许用弯曲应力[δ]F=400Mpa 。 建立优化模型 1.3.1问题分析及设计变量的确定 由已知条件得求在满足零件刚度和强度条件下,使减速器体积最小的各项设计参数。由于齿轮和轴的尺寸(即壳体内的零件)是决定减速器体积的依据,故可按它们的体积之和最小的原则建立目标函数。 单机圆柱齿轮减速器的齿轮和轴的体积可近似的表示为: ] 3228)6.110(05.005.2)10(8.0[25.087)(25.0))((25.0)(25.0)(25.02221222122212222122121222 21222120222222222121z z z z z z z z z z z g g z z d d l d d m u mz b bd m u mz b b d b u z m b d b z m d d d d l c d d D c b d d b d d b v +++---+---+-=++++- ----+-=πππππππ 式中符号意义由结构图给出,其计算公式为 b c d m umz d d d m umz D mz d mz d z z g g 2.0) 6.110(25.0,6.110,21022122211=--==-=== 由上式知,齿数比给定之后,体积取决于b 、z 1 、m 、l 、d z1 和d z2 六个参数,则设计变量可取为 T z z T d d l m z b x x x x x x x ][][21 1 65 4321== 1.3.2目标函数的确定 根据以上分析,可知,该齿轮减速器以体积最小的目标函数为: min )32286.18.092.0858575.4(785398.0)(26252624252463163212 51261231232123221→++++-+-+-+=x x x x x x x x x x x x x x x x x x x x x x x x x x f 1.3.3 约束条件的建立 (1)为避免发生根切,应有min z z ≥17=,得 017)(21≤-=x x g (2)齿宽应满足 max min ??≤≤ d b ,min ?和max ?为齿宽系数d ?的最大值和最小值,一般取min ?=,

约束优化设计

行域 φ 内,选择一个初始点 X 然后确定一个可行 得一个目标函数有所改善的可行的新点 X 即完成了 第四章 约束优化设计 ● 概述 ● 约束坐标轮换法 ● 随机方向法 ● 罚函数法 概述 结构优化设计的问题,大多属于约束优化设计问题,其数学模型为: s .t . min f (x ) g u (x ) ≤ 0 h v (x ) = 0 x ∈ R n u = 1, 2,..., m v = 1, 2,..., p < n 根据求解方式的不同,可分为直接解法和间接解法两类。 直接解法是在仅满足不等式约束的可行设计区域内直接求出问题的约束最优解。属于 这类方法的有:随机实验法、随机方向搜索法、复合形法、可行方向法等。其基本思路: 在由 m 个不等式约束条件 gu(x )≤0 所确定的可 0 搜索方向 S ,且以适当的步长沿 S 方向进行搜索,取 1 一次迭代。以新点为起始点重复上述搜索过程,每次 均按如下的基本迭代格式进行计算: X k+1=X k +α k S k (k=0,1,2,..) 逐步趋向最优解, 直到满足终止准则才停止迭代。 直接解法的原理简单,方法实用,其特点是: 1) 由于整个过程在可行域内进行,因此,迭代计算 不论何时终止,都可以获得比初始点好的设计点。 2) 若目标函数为凸函数,可行域为凸集,则可获得全域最优解,否则,可能存在多个局 部最优解,当选择的初始点不同,而搜索到不同的局部最优解。 3) 要求可行域有界的非空集

φ(X,μ1,μ2)=F(X)+∑μ 1 G??g j X)??+∑μ2H??h k(X)?? a)可行域是凸集;b)可行域是非凸 集 间接解法 间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种方法。由于间接解法可以选用已研究比较成熟的无约束优化方法,并且容易处理同时具有不等式约束和等式约束的问题。因而在机械优化设计得到广泛的应用。 间接解法中具有代表性的是惩罚函数法。将约束函数进行特殊的加权处理后,和目标函数 结合起来,构成一个新的目标函数,即将原约束优化问题转化为一个或一系列的无约束优 化问题。 m l j=1k=1 新目标函数 然后对新目标函数进行无约束极小化计算。 加权因子 间接法是结构优化设计中广泛使用的有效方法,其特点: 1)由于无约束优化方法的研究日趋成熟,为间接法提供可靠基础。这类算法的计算效率和数值计算的稳定性大有提高; 2)可以有效处理具有等式约束的约束优化问题; 3)目前存在的主要问题,选取加权因子较为困难,选取不当,不仅影响收敛速度和计算精度,甚至导致计算失败。

常用无约束最优化方法(一)

项目三 常用无约束最优化方法(一) [实验目的] 编写最速下降法、Newton 法(修正Newton 法)的程序。 [实验学时] 2学时 [实验准备] 1.掌握最速下降法的思想及迭代步骤。 2.掌握Newton 法的思想及迭代步骤; 3.掌握修正Newton 法的思想及迭代步骤。 [实验内容及步骤] 编程解决以下问题:【选作一个】 1.用最速下降法求 22120min ()25[22]0.01T f X x x X ε=+==,,,. 2.用Newton 法求 22121212min ()60104f X x x x x x x =--++-, 初始点 0[00]0.01T X ε==,,. 最速下降法 Matlab 程序: clc;clear; syms x1 x2; X=[x1,x2]; fx=X(1)^2+X(2)^2-4*X(1)-6*X(2)+17; fxd1=[diff(fx,x1) diff(fx,x2)]; x=[2 3]; g=0; e=0.0005; a=1; fan=subs(fxd1,[x1 x2],[x(1) x(2)]); g=0; for i=1:length(fan) g=g+fan(i)^2; end g=sqrt(g); step=0; while g>e step=step+1; dk=-fan; %点x(k)处的搜索步长

ak=((2*x(1)-4)*dk(1)+(2*x(2)-6)*dk(2))/(dk(1)*dk(2)-2*dk(1)^2-2*dk(2)^2); xu=x+ak*dk; x=xu; %输出结果 optim_fx=subs(fx,[x1 x2],[x(1) x(2)]); fprintf(' x=[ %d %d ] optim_fx=%d\n',x(1),x(2),optim_fx); %计算目标函数点x(k+1)处一阶导数值 fan=subs(fxd1,[x1 x2],[x(1) x(2)]); g=0; for i=1:length(fan) g=g+fan(i)^2; end g=sqrt(g); end %输出结果 optim_fx=subs(fx,[x1 x2],[x(1) x(2)]); fprintf('\n最速下降法\n结果:\n x=[ %d %d ] optim_fx=%d\n',x(1),x(2),optim_fx); c++程序 #include #include #include #include float goldena(float x[2],float p[2]) {float a; a=-1*(x[0]*p[0]+4*x[1]*p[1])/(p[0]*p[0]+4*p[1]*p[1]); return a; } void main() {float a=0,x[2],p[2],g[2]={0,0},e=0.001,t; int i=0; x[0]=1.0; x[1]=1.0;

最速下降法求解这一无约束的最优化问题

第五题: 解:选择类型为: 2/13()x t y t x e x =+ 其中123,,x x x 是待求参数。根据最小二乘原理,参数123,,x x x 是下面优化问题的解。 []2 8 1231 m in (,,)()i i i f x x x y t y == -? 用最速下降法求解这一无约束的最优化问题。 zuiyouhua.m function sh=zuiyouhua(x0) % x0为初始猜测值 syms x y z a al; %====================================== t=[0.2,1,2,3,5,7,11,16]; r1=[5.05,8.88,11.63,12.93,14.15,14.73,15.30,15.60]; minf=0; for i=1:8 r(i)=x*exp(y/t(i))+z-r1(i); %构造最小二乘最优化的目标函数 minf=r(i)^2+minf; end %====================================== f1=diff(minf,x); f2=diff(minf,y); f3=diff(minf,z); %求目标函数的梯度 F=[f1,f2,f3]; %====================================== Fx1= -subs(F,{x,y,z},x0); Fx=Fx1/norm(Fx1); k=0; %====================================== %最速下降法核心迭代程序 while 1 x1=x0+a*Fx; P=subs(minf,{x,y,z},x1); xx1=xianxing(P); %调用线性搜索函数 al=huangjing(P,xx1); %调用黄金分割法函数; x0=x0+al*Fx; Fx1= -subs(F,{x,y,z},x0); Fx=Fx1/norm(Fx1); if norm(Fx1)<5e-4 sh=x0; return; end end %====================================== function xx=xianxing(Pa) %一维搜索法线性搜索函数 aa=findsym(Pa); a1=1; h=0.5; k=0; t1=2; while 1 a2=a1+h; Pa1=subs(Pa,aa,a1); Pa2=subs(Pa,aa,a2); if Pa2< Pa1 h=t1*h; a0=a1; a1=a2; k=k+1; if k>1000 disp('迭代步数太多,可能不收敛!'); end else if k==0 h=-h; a0=a2; else c1=min(a0,a2); d1=max(a0,a2); xx=[c1,d1]; return; end end end %====================================== function al1=huangjing(Pb,xx2)

单纯形法解决无约束优化问题

分数: ___________任课教师签字:___________ 课程作业 学年学期:2017——2018学年第二学期 课程名称:优化理论 作业名称:作业三 学生姓名: 学号: 提交时间:

一、问题重述 形如的min (x),x R n f ∈问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。 解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟Newton 法等。 直接法不使用导数,也不需要得到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及Powell 改进算法。 本作业以直接法的Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和Powell 改进算法解决结果进行对比。 二、算法原理 对于n 维正定二次函数(x)0.5T T f x Gx b x c =++,设011,,...(k n)k p p p -<关于G 共轭,0x 与1x 为任意不同点。分别从0x 与1x 出发,依次沿011,,...k p p p -作一维搜索。如果最后找到两个互不相同的极小点x a 与x b ,则x b a x -与011,,...k p p p -关于G 共轭。 Powell 方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n 个线性无关的方向011,,...n p p p -依次作一维搜索,之后沿由这一阶段的起点到第n 次搜索所得到的点的方向P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n 个搜索方向为011,,...,n p p p p -。以此直到找到最优解。 此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n 个向量可能线性或近似线性相关,这时张不成n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。 Powell 改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。 本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,

单纯形法解决无约束优化问题

分数: ___________ 任课教师签字:___________ 课程作业 学年学期:2017——2018学年第二学期 课程名称:优化理论 作业名称:作业三 学生姓名: 学号: 提交时间:

一、问题重述 形如的min (x),x R n f ∈问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。 解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟Newton 法等。 直接法不使用导数,也不需要得到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及Powell 改进算法。 本作业以直接法的Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和Powell 改进算法解决结果进行对比。 二、算法原理 对于n 维正定二次函数(x)0.5T T f x Gx b x c =++,设011,,...(k n)k p p p -<关于G 共轭,0x 与1x 为任意不同点。分别从0x 与1x 出发,依次沿011,,...k p p p -作一维搜索。如果最后找到两个互不相同的极小点x a 与x b ,则x b a x -与011,,...k p p p -关于G 共轭。 Powell 方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n 个线性无关的方向011,,...n p p p -依次作一维搜索,之后沿由这一阶段的起点到第n 次搜索所得到的点的方向P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n 个搜索方向为011,,...,n p p p p -。以此直到找到最优解。 此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n 个向量可能线性或近似线性相关,这时张不成n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。 Powell 改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。 本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,而且寻优的效率特别低下。

约束优化设计

第四章 约束优化设计 ● 概述 ● 约束坐标轮换法 ● 随机方向法 ● 罚函数法 概述 结构优化设计的问题,大多属于约束优化设计问题,其数学模型为: 根据求解方式的不同,可分为直接解法和间接解法两类。 直接解法是在仅满足不等式约束的可行设计区域内直接求出问题的约束最优解。属于这类方法的有:随机实验法、随机方向搜索法、复合形法、可行方向法等。其基本思路: 在由m 个不等式约束条件g u (x )≤0所确定的可行域φ内,选择一个初始点0 X 然后确定一个可行搜索方向S ,且以适当的步长沿S 方向进行搜索,取得一个目标函数有所改善的可行的新点1 X 即完成了一次迭代。以新点为起始点重复上述搜索过程,每次均按如下的基本迭代格式进行计算: k+1k k k =+S (k=0,1,2,..)X X α逐步趋向最优解, 直到满足终止准则才停止迭代。 直接解法的原理简单,方法实用,其特点是: 1) 由于整个过程在可行域内进行,因此,迭代计算不论何时终止,都可以获得比初始点好 的设计点。 2) 若目标函数为凸函数,可行域为凸集,则可获得全域最优解,否则,可能存在多个局部 最优解,当选择的初始点不同,而搜索到不同的局部最优解。 3) 要求可行域有界的非空集 1,2,...,1,2,...,u m v p n ==

间接解法 间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种方法。由于间接解法可以选用已研究比较成熟的无约束优化方法,并且容易处理同时具有不等式约束和等式约束的问题。因而在机械优化设计得到广泛的应用。 间接解法中具有代表性的是惩罚函数法。将约束函数进行特殊的加权处理后,和目标函数结合起来,构成一个新的目标函数,即将原约束优化问题转化为一个或一系列的无约束优化问题。 然后对新目标函数进行无约束极小化计算。 间接法是结构优化设计中广泛使用的有效方法,其特点: 1) 由于无约束优化方法的研究日趋成熟,为间接法提供可靠基础。这类算法的计算效率和 数值计算的稳定性大有提高; 2) 可以有效处理具有等式约束的约束优化问题; 3) 目前存在的主要问题,选取加权因子较为困难,选取不当,不仅影响收敛速度和计算精 度,甚至导致计算失败。 a) 可行域是凸集;b)可行域是非凸集 () ()()()121211 ,,m l j k j k X F X G g X H h X φμμμμ==??=++? ?????∑∑ 新目标函数 加权因子

最速下降法求解无约束最优化问题

最速下降法求解无约束最优化问题 1 理论基础 已知问题模型为 ()min n x R f x ∈ 算法: 1) 选取初始点0x 与()00f f x =,初始化0k = 2) 验证迭代中止条件:k x eps ?<且()k f x eps ?<或lim k > 若是k x eps ?<且()k f x eps ?<,则输出解k x 及迭代次数k 若是lim k >,则输出error 信息 注:其中1010,lim 1000eps -== 3) 计算k x 点搜索方向:()k k d f x =-? 计算k x 点迭代步长:(){}0 arg min k k k f x d ααα≥=+ 更新点列:1k k k k x x d α+=+,1k k =+ 转第2步 2 MATLAB 程序 2.1 函数说明 文件名称:Opt_Steepest.m function [xo, fo] = Opt_Steepest(f, grad, x0, TolX, TolFun, dist0, MaxIter)

% 用最速下降法求最优化解 % 输入: % f——函数名 % grad——梯度函数 % x0——解的初值 % TolX——变量的误差阈值 % TolFun——函数的误差阈值 % dist0——初始步长 % MaxIter——最大迭代次数 % 输出: % xo——最小值的点 % fo——最小的函数值 %% 判断输入的变量数,设定一些变量为默认值if nargin < 7 MaxIter = 1000; %最大迭代次数默认为100 end if nargin < 6 dist0 = 10; %初始步长默认为10 end if nargin < 5 TolFun = 1e-10; %函数值误差为1e-8

多维无约束优化算法

多维无约束优化算法 多维无约束优化问题的一般数学表达式为: 求n 维设计变量 使目标函数 多维无约束优化算法就是求解这类问题的方法,它是优化技术中最重要最基础的内容之一。因为它不仅可以直接用来求解无约束优化问题,而且实际工程设计问题中的大量约束优化问题,有时也是通过对约束条件的适当处理,转化为无约束优化问题来求解的。所以,无约束优化方法在工程优化设计中有着十分重要的作用。 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。 (1)间接法——要使用导数,如梯度法、(阻尼)牛顿法、变尺度法、共轭梯度法等。 (2)直接法——不使用导数信息,如坐标轮换法、鲍威尔法单纯形法等。用直接法寻找极小点时,不必求函数的导数,只要计算目标函数值。这类方法较适用于解决变量个数较少的(n ≤20)问题,一般情况下比间接法效率低。间接法除要计算目标函数值外,还要计算目标函数的梯度,有的还要计算其海赛矩阵。 各种优化方法之间的主要差异是在于构造的搜索方向,因此,搜索方向的构成问题乃是无约束优化方法的关键。 下面介绍几种经典的无约束优化方法。 1、梯度法 基本思想:函数的负梯度方向是函数值在该点下降最快的方向。将n 维问题转化为一系列沿负梯度方向用一维搜索方法寻优的问题,利用负梯度作为搜索方向,故称最速下降法或梯度法。 搜索方向s 取该点的负梯度方向 (最速下降方向) ,使函数值在该点附近的范围内下降最快 。 为了使目标函数值沿搜索方向能够获得最大的下降值,其步长因子应取一维搜索的最佳步长。即有 12[]T n x x x = x ()min f →x ()k f -?x k αmin ()n f R ∈x x 1(0,1,2,)k k k k s k α+=+= x x 1(0,1,2,) k k k k s k α+=+= x x 1()(0,1,2,) k k k k a f k +=-?= x x x 1()[()]min [()]min ()k k k k k k k a a f f a f f a f ?α+=-?=-?=x x x x x

第三章 无约束最优化方法

第三章无约束最优化方法 本章内容及教学安排 第一节概述 第二节迭代终止原则 第三节常用的一维搜索方法 第四节梯度法 第五节牛顿法 第六节共轭方向法 第七节变尺度法 第八节坐标轮换法 第九节鲍威尔方法 第一节概述 优化问题可分为 无约束优化问题 有约束优化问题 无约束最优化问题求解基于古典极值理论的一种数值迭代方法,主要用来求解非线性规划问题 迭代法的基本思想:

所以迭代法要解决三个问题 1、如何选择搜索方向 2、如何确定步长

3、如何确定最优点(终止迭代) 第二节 迭代终止准则 1)1K K X X ε+-≤ 111/2 21K K K K n i i i X X X X ε++=??-=-≤???? ∑() 2) 11()()()() () K K K K K f X f X f X f X or f X ε ε ++-≤-≤ 3)(1)()K f X ε+?≤ 第三节 常用的一维搜索方法 本节主要解决的是如何确定最优步长的问题。 从初始点(0)X 出发,以一定的步长沿某一个方向,可以找到一个新的迭代点,其公式如下: (1)(0)00(2)(1)11(1)() K K k k X X S X X S X X S ααα+=+=+= + 现在假设K S 已经确定,需要确定的是步长k α,就把求多维目标函数的极小值这个多维算过程中,当起步点和方向问题,变成求一个变量即步长的最优值的一维问题了。即 (1)()min ()min ()min ()K K K k k f X f X S f αα+=+= 由此可见,最佳步长*K α由一维搜索方法来确定 求*k α,使得()()()()()()min K K K K f f X S αα=+→ 一、一维搜索区间的确定 区间[,]a b 应满足 ()(*)()f a f f b α><

无约束优化算法:单纯形法

单纯形法 1. 算法原理 单纯形法的基本思想是: 设(0)(1)(),,...,n x x x 是n R 中的1n +个点,构成一个当前的单纯形,max min ,x x 定义如下: {}(0)(1)()max ()max (),(),...,()n f x f x f x f x = {}(0)(1)()min ()min (),(),...,()n f x f x f x f x = 记x 为这个单纯形除去max x 外的所有顶点的形心, ()max 01n i i x x x n =??=- ??? ∑ 取max x 关于x 的反射点(1)n x +,(1)max ()n x x x x +=+-构成新的单纯形,反复上述过程,直到达到停止条件。 2. 函数min f search 1) 函数语法 min (,0)x f search fun x = min (,0,) [,]min (...) [,,]min (...) [,,,]min (...) x f search fun x options x fval f search x fval exitflag f search x fval exitflag output f search ==== 函数输入: fun :目标函数 0x :迭代初始点 options :函数参数设置 函数输出: x :最优点 fval :最优点对应的函数值 exitflag :函数停止信息 1:函数收敛正常停止 0:迭代次数,目标函数计算次数达到最大数 -1:算法被输出函数停止 output :函数运算信息

2)函数使用 BanaFun m (1)目标函数程序. function f BanaFun x =不含导数解析式 ()() f x x x =-+- 100*((2)(1)^2)^2(1(1))^2 -函数不需要导数信息。 Nelder Mead Simplex SimplexUnc m (2)算法参数设置:. ('arg','','','','',250,'','') = options optimset L eScale off gradobj off MaxFunEvals display iter SimplexUnc m (3)函数调用运算:. = ('arg','','','','',250,'','') options optimset L eScale off gradobj on MaxFunEvals display iter x=- [ 1.9,2] x fval exitflag output f search BanaFun x options = [,,,]min(@,,) 3)计算结果 Iteration Func-count min f(x) Procedure 0 1 267.62 1 3 236.4 2 initial simplex 2 5 67.2672 expand 3 7 12.2776 expand 4 8 12.2776 reflect 5 10 12.277 6 contract inside 6 12 6.76772 contract inside 7 13 6.76772 reflect 8 15 6.76772 contract inside 9 17 6.76772 contract outside 10 19 6.62983 contract inside 11 21 6.55249 contract inside 12 23 6.46084 contract inside 13 24 6.46084 reflect 14 26 6.46084 contract inside 15 28 6.45544 contract outside 16 30 6.42801 expand 17 32 6.40994 expand 18 34 6.32449 expand 19 36 6.28548 expand 20 38 6.00458 expand 21 39 6.00458 reflect 22 41 5.43287 expand

无约束优化方法

第四章无约束优化方法 ——最速下降法,牛顿型方法 概述 在求解目标函数的极小值的过程中,若对设计变量的取值范围不加限制,则称这种最优化问题为无约束优化问题。尽管对于机械的优化设计问题,多数是有约束的,无约束最优化方法仍然是最优化设计的基本组成部分。因为约束最优化问题可以通过对约束条件的处理,转化为无约束最优化问题来求解。 为什么要研究无约束优化问题 (1)有些实际问题,其数学模型本身就是一个无约束优化问题。 (2)通过熟悉它的解法可以为研究约束优化问题打下良好的基础。 (3)约束优化问题的求解可以通过一系列无约束优化方法来达到。

所以无约束优化问题的解法是优化设计方法的基本组成部分,也是优化方法的基础。 根据构成搜索方向所使用的信息性质的不同,无约束优化方法可以分为两类。 一:间接法——要使用导数的无约束优化方法,如梯度法、(阻尼)牛顿法、变尺度法、共轭梯度法等。 二:直接法——只利用目标函数值的无约束优化问题,如坐标轮换法、鲍威尔法单纯形法等。 无约束优化问题的一般形式可描述为: 求n 维设计变量 []12T n n X x x x R =∈L 使目标函数 ()min f X ? 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。 无约束优化问题的求解: 1、解析法

可以利用无约束优化问题的极值条 件求得。即将求目标函数的极值问题变成求方程 0)(min *=X f 的解。也就是 求X* 使其满足 解上述方程组,求得驻点后,再根据极值点所需满足的充分条件来判定是否为极小值点。但上式是一个含有n个未知量,n个方程的方程组,在实际问题中一般是非线性的,很难用解析法求解,0)(0)(0)(*2*1*=??=??=??n x X f x X f x X f M

无约束优化方法与MATLAB实现

例4-1 MA TLAB实现,用M函数文件形式求解: syms s t; f=s^2+3*t^2-2*t*s+4*t+3*s; [x,minf]=minZBLH(f,[-2 6],[0.2 0.2],1.5,[t s],0.0001,0.0001) 坐标轮换minZBLH函数文件如下: function [x,minf] = minconPS2(f,x0,delta,u,var,eps1,eps2) %目标函数:f; %初始点:x0; %收缩系数:u; %自变量向量:var; %步长精度:eps1; %自变量精度:eps2; if nargin == 7 eps2 = 1.0e-6; end n = length(var); y = x0; bmainCon = 1; while bmainCon yf = subs(f,var,y); yk_1 = y; for i=1:n tmpy = zeros(size(y)); tmpy(i) = delta(i); tmpf = subs(f, var,y+tmpy); if tmpf < yf bcon = 1; while bcon tmpy(i) = 2*tmpy(i); tmpf_i = subs(f, var,y+tmpy); if tmpf_i

无约束优化方法

第四章 无约束优化方法 ——最速下降法,牛顿型方法 概述 在求解目标函数的极小值的过程中,若对设计变量的取值范围不加限制,则称这种最 优化问题为无约束优化问题。尽管对于机械的优化设计问题,多数就是有约束的,无约束 最优化方法仍然就是最优化设计的基本组成部分。因为约束最优化问题可以通过对约 束条件的处理,转化为无约束最优化问题来求解。 为什么要研究无约束优化问题? (1)有些实际问题,其数学模型本身就就是一个无约束优化问题。 (2)通过熟悉它的解法可以为研究约束优化问题打下良好的基础。 (3)约束优化问题的求解可以通过一系列无约束优化方法来达到。 所以无约束优化问题的解法就是优化设计方法的基本组成部分,也就是优化方法的基 础。 根据构成搜索方向所使用的信息性质的不同,无约束优化方法可以分为两类。 一:间接法——要使用导数的无约束优化方法,如梯度法、(阻尼)牛顿法、变尺度法、共 轭梯度法等。 二:直接法——只利用目标函数值的无约束优化问题,如坐标轮换法、鲍威尔法单纯形 法等。 无约束优化问题的一般形式可描述为: 求n 维设计变量 []12T n n X x x x R =∈L 使目标函数 ()min f X ? 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。 无约束优化问题的求解: 1、解析法

可以利用无约束优化问题的极值条件求得。即将求目标函数的极值问题变成求方 程 0)(min *=X f 的解。也就就是求X*使其满足 解上述方程组,求得驻点后,再根据 极值点所需满足的充分条件来判定就是否为极小值点。但上式就 是一个含有n个未知量,n个方程的方程组,在实际问题中一般就 是非线性的,很难用解析法求解,要用数值计算的方法。由第二章的讲述我们知道,优化问题的一般解法就是数值迭代的方法。因此,与其用数值方法求解非线性方程组,还不如用数值迭 代的方法直接求解无约束极值问题。 2、数值方法 数值迭代法的基本思想就是从一个初始点) 0(X 出发,按照一个可行的搜索方向)0(d ρ搜索,确定最佳的步长0α使函数值沿)0(d ρ方向下降最大,得到)1(X 点。依此一步一步地 重复数值计算,最终达到最优点。优化计算所采用的基本迭代公式为 ),2,1,0()()()1(Λρ=+=+k d X X K K K K α (4、2) 在上式中, ()K d r 就是第就是 k+1 次搜索或迭代方向,称为搜索方向(迭代方向)。 由上面的迭代公式可以瞧出,采用数值法进行迭代求优时,需要确定初始点)(k X 、搜索方向)(k d ρ与迭代步长K α,称为优化方法迭代算法的三要素。第三章我们已经讨论了如何在搜索方向)(k d ρ上确定最优步长K α的方法,本章我们将讨论如何确定搜索方向)(k d ρ。 最常用的数值方法就是搜索方法,其基本思想如下图所示: 无约束优化方法可以分为两类。一类就是通过计算目标函数的一阶或二阶导数值 确定搜索方向的方法,称为间接法,如最速下降法、牛顿法、变尺度法与共轭梯度法。另 一类就是直接利用目标函数值确定搜索方向的方法,称为直接法,如坐标轮换法、鲍威尔 法与单形替换法。各种无约束优化方法的区别在于确定其搜索方向0d 的方法不同。 0)(0)(0)(*2*1*=??=??=??n x X f x X f x X f M

相关主题
文本预览
相关文档 最新文档