遗传算法求复杂函数极值问题

遗传算法求复杂函数极值问题
遗传算法求复杂函数极值问题

遗传算法求复杂函数极值问题

中文摘要:

本文首先介绍遗传算法的历史背景,基本思想,对遗传算法的常见的编码解码方法进行了深入的阐述,并对算子选择方法进行深入分析和对比,在此基础上把遗传算法应用于求解复杂函数的极值计算。最后在MATLAB语言环境下编写程序,对求解函数的最大值进行了仿真,并对调试的结果进行了分析,得出了部分结论。

关键词:遗传算法最优解算子选择复杂函数

作者:xx xx

指导老师:xxxx xx

Using Genetic Algorithm to Solve Extreme Problem

of Complex Function

Abstract

Firstly,the historical background and basic idea of genetic algorithm are introduced in this paper. The common coding and decoding method of genetic algorithm are discussed too.

Secondly, the selection method of genetic operator is analyzed and compared deeply, based on which genetic algorithm is used to solve extreme problem of complex function.

Finally, with MA TLAB software, the program is compiled and the maximum is sought out. At the end of the paper, the debugging result is analyzed and the conclusion is given.

Keywords: Genetic Algorithm Optimal Solution Operator Selection Complex Function

Written by : xx xx

Supervised by: xxxx xx

目录

第一章绪论 (5)

1.1 遗传算法生物学背景 (5)

1.1.1 遗传与变异 (5)

1.1.2 进化 (5)

1.2 本文主要内容 (5)

第二章遗传算法简介 (6)

2.1 遗传算法历史和发展 (6)

2.2 遗传算法的基本原理 (6)

2.3 遗传算法的特点 (7)

2.4 遗传算法的目的 (7)

2.5 遗传算法应用 (8)

第三章遗传算法的参数和算子选择 (10)

3.1 遗传算法的数学理论 (10)

3.2 编码 (11)

3.2.1 编码方法 (11)

3.2.2 编码原则 (13)

3.3 个体适应度函数 (13)

3.3.1 评价个体适应 (13)

3.2.2 适应度尺度变换 (14)

3.3 算子选择 (14)

3.3.1 选择运算 (14)

3.3.2 交叉运算 (16)

3.3.3 变异运算 (18)

3.4 其他运行参数 (18)

第四章遗传算法求解复杂函数极值问题 (20)

4.1 遗传算法的求解步骤 (20)

4.2 算例验证 (24)

第五章结论 (28)

参考文献 (28)

附录(程序) (29)

第一章绪论

1.1遗传算法生物学背景

生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。

1.1.1 遗传与变异

1、遗传

世间的生物从其亲代继承特性或性状,这种生命现象叫遗传,研究这种生命现象的科学叫做遗传学。遗传信息是由基因组成的,生物的各种性状由其相应基因来控制,基因是遗传的基本单位。细胞分裂具有自我复制的能力,在细胞分裂的过程中,其遗传基因也同时被复制到下一代,从而其性状也被下一代所继承。

2、变异

细胞在分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因,在进行细胞复制时,虽然概率很小,但也有可能产生某些复制差错,从而使DNA发生某种变异产生出新的染色体,从而表现出新的性状。

1.1.2进化

生物在其延续生存的过程中,逐渐适应于其生存环境,使得其品质不断得到改良,这种现象叫做进化。新的基因依据其与环境的适应程度决定其增殖能力,有利于生存环境的基因逐渐增加,而不利于生存环境的基因逐渐减少,通过这种自然的选择,物种渐渐的向适应于生存环境的方向进化,从而产生优良的物种。

1.2 本文主要内容

本文主要讨论遗传算法在实际数值函数优化问题中的应用,即对实际问题建模后求函数最大值的问题。遗传算法通过对群体所施加的迭代进化过程,不断的将当前群体中具有较高适应度的个体遗传到下一代群体中,并且不断的淘汰掉适应度较低的个体,从而最终寻求出适应度最大的个体。这个适应度最大的个体经解码处理之后所对应的个体表现型即为实际问题最优解或是最近似最优解

函数的单调性、极值与最值问题

函数的单调性、极值与最值问题 典例9 (12分)已知函数f (x )=ln x +a (1-x ). (1)讨论f (x )的单调性; (2)当f (x )有最大值,且最大值大于2a -2时,求a 的取值范围. 审 题 路 线 图 求f ′(x ) ――――――→讨论f ′(x ) 的符号 f (x )单调性―→f (x )最大值―→解f (x )max >2a -2.

评分细则(1)函数求导正确给1分; (2)分类讨论,每种情况给2分,结论1分; (3)求出最大值给2分; (4)构造函数g(a)=ln a+a-1给2分; (5)通过分类讨论得出a的范围,给2分.

跟踪演练9(优质试题·天津)已知函数f(x)=a x,g(x)=log a x,其中a>1. (1)求函数h(x)=f(x)-x ln a的单调区间; (2)若曲线y=f(x)在点(x1,f(x1))处的切线与曲线y=g(x)在点(x2, g(x2))处的切线平行,证明x1+g(x2)=-2ln ln a ln a; (3)证明当a≥1e e时,存在直线l,使l是曲线y=f(x)的切线,也是曲线y=g(x)的切线. (1)解由已知得h(x)=a x-x ln a, 则h′(x)=a x ln a-ln a. 令h′(x)=0,解得x=0. 由a>1,可知当x变化时,h′(x),h(x)的变化情况如下表: 所以函数h(x)的单调递减区间为(-∞,0),单调递增区间为(0,+∞). (2)证明由f′(x)=a x ln a,可得曲线y=f(x)在点(x1,f(x1))处 的切线斜率为1x a ln a.由g′(x)= 1 x ln a,可得曲线y=g(x)在点

