matlab最优化问题

matlab最优化问题

在这里插入图片描述
注:本文为阅读《精通matlab最优化计算 第3版》笔记相关记录,具体的算法介绍及代码请参考原文

1、无约束一维极值问题

无约束一维极值问题可简单表述为:
m i n f ( x ) , x ∈ R , 或 m i n f ( x ) , x ∈ [ x 1 , x 2 ] min f(x),x∈R , 或min f(x) ,x ∈ [x1,x2] minf(x),xRminf(x),x[x1,x2]
本章讨论得优化问题是在以下两种情况:(即局部极值点)
(1)在自变量的范围为整个实数区间的前提下求函数的任意一个极值;
(2)在自变量的范围为给定区间的前提下求函数的任意一个极值。

1.1 进退法

1.2 黄金分割法

1.3 斐波那契法

1.4 牛顿法

基本牛顿法
全局牛顿法

1.5 割线法

1.6 抛物线法

1.7 三插值法

1.8 可接受搜索法

Goldstein法
Wolfe-Powell法

1.9 matlab工具箱

fminbnd函数
(1) x = fininbnd(fun,xl,x2),求函数在(x1,x2)上的极小值对应的自变量
(2) x= fminbnd(fun,x1,x2,options),options字段说明:
在这里插入图片描述
fminbnd函数存在的问题:
(1)只能求连续单变量函数的极值
(2)如果给定区间有多个极值点,只能求一个,且不一定是最小的一个
(3)一个显著缺陷是极值点是区间端点,则收敛速度会比较慢

改进的fminbnd函数

%% //fminv函数
function fminv(f,x1,x2)
	r1 = fminbnd(f,x1,x2); 
	if abs(r1-x1)<0.001 || abs(r1-x2)<0.001
		disp(r1);
		return;
	else 
		subfminv(f,x1,x2);
	end
end

%% //subfminv函数
function subfminv(f,x1,x2)
	if abs(r1-x1)<0.001 || abs(r1-x2)<0.001
		return;
	else
		disp(r1);
		subfminv(f,x1,r1);
		subfminv(f,r1,x2);
		return;
	end
end

fminsearch函数
主要功能是求多变量极值问题,也可以用来求解单变量极值。
(1)[x,fval,exitflag,output]=fminsearch(fun,startpoint),以startpoint为起始点搜索
(2)x= fminsearch(fun,x1,x2,options),添加选项字段

2、无约束多维极值问题

无约束多维极值问题一般表达式为:
m i n f ( x ) , x ∈ R n min f(x),x∈R^n minf(x),xRn其中 x x x为向量, f ( x ) f(x) f(x)是标量。无约束多维极值一般问题是求全局最小点,然而大多数算法无法做到这点,即只能找到局部最优。 对于实际问题,有时局部最优就是全局最优,多半靠经验判断结果的可行性。

2.1 直接法

模式搜索法(Hooke-Jeeves法)
Rosenbrock法
单纯形搜索法
Powell法

2.2 使用导数计算的间接法

需要用到目标函数的导数(多元函数的梯度),有的算法甚至还用到多元函数的雅可比矩阵。
最速下降法
共轭梯度法
牛顿法
修正牛顿法
拟牛顿法
  1.DFP法
  2.BFGS法
信赖域法
显式最速下降法

2.3 matlab工具箱

fminsearch函数
可用来求解无约束多变量极值问题
(1)[x,fval,exitflag,output]=fminsearch(fun,startpoint),以startpoint为起始点搜索
(2)x= fminsearch(fun,x1,x2,options),添加选项字段
在这里插入图片描述
fminunc函数
也能求解无约束极值问题,调用格式为:
(1)x=fminunc(fun,x0,option),表示求从x0出发的极小点
(2)x=fminunc(problem),所需求解的极值问题通过problem结构指定,其字段如下:
在这里插入图片描述
(3)[x,fval,exitflag,output,grad,hessian]=fminunc( ... ),返回函数在极小值x点处的梯度和海森矩阵

