声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2093|回复: 2

[C/C++] [求助]请高手指点

[复制链接]
发表于 2006-11-13 21:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近在用最小二乘法,来逆合几个重叠峰(高斯型)问题时.涉及到无约束最优化问题,就是用最优化方法求出几个重叠峰的各参数问题.(类似于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 编辑 ]
 楼主| 发表于 2006-11-15 10:02 | 显示全部楼层
谢谢!!斑竹:@):@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-12 01:06 , Processed in 0.051440 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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