许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab最优化设计:进退法原理与实现

Matlab最优化设计:进退法原理与实现

阅读数 6
点赞 0
article_banner

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

当我们知道一个 函数 ,区间确定,在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 xf=@(x) x.^2-8*x +8;ezplot(f,[-100 100])

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空