fx=@(x)-1/((x(1)-2)^2+3)-1/((x{2)+1)^2*2-5);
>> pro.objective = fx; %此处用problem结构求极值
>> pro.x0=[0 0];
>> pro.solver='fminunc'
>> pro.options = optimset('Display', 'iter')
>> [xv,fv,exitflag,output,grad,hess]= fminunc(pro)

fminmax函数
是解决如下一类优化问题的函数:
min ⁡ x max ⁡ i F i ( x ) ,  s.t.  { c ( x ) ⩽ 0 c e q ( x ) = 0 A x ⩽ b  Aeq ⋅ x = b e q l b ⩽ x ⩽ u b \min _{\mathbf{x}} \max _{i} F_{i}(\boldsymbol{x}), \quad \text { s.t. }\left\{\begin{array}{l} c(\boldsymbol{x}) \leqslant 0 \\ c e q(\boldsymbol{x})=0 \\ A \boldsymbol{x} \leqslant \mathbf{b} \\ \text { Aeq} \cdot \boldsymbol{x}=\mathbf{b e q} \\ \mathrm{lb} \leqslant \boldsymbol{x} \leqslant \mathrm{ub} \end{array}\right. xminimaxFi(x), s.t. c(x)0ceq(x)=0Axb Aeqx=beqlbxub
对每个定义域中的向量x,向量函数F(x)都存在一个值最大的分量,但是随着向量x取值的不同,值最大的分量也会发生变化,当把分量的值记录下来,找到最小值,就是fminimax的任务。调用格式为:
(1)x=fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,option)

在这里插入图片描述
(2)x=fminimax(problem):优化问题由proble字段指定
在这里插入图片描述

3、约束优化问题

一般约束优化问题的数学模型为:
min ⁡ f ( x ) ,  s.t.  { h i ( x ) = 0 , i = 1 , 2 , ⋯   , k g j ( x ) ⩾ 0 , j = 1 , 2 , ⋯   , m \min f(x), \text { s.t. }\left\{\begin{array}{l} h_{i}(x)=0, i=1,2, \cdots, k \\ g_{j}(x) \geqslant 0, j=1,2, \cdots, m \end{array}\right. minf(x), s.t. {hi(x)=0,i=1,2,,kgj(x)0,j=1,2,,m其中 f ( x ) f(x) f(x)是目标函数, h i ( x ) h_i(x) hi(x)为等式约束条件, g i ( x ) g_i(x) gi(x)为不等式约束条件。

3.1 Rosen梯度投影法

3.2 罚函数法

  1.外点罚函数法
  2.内点罚函数法
  3.混合罚函数法
  4.乘子法

3.3 坐标轮换法

3.4 复合形法

3.5 matlab工具箱

fmincon函数
用于求解约束优化问题,其调用格式为:
(1)x=fmincon(fun,x0,A,b,Aeq,beq),约束条件为 A x ⩽ b ,  Aeq ⋅ x = b e q , l b ⩽ x ⩽ u b A \boldsymbol{x} \leqslant \mathbf{b},\text { Aeq} \cdot \boldsymbol{x}=\mathbf{b e q} ,\mathrm{lb} \leqslant \boldsymbol{x} \leqslant \mathrm{ub} Axb, Aeqx=beq,lbxub
(2)x=fmincon(fun,x0,A,b,Aeq,beq,nonlcon),nonlcon表示目标函数的非线性约束条件

例子:
求解 min ⁡ f ( s , t ) = s 4 − 4 s − 8 t + 15 ,  s.t.  { 9 − s 2 − t 2 ⩽ 0 2 s + 3 t ⩽ 2 t − s ⩽ 5 \min f(s, t)=s^{4}-4 s-8 t+15, \text { s.t. }\left\{\begin{array}{l} 9-s^{2}-t^{2} \leqslant 0 \\ 2 s+3 t \leqslant 2 \\ t-s \leqslant 5 \end{array}\right. minf(s,t)=s44s8t+15, s.t. 9s2t202s+3t2ts5,初始点取(s,t)=(1,2)
其线性条件有: A = [ 2 3 1 − 1 ] , b = [ 2 5 ] \boldsymbol{A}=\left[\begin{array}{cc} 2 & 3 \\ 1 & -1 \end{array}\right], \boldsymbol{b}=\left[\begin{array}{l} 2 \\ 5 \end{array}\right] A=[2131],b=[25]
建立目标函数:

function y=OptimFun(x)
	y=x(1)^4-4*x(1)-8*x(2)+15;
end

建立其非线性约束函数:

function [c,ceq]=ConFun(x)
	c = 9-x(1)^2-x(2)^2;
	ceq=[];
end

执行:

>>x=fmincon(@OptimFun,[1 2],A,b,[],[],[],[],@ConFun)

4、非线性最小二乘优化问题

也叫无约束极小平方和问题,是如下无约束极小问题:
min ⁡ S ( x ) \min S(x) minS(x)其中 S ( x ) = f ( x ) T f ( x ) = ∑ i = 1 m f i 2 ( x ) S(x)=f(x)^{T} f(x)=\sum_{i=1}^{m} f_{i}^{2}(x) S(x)=f(x)Tf(x)=i=1mfi2(x)
如果 f ( x ) = C x + d f(x)=Cx+d f(x)=Cx+d是线性函数,则该问题变为线性最小二乘问题。对于线性最小二乘问题处理起来较简单,matlab中有lsqnonlin函数求解线性最小二乘问题。
可以用前面的无约束最优化方法求解非线性最小二乘优化,但由于其特殊性,因此有独有的解决办法。

4.1 G-N(高斯牛顿法)法

4.2 修正G-N法

4.3 L-M法

4.4 matlab工具箱

lsqnonlin函数
用来求解非线性最小二乘优化问题,目标函数是平方和的形式。调用格式:
(1) x= lsqnonlin(fun, x0,lb, ub, options) 此格式中的 options 是优化选项结构;
(2) x= lsquonlin(problem), 此格式的优化问题由 problem 结构指定
(3)[x, resnorm,residual,exitflag,output,lambda,jacobian]= sqnonlin(...),返回值resnorm是残差的平方,即 f 2 ( x ) f^2(x) f2(x);residual是残差,即 f ( x ) f(x) f(x);lambda是最优处拉格朗日乘子;jacobian雅各比矩阵

4.5 小结

本质上, 本章中主要的两种算法 G-N 法和 L-M 法都是来源于无约束优化算法中的牛顿法, 因此它们也继承了牛顿法的优点和缺点, 在实际应用过程中要注意其缺点, 即最优解和初始点有比较大的关系

5、线性规划

是研究在一组自变量约束条件下,求线性函数的最小或者最大值。数学模型有三要素:
(1)与自变量有关的若干个线性约束条件;
(2)自变量的取值限制;
(3)关于自变量的线性目标函数值。
线性规划的一般形式为:
min ⁡ ( max ⁡ ) f = c x ,  s.t.  { A x ⩾ b ( ⩽ b ) x ⩾ 0 \min (\max ) f=\mathrm{c} x, \quad \text { s.t. }\left\{\begin{array}{l} \boldsymbol{A} x \geqslant \mathbf{b}(\leqslant \mathbf{b}) \\ x \geqslant 0 \end{array}\right. min(max)f=cx, s.t. {Axb(b)x0后文算法只考虑最小值问题,对于最大值可以先转化为最小值问题再求解。

5.1 单纯形法

5.2 修正单纯形法

5.3 大M法

5.4 变量有界单纯形法

5.5 matlab工具箱

linprog函数
用来求解如下一类线性规划问题:
min ⁡ x f T x ,  s.t.  { A ⋅ x ⩽ b A e q ⋅ x = b e q l b ⩽ x ⩽ u b \min _{x} f^{T} x, \text { s.t. }\left\{\begin{array}{l} \boldsymbol{A} \cdot x \leqslant \mathbf{b} \\ \boldsymbol{A e q} \cdot x=\mathbf{b e q} \\ \mathrm{lb} \leqslant x \leqslant \mathrm{ub} \end{array}\right. xminfTx, s.t. AxbAeqx=beqlbxub其中 A A A 表示不等式约束的系数矩阵, A e q Aeq Aeq 表示等式约束的系数矩阵, b \mathbf{b} b表示不等式约束的 常向量, b e q \mathbf{beq} beq 表示等式约束的常向量,而 l b \mathrm{lb} lb u b \mathrm{ub} ub 则表示自变量的上下范围。调用格式:
(1) x=linprog(f, A, b,Aeq, beq, lb, ub, x0 , options ) : 此格式通过 options 选项来指定优化参数。
(2) x=linprog( problem):此格式的线性规划问题通过结构 problem 来指定, 此格式是
在这里插入图片描述
例子:
求解下面的线性规划:
min ⁡ f = − 4 x 1 − x 2 ,  s.t.  { − x 1 + 2 x 2 ⩽ 4 2 x 1 + 3 x 2 ⩽ 12 x 1 − x 2 ⩽ 3 x 1 , x 2 ⩾ 0 \min f=-4 x_{1}-x_{2}, \text { s.t. }\left\{\begin{array}{l} -x_{1}+2 x_{2} \leqslant 4 \\ 2 x_{1}+3 x_{2} \leqslant 12 \\ x_{1}-x_{2} \leqslant 3 \\ x_{1}, x_{2} \geqslant 0 \end{array}\right. minf=4x1x2, s.t. x1+2x242x1+3x212x1x23x1,x20

>>f=[-4 ;-1] 
>>A=[-1  2 ; 2  3 ; 1  -1]
>>b=[4;12;3]
>>[x, fval, exitflag, output,lamda]=lnprog(f, A, b,[],[], zros(2,1))

6、整数规划

是线性规划的特殊形式,其决策量只取整数。在实际问题中,只有取整数才有意义。数学模型可以表示为:
max ⁡ (  或 min  ) f ( x ) = c x ,  s.t.  { A x ⩽ b x ⩾ 0 , x i  为整数  \max (\text { 或 min }) f(x)=\mathbf{c} x, \text { s.t. }\left\{\begin{array}{l} \boldsymbol{A} x \leqslant \mathbf{b} \\ x \geqslant 0 \end{array}, x_{i}\right. \text { 为整数 } max(  min )f(x)=cx, s.t. {Axbx0,xi 为整数 

6.1 割平面法

最经典的算法为Gomory割平面法

6.2 分支定界法

6.3 0-1规划

6.4 matlab工具箱

bintprog函数
用来求解0-1整数规划,其优化模型为:
min ⁡ f T x ,  s.t.  { A x ⩽ b A e q ⋅ x = b e q x i = 0  或  1 \min f^{T} x, \quad \text { s.t. }\left\{\begin{array}{l} \boldsymbol{A} x \leqslant \mathbf{b} \\ \boldsymbol{A} e q \cdot x=\mathbf{b e q} \\ x_{i}=0 \text { 或 } 1 \end{array}\right. minfTx, s.t. AxbAeqx=beqxi=0  1其中 f , b , b e q \boldsymbol{f}, \mathbf{b}, \mathbf{b e q} f,b,beq 为向量, A \boldsymbol{A} A A e q \boldsymbol{A}eq Aeq 为矩阵, 而最优解为 0,1 组合而成的向量。调用格式为:
(1) x= bintprog(f,A,b,Aeq,beq):此格式求解带不等式约束条件和等式约束条件的 0-1 整数规划
(2) x=bintprog(f, A, b, Aeq,beq, x0) :此格式求解带不等式约束条件和等式约束条件的 0-1 整数规划, 并且提供初始值 x0 ;
(3) x= bintprog(f,A,b,Aeq,beq, x0, options) : 此格式中的 options 提供了优化的参数选项;

6.5 小结

整数规划在实际中的应用主要包括以下几个方面 :

  1. 运作问题, 包括货物分配、生产调度、机器排序等;
  2. 计划问题, 包括资金预算、设施选址、证券组合分析等;
  3. 设计问题, 包括生产线设计、网络设计等。

对于这些实际问题的研究, 整数规划起着非常重要的作用, 本章简要介绍了求解整数规划的两种主要算法, 它们都是通过缩小问题的可行域来求得问题的整数解。

7、二次规划

二次规划模型描述为:
min ⁡ 1 2 x T H x + c T x ,  s.t.  { A e q ⋅ x = b e q A x ⩾ b \min \frac{1}{2} x^{T} H x+c^{T} x, \quad \text { s.t. }\left\{\begin{array}{l} A e q \cdot x=\mathbf{b e q} \\ A x \geqslant \mathbf{b} \end{array}\right. min21xTHx+cTx, s.t. {Aeqx=beqAxb其中 H \boldsymbol{H} H n × n n \times n n×n 的对称矩阵, A e q \boldsymbol{Aeq} Aeq A \boldsymbol A A 为矩阵, x , b e q , b \boldsymbol{x}, \mathbf{b e q}, \mathbf{b} x,beq,b 为列向量。如果 H \boldsymbol{H} H 为半正定矩阵, 则称此规划为凸二次规划, 否则为非凸规划。对于非凸规划, 由于存在比较多的驻点, 求解比较困难, 所以本章只讨论凸二次规划的求解方法。
凸二次规划中比较简单的情况是等式约束凸二次规划, 此时可以用拉格朗日法求解, 对于存在不等式约束的凸二次规划, 其基本思想是把不等式约束转化为等式约束再求解。

7.1 拉格朗日法

7.2 起作用集算法

7.3 路径跟踪法

7.4 matlab工具箱

quadprog函数
可以用来求解如下所示的标准二次规划问题:
(1) x = quadprog(H,f,A,b,Aeq,beq,lb,ub):求解标准形式的二次规划问题, 并返回极值点;
(2) x = quadprog(H,f,A,b,Aeq,beq,lb,ub, x0) :求解指定了初始优化点 x 0 的二次规划问题;

例子:
min ⁡ z = 3 x 1 2 + 2 x 2 2 − 4 x 1 x 2 + 3 x 1 − 4 x 2 ,  s.t.  { 2 x 1 + x 2 ⩽ 4 − x 1 + 2 x 2 ⩽ 4 x 1 ⩾ 0 , x 2 ⩾ 0 \min z=3 x_{1}^{2}+2 x_{2}^{2}-4 x_{1} x_{2}+3 x_{1}-4 x_{2}, \quad \text { s.t. }\left\{\begin{array}{l} 2 x_{1}+x_{2} \leqslant 4 \\ -x_{1}+2 x_{2} \leqslant 4 \\ x_{1} \geqslant 0, x_{2} \geqslant 0 \end{array}\right. minz=3x12+2x224x1x2+3x14x2, s.t. 2x1+x24x1+2x24x10,x20
解:由题意有
H = [ 6 − 4 − 4 4 ] , f = [ 3 − 4 ] A = [ 2 1 − 1 2 ] , b = [ 4 4 ] , l = [ 0 0 ] \boldsymbol{H}=\left[\begin{array}{cc} 6 & -4 \\ -4 & 4 \end{array}\right], \boldsymbol{f}=\left[\begin{array}{c} 3 \\ -4 \end{array}\right] \boldsymbol{A}=\left[\begin{array}{cc} 2 & 1 \\ -1 & 2 \end{array}\right], \boldsymbol{b}=\left[\begin{array}{l} 4 \\ 4 \end{array}\right], \boldsymbol{l}=\left[\begin{array}{l} 0 \\ 0 \end{array}\right] H=[6444],f=[34]A=[2112],b=[44],l=[00]

>>H=[6 -4;-4 4]
>>f=[3;-4]
>>A=[2 1;-1 2]
>>b=[4;4]
>>lb=[0;0]
>>[x,fval]=quadprog(H,f,A,b,[],[],lb)

7.5 小结

(1) 由于严格凸二次规划的特性, 其局部解都是全局解, 因此本章的算法求得的极小值同时也 是目标函数的最小值;
(2) 起作用集算法在初始点是可行点的情况下, 总能通过有限步迭代得到最优解;
(3) 如果初始点不是可行点, 起作用集算法也有可能得到最优解。

8、粒子群优化算法

概述: PSO是一种进化计算技术,源于对鸟群捕食行为的研究。所有的粒子都有被优化的函数决定的适应值(fittness)目标值,每个粒子还有一个粒子速度和位置矢量决定下一步迭代的方向。所有粒子除了直到自己发现的最好位置(pbest),还知道整个群体发现的最好位置(gbest),粒子通过自己的经验和同伴经验决定下一步运动。

迭代公式:
v i , j ( t + 1 ) = w v i , j ( t ) + c 1 r 1 [ p i , j − x i , j ( t ) ] + c 2 r 2 [ p g , j − x i , j ( t ) ] x i , j ( t + 1 ) = x i , j ( t ) + v i , j ( t + 1 ) , j = 1 , 2 , ⋯   , d \begin{array}{l} v_{i, j}(t+1)=w v_{i, j}(t)+c_{1} r_{1}\left[p_{i, j}-x_{i, j}(t)\right]+c_{2} r_{2}\left[p_{g, j}-x_{i, j}(t)\right] \\ x_{i, j}(t+1)=x_{i, j}(t)+v_{i, j}(t+1), j=1,2, \cdots, d \end{array} vi,j(t+1)=wvi,j(t)+c1r1[pi,jxi,j(t)]+c2r2[pg,jxi,j(t)]xi,j(t+1)=xi,j(t)+vi,j(t+1),j=1,2,,d其中 w w w为惯性权重, c 1 , c 2 c_1,c_2 c1,c2为正的学习因子, r 1 , r 2 r_1,r_2 r1,r2为0-1之间的随机数; p i , j p_{i,j} pi,j表示第j维中,粒子i的最优解,即个体极值pbest; p g , j p_{g,j} pg,j表示第j维中,整个种群目前找到的最优解,即全局最优gbest

8.1 基本粒子群算法

算法步骤:
(1) 随机初始化种群中各微粒的位置和速度;
(2) 评价每个微粒的适应度, 将当前各微粒的位置和适应值存储在各微粒的 pbest 中, 将 所有 pbest 中适应值最优个体的位置和适应值存储于 gbest 中;
(3) 用下式更新粒子的速度和位移:
v i , j ( t + 1 ) = w v i , j ( t ) + c 1 r 1 [ p i , j − x i , j ( t ) ] + c 2 r 2 [ p g , j − x i , j ( t ) ] x i , j ( t + 1 ) = x i , j ( t ) + v i , j ( t + 1 ) , j = 1 , 2 , ⋯   , d \begin{array}{l} v_{i, j}(t+1)=w v_{i, j}(t)+c_{1} r_{1}\left[p_{i, j}-x_{i, j}(t)\right]+c_{2} r_{2}\left[p_{g, j}-x_{i, j}(t)\right] \\ x_{i, j}(t+1)=x_{i, j}(t)+v_{i, j}(t+1), j=1,2, \cdots, d \end{array} vi,j(t+1)=wvi,j(t)+c1r1[pi,jxi,j(t)]+c2r2[pg,jxi,j(t)]xi,j(t+1)=xi,j(t)+vi,j(t+1),j=1,2,,d
(4) 对每个微粒, 将其适应值与其经历过的最好位置作比较, 如果较好, 则将其作为当前 的最好位置;
(5) 比较当前所有 pbest 和 gbest 的值, 更新 gbest;
(6) 若满足停止条件 (通常为预设的运算精度或迭代次数), 搜索停止, 输出结果, 否则返 回(3)继续搜索。

8.2 带压缩因子的粒子群算法

8.3 权重改进的粒子群算法

线性递减权重法
自适应权重法
随机权重法

8.4 变学习因子的粒子群算法

同步变化的学习因子
异步变化的学习因子

8.5 二阶粒子群算法

8.6 二阶震荡粒子群算法

8.7 混沌粒子群算法

8.8 混合粒子群算法

基于自然选择的算法
基于杂交的算法
基于模拟退火的算法

9、遗传算法

概述: 基于自然选择的生物进化,是一种模仿生物进化过程的随机方法。首先对一个物种基因进行编码工作,简化二进制编码,每一代中根据个体适应度大小选择个体,借助遗传学遗传算子进行组合交叉和变异产生新的种群,这个过程就像自然进化一样,后代更加适应环境,可作为问题近似最优解。为遗传算法包括三个基本操作:选择、交叉、变异。

9.1 基本遗传算法

基本遗传算法的步骤:
(1) 随机产生初始种群, 个体数目一定、每个个体表示为染色体的基因编码;
(2) 用轮盘赌策略确定个体的适应度, 并判断是否符合优化准则, 若符合, 输出最佳个体 及其代表的最优解, 并结束计算, 否则转向(3);
(3) 依据适应度选择再生个体, 适应度高的个体被选中的概率高, 适应度低的个体可能被 淘汰:
(4) 按照一定的交叉概率和交叉方法、生成新的个体;
(5) 按照一定的变异概率和变异方法, 生成新的个体;
(6) 由交叉和变异产生新一代的种群, 返回到(2)

9.2 顺序选择遗传算法

9.3 适值函数标定的遗传算法

9.4 大变异遗传算法

9.5 自适应遗传算法

9.6 双切点交叉遗传算法

9.7 多变异自适应遗传算法

9.8 matlab工具箱

ga函数
遗传算法求解器,既能求解无约束优化问题,也能求解约束优化问题,而且约束条件可以是非线性的。
(1)X = ga(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub),其中FITNESSFCN是目标函数,NVARS是自变量维度
(2)X = ga(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)NONLCON是非线性约束条件,有关option选择相关函数可参考option参数

simulannealbnd函数
模拟退火算法求解器,只能求解无约束优化问题
(1)X = simulannealbnd(FUN,X0,LB,UB)
(2)X = simulannealbnd(FUN,X0,LB,UB,options)

全局优化工具箱:
在这里插入图片描述

  • 7
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab优化程序包括:无约束一维极值问题、进退法、黄金分割法、斐波那契法、牛顿法基本牛顿法、全局牛顿法、割线法、抛物线法、三次插值法、可接受搜索法、Goidstein法、Wolfe Powell法、单纯形搜索法、Powell法、最速下降法、共轭梯度法、牛顿法、修正牛顿法、拟牛顿法、信赖域法、显式最速下降法、Rosen梯度投影法、罚函数法、外点罚函数法、內点罚函数法、混合罚函数法、乘子法、G-N法、修正G-N法、L-M法、线性规划、单纯形法、修正单纯形法、大M法、变量有界单纯形法、整数规划、割平面法、分支定界法、0-1规划、二次规划、拉格朗曰法、起作用集算法、路径跟踪法、粒子群优化算法、基本粒子群算法、带压缩因子的粒子群算法、权重改进的粒子群算法、线性递减权重法、自适应权重法、随机权重法、变学习因子的粒子群算法、同步变化的学习因子、异步变化的学习因子、二阶粒子群算法、二阶振荡粒子群算法 (matlab optimization process includes Non-binding one-dimensional extremum problems Advance and retreat method Golden Section Fibonacci method of basic Newton s method Newton s method Newton s Law of the global secant method parabola method acceptable to the three interpolation search method Goidstein France Wolfe.Powell France Simplex search method Powell steepest descent method Conjugate gradient method Newton s method Newton s method to amend Quasi-Newton Method trust region method explicitly steepest descent method, Rosen gradient projection method Penalty function method outside the penalty function method within the penalty function method Mixed penalty function multiplier method G-N was amended in G-N method L-M method Of linear programming simplex method, revised simplex method Big M method variables bounded simplex method, Cutting Plane Method integer programming branch and bound method 0-1 programming quadratic programming )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值