遗传算法用于函数优化

遗传算法用于函数优化求解 一、实验目的 本实验要求在掌握遗传算法的基本思想、原理和算法流程的基础上,能够针对指定的单变量优化目标函数,设计相应的遗传算法优化程序,并求得全局最优解。 二、实验要求 针对目标函数 2 1(1),[0,2]y x x =--∈,设计利用遗传算法进行优化求解的程序,绘制迭代过程中最优解的变化情况,并分别改变算法中的编码位数、种群规模、交叉和变异概率,分析这些变量对算法精度及收敛性的影响。 三、实验步骤 1、初始化种群,确定种群规模M=20,编码位数n=5 和编码机制(二进制编码); 初始化种群:E = round(rand(M,n)); 每个编码对应的二进制数值: (1) 2i i i y y -=?∑ i y 为第i 位二进制代码; 二进制数y 转换为十进制数x : max min min *21n x x x y x -= +-; 2、根据给定的目标函数,计算各个种群的适应度值; 3、采用轮盘选择法对种群进行选择复制; 4、设定交叉概率为0.9,进行遗传操作(交叉); 5、设定变异概率0.05,进行遗传操作(变异); 6、产生下一代种群,与终止条件比较,不满足返回到步骤2直到满足条件退出。 算法的流程如图7.1所示。

N Y 结束 输出结果 迭代次数达上限? 开始 初始化种群(编码) 计算适应度函数 交叉、变异 选择、复制 达到系统指标? 图7.1 算法流程图 四、实验结果及分析 我们采用遗传算法来寻求目标函数的最大值。初始化样本个数为20个,编码位数为5位,采用二进制编码,交叉概率为0.9,变异概率为0.05,最大迭代次数为1000次,初始样本随机选择,当父代与子代间适应度变化小于0.001时,达到系统指标。MATLAB 模拟运行输出迭代种群的平均适应度变化、种群的最优解与最差解,绘出图像(见图1),计算运行时间的平均值(见表1),由表可知,平均运行时间约为0.65秒左右,速度较快。由图可知,前期平均适应度是不断上升的,到达一定程度后即平均适应度在0.9以上后,就基本处于波动平衡状态。

求极值的若干方法

