关于Powell法中一维搜索的方法(matlab)

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:41:09
Powell法找最佳参数时需要每步对目标函数进行一维搜索找最小值,这里我的目标函数因为不是简单的函数形式,是通过对参数的一些复杂非线性处理生成的一个模拟序列并比对它与原序列差异得到一个误差值,所以不知道用什么方法来找其中一个参数变化时到达最小值?还有matlab里的fminsearch是用什么方法?和Powell法有何区别?
请勿恶意骗分谢谢!
怎么判断什么情况下用什么类型的优化方法呢?我这里应该用fminsearch还是powell呢?我在powell里一维搜索时用fminbnd可不可以呢?

不影响,只要你的函数性质比较好,比如说充分光滑,有没有解析表达式并不重要。
fminsearch的算法你可以看帮助文件,上面写的有
Algorithm

fminsearch uses the simplex search method of [1]. This is a direct search method that does not use numerical or analytic gradients.
simplex method 就是单纯形法了

simplex method 一般是对多元函数优化的,Powell一般是对一元函数
课本上的simplex method一般都是针对线性规划的,不过也有一些可以针对非线性的,比较复杂就是了,我也不明白 :)
其实优化是个很复杂的很专业的东西,MM不用搞那么清楚,看例子会照着做就行了,如果什么都重新自己做,还要Matlab干嘛?

使用遗传算法最方便,编程简单