Matlab——最优化设计_进退法

进退法——用来确定极小值区间的一个算法

当我们知道一个函数,区间确定,在x1和x3之间有x2,假设f(x1)>f(x2)<f(x3),这样一种高低高的形式存在,那我们就可以确定在区间[x1,x3]间有极小值。

假设有一个初始步长h0,h0不能太大,否则有可能会跨过极值点。在每次步长增加后,我们比对增加步长前与增加步长后的f(xh0)和f(xh1),假设f(xh0)大于f(xh1),则我们可以确定在这个h0步长下,会有极小值存在,我们就把f(xh1)定为下一次增加步长前的值,然后确定下一次的值x3,x3为xh1增加步长h0后的值,当我们找到一个值,即f(xn)>f(x2)的时候,我们就把当前极小值的区间确定为xh0和xhn;

另外一种可能就是,增加步长后的值大于当前步长所在的值,我们就进行-h0的增长步长,增长前记为x2,增长后记为x3,假设在此期间,不断进行-h0的增长,有f(x3)>f(x2),则可以确定区间为[x3,x2],其中x3为一直-h0的值。

算法描述为——

function[a,b]=Jintui(f,x1,h0)

x2=x1+h0;
if f(x2) < f(x1)
    x3=x2+h0;
    h=h0;
    while f(x3) < f(x2)
        x3=x2+h;
        h=2*h;
    end
    a=x1;
    b=x3;
else
    Temp=x1;
    x1=x2;
    x2=Temp;
    h=-h0;
    x3=x2+h;
    while f(x3) < f(x2)
        x3=x2+h;
        h=2*h;
    end
    a=x3;
    b=x1;
end

算法输入条件为——函数句柄,函数的初始点x1,步长h0;

使用示例为——假设有一个函数f=x^2-8x+9,我们用以下方法画出该函数的曲线为

645591d53be34a469685ff635968e134.png

 代码——

syms x
f=@(x) x.^2-8*x +8;
ezplot(f,[-100 100])

以上描述是在函数值存在的情况下的理想情况,但是当我们的函数的值不存在,或者为复数的情况,那该方法就不适用。就需要对以上算法进行优化,防止出现-INF或者inf的情况。

 

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
发出的红包

打赏作者

Matrix Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值