求极值的若干方法 1 序言 一般来说函数的极值可以分为无条件极值和条件极值两类.无条件极值问题即是函数中的自变 量只受定义域约束的极值问题;而条件极值问题即是函数中的自变量除受定义域约束外还受其它条件限制的极值问题.下面我们给出极值的定义 定义1) 136](1[P 设函数f 在点0P 的某邻域0()U P 内有定义,若对于任何点 0()P U P ∈,成立不等式 0()()f P f P ≤(或0()()f P f P ≥), 则称函数f 在点0P 取得极大(或极小)值,点0P 称为f 的极大(或极小)值点.极大值、极小值统称为极值.极大值点、极小值点统称为极值点. 2 求解一元函数无条件极值的常用方法 2.1 导数法 定理1 ) 142](2[P 设f 在点0x 连续,在某邻域0(;)o U x δ内可导. (i)若当00(,)x x x δ∈-时()0f x '≤,当00(,)x x x δ∈+时()0f x '≥,则f 在点0x 取得极小值. (ii)若当00(,)x x x δ∈-时()0f x '≥,当00(,)x x x δ∈+时()0f x '≤,则f 在点0x 取得极大值. 由此我们可以推出当0(;)o x U x δ∈时,若()f x '的符号保持不变,则()f x 在0x 不取极值. 定理2 ) 142](2[P 设f 在0x 的某邻域0(;)U x δ内一阶可导, 在0x x =处二阶可导,且()0f x '=,()0f x ''≠. (i)若0()0f x ''<,则f 在0x 取得极大值. (ii)若0()0f x ''>,则f 在0x 取得极小值. 对于一般的函数我们既可以利用定理1,也可以利用定理2,但对于有不可导点的函数只能用定理1. 例1 求函数2 ()(1)f x x x =-的极值.

外点惩罚罚函数

https://www.360docs.net/doc/8411053589.html,/kuai_su/youhuasheji/suanfayuanli/4.3.asp 约束优化算法——外点惩罚函数法 (一)基本原理 设原目标函数为,在不等式约束条件下用外点惩罚函数法求极小。外点法常采用如下形式的泛函: (6) 由此,外点法所构造的相应的惩罚函数形式为 (7) 式中,惩罚因子是一个递增的正值数列,即 惩罚项中: (8) 由此可见,当迭代点X位于可行域内满足约束条件时,惩罚项为零,这时不管 取多大,新目标函数就是原目标函数,亦即满足约束条件时不受“惩罚”,此时求式(7)的无约束极小,等价于求原目标函数在己满足全部约束条件下的极小;而 当点X位于可行域外不满足约束条件时,惩罚项为正值,惩罚函数的值较原目标函数的值增大了,这就构成对不满足约束条件时的一种“惩

罚”。 由式(7)可知,每一次对罚函数求无约束的极值,其结果将随该次所给定的罚因子值而异。在可行域外,离约束边界越近的地方,约束函数的值越大,的值也就越小,惩罚项的作用也就越弱,随着罚因子逐次调整增大,有增大惩罚项的趋势,但一般说来泛函值下降得更 快一些。此时尽管值增大,但泛函值亦趋于零,满足式(3)。最后当,泛函值和惩罚项值均趋近于零。外点法在寻优过程中,随着罚因子的逐次调整增大,即取 ,所得的最优点序列可以看作是以为参数的一条轨迹,当时,最优点点列 从可行域的外部一步一步地沿着这条轨迹接近可行域,所得的最优点列逼近原问题的约束最优点。这样,将原约束最优化问题转换成为序列无约束最优化问题。外点法就是因从可行域的外部逼近最优解而得名。 (二)迭代过程及算法框图 外点惩罚函数法的具体迭代步骤如下: (1)给定初始点,初始惩罚因子,迭代精度,递增系数c>1,维数n。置。 (2)以为初始点,用无约束最优化方法求解惩罚函数的极小点,即: (9)。 (3)检验是否满足迭代终止条件: 或(若) 或(若) 若不满足,则进行第(4)步;否则转第(5)步。

遗传算法求解实例

yj1.m :简单一元函数优化实例,利用遗传算法计算下面函数的最大值 0.2)*10sin()(+=x x x f π,∈x [-1, 2] 选择二进制编码,种群中个体数目为40,每个种群的长度为20,使用代沟为0.9, 最大遗传代数为25 译码矩阵结构:?????????? ??????? ???? ?=ubin lbin scale code ub lb len FieldD 译码矩阵说明: len – 包含在Chrom 中的每个子串的长度,注意sum(len)=length(Chrom); lb 、ub – 行向量,分别指明每个变量使用的上界和下界; code – 二进制行向量,指明子串是怎样编码的,code(i)=1为标准二进制编码, code(i)=0则为格雷编码; scale – 二进制行向量,指明每个子串是否使用对数或算术刻度,scale(i)=0为算术 刻度,scale(i)=1则为对数刻度; lbin 、ubin – 二进制行向量,指明表示范围中是否包含每个边界,选择lbin=0或 ubin=0,表示从范围中去掉边界;lbin=1或ubin=1则表示范围中包含边界; 注:增加第22行:variable=bs2rv(Chrom, FieldD);否则提示第26行plot(variable(I), Y, 'bo'); 中variable(I)越界 yj2.m :目标函数是De Jong 函数,是一个连续、凸起的单峰函数,它的M 文件objfun1包含在GA 工具箱软件中,De Jong 函数的表达式为: ∑ == n i i x x f 1 2 )(, 512512≤≤-i x 这里n 是定义问题维数的一个值,本例中选取n=20,求解 )(min x f ,程序主要变量: NIND (个体的数量):=40; MAXGEN (最大遗传代数):=500; NV AR (变量维数):=20; PRECI (每个变量使用多少位来表示):=20; GGAP (代沟):=0.9 注:函数objfun1.m 中switch 改为switch1,否则提示出错,因为switch 为matlab 保留字,下同! yj3.m :多元多峰函数的优化实例,Shubert 函数表达式如下,求)(min x f 【shubert.m 】

4遗传算法与函数优化

第四章遗传算法与函数优化 4.1 研究函数优化的必要性: 首先,对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多,影响因素的复杂,这些数学函数会呈现出不同的数学特征。除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况下需要通过数值计算的方法来进行近似优化计算。 其次,如何评价一个遗传算法的性能优劣程度一直是一个比较难的问题。这主要是因为现实问题种类繁多,影响因素复杂,若对各种情况都加以考虑进行试算,其计算工作量势必太大。由于纯数值函数优化问题不包含有某一具体应用领域中的专门知识,它们便于不同应用领域中的研究人员能够进行相互理解和相互交流,并且能够较好地反映算法本身所具有的本质特征和实际应用能力。所以人们专门设计了一些具有复杂数学特征的纯数学函数,通过遗传算法对这些函数的优化计算情况来测试各种遗传算法的性能。 4.2 评价遗传算法性能的常用测试函数 在设计用于评价遗传算法性能的测试函数时,必须考虑实际应用问题的数学模型中所可能呈现出的各种数学特性,以及可能遇到的各种情况和影响因素。这里所说的数学特性主要包括: ●连续函数或离散函数; ●凹函数或凸函数; ●二次函数或非二次函数; ●低维函数或高维函数; ●确定性函数或随机性函数; ●单峰值函数或多峰值函数,等等。 下面是一些在评价遗传算法性能时经常用到的测试函数: (1)De Jong函数F1: 这是一个简单的平方和函数,只有一个极小点f1(0, 0, 0)=0。

(2)De Jong 函数F2: 这是一个二维函数,它具有一个全局极小点f 2(1,1) = 0。该函数虽然是单峰值的函数,但它却是病态的,难以进行全局极小化。 (3)De Jong 函数F3: 这是一个不连续函数,对于]0.5,12.5[--∈i x 区域内的每一个点,它都取全局极小值 30),,,,(543213-=x x x x x f 。

函数极值的几种求法

函数极值的几种求法 ──针对高中生所学知识 摘要:函数是数学教学中一个重要的组成部分,从小学六年级的一元一次方程继而延伸到初中的一次函数,二次函数的初步介绍,再到高中的函数的单调性、周期性、最值、极值,以及指数函数、对数函数、三角函数的学习,这些足以说明函数在数学教学中的地位。极值作为函数的一个重要性质,无论是在历年高考试题中,还是在实际生活运用中都占有不可或缺的地位。本文主要阐述了初高中常见的几种函数,通过函数极值的相关理论给出每种函数极值的求解方法。 关键词:函数;单调性;导数;图像;极值 Abstract: Function is an important part of mathematics teaching. First the learning of linear equation in six grade, secondly the preliminary introduction of linear functions and quadratic functions in junior high school, then the monotonicity, the periodicity, the most value and the extreme value of function, finally the learning of the logarithmic function, exponential function and trigonometric function in high school. These are enough to show the important statue of the function in mathematics teaching. As an important properties of function, extreme value has an indispensable status whether in the calendar year test, or in daily life. This article will mainly expound the methods of solving the extreme value of sever functions in middle school. Key words: function; monotonicity; derivative; image; extreme value “函数”一词最先是由德国的数学家莱布尼茨在17世纪采用的,当时莱布尼茨用“函数”这一词来表示变量x的幂,也就是x的平方x的立方。之后莱布尼茨又将“函数”这一词用来表示曲线上的横坐标、纵坐标、切线的长度、垂线的长度等与曲线上的点有关的变量[]1。就这样“函数”这词逐渐盛行。在中国,清代著名数学家、天文学家、翻译家和教育家,近代科学的先驱者善兰给出的定义是:

(完整版)导数与函数的极值、最值问题(解析版)

【高考地位】 导数在研究函数的极值与最值问题是高考的必考的重点内容,已由解决函数、数列、不等式问题的辅助工具上升为解决问题的必不可少的工具,特别是利用导数来解决函数的极值与最值、零点的个数等问题,在高考中以各种题型中均出现,对于导数问题中求参数的取值范围是近几年高考中出现频率较高的一类问题,其试题难度考查较大. 【方法点评】 类型一 利用导数研究函数的极值 使用情景:一般函数类型 解题模板:第一步 计算函数()f x 的定义域并求出函数()f x 的导函数'()f x ; 第二步 求方程'()0f x =的根; 第三步 判断'()f x 在方程的根的左、右两侧值的符号; 第四步 利用结论写出极值. 例1 已知函数x x x f ln 1 )(+= ,求函数()f x 的极值. 【答案】极小值为1,无极大值. 【点评】求函数的极值的一般步骤如下:首先令'()0f x =,可解出其极值点,然后根据导函数大于0、小于0即可判断函数()f x 的增减性,进而求出函数()f x 的极大值和极小值. 【变式演练1】已知函数322()f x x ax bx a =+++在1x =处有极值10,则(2)f 等于( ) A .11或18 B .11 C .18 D .17或18 【答案】C 【解析】

试题分析:b ax x x f ++='23)(2,???=+++=++∴1010232 a b a b a ???-==????=----=?114012232b a a a a b 或???=-=33 b a .当???=-=3 3 b a 时,∴≥-=',0)1(3)(2x x f 在1=x 处不存在极值. 当???-==11 4b a 时, )1)(113(1183)(2-+=-+='x x x x x f ,0)(),1,3 11 (<'- ∈∴x f x ;0)(),,1(>'+∞∈x f x ,符合题意. 所以???-==114b a .181622168)2(=+-+=∴f .故选C . 考点:函数的单调性与极值. 【变式演练2】设函数()21 ln 2 f x x ax bx =--,若1x =是()f x 的极大值点,则a 的取值范围为 ( ) A .()1,0- B .()1,-+∞ C .()0,+∞ D .()(),10,-∞-+∞U 【答案】B 【解析】 考点:函数的极值. 【变式演练3】函数x m x m x x f )1(2)1(2 1 31)(23-++-=在)4,0(上无极值,则=m _____. 【答案】3 【解析】 试题分析:因为x m x m x x f )1(2)1(2 1 31)(23-++-= , 所以()()2'()(1)2(1)21f x x m x m x x m =-++-=--+,由()'0f x =得2x =或1x m =-,又因为

遗 传 算 法 详 解 ( 含 M A T L A B 代 码 )

GATBX遗传算法工具箱函数及实例讲解 基本原理: 遗传算法是一种典型的启发式算法,属于非数值算法范畴。它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化进行不断演化,直到满足期望的终止条件。 运算流程: Step 1:对遗传算法的运行参数进行赋值。参数包括种群规模、变量个数、交叉概率、变异概 率以及遗传运算的终止进化代数。 Step 2:建立区域描述器。根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。 Step 3:在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。 Step 4:执行比例选择算子进行选择操作。 Step 5:按交叉概率对交叉算子执行交叉操作。

Step 6:按变异概率执行离散变异操作。 Step 7:计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。 Step 8:判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果。 运用遗传算法工具箱: 运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库。目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学开发的遗传算法工具箱GATBX、GAOT以及Math Works公司推出的GADS。实际上,GADS就是大家所看到的Matlab中自带的工具箱。我在网上看到有问为什么遗传算法函数不能调用的问题,其实,主要就是因为用的工具箱不同。因为,有些人用的是GATBX带有的函数,但MATLAB自带的遗传算法工具箱是GADS,GADS当然没有GATBX里的函数,因此运行程序时会报错,当你用MATLAB来编写遗传算法代码时,要根据你所安装的工具箱来编写代码。 以GATBX为例,运用GATBX时,要将GATBX解压到Matlab下的toolbox文件夹里,同时,set path将GATBX文件夹加入到路径当中。 这块内容主要包括两方面工作:1、将模型用程序写出来(.M文件),即目标函数,若目标函数非负,即可直接将目标函数作为适应度函数。2、设置遗传算法的运行参数。包括:种群规模、变量个数、区域描述器、交叉概率、变异概率以及遗传运算的终止进化代数等等。

遗传算法求复杂函数极值问题【精品毕业设计】(完整版)

遗传算法求复杂函数极值问题 中文摘要: 本文首先介绍遗传算法的历史背景,基本思想,对遗传算法的常见的编码解码方法进行了深入的阐述,并对算子选择方法进行深入分析和对比,在此基础上把遗传算法应用于求解复杂函数的极值计算。最后在MATLAB语言环境下编写程序,对求解函数的最大值进行了仿真,并对调试的结果进行了分析,得出了部分结论。 关键词:遗传算法最优解算子选择复杂函数 作者:xx xx 指导老师:xxxx xx

Using Genetic Algorithm to Solve Extreme Problem of Complex Function Abstract Firstly,the historical background and basic idea of genetic algorithm are introduced in this paper. The common coding and decoding method of genetic algorithm are discussed too. Secondly, the selection method of genetic operator is analyzed and compared deeply, based on which genetic algorithm is used to solve extreme problem of complex function. Finally, with MA TLAB software, the program is compiled and the maximum is sought out. At the end of the paper, the debugging result is analyzed and the conclusion is given. Keywords: Genetic Algorithm Optimal Solution Operator Selection Complex Function Written by : xx xx Supervised by: xxxx xx

求极值与最值的方法

求极值与最值的方法 1 引言 在当前的数学教育中,求初等函数的极值与最值占有比较重要的位置,由于其解法灵活,综合性强,能力要求高,故而解决这类问题,要掌握各数学分支知识,能综合运用各种数学技能,灵活选择合理的解题方法。下面我们将要介绍多种求初等函数的极值和最值的方法。 2 求函数极值的方法 极值定义:设函数()f x 在0x 的某邻域内有定义,且对此邻域内任一点 x 0()x x ≠,均有0()()f x f x <,则称0()f x 是函数错误!未找到引用源。的一个极大值;同样如果对此邻域内任一点x 0()x x ≠,均有错误!未找到引用源。,则称0()f x 是函数错误!未找到引用源。的一个极小值。函数的极大值与极小值统称为函数的极值。使函数取得极值的点0x ,称为极值点。 2.1 求导法 判别方法一: 设()f x 在点0x 连续,在点错误!未找到引用源。的某一空心邻域内可导。当 x 由小增大经过错误!未找到引用源。时,如果: (1)'()f x 由正变负,那么0x 是极大值点; (2)错误!未找到引用源。由负变正,那么0x 是极小值点; (3)错误!未找到引用源。不变号,那么0x 不是极值点。 判别方法二: 设()f x 在点0x 处具有二阶导数,且'()0f x =,''()0f x =。 (1)如果''()0f x <,则()f x 在点0x 取得极大值; (2)如果''()0f x >,则()f x 在点0x 取得极小值。

判别方法三: 设()f x 在点0x 有n 阶导数,且0)()()(0)1(00===''='-x f x f x f n 0)(0)(≠x f n ,则: (1)当为偶数时,)(x f 在0x 取极值,有0)(0)(x f n 时,)(x f 在0x 取极小值。 (2)当为奇数时,)(x f 在0x 不取极值。 求极值方法: (1)求一阶导数,找出导数值为0的点(驻点),导数值不存在的点,及端点; (2)判断上述各点是否极值点 例 1 求函数32()69f x x x x =-+的极值。 解法一 : 因为32()69f x x x x =-+的定义域为错误!未找到引用源。, 且'2()31293(1)(3)f x x x x x =-+=--, 令'()0f x =,得驻点11x =, 23x =; 在错误!未找到引用源。内,错误!未找到引用源。,在错误!未找到引用源。内,'()0f x <,(1)4f =为函数()f x 的极大值。 解法二: 因为错误!未找到引用源。的定义域为错误!未找到引用源。, 且错误!未找到引用源。,错误!未找到引用源。。 令错误!未找到引用源。,得驻点错误!未找到引用源。,错误!未找到引用源。。又因为错误!未找到引用源。,所以,错误!未找到引用源。为)(x f 极大值。 错误!未找到引用源。,所以错误!未找到引用源。为)(x f 极小值.

二次函数最值问题与解题技巧(个人整理)

一、二次函数线段最值问题 1、平行于x轴的线段最值问题 1)首先表示出线段两个端点的坐标 2)用右侧端点的横坐标减去左侧端点的横坐标 3)得到一个线段长关于自变量的二次函数 4)将其化为顶点式,并根据a的正负及自变量的取值范围判断最值 2、平行于y轴的线段最值问题 1)首先表示出线段两个端点的坐标 2)用上面端点的纵坐标减去下面端点的纵坐标 3)得到一个线段长关于自变量的二次函数解析式 4)将其化为顶点式,并根据a的正负及自变量的取值范围判断最值 3、既不平行于x轴,又不平行于y轴的线段最值问题 1)以此线段为斜边构造一个直角三角形,并使此直角三角形的两条直角边分别平行于 x轴、y轴 2)根据线段两个端点的坐标表示出直角顶点坐标 3)根据“上减下,右减左”分别表示出两直角边长 4)根据勾股定理表示出斜边的平方(即两直角边的平方和) 5)得到一个斜边的平方关于自变量的二次函数 6)将其化为顶点式,并根据a的正负及自变量的取值范围判断最值 7)根据所求得的斜边平方的最值求出斜边的最值即可 二、二次函数周长最值问题 1、矩形周长最值问题 1)一般会给出一点落在抛物线上,从这点向两坐标轴引垂线构成一个矩形,求其周长 最值 2)可先设此点坐标,点p到x轴、y轴的距离和再乘以2,即为周长 3)将其化为顶点式,并根据a的正负及自变量的取值范围判断最值 2、利用两点之间线段最短求三角形周长最值 1)首先判断图形中那些边是定值,哪些边是变量 2)利用二次函数轴对称性及两点之间线段最短找到两条变化的边,并求其和的最小值 3)周长最小值即为两条变化的边的和最小值加上不变的边长 三、二次函数面积最值问题 1、规则图形面积最值问题(这里规则图形指三角形必有一边平行于坐标轴,四边形必有一组对边平行于坐标轴) 1)首先表示出所需的边长及高 2)利用求面积公式表示出面积 3)得到一个面积关于自变量的二次函数 4)将其化为顶点式,并根据a的正负及自变量的取值范围判断最值 2、不规则图形面积最值问题 1)分割。将已有的不规则图形经过分割后得到几个规则图形 2)再分别表示出分割后的几个规则图形面积,求和 3)得到一个面积关于自变量的二次函数 4)将其化为顶点式,并根据a的正负及自变量的取值范围判断最值 或1)利用大减小,不规则图形的面积可由规则的图形面积减去一个或几个规则小图形的 面积来得到

