设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2001|回复: 0

数值优化方法—迭代法&终止条件

[复制链接]

17

主题

185

金钱

272

积分

入门用户

发表于 2019-8-13 15:00:05 | 显示全部楼层 |阅读模式

迭代法
迭代法的基本思想是:在给出f(x)的目标值附近的一个初始估计点x(0)后,计算一系列的点列x(k)(k=1,2,…),希望点列{x(k)}的极限x*就是f(x)对应的目标值。点列有下式给出:
1.png
式中:d(k)为一个向量;λk为一个实数(称为步长)。当d(k)与λk确定之后,由x(k)就可以唯一的地确定x(k+1),依次下去就可以求出点列x(k)。如下图即为用迭代法使得f(x),趋向某个变化如图所示。
2.png
现给出迭代法的基本代码:
  1. clear all
  2. fx='function';
  3. x=x0;f0=eval(fx);
  4. while %循环的具体判断条件
  5.     x=x0;f0=eval(fx);
  6.     xa=x0+a*lamda;x=xa;fa=eval(fx);
  7.     x0=xa;
  8. end
复制代码

迭代法可以代替手算通过赋值自动计算在数值优化的作用不言而喻,平常解决一些计算问题也可以用迭代法自动计算。

终止准则

一个问题不可能让其永远迭代下去,要有一个终止准则,迭代法的目的是通过迭代运算的方法使得我们函数值接近目标值。在计算中常用的终止标准中过冷水能想到的有以下几种:

变化趋势为终止条件
3.png

当函数的变化趋势不断减小,甚至不变时,继续迭代下去就没有必要了,因此终止。
如例:
4.png
代码
  1. clear all
  2. fx='exp(x)';
  3. ezplot(fx,[-5 10]);
  4. x0=10;eps=1;
  5. i=0;
  6. while eps>0.01
  7.     i=1+i;
  8.     x=x0;f0=eval(fx);
  9.     xa=x0-0.2*1;x=xa;fa=eval(fx);
  10.     eps=abs(fa-f0);
  11.     Fa(i)=fa;
  12.    Xa(i)=xa;
  13.     x0=xa;
  14. end
  15. hold on
  16. plot(Xa,Fa,'*');
  17. legend('原函数','迭代法');
复制代码


接近具体值为终止条件
5.png
当我们知道函数的具体值,需要求其自变量的值,于是就可以通过迭代法确定自变量的范围。
6.png
  1. clear all
  2. fx='x^5-x^3-x^2-500';
  3. ezplot(fx,[-10 10])
  4. x0=6;eps=120;
  5. i=0;
  6. while eps>0.01;
  7.     i=1+i;
  8.     x=x0;f0=eval(fx);
  9.     xa=x0-0.0001*1;x=xa;fa=eval(fx);
  10.     eps=abs(0-fa);
  11.     Fa(i)=fa;
  12.    Xa(i)=xa;
  13.     x0=xa;
  14. end
  15. hold on
  16. ezplot('0',[-10 10]);
  17. plot(Xa,Fa,'*');
  18. legend('原函数','y=0','迭代值');
复制代码


变化趋势转折点为终止条件
7.png
该方法在求极值的时候可以应用。
8.png
  1. clear all
  2. fx='sin(x^2)';
  3. fig = figure;
  4. ezplot(fx,[1.4 2.8])
  5. xa=2.6;x=xa;fa=eval(fx);
  6. xb=xa-0.0001*1;x=xb;fb=eval(fx);
  7. i=0
  8. while fb<fa
  9.     i=1+i
  10.     x=xa;fa=eval(fx);
  11.     xb=xa-0.0001*1;x=xb;fb=eval(fx);
  12.     fb-fa
  13.     xa=xb;
  14.     Fa(i)=fa;
  15.     Xa(i)=xa;
  16. end
  17. hold on
  18. plot(Xa,Fa,'*');
  19. legend('原函数','迭代值')
复制代码


可以设为终止条件的标准有很多,在此只是简单的举例几种,在遇到具体问题时,终止条件的选择一般依据自己的问题而设定,一般接触到的有:最小均方差、最大相关性,变化趋势这三种作为终止条件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表