kevin113 发表于 2006-11-13 21:56

[求助]请高手指点

最近在用最小二乘法,来逆合几个重叠峰(高斯型)问题时.涉及到无约束最优化问题,就是用最优化方法求出几个重叠峰的各参数问题.(类似于origin中的分峰软件功能).

问题如下:(1)编写了共轭梯度法,修正牛顿法,拟牛顿法.
       共轭梯度法:虽然简单,条件要求不高,但其速度还是慢了点
       牛顿方法型:速度还可以,对初始点要求苛刻了点,弄不好就得不到正确解
       关键是上述这些方法共同缺点:经常会收敛到局部极小点而非全局极值点,如何克服或者改进此问题?据说蒙特卡罗法跳出局部最忧解的能力很强,可是不知道咋用?高手给点指点或者建议,先谢了!!
     (2)我做的是一个嵌入式系统的数据后期处理软件,也就是给定初始点后,尽量能得到正确结果.这期间没办法人为干预,不像在PC机上的这种软件,初始点不合适,可以再重新输入.有没有什么好方法对初始点要求很低,且收敛速度够快?请明白这方面或者做过此方面工作的大虾给点宝贵建议!! 

[ 本帖最后由 风花雪月 于 2006-11-14 19:32 编辑 ]

风花雪月 发表于 2006-11-14 19:50

共轭梯度法、牛顿方法出现楼主所说的情况是个必然,方法的缺陷

蒙特卡罗法是一种比较好的解决办法,论坛由很多这方面的资料
比如:
http://forum.vibunion.com/forum/thread-1631-1-1.html
http://forum.vibunion.com/forum/thread-1917-1-1.html
http://forum.vibunion.com/forum/thread-4956-1-1.html

当然还有一个简化Monte-Carlo模拟的C++工具包
http://forum.vibunion.com/forum/thread-29261-1-1.html

除了这些在ftp上估计还会有一些资料


对于第2个问题,个人认为应该还可以才用模拟退火算法、或者遗传算法之类的,不过对于这些算法很少见到有运用于成熟的软件中的

[ 本帖最后由 风花雪月 于 2006-11-14 19:53 编辑 ]

kevin113 发表于 2006-11-15 10:02

谢谢!!斑竹:@):@)
页: [1]
查看完整版本: [求助]请高手指点