请教matlab non-linear optimization的问题 (转载)# Memory - 如烟网事c*i2011-01-08 08:011 楼如名字:思南,是写SINAN,还是写SI NAN?地名:北京,写BEIJING,还是BEI JING?谢谢~
b*52011-01-08 08:012 楼外甥女在美国读高中,拿f1签证。暑期回国,大概七月份回美国参加三周大学的夏令营,然后再回国等九月份开学返美。请问她拿的高中的I 20,七月份入境参加大学的夏令营可以吗?
D*62011-01-08 08:016 楼【 以下文字转载自 Statistics 讨论区 】发信人: Doha2006 (花猫), 信区: Statistics标 题: 请教matlab non-linear optimization的问题发信站: BBS 未名空间站 (Fri Jan 7 23:39:25 2011, 美东)我需要用一个non-linear optimization function来estimate一个model,近似于logitmodel,用maximum likelihood estimation。如果用maxlik,其实这是一个min函数,就是名字叫max,从这个网站下载的,http://www.spatial-econometrics.com/结果有点奇怪,不是指我的model参数奇怪,而是maxlik输出的结果如下:CONVERGENCE CRITERIA MET: Change in Objective Functioniteration function value dfunc0 2301.06004609 1000.00000000iteration function value dfunc1 1966.10277862 0.17036610iteration function value dfunc2 1965.50818039 0.00030252iteration function value dfunc3 1967.81330103 -0.001171411.如果用结果result.f查看,就给最后一个iteration的function value,可是明明是iteration 2的function value才是最小的啊。不止这一个,我随便运行了很多maxlik,它总是给最后一个iteration作为optimal,可是,有的时候很明显第一个iteration的value是optimum啊。我糊涂了。是不是我解读错了输出结果?2.我明白dfunc value接近0是极值,因为那时一阶导数吧。那么如果存在一个情况是前面的iteration的function value很小,可是导数还很大,说明在往上走,那么即使后来走到了一个极值,也该回头比比看看是不是最小吧,算法不会这么差吧,一点不回头?如有解答,十分感谢!
t*u2011-01-08 08:017 楼我是分开写的,【在 c*****i 的大作中提到】: 如名字:思南,是写SINAN,还是写SI NAN?: 地名:北京,写BEIJING,还是BEI JING?: 谢谢~
p*e2011-01-08 08:0111 楼汗,多哈是越来越专业了。logit【在 D******6 的大作中提到】: 【 以下文字转载自 Statistics 讨论区 】: 发信人: Doha2006 (花猫), 信区: Statistics: 标 题: 请教matlab non-linear optimization的问题: 发信站: BBS 未名空间站 (Fri Jan 7 23:39:25 2011, 美东): 我需要用一个non-linear optimization function来estimate一个model,近似于logit: model,用maximum likelihood estimation。: 如果用maxlik,其实这是一个min函数,就是名字叫max,从这个网站下载的,http://www.spatial-econometrics.com/: 结果有点奇怪,不是指我的model参数奇怪,而是maxlik输出的结果如下:: CONVERGENCE CRITERIA MET: Change in Objective Function: iteration function value dfunc
x*g2011-01-08 08:0114 楼小丫、小丫:我今天晚上做好吃的了。正宗的有豆腐皮的京酱肉丝。肉汤煮的角瓜片和豆腐汤。满满一大盘都吃掉了。吃饱了以后心情大好。可以坐下来学习了。【在 X******7 的大作中提到】: 如题。。。
p*e2011-01-08 08:0118 楼囧~偶不是专家啊。你这通篇,我就看懂了matlab【在 D******6 的大作中提到】: 唔。。。我冲进来一看,空激动一场。: 这个破matlab,很闹心。
X*72011-01-08 08:0123 楼能干呀,不过,什么是角瓜片呢?【在 x****g 的大作中提到】: 小丫、小丫:: 我今天晚上做好吃的了。正宗的有豆腐皮的京酱肉丝。肉汤煮的角瓜片和豆腐汤。: 满满一大盘都吃掉了。吃饱了以后心情大好。可以坐下来学习了。
b*l2011-01-08 08:0127 楼啊,我现在正在用 maximum likelihood 来做 parameter estimation。用得是 R 的mle 和 nlm,都还可以,推荐一下。对于你说的问题哈,我猜是算法导致的。程序可能设定了 tolerance,只要找到了最低点的范围,并且最后的值到最低点间的距离小于预设的 tolerance,就作为最后结果了。毕竟数值计算追求的是速度和精度的平衡,而且很多时候永远不可能绝对精确么。要是我来写算法,估计也会这么做。当然了哈,用最低点两边的值和一阶导数进一步做一个内插可能更 decent 一些,或者至少求个 min 也好,毕竟效费比很高么,让人忍不住想这么挖掘一下。但是依然浪费了一次计算时间啊:只要达到了需要的精度,哪怕再做轻微的计算就能极大提高精度,那也是浪费啊。logit【在 D******6 的大作中提到】: 那就行啊,我也是不久以前才知道这么个破软件。
a*72011-01-08 08:0130 楼嗯,对于多哈的问题(2),我想这个程序不记录上一次结果、不回头做对比,一个原因可能是:有的funciton参数可能相当多(比如说参数可以是每个点的weight,而一个dataset可以有数以万计甚至百万计的点),不光对比费时间,记忆这些参数也可能很费空间。所以象河马说的,只要差得不多,就无所谓了。我不了解这个程序,纯属猜测。【在 b*****l 的大作中提到】: 啊,我现在正在用 maximum likelihood 来做 parameter estimation。用得是 R 的: mle 和 nlm,都还可以,推荐一下。: 对于你说的问题哈,我猜是算法导致的。程序可能设定了 tolerance,只要找到了最低: 点的范围,并且最后的值到最低点间的距离小于预设的 tolerance,就作为最后结果了: 。毕竟数值计算追求的是速度和精度的平衡,而且很多时候永远不可能绝对精确么。要: 是我来写算法,估计也会这么做。: 当然了哈,用最低点两边的值和一阶导数进一步做一个内插可能更 decent 一些,或者: 至少求个 min 也好,毕竟效费比很高么,让人忍不住想这么挖掘一下。但是依然浪费: 了一次计算时间啊:只要达到了需要的精度,哪怕再做轻微的计算就能极大提高精度,: 那也是浪费啊。
x*g2011-01-08 08:0132 楼角瓜切的片啊。角瓜就是一种长得像减肥了的茄子一样的,白绿白绿的瓜。皮是白色和绿色细纹相间的。瓤是白色的。放在汤里蛮好吃。肉汤煮,有股清甜的味道。【在 X******7 的大作中提到】: 能干呀,不过,什么是角瓜片呢?
D*62011-01-08 08:0133 楼对呀,这个说得对头。但是,我现在就是在用Matlab,不是R,不想来回转换了。觉得如果R能做,Matlab也应该能做啊。以前放弃R也是因为R的help不清楚,又是免费的,恐怕不可靠,就用Matlab了,没有想到Matlab也这样不清楚。是,你说得这些都有道理,只是既然maxlik这么常用的function,他们怎么能编成这样含糊。。。【在 b*****l 的大作中提到】: 啊,我现在正在用 maximum likelihood 来做 parameter estimation。用得是 R 的: mle 和 nlm,都还可以,推荐一下。: 对于你说的问题哈,我猜是算法导致的。程序可能设定了 tolerance,只要找到了最低: 点的范围,并且最后的值到最低点间的距离小于预设的 tolerance,就作为最后结果了: 。毕竟数值计算追求的是速度和精度的平衡,而且很多时候永远不可能绝对精确么。要: 是我来写算法,估计也会这么做。: 当然了哈,用最低点两边的值和一阶导数进一步做一个内插可能更 decent 一些,或者: 至少求个 min 也好,毕竟效费比很高么,让人忍不住想这么挖掘一下。但是依然浪费: 了一次计算时间啊:只要达到了需要的精度,哪怕再做轻微的计算就能极大提高精度,: 那也是浪费啊。
X*72011-01-08 08:0135 楼哎,我们是没资本,不敢乱奔,怕闪了大众的👀,怎么你们小年轻还这么遮遮掩掩的。。。(^O^)【在 p******e 的大作中提到】: not a chance
a*72011-01-08 08:0136 楼呃,这个你有点冤枉Matlab。你用的那个是第三方编写的程序,也是免费的。。。【在 D******6 的大作中提到】: 对呀,这个说得对头。但是,我现在就是在用Matlab,不是R,不想来回转换了。觉得: 如果R能做,Matlab也应该能做啊。以前放弃R也是因为R的help不清楚,又是免费的,: 恐怕不可靠,就用Matlab了,没有想到Matlab也这样不清楚。: 是,你说得这些都有道理,只是既然maxlik这么常用的function,他们怎么能编成这样: 含糊。。。
D*62011-01-08 08:0138 楼哦,也是免费的?太过分了。。。的确,我问了几个人了,人家都不用。那个教授很过分,为啥推荐一个大家都不用的函数让我用?【在 a*********7 的大作中提到】: 呃,这个你有点冤枉Matlab。你用的那个是第三方编写的程序,也是免费的。。。
a*72011-01-08 08:0140 楼嗯,大家都可以编matlab function,让大家分享。官方类似的也有,你看这个合不合用:http://www.mathworks.com/help/toolbox/stats/mle.html【在 D******6 的大作中提到】: 哦,也是免费的?太过分了。。。的确,我问了几个人了,人家都不用。那个教授很过: 分,为啥推荐一个大家都不用的函数让我用?
D*62011-01-08 08:0142 楼奥,谢谢~~我的model有点特异,这么标准的mle 函数能不能用不好说,我也找到了几个别的optimization function,fminsearch什么的,看来只好换函数了。不过那个旧函数,别说,如果要是算法够好,其实输入输出比较简单明了,所以我也以为是个好函数。【在 a*********7 的大作中提到】: 嗯,大家都可以编matlab function,让大家分享。: 官方类似的也有,你看这个合不合用:: http://www.mathworks.com/help/toolbox/stats/mle.html