遗传算法程序示例

遗传算法程序示例 %% I. 清空环境变量 %optimtool solver 中选择GA %添加gaot工具箱 clear all clc %% II. 绘制函数曲线 x = 0:0.01:9; y = x + 10*sin(5*x)+7*cos(4*x); figure plot(x, y) xlabel('自变量') ylabel('因变量') title('y = x + 10*sin(5*x) + 7*cos(4*x)') grid %% III. 初始化种群 initPop = initializega(50,[0 9],'fitness'); %种群大小;变量变化范围;适应度函数的名称 %看一下initpop 第二列代表适应度函数值 %% IV. 遗传算法优化 [x endPop bpop trace] = ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,... 'normGeomSelect',0.08,'arithXover',2,'nonUnifMutation',[2 25 3]); %变量范围上下界;适应度函数;适应度函数的参数;初始种群;精度和显示方式;终止函数的名称; %终止函数的参数;选择函数的名称;选择函数的参数;交叉函数的名称;交叉函数的参数;变异函数的 %名称;变异函数的参数 % X 最优个体endpop 优化终止的最优种群bpop 最优种群的进化轨迹trace 进化迭代过程中 %最优的适应度函数值和适应度函数值矩阵 %% V. 输出最优解并绘制最优点 x hold on plot (endPop(:,1),endPop(:,2),'ro')

