24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2971  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

飞鸿印雪jay

银虫 (小有名气)

[求助] 关于非线性最小二乘拟合的问题已有3人参与

我在matlab中调用这个函数LSQNONLIN,这是非线性最小二乘法,其包含两个算法,trust region reflective and Levenberg-Marquardt,但是我找到的书上是把trust region reflective法归为无约束多维极值问题,百度上还说Levenberg-Marquardt是trust region reflective法的一种?究竟是怎么样的啊?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞鸿印雪jay

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-08-25 21:15:24
以我的了解,Levenberg-Marquardt和trust region reflective不是同一种算法。具体可参见清华大学出版社的《最优化理论与算法》。
纠结具体算法意义不大。
直接调用该函数,用默认的算法即可,如果出现算法设置不合 ...

谢谢啊,我看下。主要在论文当中会写到用什么算法,所以才纠结的。
3楼2014-08-27 16:34:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
以我的了解,Levenberg-Marquardt和trust region reflective不是同一种算法。具体可参见清华大学出版社的《最优化理论与算法》。
纠结具体算法意义不大。
直接调用该函数,用默认的算法即可,如果出现算法设置不合理,MATLAB会提示你的,到时候你换另外一个就行了。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-08-25 21:15:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 飞鸿印雪jay at 2014-08-27 16:34:40
谢谢啊,我看下。主要在论文当中会写到用什么算法,所以才纠结的。...

你用其中一种算法,看哪种能运行得通。然后说明用了该算法即可。我印象中对于参数有约束的问题,Levenberg-Marquardt不适用,trust region reflective算法适用,在MATLAB中help LSQNONLIN,即可找到相关文献,在论文中引用即可。比如trust region reflective算法的文献:
[1] Byrd, R.H., R.B. Schnabel, and G.A. Shultz, Approximate Solution of the Trust Region
Problem by Minimization  over Two-Dimensional Subspaces,  Mathematical Programming,
247-263, 1988。
[2]  Steihaug,  T ,  The  Conjugate  Gradient  Method  and  Trust  Regions  in  Large  Scale
Optimization, SIAM Journal on Numerical Analysis, 626-637, 1983。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2014-08-27 16:58:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞鸿印雪jay

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-08-25 21:15:24
以我的了解,Levenberg-Marquardt和trust region reflective不是同一种算法。具体可参见清华大学出版社的《最优化理论与算法》。
纠结具体算法意义不大。
直接调用该函数,用默认的算法即可,如果出现算法设置不合 ...

还想请教一下,我在用Levenberg-Marquardt算法时,提示Warning: The Levenberg-Marquardt algorithm does not handle bound constraints; using the trust-region-reflective algorithm instead. 好像是说不能有上下界条件,那么我就不定义上下界条件,都改为[]。可以运行,但是拟合出的K值有负值,根据物理意义,不应该有负值。于是我定义下限为0,此时只能用trust region reflective算法,但是这样一来两种算法的结果就很大不同,我不懂哪个是对的?还有就是我如果上下限都为【】时,用Levenberg-Marquardt和trust-region-reflective计算的结果也不同,这是为什么啊?
5楼2014-08-27 17:09:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见