返回信息流☆─────────────────────────────────────☆
sunmoonstar (帅猪) 于 (Fri Apr 27 23:39:53 2007) 提到:
比如
min {f(x1,x2,..., xn)} (n>=1)
f() 是已知的关于x1的2次多项式,x2的2次多项式, ... xn的2次多项式
没有约束条件
这种方程有通用解法吗?
谢谢
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Fri Apr 27 23:42:27 2007) 提到:
有啊。
用遗传算法工具箱等等。
最优化,方法挺多的。
☆─────────────────────────────────────☆
sunmoonstar (帅猪) 于 (Sat Apr 28 00:16:01 2007) 提到:
遗传算法?
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Sat Apr 28 00:18:05 2007) 提到:
你网上搜搜吧。。。要我打这么多字,比较累。图书馆也能找到这方面的书的。
☆─────────────────────────────────────☆
sunmoonstar (帅猪) 于 (Sat Apr 28 01:23:05 2007) 提到:
一牛人告诉我解线性方程.....
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Sat Apr 28 11:26:18 2007) 提到:
目标函数都非线性,他还解线性方程,太牛了。
要么,你用lingo软件解,比较快。
【 在 sunmoonstar 的大作中提到: 】
: 一牛人告诉我解线性方程.....
☆─────────────────────────────────────☆
sunmoonstar (帅猪) 于 (Sat Apr 28 17:42:26 2007) 提到:
看来是被那个人用我不懂的东西找回面子
感觉是被骗了。。。。。。
55555555555555555555555555555555
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Sat Apr 28 21:11:20 2007) 提到:
PATPAT....
【 在 sunmoonstar 的大作中提到: 】
: 看来是被那个人用我不懂的东西找回面子
: 感觉是被骗了。。。。。。
: 55555555555555555555555555555555
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Sun Apr 29 13:40:34 2007) 提到:
最速下降,拟牛顿法这类都行,算法挺多的.
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Sun Apr 29 13:47:21 2007) 提到:
或许他想先线性话再搞,不过一般来说不这么做,非线性的无约束最优算法很多~
【 在 sunmoonstar 的大作中提到: 】
: 一牛人告诉我解线性方程.....
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Tue May 1 07:42:34 2007) 提到:
gradient descent algorithm!
x=[x1, x2, ..., xn],是vector
x(n+1)=x(n)+u*\delta(n)
其中u是个小于1的常数
设定一个初始值x(0),比如[1 0 0 0 0...]
\delta(n)是x(n)时,f对x1,x2等等取偏导,也是一个vector,大小和x一样
注意,u取值不能太大,会造成不稳定,太小收敛慢.
【 在 sunmoonstar 的大作中提到: 】
: 比如
: min {f(x1,x2,..., xn)} (n>=1)
: f() 是已知的关于x1的2次多项式,x2的2次多项式, ... xn的2次多项式
: ...................
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Tue May 1 13:12:39 2007) 提到:
u值一般通过一维搜索,delta(n)应该是负梯度吧?另外最速下降可能会锯齿哦~
【 在 kidd 的大作中提到: 】
: gradient descent algorithm!
: x=[x1, x2, ..., xn],是vector
: x(n+1)=x(n)+u*\delta(n)
: ...................
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Tue May 1 14:45:14 2007) 提到:
没有什么各方面都表现不错的方法。
你觉得什么方法好呢?
【 在 linquan 的大作中提到: 】
: u值一般通过一维搜索,delta(n)应该是负梯度吧?另外最速下降可能会锯齿哦~
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Tue May 1 18:58:04 2007) 提到:
实际应用中不可能用搜索的,一般都是设一个小值,值小了,锯齿不会那么严重,但是收敛慢,如果要加快收敛速度,可以用Recursive Least Square,或者Recursive Predition Error Method,来加快收敛速度,付出的代价就是计算量增大.
能够求出delta,那么RLS和RPEM都很容易就能实现.
【 在 linquan 的大作中提到: 】
: u值一般通过一维搜索,delta(n)应该是负梯度吧?另外最速下降可能会锯齿哦~
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Tue May 1 19:00:36 2007) 提到:
有得必有失,没有一个方法各个方面都表现不错的,^_^
【 在 Jarod 的大作中提到: 】
: 没有什么各方面都表现不错的方法。
: 你觉得什么方法好呢?
☆─────────────────────────────────────☆
sunmoonstar (帅猪) 于 (Tue May 1 22:08:01 2007) 提到:
谢谢, 我要多多学习这些算法
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Wed May 2 01:54:02 2007) 提到:
你搞哪行的?要学习这些?
【 在 sunmoonstar 的大作中提到: 】
: 谢谢, 我要多多学习这些算法
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Wed May 2 11:05:55 2007) 提到:
我觉得比较有效的有拟牛顿法,收敛速度快.利用hesse矩阵的信息,又不用直接去算hesse矩阵,减小计算量,又可修正hesse的非正定。
【 在 Jarod 的大作中提到: 】
: 没有什么各方面都表现不错的方法。
: 你觉得什么方法好呢?
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Wed May 2 11:21:02 2007) 提到:
请教下实际中为什么不能用搜索呢?我原来做都用一维搜索,感觉还可以接受,如果搜索步长取定的话,感觉怪怪的,您是怕线搜索计算量过大吗?其实它就只是个一维搜索啊,要不然也可非精确线搜索。RPEM这个我只在文章中看过,没仔细研究过,去找来看看~另外,用拟牛顿感觉好很多。谢谢指教~
【 在 kidd 的大作中提到: 】
: 实际应用中不可能用搜索的,一般都是设一个小值,值小了,锯齿不会那么严重,但是收敛慢,如果要加快收敛速度,可以用Recursive Least Square,或者Recursive Predition Error Method,来加快收敛速度,付出的代价就是计算量增大.
: 能够求出delta,那么RLS和RPEM都很容易就能实现.
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Wed May 2 16:10:12 2007) 提到:
Yes, that is what I mean, the computation complexity.
You mean Quasi Newton Method? The problem for Newton and Quasi Newton Methods is, you have to calculate the "inverse" of the Hessian Matrix, which is very very difficult in the implementation. I do not mean implementation in MATLAB, but in practical use, like using in some chip and so on. If you want to get rid of the Hessian inverse, you can try "Secant" method, whose convergence speed is not so fast but do not need to calculate the inverse. Actually, all the RLS PEM Secant and so on, their goals are to calculate the matrix inverse in a recursive way....
【 在 linquan 的大作中提到: 】
: 请教下实际中为什么不能用搜索呢?我原来做都用一维搜索,感觉还可以接受,如果搜索步长取定的话,感觉怪怪的,您是怕线搜索计算量过大吗?其实它就只是个一维搜索啊,要不然也可非精确线搜索。RPEM这个我只在文章中看过,没仔细研究过,去找来看看~另外,用拟牛顿感觉好很多。谢谢指教~
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Wed May 2 16:13:35 2007) 提到:
But you have to calculate the inverse of Hessian, that is no problem in MATLAB, just a command "inv", but if use in digital circuit, that is very very difficult. [em18]
【 在 linquan 的大作中提到: 】
: 我觉得比较有效的有拟牛顿法,收敛速度快.利用hesse矩阵的信息,又不用直接去算hesse矩阵,减小计算量,又可修正hesse的非正定。
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Wed May 2 16:24:49 2007) 提到:
恩,我明白你的意思了,不过拟牛顿法就是来解决这个问题的,他构造近似矩阵并用他取代牛顿法中的hesse矩阵的逆,所以他回避了取逆。在实际用中也不少。我作仿真的时候,算法实际实现的可能性也会考虑的。
谢谢!呵呵。看您的ip您是在国外读书的吧~呵呵
【 在 kidd 的大作中提到: 】
: Yes, that is what I mean, the computation complexity.
: You mean Quasi Newton Method? The problem for Newton and Quasi Newton Methods is, you have to calculate the "inverse" of the Hessian Matrix, which is very very difficult in the implementation. I do not mean implementation in MATLAB, but in practical use, like using in some chip and so on. If you want to get rid of the Hessian inverse, you can try "Secant" method, whose convergence speed is not so fast but do not need to calculate the inverse. Actually, all the RLS PEM Secant and so on, their go: als are to calculate the matrix inverse in a recursive way....
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Wed May 2 16:49:42 2007) 提到:
yes, I am studying abroad.
what is the English for the method you mentioned? I do not know the chinese name of these methods....:)
【 在 linquan 的大作中提到: 】
: 恩,我明白你的意思了,不过拟牛顿法就是来解决这个问题的,他构造近似矩阵并用他取代牛顿法中的hesse矩阵的逆,所以他回避了取逆。在实际用中也不少。我作仿真的时候,算法实际实现的可能性也会考虑的。
: 谢谢!呵呵。看您的ip您是在国外读书的吧~呵呵
: go: als are to calculate the matrix inverse in a recursive way....
☆─────────────────────────────────────☆
Jarod (计算智能) 于 (Wed May 2 20:01:59 2007) 提到:
个人感觉,实际应用中,搜一维的太少了。高维的比较多。高维情况下,这些方法就常常失效了,只能得一个局部最优。
比如一个恶心的两维函数:
f(x1,x2) = 20 + x1^2 + x2^2 - 10(cos*2*pi*x1 + cos*2*pi*x2)
【 在 linquan 的大作中提到: 】
: 请教下实际中为什么不能用搜索呢?我原来做都用一维搜索,感觉还可以接受,如果搜索步长取定的话,感觉怪怪的,您是怕线搜索计算量过大吗?其实它就只是个一维搜索啊,要不然也可非精确线搜索。RPEM这个我只在文章中看过,没仔细研究过,去找来看看~另外,用拟牛顿感觉好很多。谢谢指教~
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Sun May 6 14:03:02 2007) 提到:
就叫Quasi Newton Method 吧。然后他计算近似矩阵的算法有很多,如DEP(Davidon Fletcher P。。。),BFGS(DEP的对偶公式)。这样,在计算过程中就不用求hesse矩阵,也不用求它的逆
【 在 kidd 的大作中提到: 】
: yes, I am studying abroad.
: what is the English for the method you mentioned? I do not know the chinese name of these methods....:)
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Sun May 6 14:07:09 2007) 提到:
我说的一维搜索是指在多维搜索中用来计算最优步长的。
【 在 Jarod 的大作中提到: 】
: 个人感觉,实际应用中,搜一维的太少了。高维的比较多。高维情况下,这些方法就常常失效了,只能得一个局部最优。
: 比如一个恶心的两维函数:
: f(x1,x2) = 20 + x1^2 + x2^2 - 10(cos*2*pi*x1 + cos*2*pi*x2)
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Mon May 7 19:51:47 2007) 提到:
Ok, that is what I mentioned Secant Method..
However, as my simulation before, seems that they can not converge as fast as Newton [em21]
【 在 linquan 的大作中提到: 】
: 就叫Quasi Newton Method 吧。然后他计算近似矩阵的算法有很多,如DEP(Davidon Fletcher P。。。),BFGS(DEP的对偶公式)。这样,在计算过程中就不用求hesse矩阵,也不用求它的逆
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Tue May 8 13:04:42 2007) 提到:
哦,我开始不知道它就是Secant Method,只知道 它也叫变尺度法,刚才查了下才知道,谢谢。你很厉害啊,这些优化算法都懂~
DFP构造H矩阵为正定对称,产生的方向均为下降方向(牛顿法不一定为下降方向),并且有二次终止性,并且一般具有超线性收敛速率。我仿真的时候觉得收敛还是挺快的,至少比最速下降快。但可能在存储上有麻烦~~
【 在 kidd 的大作中提到: 】
: Ok, that is what I mentioned Secant Method..
: However, as my simulation before, seems that they can not converge as fast as Newton [em21]
☆─────────────────────────────────────☆
kidd (阿甘) 于 (Wed May 9 01:53:50 2007) 提到:
呵呵,过奖了,我研究方向是adaptive nonlinear signal processing,以前遇到一些问题这些方法都变换着试过,所以略知一二了,但是我上次的问题,用newton表现很好,但是为了克服求henssian的inverse,后来用secant,表现一般,可能是因为没有深究step size,后来也就不管它了,^_^.
【 在 linquan 的大作中提到: 】
: 哦,我开始不知道它就是Secant Method,只知道 它也叫变尺度法,刚才查了下才知道,谢谢。你很厉害啊,这些优化算法都懂~
: DFP构造H矩阵为正定对称,产生的方向均为下降方向(牛顿法不一定为下降方向),并且有二次终止性,并且一般具有超线性收敛速率。我仿真的时候觉得收敛还是挺快的,至少比最速下降快。但可能在存储上有麻烦~~
☆─────────────────────────────────────☆
linquan (坐等天黑) 于 (Wed May 9 13:11:00 2007) 提到:
哦~~牛顿法也挺多变种的,可能某一种刚好适合您的问题,所以表现出来的效果比较理想。牛顿法本身我觉得还是瞒多限制的。谢谢了~哈哈~
【 在 kidd 的大作中提到: 】
: 呵呵,过奖了,我研究方向是adaptive nonlinear signal processing,以前遇到一些问题这些方法都变换着试过,所以略知一二了,但是我上次的问题,用newton表现很好,但是为了克服求henssian的inverse,后来用secant,表现一般,可能是因为没有深究step size,后来也就不管它了,^_^.
这是一条镜像帖。来源:北邮人论坛 / matlab / #849同步于 2007/5/14
Matlab机器人发帖
[合集]最优化问题如何求解
sunmoonstar
2007/5/14镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。