(实例)matlab遗传算法工具箱函数及实例讲解

matlab遗传算法工具箱函数及实例讲解 核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 【输出参数】 pop--生成的初始种群 【输入参数】 num--种群中的个体数目 bounds--代表变量的上下界的矩阵 eevalFN--适应度函数 eevalOps--传递给适应度函数的参数 options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B], 如 precision--变量进行二进制编码时指定的精度 F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度) (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,... termFN,termOps,selectFN,selectOps,xOverFNs,xOverO ps,mutFNs,mutOps)--遗传算法函数 【输出参数】 x--求得的最优解 endPop--最终得到的种群 bPop--最优种群的一个搜索轨迹 【输入参数】 bounds--代表变量上下界的矩阵 evalFN--适应度函数 evalOps--传递给适应度函数的参数 startPop-初始种群 opts[epsilon prob_ops display]--opts(1:2)等同于initializega 的options参数,第三个参数控制是否输出,一般为0。如[1e-6 1 0] termFN--终止函数的名称,如['maxGenTerm'] termOps--传递个终止函数的参数,如[100] selectFN--选择函数的名称,如['normGeomSelect'] selectOps--传递个选择函数的参数,如[0.08] xOverFNs--交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover'] xOverOps--传递给交叉函数的参数表,如[2 0;2 3;2 0] mutFNs--变异函数表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation'] mutOps--传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0]

内点法+外点法

1.外点法 的约束最优化问题。(由约束条件作图) 解:取()()()00120,0,0.01,10,0.01,0;X C r k εε====== 外点法惩罚函数为:(会转化,并且把握函数值的趋势) (看到了min 就要知道在平面中取什么范围内的点,才可使罚函数达到最小) 対上式求偏导得: () () 1211221226 28 264152845x x x r x x r x x x φφ--???????? ?? ==????-+--+-???????? ?? 无约束目标函数极小化问题的最优解系列为: ()()** 12156584242 r r x r x r r r ++== ++ 22 121122123142 min ()(3)(4) .. ()50 () 2.50 ()0 ()0 f X x x s t g X x x g X x x g X x g X x =-+-=--≥=--≥=≥=≥()()()()()()()()()()()()()()()222222 1212121222 112212342222 11 22121212min ,34max 0,5max 0, 2.5max 0,max 0,69816(0,0,0,0)698165 2.5(0,0,x r x x r x x r x x r x r x x x x x g x g x g x g x x x x x r x x r x x g x g x g φ=-+-++-+-+++-+-????????????????-++-+-≤-≤-≤-≤=-++-+++-+-++->->-()()340,0)x g x ???? ??≤-≤????

二元函数的极值与最值

二元函数的极值与最值 二元函数的极值与最值问题已成为近年考研的重点,现对二元函数的极值与最值的求法总结如下: 1.二元函数的无条件极值 (1) 二元函数的极值一定在驻点和不可导点取得。对于不可导点,难以判断是否是极值点;对于驻点可用极值的充分条件判定。 (2)二元函数取得极值的必要条件: 设),(y x f z =在点),(00y x 处可微分且在点),(00y x 处有极值,则0),('00=y x f x ,0),('00=y x f y ,即),(00y x 是驻点。 (3) 二元函数取得极值的充分条件:设),(y x f z =在),(00y x 的某个领域内有连续上二阶偏导数,且=),('00y x f x 0),('00=y x f y ,令A y x f xx =),('00, B y x f xy =),('00,C y x f yy =),('00,则 当02<-AC B 且 A<0时,f ),(00y x 为极大值; 当02<-AC B 且A>0,f ),(00y x 为极小值; 02 >-AC B 时,),(00y x 不是极值点。 注意: 当B 2-AC = 0时,函数z = f (x , y )在点),(00y x 可能有极值,也可能没有极值,需另行讨论 例1 求函数z = x 3 + y 2 -2xy 的极值. 【分析】可能极值点是两个一阶偏导数为零的点,先求出一阶偏导,再令其为零确定极值点即可,然后用二阶偏导确定是极大值还是极小值,并求出相应的极值. 【解】先求函数的一、二阶偏导数: y x x z 232 -=??, x y y z 22-=??. x x z 62 2 =??, 22 -=???y x z , 2 2 2 =??y z . 再求函数的驻点.令x z ??= 0,y z ??= 0,得方程组???=-=-. 022,0232x y y x 求得驻点(0,0)、),(3 2 32. 利用定理2对驻点进行讨论:

第五章-遗传算法工具箱函数

第五章遗传算法工具箱函数 本章介绍英国设菲尔德大学开发的遗传算法工具箱函数。 由于MATLAB高级语言的通用性,对问题用M文件编码,与此配对的是MA TLAB先进的数据分析、可视化工具、特殊目的的应用领域工具箱和展现给使用者具有研究遗传算法可能性的一致环境。MATLAB遗传算法工具箱为遗传算法从业者和第一次实验遗传算法的人提供了广泛多样的有用函数。 遗传算法工具箱使用MA TLAB矩阵函数为实现广泛领域的遗传算法建立一套通用工具,这个遗传算法工具是用M文件写成的,是命令行形式的函数,能完成遗传算法大部分重要功能的程序的集合。用户可通过这些命令行函数,根据实际分析的需要,编写出功能强大的MATLAB程序。 5.1 工具箱结构 本节给出GA工具箱的主要程序。表5.1为遗传算法工具箱中的各种函数分类表。 表5.1 遗传算法工具箱中函数分类表

5.1.1 种群表示和初始化 种群表示和初始化函数有:crtbase,crtbp,crtrp。 GA工具箱支持二进制、整数和浮点数的基因表示。二进制和整数种群可以使用工具箱中的crtbp建立二进制种群。crtbase是附加的功能,它提供向量描述整数表示。种群的实值可用crtrp进行初始化。在二进制代码和实值之间的变换可使用函数bs2rv,它支持格雷码和对数编码。 5.1.2 适应度计算 适应度函数有:ranking,scaling。 适应度函数用于转换目标函数值,给每一个个体一个非负的价值数。这个工具箱支持Goldberg的偏移法(offsetting)和比率法以及贝克的线性评估算法。另外,ranking函数支持非线性评估。 5.1.3 选择函数 选择函数有:reins,rws,select,sus。 这些函数根据个体的适应度大小在已知种群中选择一定数量的个体,对它的索引返回一个列向量。现在最合适的是轮盘赌选择(即rws函数)和随机遍历抽样(即sus函数)。高级入口函数select为选择程序,特别为多种群的使用提供了一个方便的接口界面。在这种情况下,代沟是必须的,这就是整个种群在每一代中没有被完全复制,reins能使用均匀的随机数或基于适应度的重新插入。 5.1.4 交叉算子 交叉算子函数有:recdis,recint,reclin,recmut,recombin,xovdp,xovdprs,xovmp,xovsh,xovshrs,xovsp,xovsprs。 交叉是通过给定的概率重组一对个体产生后代。单点交叉、两点交叉和洗牌交叉是由xovsp、xovdp、xovsh函数分别完成的。缩小代理交叉函数分别是:xovdprs、xovshrs和xovsprs。通用的多点交叉函数是xovmp,它提供均匀交换的支持。为支持染色体实值表示,离散的、中间的和线性重组分别由函数recdis、recint、reclin完成。函数recmut提供具有突变特征的线性重组。函数recombin是一高级入口函数,对所有交叉操作提供多子群支持入口。 5.1.5 变异算子 变异算子函数有:mut,mutate,mutbga。

求函数极值的几种方法

求解函数极值的几种方法 1.1函数极值的定义法 说明:函数极值的定义,适用于任何函数极值的求解,但是在用起来时却比较的烦琐. 1.2导数方法 定理(充分条件)设函数()f x 在0x 处可导且0()0f x '=,如果x 取0x 的左侧的值时,()0f x '>,x 取0x 的右侧的值时,()0f x '<,那么()f x 在0x 处取得极大值,类似的我们可以给出取极小值的充分条件. 例1 求函数23()(1)f x x x =-的单调区间和极值 解 23()(1)f x x x =- ()x -∞<<+∞, 3222()2(1)3(1)(1)(52)f x x x x x x x x '=-+-=--. 令 ()0f x '=,得到驻点为10x =,22 5 x = ,31x =.列表讨论如下: 表一:23()(1)f x x x =-单调性列表 说明:导数方法适用于函数()f x 在某处是可导的,但是如果函数()f x 在某处不可导,则就不能用这样的方法来求函数的极值了.用导数方法求极值的条件是:函数()f x 在某点0x 可导. 1.3 Lagrange 乘法数方法 对于问题: Min (,)z f x y = s.t (,)0x y =

如果**(,)x y 是该问题的极小值点,则存在一个数λ,使得 ****(,)(,)0x x f x y g x y λ+= ****(,)(,)0y y f x y g x y λ+= 利用这一性质求极值的方法称为Lagrange 乘法数 例2 在曲线3 1(0)y x x = >上求与原点距离最近的点. 解 我们将约束等式的左端乘以一个常数加到目标函数中作为新的目标函 数2231 ()w x y y x λ=++- 然后,令此函数对x 的导数和对y 的导数分别为零,再与原等式约束合并得 43 320201x x y y x λλ?+=?? +=???=? 解得 x y ?=? ?= ?? 这是唯一可能取得最值的点 因此 x y ==为原问题的最小值点. 说明:Lagrange 乘法数方法对于秋多元函数是比较方便的,方法也是比较简单的 :如果**(,)x y 是该问题的极小值点则存在一个数λ,使得 ****(,)(,)0x x f x y g x y λ+= ****(,)(,)0y y f x y g x y λ+= 这相当于一个代换数,主要是要求偏导注意,这是高等代数的内容. 1.4多元函数的极值问题 由极值存在条件的必要条件和充分条件可知,在定义域内求n 元函数()f p 的极值可按下述步骤进行:①求出驻点,即满足grad 0()0f p =的点0p ;②在0 p

导数与函数极值、最值问题(解析版)

【高考地位】 导数在研究函数的极值与最值问题是高考的必考的重点内容,已由解决函数、数列、不等式问题的辅助工具上升为解决问题的必不可少的工具,特别是利用导数来解决函数的极值与最值、零点的个数等问题,在高考中以各种题型中均出现,对于导数问题中求参数的取值范围是近几年高考中出现频率较高的一类问题,其试卷难度考查较大. 【方法点评】 类型一利用导数研究函数的极值 使用情景:一般函数类型 解题模板:第一步 计算函数()f x 的定义域并求出函数()f x 的导函数'()f x ; 第二步求方程'()0f x =的根; 第三步 判断'()f x 在方程的根的左、右两侧值的符号; 第四步 利用结论写出极值. 例1 已知函数x x x f ln 1 )(+= ,求函数()f x 的极值. 【答案】极小值为1,无极大值. 【点评】求函数的极值的一般步骤如下:首先令'()0f x =,可解出其极值点,然后根据导函数大于0、小于0即可判断函数()f x 的增减性,进而求出函数()f x 的极大值和极小值. 【变式演练1】已知函数322()f x x ax bx a =+++在1x =处有极值10,则(2)f 等于( ) A .11或18 B .11 C .18 D .17或18 【答案】C 【解读】

试卷分析:b ax x x f ++='23)(2,???=+++=++∴1010232 a b a b a ???-==????=----=?114012232b a a a a b 或???=-=33 b a .当???=-=3 3 b a 时,∴≥-=',0)1(3)(2x x f 在1=x 处不存在极值. 当???-==11 4b a 时, )1)(113(1183)(2-+=-+='x x x x x f ,0)(),1,3 11 (<'- ∈∴x f x ;0)(),,1(>'+∞∈x f x ,符合题意. 所以???-==114b a .181622168)2(=+-+=∴f .故选C . 考点:函数的单调性与极值. 【变式演练2】设函数()21 ln 2 f x x ax bx =--,若1x =是()f x 的极大值点,则a 的取值范围为 ( ) A .()1,0- B .()1,-+∞ C .()0,+∞ D .()(),10,-∞-+∞ 【答案】B 【解读】 考点:函数的极值. 【变式演练3】函数x m x m x x f )1(2)1(2 1 31)(23-++-=在)4,0(上无极值,则=m _____. 【答案】3 【解读】 试卷分析:因为x m x m x x f )1(2)1(2 1 31)(23-++-= , 所以()()2'()(1)2(1)21f x x m x m x x m =-++-=--+,由()'0f x =得2x =或1x m =-,又因为

相关文档
最新文档